summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
Diffstat (limited to 'program')
-rw-r--r--program/include/rcmail.php29
-rw-r--r--program/include/rcmail_output_html.php39
-rw-r--r--program/js/app.js181
-rw-r--r--program/js/list.js148
-rw-r--r--program/lib/Roundcube/rcube.php12
-rw-r--r--program/lib/Roundcube/rcube_addressbook.php7
-rw-r--r--program/lib/Roundcube/rcube_config.php6
-rw-r--r--program/lib/Roundcube/rcube_contacts.php44
-rw-r--r--program/lib/Roundcube/rcube_imap.php46
-rw-r--r--program/lib/Roundcube/rcube_imap_cache.php6
-rw-r--r--program/lib/Roundcube/rcube_ldap.php17
-rw-r--r--program/lib/Roundcube/rcube_plugin_api.php1
-rw-r--r--program/lib/Roundcube/rcube_storage.php12
-rw-r--r--program/lib/Roundcube/rcube_utils.php31
-rw-r--r--program/lib/Roundcube/rcube_washtml.php9
-rw-r--r--program/localization/ast/labels.inc2
-rw-r--r--program/localization/az_AZ/labels.inc17
-rw-r--r--program/localization/az_AZ/messages.inc6
-rw-r--r--program/localization/be_BE/labels.inc25
-rw-r--r--program/localization/be_BE/messages.inc1
-rw-r--r--program/localization/bg_BG/labels.inc5
-rw-r--r--program/localization/bg_BG/messages.inc1
-rw-r--r--program/localization/bs_BA/labels.inc13
-rw-r--r--program/localization/bs_BA/messages.inc3
-rw-r--r--program/localization/ca_ES/labels.inc85
-rw-r--r--program/localization/ca_ES/messages.inc23
-rw-r--r--program/localization/cs_CZ/labels.inc5
-rw-r--r--program/localization/cs_CZ/messages.inc1
-rw-r--r--program/localization/da_DK/labels.inc5
-rw-r--r--program/localization/da_DK/messages.inc1
-rw-r--r--program/localization/de_CH/labels.inc5
-rw-r--r--program/localization/de_CH/messages.inc1
-rw-r--r--program/localization/el_GR/messages.inc7
-rw-r--r--program/localization/en_CA/labels.inc496
-rw-r--r--program/localization/en_CA/messages.inc176
-rw-r--r--program/localization/en_US/labels.inc1
-rw-r--r--program/localization/es_419/labels.inc423
-rw-r--r--program/localization/es_419/messages.inc26
-rw-r--r--program/localization/es_ES/labels.inc11
-rw-r--r--program/localization/es_ES/messages.inc2
-rw-r--r--program/localization/fi_FI/labels.inc8
-rw-r--r--program/localization/fi_FI/messages.inc3
-rw-r--r--program/localization/fr_FR/labels.inc4
-rw-r--r--program/localization/gl_ES/labels.inc170
-rw-r--r--program/localization/gl_ES/messages.inc151
-rw-r--r--program/localization/hu_HU/labels.inc5
-rw-r--r--program/localization/hu_HU/messages.inc1
-rw-r--r--program/localization/index.inc3
-rw-r--r--program/localization/it_IT/labels.inc13
-rw-r--r--program/localization/it_IT/messages.inc3
-rw-r--r--program/localization/ja_JP/labels.inc5
-rw-r--r--program/localization/ja_JP/messages.inc1
-rw-r--r--program/localization/lb_LU/labels.inc5
-rw-r--r--program/localization/lt_LT/labels.inc15
-rw-r--r--program/localization/lt_LT/messages.inc5
-rw-r--r--program/localization/nl_NL/labels.inc7
-rw-r--r--program/localization/nl_NL/messages.inc1
-rw-r--r--program/localization/pt_BR/labels.inc5
-rw-r--r--program/localization/pt_BR/messages.inc1
-rw-r--r--program/localization/pt_PT/labels.inc5
-rw-r--r--program/localization/pt_PT/messages.inc1
-rw-r--r--program/localization/ro_RO/messages.inc5
-rw-r--r--program/localization/ru_RU/labels.inc13
-rw-r--r--program/localization/ru_RU/messages.inc1
-rw-r--r--program/localization/sk_SK/csv2vcard.inc93
-rw-r--r--program/localization/sk_SK/labels.inc303
-rw-r--r--program/localization/sk_SK/messages.inc257
-rw-r--r--program/localization/sv_SE/labels.inc5
-rw-r--r--program/localization/sv_SE/messages.inc1
-rw-r--r--program/localization/tr_TR/labels.inc13
-rw-r--r--program/localization/tr_TR/messages.inc1
-rw-r--r--program/localization/uk_UA/labels.inc10
-rw-r--r--program/localization/uk_UA/messages.inc8
-rw-r--r--program/localization/zh_TW/labels.inc3
-rw-r--r--program/steps/addressbook/copy.inc4
-rw-r--r--program/steps/addressbook/delete.inc21
-rw-r--r--program/steps/addressbook/edit.inc24
-rw-r--r--program/steps/addressbook/export.inc2
-rw-r--r--program/steps/addressbook/func.inc160
-rw-r--r--program/steps/addressbook/groups.inc16
-rw-r--r--program/steps/addressbook/import.inc45
-rw-r--r--program/steps/addressbook/mailto.inc4
-rw-r--r--program/steps/addressbook/move.inc4
-rw-r--r--program/steps/addressbook/photo.inc8
-rw-r--r--program/steps/addressbook/save.inc34
-rw-r--r--program/steps/addressbook/search.inc34
-rw-r--r--program/steps/addressbook/show.inc26
-rw-r--r--program/steps/addressbook/upload_photo.inc16
-rw-r--r--program/steps/mail/addcontact.inc8
-rw-r--r--program/steps/mail/attachments.inc29
-rw-r--r--program/steps/mail/autocomplete.inc14
-rw-r--r--program/steps/mail/check_recent.inc22
-rw-r--r--program/steps/mail/compose.inc164
-rw-r--r--program/steps/mail/copy.inc10
-rw-r--r--program/steps/mail/folders.inc10
-rw-r--r--program/steps/mail/func.inc250
-rw-r--r--program/steps/mail/get.inc60
-rw-r--r--program/steps/mail/getunread.inc7
-rw-r--r--program/steps/mail/headers.inc2
-rw-r--r--program/steps/mail/import.inc11
-rw-r--r--program/steps/mail/list.inc19
-rw-r--r--program/steps/mail/list_contacts.inc20
-rw-r--r--program/steps/mail/mark.inc12
-rw-r--r--program/steps/mail/move_del.inc22
-rw-r--r--program/steps/mail/pagenav.inc4
-rw-r--r--program/steps/mail/search.inc19
-rw-r--r--program/steps/mail/search_contacts.inc8
-rw-r--r--program/steps/mail/sendmail.inc99
-rw-r--r--program/steps/mail/sendmdn.inc2
-rw-r--r--program/steps/mail/show.inc28
-rw-r--r--program/steps/mail/viewsource.inc4
-rw-r--r--program/steps/settings/about.inc24
-rw-r--r--program/steps/settings/delete_identity.inc10
-rw-r--r--program/steps/settings/edit_folder.inc86
-rw-r--r--program/steps/settings/edit_identity.inc30
-rw-r--r--program/steps/settings/edit_prefs.inc4
-rw-r--r--program/steps/settings/edit_response.inc14
-rw-r--r--program/steps/settings/folders.inc63
-rw-r--r--program/steps/settings/func.inc278
-rw-r--r--program/steps/settings/identities.inc2
-rw-r--r--program/steps/settings/responses.inc16
-rw-r--r--program/steps/settings/save_folder.inc28
-rw-r--r--program/steps/settings/save_identity.inc38
-rw-r--r--program/steps/settings/save_prefs.inc35
-rw-r--r--program/steps/utils/html2text.inc2
-rw-r--r--program/steps/utils/modcss.inc2
-rw-r--r--program/steps/utils/save_pref.inc8
-rw-r--r--program/steps/utils/spell.inc8
-rw-r--r--program/steps/utils/spell_html.inc2
129 files changed, 3399 insertions, 1527 deletions
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 8abe87303..dbf56e55f 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -1282,13 +1282,22 @@ class rcmail extends rcube
}
else {
$js_mailboxlist = array();
- $out = html::tag('ul', $attrib, $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib);
+ $tree = $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib);
+
+ if ($type != 'js') {
+ $out = html::tag('ul', $attrib, $tree, html::$common_attrib);
+
+ $rcmail->output->include_script('treelist.js');
+ $rcmail->output->add_gui_object('mailboxlist', $attrib['id']);
+ $rcmail->output->set_env('unreadwrap', $attrib['unreadwrap']);
+ $rcmail->output->set_env('collapsed_folders', (string)$rcmail->config->get('collapsed_folders'));
+ }
- $rcmail->output->include_script('treelist.js');
- $rcmail->output->add_gui_object('mailboxlist', $attrib['id']);
$rcmail->output->set_env('mailboxes', $js_mailboxlist);
- $rcmail->output->set_env('unreadwrap', $attrib['unreadwrap']);
- $rcmail->output->set_env('collapsed_folders', (string)$rcmail->config->get('collapsed_folders'));
+
+ // we can't use object keys in javascript because they are unordered
+ // we need sorted folders list for folder-selector widget
+ $rcmail->output->set_env('mailboxes_list', array_keys($js_mailboxlist));
}
return $out;
@@ -1473,9 +1482,13 @@ class rcmail extends rcube
$jslist[$folder['id']] = array(
'id' => $folder['id'],
'name' => $foldername,
- 'virtual' => $folder['virtual']
+ 'virtual' => $folder['virtual'],
);
+ if (!empty($folder_class)) {
+ $jslist[$folder['id']]['class'] = $folder_class;
+ }
+
if (!empty($folder['folders'])) {
$out .= html::tag('ul', array('style' => ($is_collapsed ? "display:none;" : null)),
$this->render_folder_tree_html($folder['folders'], $mbox_name, $jslist, $attrib, $nestLevel+1));
@@ -1630,7 +1643,7 @@ class rcmail extends rcube
$rcmail->output->add_script('rcmail.set_quota('.rcube_output::json_serialize($quota).');', 'docready');
- return html::span($attrib, '');
+ return html::span($attrib, ' ');
}
@@ -1857,7 +1870,7 @@ class rcmail extends rcube
}
$this->output->set_env('max_filesize', $max_filesize);
- $max_filesize = self::show_bytes($max_filesize);
+ $max_filesize = $this->show_bytes($max_filesize);
$this->output->set_env('filesizeerror', $this->gettext(array(
'name' => 'filesizeerror', 'vars' => array('size' => $max_filesize))));
diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php
index 6db826e2e..e4059b73d 100644
--- a/program/include/rcmail_output_html.php
+++ b/program/include/rcmail_output_html.php
@@ -45,6 +45,7 @@ class rcmail_output_html extends rcmail_output
protected $footer = '';
protected $body = '';
protected $base_path = '';
+ protected $devel_mode = false;
// deprecated names of templates used before 0.5
protected $deprecated_templates = array(
@@ -64,6 +65,8 @@ class rcmail_output_html extends rcmail_output
{
parent::__construct();
+ $this->devel_mode = $this->config->get('devel_mode');
+
//$this->framed = $framed;
$this->set_env('task', $task);
$this->set_env('x_frame_options', $this->config->get('x_frame_options', 'sameorigin'));
@@ -658,16 +661,37 @@ class rcmail_output_html extends rcmail_output
}
// add file modification timestamp
- if (preg_match('/\.(js|css)$/', $file)) {
- if ($fs = @filemtime($file)) {
- $file .= '?s=' . $fs;
- }
+ if (preg_match('/\.(js|css)$/', $file, $m)) {
+ $file = $this->file_mod($file);
}
return $matches[1] . '=' . $matches[2] . $file . $matches[4];
}
/**
+ * Modify file by adding mtime indicator
+ */
+ protected function file_mod($file)
+ {
+ $fs = false;
+ $ext = substr($file, strrpos($file, '.') + 1);
+
+ // use minified file if exists (not in development mode)
+ if (!$this->devel_mode && !preg_match('/\.min\.' . $ext . '$/', $file)) {
+ $minified_file = substr($file, 0, strlen($ext) * -1) . 'min.' . $ext;
+ if ($fs = @filemtime($minified_file)) {
+ return $minified_file . '?s=' . $fs;
+ }
+ }
+
+ if ($fs = @filemtime($file)) {
+ $file .= '?s=' . $fs;
+ }
+
+ return $file;
+ }
+
+ /**
* Public wrapper to dipp into template parsing.
*
* @param string $input
@@ -971,7 +995,7 @@ class rcmail_output_html extends rcmail_output
$content = html::quote($this->get_pagetitle());
}
else if ($object == 'pagetitle') {
- if ($this->config->get('devel_mode') && !empty($_SESSION['username']))
+ if ($this->devel_mode && !empty($_SESSION['username']))
$title = $_SESSION['username'].' :: ';
else if ($prod_name = $this->config->get('product_name'))
$title = $prod_name . ' :: ';
@@ -1211,10 +1235,7 @@ class rcmail_output_html extends rcmail_output
public function include_script($file, $position='head')
{
if (!preg_match('|^https?://|i', $file) && $file[0] != '/') {
- $file = $this->scripts_path . $file;
- if ($fs = @filemtime($file)) {
- $file .= '?s=' . $fs;
- }
+ $file = $this->file_mod($this->scripts_path . $file);
}
if (!is_array($this->script_files[$position])) {
diff --git a/program/js/app.js b/program/js/app.js
index c9d0ab955..4c9b11a1f 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -187,8 +187,6 @@ function rcube_webmail()
if (this.env.permaurl)
this.enable_command('permaurl', 'extwin', true);
- this.local_storage_prefix = 'roundcube.' + (this.env.user_id || 'anonymous') + '.';
-
switch (this.task) {
case 'mail':
@@ -315,6 +313,7 @@ function rcube_webmail()
if (this.gui_objects.contactslist) {
this.contact_list = new rcube_list_widget(this.gui_objects.contactslist,
{ multiselect:true, draggable:false, keyboard:false });
+ this.contact_list.row_init = function(row){ p.triggerEvent('insertrow', { cid:row.uid, row:row }); };
this.contact_list.addEventListener('select', function(o){ ref.compose_recipient_select(o); });
this.contact_list.addEventListener('dblclick', function(o){ ref.compose_add_recipient('to'); });
this.contact_list.init();
@@ -844,14 +843,14 @@ function rcube_webmail()
case 'move':
case 'moveto': // deprecated
if (this.task == 'mail')
- this.move_messages(props);
+ this.move_messages(props, obj);
else if (this.task == 'addressbook')
this.move_contacts(props);
break;
case 'copy':
if (this.task == 'mail')
- this.copy_messages(props);
+ this.copy_messages(props, obj);
else if (this.task == 'addressbook')
this.copy_contacts(props);
break;
@@ -1413,8 +1412,6 @@ function rcube_webmail()
this.drag_start = function(list)
{
- var model = this.task == 'mail' ? this.env.mailboxes : this.env.contactfolders;
-
this.drag_active = true;
if (this.preview_timer)
@@ -2614,10 +2611,12 @@ function rcube_webmail()
};
// copy selected messages to the specified mailbox
- this.copy_messages = function(mbox)
+ this.copy_messages = function(mbox, obj)
{
if (mbox && typeof mbox === 'object')
mbox = mbox.id;
+ else if (!mbox)
+ return this.folder_selector(obj, function(folder) { ref.command('copy', folder); });
// exit if current or no mailbox specified
if (!mbox || mbox == this.env.mailbox)
@@ -2634,10 +2633,12 @@ function rcube_webmail()
};
// move selected messages to the specified mailbox
- this.move_messages = function(mbox)
+ this.move_messages = function(mbox, obj)
{
if (mbox && typeof mbox === 'object')
mbox = mbox.id;
+ else if (!mbox)
+ return this.folder_selector(obj, function(folder) { ref.command('move', folder); });
// exit if current or no mailbox specified
if (!mbox || mbox == this.env.mailbox)
@@ -2664,20 +2665,7 @@ function rcube_webmail()
// delete selected messages from the current mailbox
this.delete_messages = function(event)
{
- var uid, i, len, trash = this.env.trash_mailbox,
- list = this.message_list,
- selection = list ? list.get_selection() : [];
-
- // exit if no mailbox specified or if selection is empty
- if (!this.env.uid && !selection.length)
- return;
-
- // also select childs of collapsed rows
- for (i=0, len=selection.length; i<len; i++) {
- uid = selection[i];
- if (list.rows[uid].has_children && !list.rows[uid].expanded)
- list.select_children(uid);
- }
+ var list = this.message_list, trash = this.env.trash_mailbox;
// if config is set to flag for deletion
if (this.env.flag_for_deletion) {
@@ -2717,7 +2705,7 @@ function rcube_webmail()
this._with_selected_messages('delete', post_data);
};
- // Send a specifc move/delete request with UIDs of all selected messages
+ // Send a specific move/delete request with UIDs of all selected messages
// @private
this._with_selected_messages = function(action, post_data, lock)
{
@@ -5759,19 +5747,23 @@ function rcube_webmail()
.prop({checked: subscribed ? true : false, disabled: is_protected ? true : false});
// add to folder/row-ID map
- this.env.subscriptionrows[id] = [name, display_name, 0];
+ this.env.subscriptionrows[id] = [name, display_name, false];
// sort folders (to find a place where to insert the row)
// replace delimiter with \0 character to fix sorting
// issue where 'Abc Abc' would be placed before 'Abc/def'
var replace_from = RegExp(RegExp.escape(this.env.delimiter), 'g'),
replace_to = String.fromCharCode(0);
+
$.each(this.env.subscriptionrows, function(k,v) {
- var n = v[0];
- n = n.replace(replace_from, replace_to);
- v.push(n);
+ if (v.length < 4) {
+ var n = v[0];
+ n = n.replace(replace_from, replace_to);
+ v.push(n);
+ }
folders.push(v);
});
+
folders.sort(function(a, b) {
var len = a.length - 1; n1 = a[len], n2 = b[len];
return n1 < n2 ? -1 : 1;
@@ -6564,6 +6556,105 @@ function rcube_webmail()
elem.onclick = function() { rcmail.command('show-headers', '', elem); };
};
+ // create folder selector popup, position and display it
+ this.folder_selector = function(obj, callback)
+ {
+ var container = this.folder_selector_element;
+
+ if (!container) {
+ var rows = [],
+ delim = this.env.delimiter,
+ ul = $('<ul class="toolbarmenu iconized">'),
+ li = document.createElement('li'),
+ link = document.createElement('a'),
+ span = document.createElement('span');
+
+ container = $('<div id="folder-selector" class="popupmenu"></div>');
+ link.href = '#';
+ link.className = 'icon';
+
+ // loop over sorted folders list
+ $.each(this.env.mailboxes_list, function() {
+ var tmp, n = 0, s = 0,
+ folder = ref.env.mailboxes[this],
+ id = folder.id,
+ a = link.cloneNode(false), row = li.cloneNode(false);
+
+ if (folder.virtual)
+ a.className += ' virtual';
+ else {
+ a.className += ' active';
+ a.onclick = function() { container.hide().data('callback')(folder.id); };
+ }
+
+ if (folder['class'])
+ a.className += ' ' + folder['class'];
+
+ // calculate/set indentation level
+ while ((s = id.indexOf(delim, s)) >= 0) {
+ n++; s++;
+ }
+ a.style.paddingLeft = n ? (n * 16) + 'px' : 0;
+
+ // add folder name element
+ tmp = span.cloneNode(false);
+ $(tmp).text(folder.name);
+ a.appendChild(tmp);
+
+ row.appendChild(a);
+ rows.push(row);
+ });
+
+ ul.append(rows).appendTo(container);
+
+ // temporarily show element to calculate its size
+ container.css({left: '-1000px', top: '-1000px'})
+ .appendTo($('body')).show();
+
+ // set max-height if the list is long
+ if (rows.length > 10)
+ container.css('max-height', $('li', container)[0].offsetHeight * 10 + 9)
+
+ // hide selector on click out of selector element
+ var fn = function(e) { if (e.target != container.get(0)) container.hide(); };
+ $(document.body).on('mouseup', fn);
+ $('iframe').contents().on('mouseup', fn)
+ .load(function(e) { try { $(this).contents().on('mouseup', fn); } catch(e) {}; });
+
+ this.folder_selector_element = container;
+ }
+
+ // position menu on the screen
+ this.element_position(container, obj);
+
+ container.show().data('callback', callback);
+ };
+
+ // position a menu element on the screen in relation to other object
+ this.element_position = function(element, obj)
+ {
+ var obj = $(obj), win = $(window),
+ width = obj.width(),
+ height = obj.height(),
+ win_height = win.height(),
+ elem_height = $(element).height(),
+ elem_width = $(element).width(),
+ pos = obj.offset(),
+ top = pos.top,
+ left = pos.left + width;
+
+ if (top + elem_height > win_height) {
+ top -= elem_height - height;
+ if (top < 0)
+ top = Math.max(0, (win_height - elem_height) / 2);
+ }
+
+ if (left + elem_width > win.width())
+ left -= elem_width + width;
+
+ element.css({left: left + 'px', top: top + 'px'});
+ };
+
/********************************************************/
/********* html to text conversion functions *********/
@@ -6833,6 +6924,16 @@ function rcube_webmail()
case 'refresh':
case 'check-recent':
+ // update message flags
+ $.each(this.env.recent_flags || {}, function(uid, flags) {
+ ref.set_message(uid, 'deleted', flags.deleted);
+ ref.set_message(uid, 'replied', flags.answered);
+ ref.set_message(uid, 'unread', !flags.seen);
+ ref.set_message(uid, 'forwarded', flags.forwarded);
+ ref.set_message(uid, 'flagged', flags.flagged);
+ });
+ delete this.env.recent_flags;
+
case 'getunread':
case 'search':
this.env.qsearch = null;
@@ -6845,7 +6946,6 @@ function rcube_webmail()
if ((response.action == 'list' || response.action == 'search') && this.message_list) {
this.msglist_select(this.message_list);
- this.message_list.resize();
this.triggerEvent('listupdate', { folder:this.env.mailbox, rowcount:this.message_list.rowcount });
}
}
@@ -6856,7 +6956,6 @@ function rcube_webmail()
this.enable_command('search-create', this.env.source == '');
this.enable_command('search-delete', this.env.search_id);
this.update_group_commands();
- this.contact_list.resize();
this.triggerEvent('listupdate', { folder:this.env.source, rowcount:this.contact_list.rowcount });
}
}
@@ -7158,13 +7257,18 @@ function rcube_webmail()
if (this.gui_objects.mailboxlist)
params._folderlist = 1;
- if (this.gui_objects.messagelist)
- params._list = 1;
if (this.gui_objects.quotadisplay)
params._quota = 1;
if (this.env.search_request)
params._search = this.env.search_request;
+ if (this.gui_objects.messagelist) {
+ params._list = 1;
+
+ // message uids for flag updates check
+ params._uids = $.map(this.message_list.rows, function(row, uid) { return uid; }).join(',');
+ }
+
return params;
};
@@ -7447,11 +7551,20 @@ function rcube_webmail()
setCookie(name, value, expires, this.env.cookie_path, this.env.cookie_domain, this.env.cookie_secure);
};
+ this.get_local_storage_prefix = function()
+ {
+ if (!this.local_storage_prefix)
+ this.local_storage_prefix = 'roundcube.' + (this.env.user_id || 'anonymous') + '.';
+
+ return this.local_storage_prefix;
+ };
+
// wrapper for localStorage.getItem(key)
this.local_storage_get_item = function(key, deflt, encrypted)
{
+
// TODO: add encryption
- var item = localStorage.getItem(this.local_storage_prefix + key);
+ var item = localStorage.getItem(this.get_local_storage_prefix() + key);
return item !== null ? JSON.parse(item) : (deflt || null);
};
@@ -7459,13 +7572,13 @@ function rcube_webmail()
this.local_storage_set_item = function(key, data, encrypted)
{
// TODO: add encryption
- return localStorage.setItem(this.local_storage_prefix + key, JSON.stringify(data));
+ return localStorage.setItem(this.get_local_storage_prefix() + key, JSON.stringify(data));
};
// wrapper for localStorage.removeItem(key)
this.local_storage_remove_item = function(key)
{
- return localStorage.removeItem(this.local_storage_prefix + key);
+ return localStorage.removeItem(this.get_local_storage_prefix() + key);
};
} // end object rcube_webmail
diff --git a/program/js/list.js b/program/js/list.js
index 6f54dd77c..54daa983e 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -20,7 +20,7 @@
/**
* Roundcube List Widget class
- * @contructor
+ * @constructor
*/
function rcube_list_widget(list, p)
{
@@ -32,10 +32,6 @@ function rcube_list_widget(list, p)
this.list = list ? list : null;
this.tagname = this.list ? this.list.nodeName.toLowerCase() : 'table';
this.id_regexp = /^rcmrow([a-z0-9\-_=\+\/]+)/i;
- this.thead;
- this.tbody;
- this.fixed_header;
- this.frame = null;
this.rows = {};
this.selection = [];
this.rowcount = 0;
@@ -249,6 +245,9 @@ clear: function(sel)
// reset scroll position (in Opera)
if (this.frame)
this.frame.scrollTop = 0;
+
+ // fix list header after removing any rows
+ this.resize();
},
@@ -257,7 +256,7 @@ clear: function(sel)
*/
remove_row: function(uid, sel_next)
{
- var node = this.rows[uid] ? this.rows[uid].obj : null;
+ var self = this, node = this.rows[uid] ? this.rows[uid].obj : null;
if (!node)
return;
@@ -269,6 +268,10 @@ remove_row: function(uid, sel_next)
delete this.rows[uid];
this.rowcount--;
+
+ // fix list header after removing any rows
+ clearTimeout(this.resize_timeout)
+ this.resize_timeout = setTimeout(function() { self.resize(); }, 50);
},
@@ -277,7 +280,7 @@ remove_row: function(uid, sel_next)
*/
insert_row: function(row, before)
{
- var tbody = this.tbody;
+ var self = this, tbody = this.tbody;
// create a real dom node first
if (row.nodeName === undefined) {
@@ -305,6 +308,10 @@ insert_row: function(row, before)
this.init_row(row);
this.rowcount++;
+
+ // fix list header after adding any rows
+ clearTimeout(this.resize_timeout)
+ this.resize_timeout = setTimeout(function() { self.resize(); }, 50);
},
/**
@@ -531,17 +538,18 @@ expand_row: function(e, id)
collapse: function(row)
{
+ var r, depth = row.depth,
+ new_row = row ? row.obj.nextSibling : null;
+
row.expanded = false;
this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
- var depth = row.depth;
- var new_row = row ? row.obj.nextSibling : null;
- var r;
while (new_row) {
if (new_row.nodeType == 1) {
- var r = this.rows[new_row.uid];
+ r = this.rows[new_row.uid];
if (r && r.depth <= depth)
break;
+
$(new_row).css('display', 'none');
if (r.expanded) {
r.expanded = false;
@@ -553,6 +561,7 @@ collapse: function(row)
this.resize();
this.triggerEvent('listupdate');
+
return false;
},
@@ -950,7 +959,7 @@ _rowIndex: function(obj)
in_selection: function(id)
{
for (var n in this.selection)
- if (this.selection[n]==id)
+ if (this.selection[n] == id)
return true;
return false;
@@ -1046,9 +1055,26 @@ clear_selection: function(id)
/**
* Getter for the selection array
*/
-get_selection: function()
+get_selection: function(deep)
{
- return this.selection;
+ var res = $.merge([], this.selection);
+
+ // return children of selected threads even if only root is selected
+ if (deep !== false && res.length) {
+ for (var uid, uids, i=0, len=res.length; i<len; i++) {
+ uid = res[i];
+ if (this.rows[uid].has_children && !this.rows[uid].expanded) {
+ uids = this.row_children(uid);
+ for (var j=0, uids_len=uids.length; j<uids_len; j++) {
+ uid = uids[j];
+ if (!this.in_selection(uid))
+ res.push(uid);
+ }
+ }
+ }
+ }
+
+ return res;
},
@@ -1292,60 +1318,71 @@ drag_mouse_move: function(e)
if (this.drag_start) {
// check mouse movement, of less than 3 pixels, don't start dragging
- var m = rcube_event.get_mouse_pos(e);
+ var m = rcube_event.get_mouse_pos(e),
+ limit = 10, selection = [], self = this;
if (!this.drag_mouse_start || (Math.abs(m.x - this.drag_mouse_start.x) < 3 && Math.abs(m.y - this.drag_mouse_start.y) < 3))
return false;
+ // remember dragging start position
+ this.drag_start_pos = {left: m.x, top: m.y};
+
+ // initialize drag layer
if (!this.draglayer)
this.draglayer = $('<div>').attr('id', 'rcmdraglayer')
- .css({ position:'absolute', display:'none', 'z-index':2000 })
+ .css({position: 'absolute', display: 'none', 'z-index': 2000})
.appendTo(document.body);
+ else
+ this.draglayer.html('');
- // also select childs of (collapsed) threads for dragging
- var n, uid, selection = $.merge([], this.selection);
- for (n in selection) {
- uid = selection[n];
- if (!this.rows[uid].expanded)
- this.select_children(uid);
- }
+ // get selected rows (in display order), don't use this.selection here
+ $(this.row_tagname() + '.selected', this.tbody).each(function() {
+ if (!String(this.id).match(self.id_regexp))
+ return;
- // reset content
- this.draglayer.html('');
+ var uid = RegExp.$1, row = self.rows[uid];
- // get subjects of selected messages
- var i, n, obj, me;
- for (n=0; n<this.selection.length; n++) {
- // only show 12 lines
- if (n>12) {
- this.draglayer.append('...');
- break;
- }
+ if ($.inArray(uid, selection) > -1)
+ return;
+
+ selection.push(uid);
- me = this;
- if (obj = this.rows[this.selection[n]].obj) {
- $('> '+this.col_tagname(), obj).each(function(i,elem){
- if (n == 0)
- me.drag_start_pos = $(elem).offset();
+ // also handle children of (collapsed) trees for dragging (they might be not selected)
+ if (row.has_children && !row.expanded)
+ $.each(self.row_children(uid), function() {
+ if ($.inArray(this, selection) > -1)
+ return;
+ selection.push(this);
+ });
- if (me.subject_col < 0 || (me.subject_col >= 0 && me.subject_col == i)) {
- var subject = $(elem).text();
+ // break the loop asap
+ if (selection.length > limit + 1)
+ return false;
+ });
- if (subject) {
- // remove leading spaces
- subject = $.trim(subject);
- // truncate line to 50 characters
- subject = (subject.length > 50 ? subject.substring(0, 50) + '...' : subject);
+ // append subject (of every row up to the limit) to the drag layer
+ $.each(selection, function(i, uid) {
+ if (i > limit) {
+ self.draglayer.append('...');
+ return false;
+ }
- var entry = $('<div>').text(subject);
- me.draglayer.append(entry);
- }
+ $('> ' + self.col_tagname(), self.rows[uid].obj).each(function(n, cell) {
+ if (self.subject_col < 0 || (self.subject_col >= 0 && self.subject_col == n)) {
+ var subject = $(cell).text();
- return false; // break
+ if (subject) {
+ // remove leading spaces
+ subject = $.trim(subject);
+ // truncate line to 50 characters
+ subject = (subject.length > 50 ? subject.substring(0, 50) + '...' : subject);
+
+ self.draglayer.append($('<div>').text(subject));
+ return false;
}
- });
- }
- }
+ }
+ });
+ });
this.draglayer.show();
this.drag_active = true;
@@ -1420,6 +1457,9 @@ column_drag_mouse_move: function(e)
var lpos = $(this.list).offset(),
cells = this.thead.rows[0].cells;
+ // fix layer position when list is scrolled
+ lpos.top += this.list.scrollTop + this.list.parentNode.scrollTop;
+
// create dragging layer
this.col_draglayer = $('<div>').attr('id', 'rcmcoldraglayer')
.css(lpos).css({ position:'absolute', 'z-index':2001,
@@ -1530,7 +1570,7 @@ row_children: function(uid)
while (row) {
if (row.nodeType == 1) {
- if ((r = this.rows[row.uid])) {
+ if (r = this.rows[row.uid]) {
if (!r.depth || r.depth <= depth)
break;
res.push(r.uid);
@@ -1565,7 +1605,7 @@ add_dragfix: function()
*/
del_dragfix: function()
{
- $('div.iframe-dragdrop-fix').each(function() { this.parentNode.removeChild(this); });
+ $('div.iframe-dragdrop-fix').remove();
},
diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index e0fa22c3c..331b57e96 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -642,10 +642,11 @@ class rcube
/**
* Load a localization package
*
- * @param string Language ID
- * @param array Additional text labels/messages
+ * @param string $lang Language ID
+ * @param array $add Additional text labels/messages
+ * @param array $merge Additional text labels/messages to merge
*/
- public function load_language($lang = null, $add = array())
+ public function load_language($lang = null, $add = array(), $merge = array())
{
$lang = $this->language_prop(($lang ? $lang : $_SESSION['language']));
@@ -685,6 +686,11 @@ class rcube
if (is_array($add) && !empty($add)) {
$this->texts += $add;
}
+
+ // merge additional texts (from plugin)
+ if (is_array($merge) && !empty($merge)) {
+ $this->texts = array_merge($this->texts, $merge);
+ }
}
diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php
index 886f65cb9..4d9fa3db1 100644
--- a/program/lib/Roundcube/rcube_addressbook.php
+++ b/program/lib/Roundcube/rcube_addressbook.php
@@ -281,7 +281,8 @@ abstract class rcube_addressbook
* @param array Assoziative array with save data
* Keys: Field name with optional section in the form FIELD:SECTION
* Values: Field value. Can be either a string or an array of strings for multiple values
- * @return boolean True on success, False on error
+ *
+ * @return mixed On success if ID has been changed returns ID, otherwise True, False on error
*/
function update($id, $save_cols)
{
@@ -311,8 +312,10 @@ abstract class rcube_addressbook
/**
* Mark all records in database as deleted
+ *
+ * @param bool $with_groups Remove also groups
*/
- function delete_all()
+ function delete_all($with_groups = false)
{
/* empty for read-only address books */
}
diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php
index 04b914c3d..0352e4772 100644
--- a/program/lib/Roundcube/rcube_config.php
+++ b/program/lib/Roundcube/rcube_config.php
@@ -373,7 +373,11 @@ class rcube_config
*/
public function all()
{
- return $this->prop;
+ $rcube = rcube::get_instance();
+ $plugin = $rcube->plugins->exec_hook('config_get', array(
+ 'name' => '*', 'result' => $this->prop));
+
+ return $plugin['result'];
}
/**
diff --git a/program/lib/Roundcube/rcube_contacts.php b/program/lib/Roundcube/rcube_contacts.php
index 2e03352bf..d215760cf 100644
--- a/program/lib/Roundcube/rcube_contacts.php
+++ b/program/lib/Roundcube/rcube_contacts.php
@@ -626,7 +626,7 @@ class rcube_contacts extends rcube_addressbook
}
}
- $save_data = $this->convert_save_data($save_data);
+ $save_data = $this->convert_save_data($save_data);
$a_insert_cols = $a_insert_values = array();
foreach ($save_data as $col => $value) {
@@ -655,13 +655,14 @@ class rcube_contacts extends rcube_addressbook
*
* @param mixed Record identifier
* @param array Assoziative array with save data
+ *
* @return boolean True on success, False on error
*/
function update($id, $save_cols)
{
- $updated = false;
+ $updated = false;
$write_sql = array();
- $record = $this->get_record($id, true);
+ $record = $this->get_record($id, true);
$save_cols = $this->convert_save_data($save_cols, $record);
foreach ($save_cols as $col => $value) {
@@ -683,7 +684,7 @@ class rcube_contacts extends rcube_addressbook
$this->result = null; // clear current result (from get_record())
}
- return $updated;
+ return $updated ? true : false;
}
@@ -812,16 +813,30 @@ class rcube_contacts extends rcube_addressbook
/**
* Remove all records from the database
+ *
+ * @param bool $with_groups Remove also groups
+ *
+ * @return int Number of removed records
*/
- function delete_all()
+ function delete_all($with_groups = false)
{
$this->cache = null;
- $this->db->query("UPDATE ".$this->db->table_name($this->db_name).
- " SET del=1, changed=".$this->db->now().
- " WHERE user_id = ?", $this->user_id);
+ $this->db->query("UPDATE " . $this->db->table_name($this->db_name)
+ . " SET del = 1, changed = " . $this->db->now()
+ . " WHERE user_id = ?", $this->user_id);
- return $this->db->affected_rows();
+ $count = $this->db->affected_rows();
+
+ if ($with_groups) {
+ $this->db->query("UPDATE " . $this->db->table_name($this->db_groups)
+ . " SET del = 1, changed = " . $this->db->now()
+ . " WHERE user_id = ?", $this->user_id);
+
+ $count += $this->db->affected_rows();
+ }
+
+ return $count;
}
@@ -860,11 +875,11 @@ class rcube_contacts extends rcube_addressbook
function delete_group($gid)
{
// flag group record as deleted
- $sql_result = $this->db->query(
- "UPDATE ".$this->db->table_name($this->db_groups).
- " SET del=1, changed=".$this->db->now().
- " WHERE contactgroup_id=?".
- " AND user_id=?",
+ $this->db->query(
+ "UPDATE " . $this->db->table_name($this->db_groups)
+ . " SET del = 1, changed = " . $this->db->now()
+ . " WHERE contactgroup_id = ?"
+ . " AND user_id = ?",
$gid, $this->user_id
);
@@ -873,7 +888,6 @@ class rcube_contacts extends rcube_addressbook
return $this->db->affected_rows();
}
-
/**
* Rename a specific contact group
*
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index fdda1d4b2..4c3bf6fcd 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -680,6 +680,41 @@ class rcube_imap extends rcube_storage
/**
+ * Public method for listing message flags
+ *
+ * @param string $folder Folder name
+ * @param array $uids Message UIDs
+ * @param int $mod_seq Optional MODSEQ value (of last flag update)
+ *
+ * @return array Indexed array with message flags
+ */
+ public function list_flags($folder, $uids, $mod_seq = null)
+ {
+ if (!strlen($folder)) {
+ $folder = $this->folder;
+ }
+
+ if (!$this->check_connection()) {
+ return array();
+ }
+
+ // @TODO: when cache was synchronized in this request
+ // we might already have asked for flag updates, use it.
+
+ $flags = $this->conn->fetch($folder, $uids, true, array('FLAGS'), $mod_seq);
+ $result = array();
+
+ if (!empty($flags)) {
+ foreach ($flags as $message) {
+ $result[$message->uid] = $message->flags;
+ }
+ }
+
+ return $result;
+ }
+
+
+ /**
* Public method for listing headers
*
* @param string $folder Folder name
@@ -2121,7 +2156,7 @@ class rcube_imap extends rcube_storage
// convert charset (if text or message part)
if ($body && preg_match('/^(text|message)$/', $o_part->ctype_primary)) {
// Remove NULL characters if any (#1486189)
- if (strpos($body, "\x00") !== false) {
+ if ($formatted && strpos($body, "\x00") !== false) {
$body = str_replace("\x00", '', $body);
}
@@ -2843,12 +2878,21 @@ class rcube_imap extends rcube_storage
/**
* Filter the given list of folders according to access rights
+ *
+ * For performance reasons we assume user has full rights
+ * on all personal folders.
*/
protected function filter_rights($a_folders, $rights)
{
$regex = '/('.$rights.')/';
+
foreach ($a_folders as $idx => $folder) {
+ if ($this->folder_namespace($folder) == 'personal') {
+ continue;
+ }
+
$myrights = join('', (array)$this->my_rights($folder));
+
if ($myrights !== null && !preg_match($regex, $myrights)) {
unset($a_folders[$idx]);
}
diff --git a/program/lib/Roundcube/rcube_imap_cache.php b/program/lib/Roundcube/rcube_imap_cache.php
index a8166545e..0c3edeaad 100644
--- a/program/lib/Roundcube/rcube_imap_cache.php
+++ b/program/lib/Roundcube/rcube_imap_cache.php
@@ -1250,10 +1250,8 @@ class rcube_imap_cache
unset($msg->replaces);
- if (is_array($msg->structure->parts)) {
- foreach ($msg->structure->parts as $part) {
- $this->message_object_prepare($part, $size);
- }
+ if (is_object($msg->structure)) {
+ $this->message_object_prepare($msg->structure, $size);
}
if (is_array($msg->parts)) {
diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index b733e2465..0da3e2c87 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/program/lib/Roundcube/rcube_ldap.php
@@ -1324,8 +1324,10 @@ class rcube_ldap extends rcube_addressbook
/**
* Remove all contact records
+ *
+ * @param bool $with_groups Delete also groups if enabled
*/
- function delete_all()
+ function delete_all($with_groups = false)
{
// searching for contact entries
$dn_list = $this->ldap->list_entries($this->base_dn, $this->prop['filter'] ? $this->prop['filter'] : '(objectclass=*)');
@@ -1336,6 +1338,16 @@ class rcube_ldap extends rcube_addressbook
}
$this->delete($dn_list);
}
+
+ if ($with_groups && $this->groups && ($groups = $this->_fetch_groups()) && count($groups)) {
+ foreach ($groups as $group) {
+ $this->ldap->delete($group['dn']);
+ }
+
+ if ($this->cache) {
+ $this->cache->remove('groups');
+ }
+ }
}
/**
@@ -1606,11 +1618,12 @@ class rcube_ldap extends rcube_addressbook
// special case: list groups from 'group_filters' config
if ($vlv_page === null && !empty($this->prop['group_filters'])) {
$groups = array();
+ $rcube = rcube::get_instance();
// list regular groups configuration as special filter
if (!empty($this->prop['groups']['filter'])) {
$id = '__groups__';
- $groups[$id] = array('ID' => $id, 'name' => rcube_label('groups'), 'virtual' => true) + $this->prop['groups'];
+ $groups[$id] = array('ID' => $id, 'name' => $rcube->gettext('groups'), 'virtual' => true) + $this->prop['groups'];
}
foreach ($this->prop['group_filters'] as $id => $prop) {
diff --git a/program/lib/Roundcube/rcube_plugin_api.php b/program/lib/Roundcube/rcube_plugin_api.php
index ad012552d..461c3cc07 100644
--- a/program/lib/Roundcube/rcube_plugin_api.php
+++ b/program/lib/Roundcube/rcube_plugin_api.php
@@ -284,6 +284,7 @@ class rcube_plugin_api
$composer = INSTALL_PATH . "/plugins/$plugin_name/composer.json";
if (file_exists($composer) && ($json = @json_decode(file_get_contents($composer), true))) {
list($info['vendor'], $info['name']) = explode('/', $json['name']);
+ $info['version'] = $json['version'];
$info['license'] = $json['license'];
if ($license_uri = $license_uris[$info['license']])
$info['license_uri'] = $license_uri;
diff --git a/program/lib/Roundcube/rcube_storage.php b/program/lib/Roundcube/rcube_storage.php
index e697b2c73..ca65af1cb 100644
--- a/program/lib/Roundcube/rcube_storage.php
+++ b/program/lib/Roundcube/rcube_storage.php
@@ -360,6 +360,18 @@ abstract class rcube_storage
/**
+ * Public method for listing message flags
+ *
+ * @param string $folder Folder name
+ * @param array $uids Message UIDs
+ * @param int $mod_seq Optional MODSEQ value
+ *
+ * @return array Indexed array with message flags
+ */
+ abstract function list_flags($folder, $uids, $mod_seq = null);
+
+
+ /**
* Public method for listing headers.
*
* @param string $folder Folder name
diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php
index 27a618d83..c48cd80e8 100644
--- a/program/lib/Roundcube/rcube_utils.php
+++ b/program/lib/Roundcube/rcube_utils.php
@@ -622,6 +622,10 @@ class rcube_utils
*/
public static function parse_host($name, $host = '')
{
+ if (!is_string($name)) {
+ return $name;
+ }
+
// %n - host
$n = preg_replace('/:\d+$/', '', $_SERVER['SERVER_NAME']);
// %t - host name without first part, e.g. %n=mail.domain.tld, %t=domain.tld
@@ -642,8 +646,7 @@ class rcube_utils
}
}
- $name = str_replace(array('%n', '%t', '%d', '%h', '%z', '%s'), array($n, $t, $d, $h, $z, $s[2]), $name);
- return $name;
+ return str_replace(array('%n', '%t', '%d', '%h', '%z', '%s'), array($n, $t, $d, $h, $z, $s[2]), $name);
}
@@ -680,9 +683,17 @@ class rcube_utils
*/
public static function remote_addr()
{
- foreach (array('HTTP_X_FORWARDED_FOR','HTTP_X_REAL_IP','REMOTE_ADDR') as $prop) {
- if (!empty($_SERVER[$prop]))
- return $_SERVER[$prop];
+ if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+ $hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'], 2);
+ return $hosts[0];
+ }
+
+ if (!empty($_SERVER['HTTP_X_REAL_IP'])) {
+ return $_SERVER['HTTP_X_REAL_IP'];
+ }
+
+ if (!empty($_SERVER['REMOTE_ADDR'])) {
+ return $_SERVER['REMOTE_ADDR'];
}
return '';
@@ -912,10 +923,20 @@ class rcube_utils
*
* @param string Input string (UTF-8)
* @param boolean True to return list of words as array
+ *
* @return mixed Normalized string or a list of normalized tokens
*/
public static function normalize_string($str, $as_array = false)
{
+ // replace 4-byte unicode characters with '?' character,
+ // these are not supported in default utf-8 charset on mysql,
+ // the chance we'd need them in searching is very low
+ $str = preg_replace('/('
+ . '\xF0[\x90-\xBF][\x80-\xBF]{2}'
+ . '|[\xF1-\xF3][\x80-\xBF]{3}'
+ . '|\xF4[\x80-\x8F][\x80-\xBF]{2}'
+ . ')/', '?', $str);
+
// split by words
$arr = self::tokenize_string($str);
diff --git a/program/lib/Roundcube/rcube_washtml.php b/program/lib/Roundcube/rcube_washtml.php
index e7467545f..9cf3c6222 100644
--- a/program/lib/Roundcube/rcube_washtml.php
+++ b/program/lib/Roundcube/rcube_washtml.php
@@ -455,7 +455,7 @@ class rcube_washtml
}
// fix (unknown/malformed) HTML tags before "wash"
- $html = preg_replace_callback('/(<(?!\!)[\/]*)([^\s>]+)/', array($this, 'html_tag_callback'), $html);
+ $html = preg_replace_callback('/(<(?!\!)[\/]*)([^\s>]+)([^>]*)/', array($this, 'html_tag_callback'), $html);
// Remove invalid HTML comments (#1487759)
// Don't remove valid conditional comments
@@ -479,7 +479,12 @@ class rcube_washtml
'/[^a-z0-9_\[\]\!-]/i', // forbidden characters
), '', $tagname);
- return $matches[1] . $tagname;
+ // fix invalid closing tags - remove any attributes (#1489446)
+ if ($matches[1] == '</') {
+ $matches[3] = '';
+ }
+
+ return $matches[1] . $tagname . $matches[3];
}
/**
diff --git a/program/localization/ast/labels.inc b/program/localization/ast/labels.inc
index 7a60238b7..25d09451c 100644
--- a/program/localization/ast/labels.inc
+++ b/program/localization/ast/labels.inc
@@ -197,6 +197,7 @@ $labels['spellcheck'] = 'Correutor ortográficu';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Siguir cola edición';
$labels['revertto'] = 'Revertir a';
+$labels['responsename'] = 'Nome';
$labels['attach'] = 'Axuntar';
$labels['attachments'] = 'Axuntos';
$labels['upload'] = 'Xubir';
@@ -428,6 +429,7 @@ $labels['standardwindows'] = 'Xestionar ventanes emerxentes como ventanes están
$labels['forwardmode'] = 'Reunviu de mensaxes';
$labels['inline'] = 'en llinia';
$labels['asattachment'] = 'como axuntu';
+$labels['replyalldefault'] = 'responder a toos';
$labels['folder'] = 'Bandexa';
$labels['folders'] = 'Bandexes';
$labels['foldername'] = 'Nome de bandexa';
diff --git a/program/localization/az_AZ/labels.inc b/program/localization/az_AZ/labels.inc
index 60930a49d..47c00ed08 100644
--- a/program/localization/az_AZ/labels.inc
+++ b/program/localization/az_AZ/labels.inc
@@ -197,6 +197,16 @@ $labels['spellcheck'] = 'Orfoqrafiya';
$labels['checkspelling'] = 'Orfoqrafiyanı yoxla';
$labels['resumeediting'] = 'Redaktəni davam et';
$labels['revertto'] = 'Dəyişiklikləri ləğv et';
+$labels['restore'] = 'Bərpa';
+$labels['restoremessage'] = 'Məktub bərpa edilsin?';
+$labels['responses'] = 'Cavablar';
+$labels['insertresponse'] = 'Cavab daxil et';
+$labels['manageresponses'] = 'Cavabların idarə edilməsi';
+$labels['savenewresponse'] = 'Yeni cavabı saxla';
+$labels['editresponses'] = 'Cavabları redaktə et';
+$labels['editresponse'] = 'Cavabı redaktə et';
+$labels['responsename'] = 'Ad';
+$labels['responsetext'] = 'Cavab mətni';
$labels['attach'] = 'Fayl əlavə et';
$labels['attachments'] = 'Bərkidilmiş Fayllar';
$labels['upload'] = 'Yüklə';
@@ -316,7 +326,11 @@ $labels['searchdelete'] = 'SorÄŸunu sil';
$labels['import'] = 'Ä°dxal';
$labels['importcontacts'] = 'Ünvanların idxalı';
$labels['importfromfile'] = 'Fayldan idxal:';
+$labels['importtarget'] = 'Kontaktları əlavə et';
$labels['importreplace'] = 'Ünvan kitabçasını dəyiş';
+$labels['importgroups'] = 'Qrup idxalı tapşırığı';
+$labels['importgroupsall'] = 'Hamısı (əgər lazımdırsa qrupun yaradılması)';
+$labels['importgroupsexisting'] = 'Yalnız mövcud qruplar üçün';
$labels['importdesc'] = 'Siz kontaktları mövcud ünvan kitabçasından yükləyə bilərsiniz. <br/> Hal-hazırda biz ünvanların idxalını <a href="http://az.wikipedia.org/wiki/VCard">vCard</a> və ya CSV (vergüllə bölünmüş) formatında olan vizit kartları dəstəkləyirik.';
$labels['done'] = 'Bitdi';
$labels['settingsfor'] = 'Nizamlamaları';
@@ -424,6 +438,9 @@ $labels['standardwindows'] = 'Handle popapsı standart pəncərələr kimi';
$labels['forwardmode'] = 'Məktubların yönəldilməsi';
$labels['inline'] = 'mətndə';
$labels['asattachment'] = 'fayl kimi';
+$labels['replyallmode'] = '[Hamıya cavab] düyməsinin susmaya görə hərəkəti';
+$labels['replyalldefault'] = 'hamıya cavab';
+$labels['replyalllist'] = 'yalnız poçt siyahısına (əgər tapılıbsa) cavab ';
$labels['folder'] = 'Qovluq';
$labels['folders'] = 'Qovluqlar';
$labels['foldername'] = 'Qovluq adı';
diff --git a/program/localization/az_AZ/messages.inc b/program/localization/az_AZ/messages.inc
index ddab8d702..ddf70378d 100644
--- a/program/localization/az_AZ/messages.inc
+++ b/program/localization/az_AZ/messages.inc
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Məktub uğurla göndərildi';
$messages['savingmessage'] = 'Məktubu saxla...';
$messages['messagesaved'] = 'Məktub qaralamada saxlandı';
$messages['successfullysaved'] = 'Yaddaşa yazıldı';
+$messages['savingresponse'] = 'Cavab mətninin saxlanılması...';
+$messages['deleteresponseconfirm'] = 'Siz cavab mətnini silmək istəyirsiniz?';
$messages['addedsuccessfully'] = 'ÆlaqÉ™ ünvan kitabçasına É™lavÉ™ olundu';
$messages['contactexists'] = 'Ünvan kitabçasında bu e-poçtla əlaqə mövcuddur';
$messages['contactnameexists'] = 'Bu adda kontakt artıq mövcuddur.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Tələb olunan ünvan tapılmadı';
$messages['contactsearchonly'] = 'Kontaqların axtarışı üçün şərti daxil edin';
$messages['sendingfailed'] = 'Məktub göndərilmədi';
$messages['senttooquickly'] = 'Məktub göndərmək üçün $sec saniyə gözləmək gərəkir';
+$messages['errorsavingsent'] = 'Göndərilən məktubun saxlanılması zamanı xəta baş verdi.';
+$messages['errorsaving'] = 'Saxlanılma zamanı xəta baş verdi.';
$messages['errormoving'] = 'Məktubu (məktubları) köçürmək alnmadı';
$messages['errorcopying'] = 'Məktubu (məktubları) kopyalamaq alınmadı';
$messages['errordeleting'] = 'Məktubu (məktubları) silmək alınmadı';
@@ -78,6 +82,7 @@ $messages['norecipientwarning'] = 'Lütfən, qəbul edənin ünvanını daxil ed
$messages['nosubjectwarning'] = '"Mövzu" sahəsi boşdur. Mövzu daxil etmək istəyirsiniz?';
$messages['nobodywarning'] = 'Məktub boş göndərilsin?';
$messages['notsentwarning'] = 'Məktub göndərilmədi. Göndərilmədən imtina etmək istəyirsiniz?';
+$messages['restoresavedcomposedata'] = 'ÆvvÉ™lki göndÉ™rildi, ancaq göndÉ™rilmÉ™yÉ™n mÉ™ktub da tapıldı.\n\nSubject: $subject\nSaved: $date\n\nSiz bu mÉ™ktubu bÉ™rpa etmÉ™k istÉ™yirsiniz?';
$messages['noldapserver'] = 'Lütfən, axtarış üçün LDAP server seçin';
$messages['nosearchname'] = 'Lütfən, ad və ya e-poçt əlavə edin';
$messages['notuploadedwarning'] = 'ÆlavÉ™lÉ™r tam yüklÉ™nilmÉ™yib. GözlÉ™yin vÉ™ ya yüklÉ™mÉ™ni ləğv edin.';
@@ -140,6 +145,7 @@ $messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Səhv ünvan: $email';
$messages['toomanyrecipients'] = 'Qəbul edənlər həddindən artıq çoxdur. Lütfən, $max qədər azaldın.';
$messages['maxgroupmembersreached'] = 'Qrupun ölçüsü imkan verilən maksimumdan artıqdır - $max';
+$messages['internalerror'] = 'Daxili xəta. Lütfən bir daha cəhd edin.';
$messages['contactdelerror'] = 'Kontak(lar)ı silmək alınmadı';
$messages['contactdeleted'] = 'Kontak(lar) uÄŸurla silindi';
$messages['contactrestoreerror'] = 'Silinmiş kontakt(lar)ın bərpası alınmadı';
diff --git a/program/localization/be_BE/labels.inc b/program/localization/be_BE/labels.inc
index 549c315a6..9180b92d7 100644
--- a/program/localization/be_BE/labels.inc
+++ b/program/localization/be_BE/labels.inc
@@ -42,14 +42,14 @@ $labels['date'] = 'Дата';
$labels['size'] = 'Памер';
$labels['priority'] = 'ПрыÑрытÑÑ‚';
$labels['organization'] = 'УÑтанова';
-$labels['readstatus'] = 'Ðе прачытанае';
+$labels['readstatus'] = 'Прачытана';
$labels['listoptions'] = 'Параметры ÑпіÑу...';
$labels['mailboxlist'] = 'Папкі';
$labels['messagesfromto'] = 'Паведамленні $from—$to з $count';
$labels['threadsfromto'] = 'Ðбмеркаванні $from—$to з $count';
$labels['messagenrof'] = 'Паведамленне $nr з $count';
$labels['fromtoshort'] = '$from—$to з $count';
-$labels['copy'] = 'Капіраваць';
+$labels['copy'] = 'КапіÑваць';
$labels['move'] = 'ПерамÑÑціць';
$labels['moveto'] = 'ПерамÑÑціць у...';
$labels['download'] = 'СцÑгнуць';
@@ -118,13 +118,13 @@ $labels['previousmessage'] = 'Паказаць папÑÑ€ÑднÑе паведÐ
$labels['firstmessage'] = 'Паказаць першае паведамленне';
$labels['nextmessage'] = 'Паказаць наÑтупнае паведамленне';
$labels['lastmessage'] = 'Паказаць апошнÑе паведамленне';
-$labels['backtolist'] = 'Ðазад да ÑпіÑа паведамленнÑÑž';
-$labels['viewsource'] = 'Паказаць жарало';
+$labels['backtolist'] = 'Ðазад да ÑпіÑу паведамленнÑÑž';
+$labels['viewsource'] = 'Зыходны Ñ‚ÑкÑÑ‚';
$labels['mark'] = 'Пазначыць';
$labels['markmessages'] = 'Пазначыць паведамленні';
$labels['markread'] = 'Як прачытаныÑ';
$labels['markunread'] = 'Як непрачытаныÑ';
-$labels['markflagged'] = 'УÑтанавіць флаг';
+$labels['markflagged'] = 'ПаÑтавіць флаг';
$labels['markunflagged'] = 'ЗнÑць флаг';
$labels['moreactions'] = 'Больш дзеÑннÑÑž...';
$labels['more'] = 'Больш';
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'ПравапіÑ';
$labels['checkspelling'] = 'Праверыць правапіÑ';
$labels['resumeediting'] = 'ПрацÑгнуць Ñ€Ñдагаванне';
$labels['revertto'] = 'Ðдкаціцца на';
+$labels['restore'] = 'Ðднавіць';
+$labels['restoremessage'] = 'Ðднавіць паведамленне?';
$labels['responses'] = 'Ðдказы';
$labels['insertresponse'] = 'УÑтавіць адказ';
$labels['manageresponses'] = 'Кіраваць адказамі';
@@ -217,8 +219,8 @@ $labels['normal'] = 'Звычайны';
$labels['high'] = 'Ð’Ñ‹Ñокі';
$labels['highest'] = 'Ðайвышшы';
$labels['nosubject'] = '(без Ñ‚Ñмы)';
-$labels['showimages'] = 'Паказваць відарыÑÑ‹';
-$labels['alwaysshow'] = 'ЗаўÑёды паказваць відарыÑÑ‹ ад $sender';
+$labels['showimages'] = 'Паказваць выÑвы';
+$labels['alwaysshow'] = 'ЗаўÑёды паказваць выÑвы ад $sender';
$labels['isdraft'] = 'ГÑта чарнавік.';
$labels['andnmore'] = 'ÑÑˆÑ‡Ñ $nr...';
$labels['togglemoreheaders'] = 'Паказаць больш загалоўкаў паведамленнÑ';
@@ -235,8 +237,8 @@ $labels['addfollowupto'] = 'Групавы-адказ-на';
$labels['mdnrequest'] = 'Ðдпраўнік пажадаў даведацца аб прачытанні гÑтага паведамленнÑ. ÐпавÑÑціць адпраўніка?';
$labels['receiptread'] = 'Пацверджанне Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð½Ð½Ñ (прачытаннÑ)';
$labels['yourmessage'] = 'ГÑта пацверджанне аб атрыманні вашага паведамленнÑ';
-$labels['receiptnote'] = 'Заўвага: ГÑтае пацверджанне значыць адно, што паведамленне было адлюÑтравана на Ñкране кампутара адраÑата. ÐÑма гарантыі, што атрымальнік прачытаў альбо зразумеў змеÑÑ‚ паведамленнÑ.';
-$labels['name'] = 'Ð­ÐºÑ€Ð°Ð½Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð°';
+$labels['receiptnote'] = 'Заўвага: ГÑтае пацверджанне значыць адно, што паведамленне было адлюÑтравана на Ñкране камп\'ютара адраÑата. ÐÑма гарантыі, што атрымальнік прачытаў альбо зразумеў змеÑÑ‚ паведамленнÑ.';
+$labels['name'] = 'Экраннае імÑ';
$labels['firstname'] = 'ІмÑ';
$labels['surname'] = 'Прозвішча';
$labels['middlename'] = 'Другое імÑ';
@@ -259,7 +261,7 @@ $labels['birthday'] = 'Дзень народзінаў';
$labels['anniversary'] = 'Юбілей';
$labels['website'] = 'Ð’Ñб-Ñайт';
$labels['instantmessenger'] = 'IM';
-$labels['notes'] = 'Зацемкі';
+$labels['notes'] = 'Занатоўкі';
$labels['male'] = 'мужчына';
$labels['female'] = 'жанчына';
$labels['manager'] = 'Кіраўнік';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'УÑпрымаць вокны-бурбалкі ÑÐ
$labels['forwardmode'] = 'ПераÑылка паведамленнÑÑž';
$labels['inline'] = 'у Ñ‚ÑкÑце';
$labels['asattachment'] = 'Ñк далучÑнне';
+$labels['replyallmode'] = 'Стандартнае дзеÑнне кнопкі [Ðдказаць уÑім]';
+$labels['replyalldefault'] = 'адказаць уÑім';
+$labels['replyalllist'] = 'адказаць толькі Ñž ÑÐ¿Ñ–Ñ Ñ€Ð°ÑÑылкі (калі знойдзены)';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папкі';
$labels['foldername'] = 'Ðазва папкі';
diff --git a/program/localization/be_BE/messages.inc b/program/localization/be_BE/messages.inc
index 5833fd8a4..6afc34b23 100644
--- a/program/localization/be_BE/messages.inc
+++ b/program/localization/be_BE/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Задайце хацÑ-б аднаго атÑ
$messages['nosubjectwarning'] = 'ТÑма ліÑта не зададзена. Ці жадаеце задаць Ñе зараз?';
$messages['nobodywarning'] = 'Ðдправіць гÑта паведамленне без Ñ‚ÑкÑту?';
$messages['notsentwarning'] = 'Паведамленне не адпраўлена. Жадаеце ÑкаÑаваць Ñваё паведамленне?';
+$messages['restoresavedcomposedata'] = 'Было знойдзена ўжо Ñкладзенае, але не адпраўленае паведамленне.\n\nТÑма: $subject\nЗахавана: $date\n\nЖадаеце аднавіць гÑтае паведамленне?';
$messages['noldapserver'] = 'Задайце ldap-Ñервер Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ.';
$messages['nosearchname'] = 'Задайце Ñ–Ð¼Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚Ð° альбо Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты.';
$messages['notuploadedwarning'] = 'Ðе ÑžÑе далучÑнні пакуль ÑÑˆÑ‡Ñ Ð·Ð°Ñ†ÑгнутыÑ. Пачакайце альбо ÑкаÑуйце аперацыю.';
diff --git a/program/localization/bg_BG/labels.inc b/program/localization/bg_BG/labels.inc
index 0394f19b9..ecedae739 100644
--- a/program/localization/bg_BG/labels.inc
+++ b/program/localization/bg_BG/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'ПравопиÑ';
$labels['checkspelling'] = 'Проверка на правопиÑа';
$labels['resumeediting'] = 'Продължи черновата';
$labels['revertto'] = 'Върни Ñе към';
+$labels['restore'] = 'ВъзÑтанови';
+$labels['restoremessage'] = 'ВъзÑтановÑване на Ñъобщението?';
$labels['responses'] = 'Отговори';
$labels['insertresponse'] = 'Вмъкване на отговори';
$labels['manageresponses'] = 'ÐаÑтройка на отговори';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Обработва изÑкачащи прозор
$labels['forwardmode'] = 'Препращай пиÑмата';
$labels['inline'] = 'цитирани в пиÑмото';
$labels['asattachment'] = 'като прикачен файл';
+$labels['replyallmode'] = 'ДейÑтвие по подразбиране на бутон [Отговор на вÑички]';
+$labels['replyalldefault'] = 'отговори на вÑички';
+$labels['replyalllist'] = 'отговори на ÑпиÑъка Ñамо (ако има)';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Име на папката';
diff --git a/program/localization/bg_BG/messages.inc b/program/localization/bg_BG/messages.inc
index 48e1fbcc0..4363417d2 100644
--- a/program/localization/bg_BG/messages.inc
+++ b/program/localization/bg_BG/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ поне един Ð
$messages['nosubjectwarning'] = 'Полето "Заглавие" е празно. Желаете ли да въведете заглавие Ñега?';
$messages['nobodywarning'] = 'Изпрати това пиÑмо без текÑÑ‚?';
$messages['notsentwarning'] = 'ПиÑмото не е изпратено. Желаете ли да бъде унищожено?';
+$messages['restoresavedcomposedata'] = 'Ðамерено е неизпратено пиÑмо, което е било в Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð° Ñъздаване.\n\nОтноÑно: $subject\nЗапазено на: $date\n\nЖелаете ли да възÑтановите пиÑмото?';
$messages['noldapserver'] = 'Изберете LDAP Ñървър за Ñ‚ÑŠÑ€Ñене.';
$messages['nosearchname'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име на контакта или e-mail адреÑ.';
$messages['notuploadedwarning'] = 'Ð’Ñе още не Ñа качени вÑички прикачени файлове. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ или откажете качването.';
diff --git a/program/localization/bs_BA/labels.inc b/program/localization/bs_BA/labels.inc
index df58d8d60..adc65e069 100644
--- a/program/localization/bs_BA/labels.inc
+++ b/program/localization/bs_BA/labels.inc
@@ -197,6 +197,16 @@ $labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Provjera pravopisa';
$labels['resumeediting'] = 'Nastavi uređivanje';
$labels['revertto'] = 'Vrati na';
+$labels['restore'] = 'Vrati';
+$labels['restoremessage'] = 'Vratiti poruku?';
+$labels['responses'] = 'Odgovori';
+$labels['insertresponse'] = 'Umetni odgovor';
+$labels['manageresponses'] = 'Upravljaj odgovorima';
+$labels['savenewresponse'] = 'Snimi novi odgovor';
+$labels['editresponses'] = 'Uredi odgovore';
+$labels['editresponse'] = 'Uredi odgovor';
+$labels['responsename'] = 'Ime';
+$labels['responsetext'] = 'Tekst odgovora';
$labels['attach'] = 'Priloži';
$labels['attachments'] = 'Prilozi';
$labels['upload'] = 'Dodaj';
@@ -428,6 +438,9 @@ $labels['standardwindows'] = 'Tretiraj popup-ove kao standardne prozore';
$labels['forwardmode'] = 'Prosljeđivanje poruka';
$labels['inline'] = 'u istom redu';
$labels['asattachment'] = 'kao prilog';
+$labels['replyallmode'] = 'Zadana radnja za [Odgovori svima] dugme';
+$labels['replyalldefault'] = 'odgovori svima';
+$labels['replyalllist'] = 'odgovori samo listi mailova (ukoliko je pronađena)';
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folderi';
$labels['foldername'] = 'Naziv foldera';
diff --git a/program/localization/bs_BA/messages.inc b/program/localization/bs_BA/messages.inc
index 9e0f083ff..52f865f1e 100644
--- a/program/localization/bs_BA/messages.inc
+++ b/program/localization/bs_BA/messages.inc
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Poruka je uspješno poslana.';
$messages['savingmessage'] = 'Poruka se snima...';
$messages['messagesaved'] = 'Poruka je uspjeÅ¡no saÄuvana u skicama.';
$messages['successfullysaved'] = 'UspjeÅ¡no saÄuvano.';
+$messages['savingresponse'] = 'Snimam teksta odgovora...';
+$messages['deleteresponseconfirm'] = 'Da li zaista želite obrisati tekst ovog odgovora?';
$messages['addedsuccessfully'] = 'Kontakt uspješno dodan u adresar.';
$messages['contactexists'] = 'Kontakt sa ovom email adresom već postoji u adresaru.';
$messages['contactnameexists'] = 'Kontakt s tim imenom već postoji.';
@@ -80,6 +82,7 @@ $messages['norecipientwarning'] = 'Molimo vas da upišete barem jednog primaoca.
$messages['nosubjectwarning'] = 'Polje \'Naslov\' je prazno. Želite li unijeti naslov?';
$messages['nobodywarning'] = 'Želite li poslati poruku bez teksta?';
$messages['notsentwarning'] = 'Poruka nije poslana. Želite li odbaciti ovu poruku?';
+$messages['restoresavedcomposedata'] = 'Pronađena je prethodno napisana poruka koja nije poslana..\n\nTema:$subject\nSnimljeno: $date\n\nŽelite li vratiti ovu poruku?';
$messages['noldapserver'] = 'Molimo vas da odaberete LDAP server za pretragu.';
$messages['nosearchname'] = 'Molimo vas da upišete ime kontakta ili email adresu.';
$messages['notuploadedwarning'] = 'Neki od priloga joÅ¡ nisu dodani na server. Molimo vas da saÄekate ili da otkažete dodavanje.';
diff --git a/program/localization/ca_ES/labels.inc b/program/localization/ca_ES/labels.inc
index a93b18434..427abf142 100644
--- a/program/localization/ca_ES/labels.inc
+++ b/program/localization/ca_ES/labels.inc
@@ -45,7 +45,7 @@ $labels['organization'] = 'Organització';
$labels['readstatus'] = 'Estat de lectura';
$labels['listoptions'] = 'Llista d\'opcions...';
$labels['mailboxlist'] = 'Carpetes';
-$labels['messagesfromto'] = 'Missatges des de $from a $to de $count';
+$labels['messagesfromto'] = 'Missatges $from a $to de $count';
$labels['threadsfromto'] = 'Fils $from a $to de $count';
$labels['messagenrof'] = 'Missatge $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
@@ -89,7 +89,7 @@ $labels['longjan'] = 'gener';
$labels['longfeb'] = 'febrer';
$labels['longmar'] = 'març';
$labels['longapr'] = 'abril';
-$labels['longmay'] = 'mai';
+$labels['longmay'] = 'maig';
$labels['longjun'] = 'juny';
$labels['longjul'] = 'juliol';
$labels['longaug'] = 'agost';
@@ -99,14 +99,14 @@ $labels['longnov'] = 'novembre';
$labels['longdec'] = 'desembre';
$labels['today'] = 'Avui';
$labels['refresh'] = 'Actualitza';
-$labels['checkmail'] = 'Recupera missatges nous';
+$labels['checkmail'] = 'Comprova si hi ha missatges nous';
$labels['compose'] = 'Escriu un missatge';
$labels['writenewmessage'] = 'Crea un nou missatge';
$labels['reply'] = 'Respon';
$labels['replytomessage'] = 'Respon al remitent';
-$labels['replytoallmessage'] = 'Respon al remitent i a tots els destinataris';
+$labels['replytoallmessage'] = 'Respon a la llista o al remitent i a tots els destinataris';
$labels['replyall'] = 'Respon a tots';
-$labels['replylist'] = 'Llista de resposta';
+$labels['replylist'] = 'Respon a la llista';
$labels['forward'] = 'Reenvia';
$labels['forwardinline'] = 'Reenvia com en línia';
$labels['forwardattachment'] = 'Reenvia com a adjunt';
@@ -134,7 +134,7 @@ $labels['select'] = 'Selecciona';
$labels['all'] = 'Tots';
$labels['none'] = 'Cap';
$labels['currpage'] = 'Pàgina actual';
-$labels['unread'] = 'No llegits';
+$labels['unread'] = 'No llegit';
$labels['flagged'] = 'Marcat';
$labels['unanswered'] = 'No respost';
$labels['withattachment'] = 'Amb fitxer adjunt';
@@ -143,17 +143,17 @@ $labels['undeleted'] = 'No s\'ha suprimit';
$labels['invert'] = 'Inverteix';
$labels['filter'] = 'Filtre';
$labels['list'] = 'Llista';
-$labels['threads'] = 'Fils de discusió';
-$labels['expand-all'] = 'Expandeix tots';
+$labels['threads'] = 'Fils de discussió';
+$labels['expand-all'] = 'Expandeix tot';
$labels['expand-unread'] = 'Expandeix No llegits';
-$labels['collapse-all'] = 'Redueix tots';
+$labels['collapse-all'] = 'Redueix tot';
$labels['threaded'] = 'Encadenat';
$labels['autoexpand_threads'] = 'Expandeix els missatges encadenats';
-$labels['do_expand'] = 'tots els fils de discusió';
+$labels['do_expand'] = 'tots els fils de discussió';
$labels['expand_only_unread'] = 'només amb missatges no llegits';
$labels['fromto'] = 'Remitent/Destinatari';
$labels['flag'] = 'Marca';
-$labels['attachment'] = 'Adjunció';
+$labels['attachment'] = 'Adjunt';
$labels['nonesort'] = 'Cap';
$labels['sentdate'] = 'Data d\'enviament';
$labels['arrival'] = 'Data d\'arribada';
@@ -163,7 +163,7 @@ $labels['listcolumns'] = 'Llista les columnes';
$labels['listsorting'] = 'Columna d\'ordenació';
$labels['listorder'] = 'Ordre d\'ordenació';
$labels['listmode'] = 'Mode de vista de llista';
-$labels['folderactions'] = 'Accions de carpeta';
+$labels['folderactions'] = 'Accions de carpeta...';
$labels['compact'] = 'Compacta';
$labels['empty'] = 'Buida';
$labels['importmessages'] = 'Importa missatges';
@@ -184,7 +184,7 @@ $labels['changeformathtml'] = 'Mostra en format HTML';
$labels['editasnew'] = 'Edita com a nou';
$labels['send'] = 'Envia';
$labels['sendmessage'] = 'Envia el missatge';
-$labels['savemessage'] = 'Desa aquest esborrany';
+$labels['savemessage'] = 'Desa com a esborrany';
$labels['addattachment'] = 'Adjunta un fitxer';
$labels['charset'] = 'Codificació de caràcters';
$labels['editortype'] = 'Tipus d\'editor';
@@ -197,8 +197,18 @@ $labels['spellcheck'] = 'Ortografia';
$labels['checkspelling'] = 'Comprova l\'ortografia';
$labels['resumeediting'] = 'Reprèn l\'edició';
$labels['revertto'] = 'Torna a';
+$labels['restore'] = 'Recupera';
+$labels['restoremessage'] = 'Recupera el missatge?';
+$labels['responses'] = 'Respostes';
+$labels['insertresponse'] = 'Introduïu una resposta';
+$labels['manageresponses'] = 'Gestiona respostes';
+$labels['savenewresponse'] = 'Desa una nova resposta';
+$labels['editresponses'] = 'Edita respostes';
+$labels['editresponse'] = 'Edita la resposta';
+$labels['responsename'] = 'Nom';
+$labels['responsetext'] = 'Text de resposta';
$labels['attach'] = 'Adjunta';
-$labels['attachments'] = 'Adjuncions';
+$labels['attachments'] = 'Adjunts';
$labels['upload'] = 'Afegeix';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Tanca';
@@ -214,18 +224,18 @@ $labels['alwaysshow'] = 'Mostra sempre les imatges de $sender';
$labels['isdraft'] = 'Aquest és un missatge esborrany.';
$labels['andnmore'] = '$nr més...';
$labels['togglemoreheaders'] = 'Mostra més capçaleres del missatge';
-$labels['togglefullheaders'] = 'Conmuta les capçaleres de text cru';
+$labels['togglefullheaders'] = 'Commuta les capçaleres del missatge en brut';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text net';
$labels['savesentmessagein'] = 'Desa el missatge enviat a';
$labels['dontsave'] = 'no ho desis';
-$labels['maxuploadsize'] = 'El mida màxima del fitxer és $size';
+$labels['maxuploadsize'] = 'La mida màxima permesa del fitxer és $size';
$labels['addcc'] = 'Afegeix Cc';
$labels['addbcc'] = 'Afegeix Bcc';
$labels['addreplyto'] = 'Afegeix Respon-A';
$labels['addfollowupto'] = 'Afegir Seguiment-A';
$labels['mdnrequest'] = 'El remitent d\'aquest missatge ha demanat ser notificat quan llegiu aquest missatge. Voleu notificar al remitent?';
-$labels['receiptread'] = 'Confirmació de recepció';
+$labels['receiptread'] = 'Confirmació de recepció (llegit)';
$labels['yourmessage'] = 'Això és una confirmació de recepció per al vostre missatge';
$labels['receiptnote'] = 'Nota: Aquesta confirmació només indica que el missatge ha estat mostrat a l\'ordinador del destinatari. No hi ha garantia que el destinatari hagi llegit o entès el contingut del missatge.';
$labels['name'] = 'Nom a mostrar';
@@ -273,7 +283,7 @@ $labels['typecar'] = 'Cotxe';
$labels['typepager'] = 'Cercapersones';
$labels['typevideo'] = 'Vídeo';
$labels['typeassistant'] = 'Assistent';
-$labels['typehomepage'] = 'Pàgina Inicial';
+$labels['typehomepage'] = 'Pàgina web personal';
$labels['typeblog'] = 'Bloc';
$labels['typeprofile'] = 'Perfil';
$labels['addfield'] = 'Afegeix camp...';
@@ -289,7 +299,7 @@ $labels['delete'] = 'Suprimeix';
$labels['rename'] = 'Reanomena';
$labels['addphoto'] = 'Afegeix';
$labels['replacephoto'] = 'Reemplaça';
-$labels['uploadphoto'] = 'Puja una fotografia';
+$labels['uploadphoto'] = 'Afegeix una fotografia';
$labels['newcontact'] = 'Crea un nou contacte';
$labels['deletecontact'] = 'Suprimeix els contactes seleccionats';
$labels['composeto'] = 'Redacta correu per a';
@@ -310,18 +320,18 @@ $labels['lastpage'] = 'Mostra la darrera pàgina';
$labels['group'] = 'Grup';
$labels['groups'] = 'Grups';
$labels['listgroup'] = 'Llista els membres del grup';
-$labels['personaladrbook'] = 'Llibreta d\'adreces';
+$labels['personaladrbook'] = 'Llibreta d\'adreces personals';
$labels['searchsave'] = 'Desa la cerca';
$labels['searchdelete'] = 'Suprimeix la cerca';
$labels['import'] = 'Importa';
$labels['importcontacts'] = 'Importa contactes';
$labels['importfromfile'] = 'Importa des d\'un fitxer:';
$labels['importtarget'] = 'Afegeix contactes a';
-$labels['importreplace'] = 'Reemplaça la llibreta d\'adreçes sencera';
+$labels['importreplace'] = 'Substitueix la llibreta d\'adreces sencera';
$labels['importgroups'] = 'Importa assignacions de grup';
$labels['importgroupsall'] = 'Tot (crea grups si és necessari)';
$labels['importgroupsexisting'] = 'Només per a grups existents';
-$labels['importdesc'] = 'Podeu carregar contactes des d\'una llibreta de direccions.<br/>Actualment donem suport a la importació d\'adreces des de fitxers de tipus <a href="http://ca.wikipedia.org/wiki/VCard">vCard</a> o CSV (valors separats per comes).';
+$labels['importdesc'] = 'Podeu afegir contactes des d\'una llibreta d\'adreces.<br/>Actualment donem suport a la importació d\'adreces des de fitxers de tipus <a href="http://ca.wikipedia.org/wiki/VCard">vCard</a> o CSV (valors separats per comes).';
$labels['done'] = 'Fet';
$labels['settingsfor'] = 'Configuració per a';
$labels['about'] = 'Quant a';
@@ -352,7 +362,7 @@ $labels['showinextwin'] = 'Obre el missatge en una nova finestra';
$labels['composeextwin'] = 'Redacta en una nova finestra';
$labels['htmleditor'] = 'Escriu missatges en HTML';
$labels['htmlonreply'] = 'només en resposta a missatges en HTML';
-$labels['htmlonreplyandforward'] = 'en reenviament o resposta a missatge HTML';
+$labels['htmlonreplyandforward'] = 'quan es reenviï o es respongui un missatge en HTML';
$labels['htmlsignature'] = 'Signatura en HTML';
$labels['showemail'] = 'Mostra l\'adreça electrònica amb el nom';
$labels['previewpane'] = 'Mostra el panell de previsualització';
@@ -362,10 +372,10 @@ $labels['logoutcompact'] = 'Compacta la safata d\'entrada al tancar la sessió';
$labels['uisettings'] = 'Interfície de l\'usuari';
$labels['serversettings'] = 'Configuració del servidor';
$labels['mailboxview'] = 'Vista de la bústia';
-$labels['mdnrequests'] = 'Notificacions de confirmació de recepció';
+$labels['mdnrequests'] = 'Quan es demani confirmació de recepció';
$labels['askuser'] = 'demana\'m què vull fer';
$labels['autosend'] = 'envia la confirmació de recepció';
-$labels['autosendknown'] = 'envia la confirmació de recepció als meus contactes, pels demés damana-m\'ho';
+$labels['autosendknown'] = 'envia la confirmació de recepció als meus contactes, pels demés demana-m\'ho';
$labels['autosendknownignore'] = 'envia la confirmació als meus contactes, pels demés ignora-ho';
$labels['ignore'] = 'ignora';
$labels['readwhendeleted'] = 'Marca el missatge com a llegit quan se suprimeixi';
@@ -374,12 +384,12 @@ $labels['skipdeleted'] = 'No mostris els missatges suprimits';
$labels['deletealways'] = 'Si falla quan es mou un missatge a la Paperera, aleshores suprimeix-lo';
$labels['deletejunk'] = 'Suprimeix directament els missatges de Correu brossa';
$labels['showremoteimages'] = 'Mostra les imatges remotes del missatge';
-$labels['fromknownsenders'] = 'de remitent conegut';
+$labels['fromknownsenders'] = 'de remitents coneguts';
$labels['always'] = 'sempre';
$labels['showinlineimages'] = 'Mostra les imatges adjuntes sota el missatge';
$labels['autosavedraft'] = 'Desa l\'esborrany automàticament';
$labels['everynminutes'] = 'cada $n minut(s)';
-$labels['refreshinterval'] = 'Resfrescar (comprovar nous missatges, etc.)';
+$labels['refreshinterval'] = 'Actualitza (comprova nous missatges, etc.)';
$labels['never'] = 'mai';
$labels['immediately'] = 'immediatament';
$labels['messagesdisplaying'] = 'Vista de missatges';
@@ -390,25 +400,25 @@ $labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Compleix RFC 2047 (un altre)';
$labels['force7bit'] = 'Fes servir la codificació MIME per a caràcters de 8-bits';
$labels['advancedoptions'] = 'Opcions avançades';
-$labels['focusonnewmessage'] = 'Envia el focus al navegador quan hi hagi un nou missatge';
+$labels['focusonnewmessage'] = 'Activa la finestra del navegador quan hi hagi un nou missatge';
$labels['checkallfolders'] = 'Comprova totes les carpetes per missatges nous';
-$labels['displaynext'] = 'Mostra el següent missatge després de suprimir-ne o moure\'n un';
-$labels['defaultfont'] = 'Font de lletra per defecte de missatge HTML';
+$labels['displaynext'] = 'Mostra el missatge següent després de suprimir-ne o moure\'n un';
+$labels['defaultfont'] = 'Font de lletra per defecte de missatge en HTML';
$labels['mainoptions'] = 'Opcions principals';
$labels['browseroptions'] = 'Opcions del navegador';
$labels['section'] = 'Secció';
$labels['maintenance'] = 'Manteniment';
$labels['newmessage'] = 'Missatge nou';
$labels['signatureoptions'] = 'Opcions de signatura';
-$labels['whenreplying'] = 'Quan es respon';
-$labels['replyempty'] = 'do citis el missatge original';
+$labels['whenreplying'] = 'Quan es respongui';
+$labels['replyempty'] = 'no citis el missatge original';
$labels['replytopposting'] = 'comença el missatge nou per sobre de l\'original';
$labels['replybottomposting'] = 'comença el missatge nou per sota de l\'original';
-$labels['replyremovesignature'] = 'Quan es contesti, suprimeix la signatura original del missatge';
+$labels['replyremovesignature'] = 'Quan es respongui suprimeix la signatura original del missatge';
$labels['autoaddsignature'] = 'Afegeix la signatura automàticament';
$labels['newmessageonly'] = 'només si és un missatge nou';
$labels['replyandforwardonly'] = 'només a respostes i reenviaments';
-$labels['insertsignature'] = 'Inserta la signatura';
+$labels['insertsignature'] = 'Inclou la signatura';
$labels['previewpanemarkread'] = 'Marca els missatges previsualitzats com a llegits';
$labels['afternseconds'] = 'després de $n segons';
$labels['reqmdn'] = 'Demana sempre la confirmació de recepció';
@@ -427,7 +437,10 @@ $labels['mailtoprotohandler'] = 'Registra controlador de protocol pels enllaços
$labels['standardwindows'] = 'Gestiona les finestres emergents com si fossin finestres normals';
$labels['forwardmode'] = 'Reenviament de missatges';
$labels['inline'] = 'en línia';
-$labels['asattachment'] = 'com adjunt';
+$labels['asattachment'] = 'com un adjunt';
+$labels['replyallmode'] = 'Acció per defecte del botó [Respon a tots]';
+$labels['replyalldefault'] = 'respon a tots';
+$labels['replyalllist'] = 'respon només a la llista de missatges (si n\'hi ha cap)';
$labels['folder'] = 'Carpeta';
$labels['folders'] = 'Carpetes';
$labels['foldername'] = 'Nom de la carpeta';
@@ -452,7 +465,7 @@ $labels['sortby'] = 'Ordena per';
$labels['sortasc'] = 'Ordena ascendentment';
$labels['sortdesc'] = 'Ordena descendentment';
$labels['undo'] = 'Desfés';
-$labels['installedplugins'] = 'Connectors Instal·lats';
+$labels['installedplugins'] = 'Complements Instal·lats';
$labels['plugin'] = 'Complement';
$labels['version'] = 'Versió';
$labels['source'] = 'Font';
diff --git a/program/localization/ca_ES/messages.inc b/program/localization/ca_ES/messages.inc
index 5f5854de8..66c4a6d42 100644
--- a/program/localization/ca_ES/messages.inc
+++ b/program/localization/ca_ES/messages.inc
@@ -24,8 +24,8 @@ $messages['servererror'] = 'Error del Servidor!';
$messages['servererrormsg'] = 'Error del Servidor: $msg';
$messages['dberror'] = 'Error a la Base de Dades!';
$messages['requesttimedout'] = 'S\'ha esgotat el temps de la sol·licitud';
-$messages['errorreadonly'] = 'Impossible de realitzar l\'operació. La carpeta és de només lectura.';
-$messages['errornoperm'] = 'Impossible de realitzar l\'operació. Permís denegat.';
+$messages['errorreadonly'] = 'No s\'ha pogut de realitzar l\'operació. La carpeta és de només lectura.';
+$messages['errornoperm'] = 'No s\'ha pogut realitzar l\'operació. Permís denegat.';
$messages['erroroverquota'] = 'No s\'ha pogut completar l\'operació. No hi ha prou espai lliure al disc dur.';
$messages['erroroverquotadelete'] = 'No hi ha prou espai lliure. Feu servir MAJÚS+SUPR per suprimir el missatge.';
$messages['invalidrequest'] = 'Petició no vàlida! No s\'han desat les dades.';
@@ -33,7 +33,7 @@ $messages['invalidhost'] = 'Nom de servidor no vàlid.';
$messages['nomessagesfound'] = 'No s\'han trobat missatges en aquesta bústia.';
$messages['loggedout'] = 'Heu tancat la sessió correctament. A reveure!';
$messages['mailboxempty'] = 'La bústia és buida.';
-$messages['refreshing'] = 'S\'està refrescant...';
+$messages['refreshing'] = 'S\'està actualitzant...';
$messages['loading'] = 'S\'està carregant…';
$messages['uploading'] = 'S\'està pujant el fitxer...';
$messages['uploadingmany'] = 'S\'estan pujant els fitxers...';
@@ -41,13 +41,15 @@ $messages['loadingdata'] = 'S\'estan carregant les dades...';
$messages['checkingmail'] = 'S’està comprovant si hi ha missatges nous…';
$messages['sendingmessage'] = 'S’està enviant el missatge…';
$messages['messagesent'] = 'Missatge enviat correctament.';
-$messages['savingmessage'] = 'Desant missatge...';
+$messages['savingmessage'] = 'S\'està desant el missatge...';
$messages['messagesaved'] = 'Missatge desat a Esborranys.';
$messages['successfullysaved'] = 'Desat correctament.';
+$messages['savingresponse'] = 'S\'està desant el text de resposta...';
+$messages['deleteresponseconfirm'] = 'Esteu segurs de voler suprimir aquest text de resposta?';
$messages['addedsuccessfully'] = 'Contacte afegit correctament a la llibreta d\'adreces.';
$messages['contactexists'] = 'Ja hi ha un contacte amb aquesta adreça de correu.';
$messages['contactnameexists'] = 'Ja existeix un contacte amb el mateix nom.';
-$messages['blockedimages'] = 'Per protegir la vostra privacitat, les imatges remotes han estat bloquejades en aquest missatge.';
+$messages['blockedimages'] = 'Per protegir la vostra privadesa, les imatges remotes han estat bloquejades en aquest missatge.';
$messages['encryptedmessage'] = 'Aquest és un missatge xifrat i no pot ser mostrat. Ho sento!';
$messages['nocontactsfound'] = 'No s\'ha trobat cap contacte.';
$messages['contactnotfound'] = 'No s\'ha trobat el contacte sol·licitat.';
@@ -80,6 +82,7 @@ $messages['norecipientwarning'] = 'Si us plau, introduïu com a mínim un destin
$messages['nosubjectwarning'] = 'El camp "Assumpte" és buit. Voleu introduir-ne un ara?';
$messages['nobodywarning'] = 'Voleu enviar aquest missatge sense text?';
$messages['notsentwarning'] = 'El missatge no s\'ha enviat. Voleu descartar el vostre missatge?';
+$messages['restoresavedcomposedata'] = 'S\'ha trobat un missatge començat però que no ha estat enviat.\n\nAssumpte: $subject\nDesat: $date\n\nVoleu recuperar aquest missatge?';
$messages['noldapserver'] = 'Si us plau, seleccioneu un servidor LDAP per cercar.';
$messages['nosearchname'] = 'Si us plau, introduïu un nom de contacte o una adreça de correu.';
$messages['notuploadedwarning'] = 'Encara no s\'han pujat tots els adjunts. Si us plau, espereu o cancel·leu la pujada.';
@@ -114,7 +117,7 @@ $messages['markingmessage'] = 'S\'està marcant missatge(s)...';
$messages['addingmember'] = 'S\'està afegint contacte(s) al grup...';
$messages['removingmember'] = 'S\'està suprimint contacte(s) del grup...';
$messages['receiptsent'] = 'Confirmació de lectura enviada correctament.';
-$messages['errorsendingreceipt'] = 'No es pot enviar la confirmació.';
+$messages['errorsendingreceipt'] = 'No s\'ha pogut enviar la confirmació.';
$messages['deleteidentityconfirm'] = 'Esteu segurs de voler suprimir aquesta identitat?';
$messages['nodeletelastidentity'] = 'No podeu suprimir aquesta identitat, és l\'última.';
$messages['forbiddencharacter'] = 'El nom de carpeta conté un caràcter no permès.';
@@ -131,7 +134,7 @@ $messages['importmessagesuccess'] = '<b>S\'han importat $nr missatges correctame
$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?';
+$messages['editorwarning'] = 'Si canvieu a l\'editor de text net perdreu tot el format del text. Voleu continuar?';
$messages['httpreceivedencrypterror'] = 'Hi ha hagut un error fatal de configuració. Contacteu amb el vostre administrador immediatament. <b>El vostre missatge no pot ser enviat.</b>';
$messages['smtpconnerror'] = 'Error SMTP ($code): La connexió al servidor ha fallat.';
$messages['smtpautherror'] = 'Error SMTP ($code): La identificació ha fallat.';
@@ -140,7 +143,7 @@ $messages['smtptoerror'] = 'Error SMTP ($code): No s\'ha pogut posar "$to" com a
$messages['smtprecipientserror'] = 'Error SMTP: No s\'ha pogut analitzar la llista de destinataris.';
$messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Adreça de correu no vàlida: $email';
-$messages['toomanyrecipients'] = 'Massa destinataris. Reduïu el nombre de destinataris a $max.';
+$messages['toomanyrecipients'] = 'Hi ha masses destinataris. Reduïu el nombre de destinataris a $max.';
$messages['maxgroupmembersreached'] = 'El nombre de membres del grup excedeix el màxim de $max.';
$messages['internalerror'] = 'S\'ha produït un error intern. Si us plau torneu-ho a provar.';
$messages['contactdelerror'] = 'No s\'han pogut suprimir el(s) contacte(s).';
@@ -151,7 +154,7 @@ $messages['groupdeleted'] = 'Grup suprimit correctament.';
$messages['grouprenamed'] = 'Grup reanomenat correctament.';
$messages['groupcreated'] = 'Grup creat correctament.';
$messages['savedsearchdeleted'] = 'S\'ha suprimit correctament la cerca desada.';
-$messages['savedsearchdeleteerror'] = 'No s\'ha pogut suprimit la cerca desada.';
+$messages['savedsearchdeleteerror'] = 'No s\'ha pogut suprimir la cerca desada.';
$messages['savedsearchcreated'] = 'S\'ha creat correctament la cerca desada.';
$messages['savedsearchcreateerror'] = 'No s\'ha pogut crear la cerca desada.';
$messages['messagedeleted'] = 'Missatge(s) suprimit(s) correctament.';
@@ -169,5 +172,5 @@ $messages['mispellingsfound'] = 'S\'han detectat errors d\'ortografia al missatg
$messages['parentnotwritable'] = 'No s\'ha pogut crear/moure la carpeta dins de la carpeta ascendent seleccionada. No hi ha permisos d\'escriptura.';
$messages['messagetoobig'] = 'La part del missatge és massa gran per processar-la.';
$messages['attachmentvalidationerror'] = 'ATENCIÓ! Aquest adjunt és sospitós perquè el seu tipus no coincideix amb el tipus declarat al missatge. Si no confieu en l\'emissor, no l\'hauríeu d\'obrir al navegador perquè pot contenir elements maliciosos. <br/><br/><em>S\'esperava: $expected; s\'ha trobat: $detected</em>';
-$messages['noscriptwarning'] = 'Atenció: Aquest client de correu necessita Javascript! Per a poder fer-lo servir, heu d\'activar Javascript a les opcions del navegador.';
+$messages['noscriptwarning'] = 'Atenció: Aquest client de correu necessita Javascript! Per a poder fer-lo servir heu d\'activar Javascript a les opcions del navegador.';
?>
diff --git a/program/localization/cs_CZ/labels.inc b/program/localization/cs_CZ/labels.inc
index aac514ec5..a0f0828fd 100644
--- a/program/localization/cs_CZ/labels.inc
+++ b/program/localization/cs_CZ/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Zkontrolovat pravopis';
$labels['resumeediting'] = 'PokraÄovat v úpravách';
$labels['revertto'] = 'Přejít na';
+$labels['restore'] = 'Obnovit';
+$labels['restoremessage'] = 'Obnovit zprávu?';
$labels['responses'] = 'Odpovědi';
$labels['insertresponse'] = 'Vložit odpověd';
$labels['manageresponses'] = 'Spravovat odpovědí';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Zacházet s vyskakovacími okny jako se standardnÃ
$labels['forwardmode'] = 'Přeposlat zprávu';
$labels['inline'] = 'vloženě';
$labels['asattachment'] = 'jako přílohu';
+$labels['replyallmode'] = 'Výchozí akce tlaÄítka [OdpovÄ›dÄ›t vÅ¡em]';
+$labels['replyalldefault'] = 'odpovědět všem';
+$labels['replyalllist'] = 'odpovědět pouze do poštovní konference (pokud je nalezena)';
$labels['folder'] = 'Složka';
$labels['folders'] = 'Složky';
$labels['foldername'] = 'Jméno složky';
diff --git a/program/localization/cs_CZ/messages.inc b/program/localization/cs_CZ/messages.inc
index 2e3a75c52..a4c63b0e0 100644
--- a/program/localization/cs_CZ/messages.inc
+++ b/program/localization/cs_CZ/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Zadejte, prosím, alespoň jednoho příjemce
$messages['nosubjectwarning'] = 'Předmět nebyl vyplňen. Přejete si jej zadat nyní?';
$messages['nobodywarning'] = 'Opravdu chtete odeslat prázdnou zprávu?';
$messages['notsentwarning'] = 'Zpráva nebyla odeslána. Přejete si zprávu zahodit?';
+$messages['restoresavedcomposedata'] = 'Byla nalezena dříve vytvořená ale neodeslaná zpráva.\n\nPředmět: $subject\nUloženo: $date\n\nPřejete si obnovit tuto zprávu?';
$messages['noldapserver'] = 'Zvolte, prosím, LDAP server k hledání';
$messages['nosearchname'] = 'Zadejte, prosím, jméno nebo e-mail kontaktu';
$messages['notuploadedwarning'] = 'JeÅ¡tÄ› nebyly nahrány vÅ¡echny přílohy. PoÄkejte prosím nebo nahrávání zruÅ¡te.';
diff --git a/program/localization/da_DK/labels.inc b/program/localization/da_DK/labels.inc
index 53d32090c..a452a348c 100644
--- a/program/localization/da_DK/labels.inc
+++ b/program/localization/da_DK/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Stav';
$labels['checkspelling'] = 'Stavekontrol';
$labels['resumeediting'] = 'Genoptag redigering';
$labels['revertto'] = 'Vend tilbage til';
+$labels['restore'] = 'Gendan';
+$labels['restoremessage'] = 'Gendan besked';
$labels['responses'] = 'Svar';
$labels['insertresponse'] = 'Indsæt et svar';
$labels['manageresponses'] = 'Administrer svar';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Behandl popups som standardvinduer';
$labels['forwardmode'] = 'Videresendelse af besked';
$labels['inline'] = 'inline';
$labels['asattachment'] = 'som vedhæftning';
+$labels['replyallmode'] = 'Standardhandling til [Svar alle]-knap';
+$labels['replyalldefault'] = 'Svar til alle';
+$labels['replyalllist'] = 'svar kun til mail-liste (hvis fundet)';
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenavn';
diff --git a/program/localization/da_DK/messages.inc b/program/localization/da_DK/messages.inc
index 1e4635b8d..1328ed288 100644
--- a/program/localization/da_DK/messages.inc
+++ b/program/localization/da_DK/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Indtast mindst én modtager.';
$messages['nosubjectwarning'] = '\'Emne\'-feltet er tomt. Kunne du tænke dig at skrive et nu?';
$messages['nobodywarning'] = 'Send denne besked uden tekst?';
$messages['notsentwarning'] = 'Beskeden er ikke sendt. Vil du kassere din besked?';
+$messages['restoresavedcomposedata'] = 'En tidligere skreven men usendt besked blev fundet.\n\nEmne: $subject\nGemt: $date\n\nØnsker du at gendanne denne besked?';
$messages['noldapserver'] = 'Vælg venligst hvilken LDAP-server der skal søges i.';
$messages['nosearchname'] = 'Indtast venligst en kontakts navn eller e-mailadresse.';
$messages['notuploadedwarning'] = 'Ikke alle vedhæftede filer er blevet uploadet endnu. Vent venligst eller afbryd upload.';
diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc
index b416d0b98..bfcbcf1e5 100644
--- a/program/localization/de_CH/labels.inc
+++ b/program/localization/de_CH/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Rechtschreibung';
$labels['checkspelling'] = 'Rechtschreibung prüfen';
$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
+$labels['restore'] = 'Wiederherstellen';
+$labels['restoremessage'] = 'Nachricht wiederherstellen?';
$labels['responses'] = 'Antworten';
$labels['insertresponse'] = 'Antwort einfügen';
$labels['manageresponses'] = 'Antworten verwalten';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Popups als normale Browserfenster öffnen';
$labels['forwardmode'] = 'Weiterleiten einer Nachricht';
$labels['inline'] = 'eingebettet';
$labels['asattachment'] = 'als Anhang';
+$labels['replyallmode'] = 'Standard Funktion für [Allen antworten]';
+$labels['replyalldefault'] = 'Allen antworten';
+$labels['replyalllist'] = 'Nur der Mailing-Liste antworten (falls vorhanden)';
$labels['folder'] = 'Ordner';
$labels['folders'] = 'Ordner';
$labels['foldername'] = 'Ordnername';
diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc
index 2f3257703..1b021a360 100644
--- a/program/localization/de_CH/messages.inc
+++ b/program/localization/de_CH/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Bitte geben Sie mindestens einen Empfänger a
$messages['nosubjectwarning'] = 'Die Betreffzeile ist leer. Möchten Sie jetzt einen Betreff eingeben?';
$messages['nobodywarning'] = 'Wollen Sie diese Nachricht ohne Inhalt senden?';
$messages['notsentwarning'] = 'Ihre Nachricht wurde nicht gesendet. Wollen Sie die Nachricht verwerfen?';
+$messages['restoresavedcomposedata'] = 'Eine zuvor verfasste aber nicht gesendete Nachricht wurde gefunden.\n\nBetreff: $subject\nGespeichert: $date\n\nWollen Sie diese Nachricht wiederherstellen?';
$messages['noldapserver'] = 'Bitte wählen Sie einen LDAP-Server aus';
$messages['nosearchname'] = 'Bitte geben Sie einen Namen oder eine E-Mail-Adresse ein.';
$messages['notuploadedwarning'] = 'Es wurden noch nicht alle Dateien hochgeladen. Bitte warten oder Upload abbrechen.';
diff --git a/program/localization/el_GR/messages.inc b/program/localization/el_GR/messages.inc
index be6639d68..9947c715e 100644
--- a/program/localization/el_GR/messages.inc
+++ b/program/localization/el_GR/messages.inc
@@ -16,7 +16,7 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
$messages['errortitle'] = 'Έχει Ï€ÏοκÏψει κάποιο σφάλμα!';
-$messages['loginfailed'] = 'Είσοδος απέτυχε';
+$messages['loginfailed'] = 'Είσοδος απέτυχε.';
$messages['cookiesdisabled'] = 'Ο πεÏιηγητής σας (browser) δεν αποδέχεται cookies';
$messages['sessionerror'] = 'Η συνεδÏία σας είναι άκυÏη ή έχει λήξει';
$messages['storageerror'] = 'Η σÏνδεση με το διακομιστή IMAP απέτυχε';
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Μήνυμα εστάλη επιτυχώς';
$messages['savingmessage'] = 'Αποθήκευση μηνÏματος...';
$messages['messagesaved'] = 'Μήνυμα αποθηκεÏτηκε στα ΠÏόχειÏα';
$messages['successfullysaved'] = 'ΑποθηκεÏτηκε επιτυχώς';
+$messages['savingresponse'] = 'ΑποθηκεÏετε το κείμενο απάντησης...';
+$messages['deleteresponseconfirm'] = 'ΣίγουÏα θέλετε να διαγÏάψετε αυτό το κείμενο απάντησης;';
$messages['addedsuccessfully'] = 'Η επαφή Ï€Ïοστέθηκε επιτυχώς στις Επαφές';
$messages['contactexists'] = 'ΥπάÏχει ήδη επαφή με αυτή τη διεÏθυνση e-mail';
$messages['contactnameexists'] = 'Μια επαφή με το ίδιο όνομα υπάÏχει ήδη.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Η ζητοÏμενη επαφή δεν βÏέθ
$messages['contactsearchonly'] = 'Εισάγετε κάποιους ÏŒÏους Ï€Ïος αναζήτηση';
$messages['sendingfailed'] = 'Αποστολή μηνÏματος απέτυχε';
$messages['senttooquickly'] = 'ΠαÏακαλώ πεÏιμένετε $sec δευτεÏόλεπτα, Ï€Ïιν στείλετε το μήνυμα';
+$messages['errorsavingsent'] = 'ΠÏοέκυψε σφάλμα κατά την αποθήκευση σταλμένου μηνÏματος.';
+$messages['errorsaving'] = 'ΠÏοέκυψε σφάλμα κατά την αποθήκευση.';
$messages['errormoving'] = 'Το μήνυμα δε μποÏοÏσε να μετακινηθεί';
$messages['errorcopying'] = 'Δεν είναι δυνατή η αντιγÏαφή του μηνÏματος/των';
$messages['errordeleting'] = 'Το μήνυμα δε μποÏοÏσε να διαγÏαφεί';
@@ -140,6 +144,7 @@ $messages['smtperror'] = 'Σφάλμα SMTP: $msg';
$messages['emailformaterror'] = 'Λανθασμένη διεÏθνση email: $email';
$messages['toomanyrecipients'] = 'Μεγάλο πλήθος αποδεκτών. Μειώστε τον αÏιθμό των αποδεκτών σε $max.';
$messages['maxgroupmembersreached'] = 'Ο αÏιθμός των μελών της ομάδας υπεÏβαίνει τον μέγιστο των $max μελών.';
+$messages['internalerror'] = 'ΠÏοέκυψε εσωτεÏικό σφάλμα. ΠαÏακαλώ δοκιμάστε ξανά.';
$messages['contactdelerror'] = 'Δεν είναι δυνατή η διαγÏαφή της επαφής/ων';
$messages['contactdeleted'] = 'Η επαφή/ές διαγÏάφηκαν με επιτυχία.';
$messages['contactrestoreerror'] = 'Οι διαγÏαφημενη επαφη(ες) δεν μποÏουν να επαναφεÏθουν.';
diff --git a/program/localization/en_CA/labels.inc b/program/localization/en_CA/labels.inc
new file mode 100644
index 000000000..c1c62ff01
--- /dev/null
+++ b/program/localization/en_CA/labels.inc
@@ -0,0 +1,496 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | localization/<lang>/labels.inc |
+ | |
+ | Localization file 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. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
+*/
+$labels['welcome'] = 'Welcome to $product';
+$labels['username'] = 'Username';
+$labels['password'] = 'Password';
+$labels['server'] = 'Server';
+$labels['login'] = 'Login';
+$labels['logout'] = 'Logout';
+$labels['mail'] = 'Mail';
+$labels['settings'] = 'Settings';
+$labels['addressbook'] = 'Address Book';
+$labels['inbox'] = 'Inbox';
+$labels['drafts'] = 'Drafts';
+$labels['sent'] = 'Sent';
+$labels['trash'] = 'Trash';
+$labels['junk'] = 'Junk';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+$labels['subject'] = 'Subject';
+$labels['from'] = 'From';
+$labels['sender'] = 'Sender';
+$labels['to'] = 'To';
+$labels['cc'] = 'Cc';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
+$labels['date'] = 'Date';
+$labels['size'] = 'Size';
+$labels['priority'] = 'Priority';
+$labels['organization'] = 'Organization';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+$labels['mailboxlist'] = 'Folders';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
+$labels['messagenrof'] = 'Message $nr of $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+$labels['copy'] = 'Copy';
+$labels['move'] = 'Move';
+$labels['moveto'] = 'Move to...';
+$labels['download'] = 'Download';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+$labels['filename'] = 'File name';
+$labels['filesize'] = 'File size';
+$labels['addtoaddressbook'] = 'Add to address book';
+$labels['sun'] = 'Sun';
+$labels['mon'] = 'Mon';
+$labels['tue'] = 'Tue';
+$labels['wed'] = 'Wed';
+$labels['thu'] = 'Thu';
+$labels['fri'] = 'Fri';
+$labels['sat'] = 'Sat';
+$labels['sunday'] = 'Sunday';
+$labels['monday'] = 'Monday';
+$labels['tuesday'] = 'Tuesday';
+$labels['wednesday'] = 'Wednesday';
+$labels['thursday'] = 'Thursday';
+$labels['friday'] = 'Friday';
+$labels['saturday'] = 'Saturday';
+$labels['jan'] = 'Jan';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Apr';
+$labels['may'] = 'May';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'January';
+$labels['longfeb'] = 'February';
+$labels['longmar'] = 'March';
+$labels['longapr'] = 'April';
+$labels['longmay'] = 'May';
+$labels['longjun'] = 'June';
+$labels['longjul'] = 'July';
+$labels['longaug'] = 'August';
+$labels['longsep'] = 'September';
+$labels['longoct'] = 'October';
+$labels['longnov'] = 'November';
+$labels['longdec'] = 'December';
+$labels['today'] = 'Today';
+$labels['refresh'] = 'Refresh';
+$labels['checkmail'] = 'Check for new messages';
+$labels['compose'] = 'Compose';
+$labels['writenewmessage'] = 'Create a new message';
+$labels['reply'] = 'Reply';
+$labels['replytomessage'] = 'Reply to sender';
+$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
+$labels['forwardmessage'] = 'Forward the message';
+$labels['deletemessage'] = 'Delete message';
+$labels['movemessagetotrash'] = 'Move message to trash';
+$labels['printmessage'] = 'Print this message';
+$labels['previousmessage'] = 'Show previous message';
+$labels['firstmessage'] = 'Show first message';
+$labels['nextmessage'] = 'Show next message';
+$labels['lastmessage'] = 'Show last message';
+$labels['backtolist'] = 'Back to message list';
+$labels['viewsource'] = 'Show source';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'Mark messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+$labels['select'] = 'Select';
+$labels['all'] = 'All';
+$labels['none'] = 'None';
+$labels['currpage'] = 'Current page';
+$labels['unread'] = 'Unread';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
+$labels['filter'] = 'Filter';
+$labels['list'] = 'List';
+$labels['threads'] = 'Threads';
+$labels['expand-all'] = 'Expand All';
+$labels['expand-unread'] = 'Expand Unread';
+$labels['collapse-all'] = 'Collapse All';
+$labels['threaded'] = 'Threaded';
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
+$labels['expand_only_unread'] = 'only with unread messages';
+$labels['fromto'] = 'From/To';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
+$labels['nonesort'] = 'None';
+$labels['sentdate'] = 'Sent date';
+$labels['arrival'] = 'Arrival date';
+$labels['asc'] = 'ascending';
+$labels['desc'] = 'descending';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+$labels['folderactions'] = 'Folder actions...';
+$labels['compact'] = 'Compact';
+$labels['empty'] = 'Empty';
+$labels['importmessages'] = 'Import messages';
+$labels['quota'] = 'Disk usage';
+$labels['unknown'] = 'unknown';
+$labels['unlimited'] = 'unlimited';
+$labels['quicksearch'] = 'Quick search';
+$labels['resetsearch'] = 'Reset search';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+$labels['type'] = 'Type';
+$labels['namex'] = 'Name';
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
+$labels['sendmessage'] = 'Send message';
+$labels['savemessage'] = 'Save as draft';
+$labels['addattachment'] = 'Attach a file';
+$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Editor type';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
+$labels['checkspelling'] = 'Check spelling';
+$labels['resumeediting'] = 'Resume editing';
+$labels['revertto'] = 'Revert to';
+$labels['restore'] = 'Restore';
+$labels['restoremessage'] = 'Restore message?';
+$labels['responses'] = 'Responses';
+$labels['insertresponse'] = 'Insert a response';
+$labels['manageresponses'] = 'Manage responses';
+$labels['savenewresponse'] = 'Save new response';
+$labels['editresponses'] = 'Edit responses';
+$labels['editresponse'] = 'Edit response';
+$labels['responsename'] = 'Name';
+$labels['responsetext'] = 'Response Text';
+$labels['attach'] = 'Attach';
+$labels['attachments'] = 'Attachments';
+$labels['upload'] = 'Upload';
+$labels['uploadprogress'] = '$percent ($current from $total)';
+$labels['close'] = 'Close';
+$labels['messageoptions'] = 'Message options...';
+$labels['low'] = 'Low';
+$labels['lowest'] = 'Lowest';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'High';
+$labels['highest'] = 'Highest';
+$labels['nosubject'] = '(no subject)';
+$labels['showimages'] = 'Display images';
+$labels['alwaysshow'] = 'Always show images from $sender';
+$labels['isdraft'] = 'This is a draft message.';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Plain text';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$labels['receiptread'] = 'Return Receipt (read)';
+$labels['yourmessage'] = 'This is a Return Receipt for your message';
+$labels['receiptnote'] = 'Note: This receipt only acknowledges that the message was displayed on the recipient\'s computer. There is no guarantee that the recipient has read or understood the message contents.';
+$labels['name'] = 'Display Name';
+$labels['firstname'] = 'First Name';
+$labels['surname'] = 'Last Name';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
+$labels['email'] = 'Email';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'Postal Code';
+$labels['region'] = 'Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
+$labels['male'] = 'male';
+$labels['female'] = 'female';
+$labels['manager'] = 'Manager';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
+$labels['other'] = 'Other';
+$labels['typehome'] = 'Home';
+$labels['typework'] = 'Work';
+$labels['typeother'] = 'Other';
+$labels['typemobile'] = 'Mobile';
+$labels['typemain'] = 'Main';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+$labels['addfield'] = 'Add field...';
+$labels['addcontact'] = 'Add new contact';
+$labels['editcontact'] = 'Edit contact';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+$labels['edit'] = 'Edit';
+$labels['cancel'] = 'Cancel';
+$labels['save'] = 'Save';
+$labels['delete'] = 'Delete';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+$labels['newcontact'] = 'Create new contact card';
+$labels['deletecontact'] = 'Delete selected contacts';
+$labels['composeto'] = 'Compose mail to';
+$labels['contactsfromto'] = 'Contacts $from to $to of $count';
+$labels['print'] = 'Print';
+$labels['export'] = 'Export';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+$labels['previouspage'] = 'Show previous page';
+$labels['firstpage'] = 'Show first page';
+$labels['nextpage'] = 'Show next page';
+$labels['lastpage'] = 'Show last page';
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$labels['listgroup'] = 'List group members';
+$labels['personaladrbook'] = 'Personal Addresses';
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add contacts to';
+$labels['importreplace'] = 'Replace the entire address book';
+$labels['importgroups'] = 'Import group assignments';
+$labels['importgroupsall'] = 'All (create groups if necessary)';
+$labels['importgroupsexisting'] = 'Only for existing groups';
+$labels['importdesc'] = 'You can upload contacts from an existing address book.<br/>We currently support importing addresses from the <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> or CSV (comma-separated) data format.';
+$labels['done'] = 'Done';
+$labels['settingsfor'] = 'Settings for';
+$labels['about'] = 'About';
+$labels['preferences'] = 'Preferences';
+$labels['userpreferences'] = 'User preferences';
+$labels['editpreferences'] = 'Edit user preferences';
+$labels['identities'] = 'Identities';
+$labels['manageidentities'] = 'Manage identities for this account';
+$labels['newidentity'] = 'New identity';
+$labels['newitem'] = 'New item';
+$labels['edititem'] = 'Edit item';
+$labels['preferhtml'] = 'Display HTML';
+$labels['defaultcharset'] = 'Default Character Set';
+$labels['htmlmessage'] = 'HTML Message';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
+$labels['prettydate'] = 'Pretty dates';
+$labels['setdefault'] = 'Set default';
+$labels['autodetect'] = 'Auto';
+$labels['language'] = 'Language';
+$labels['timezone'] = 'Time zone';
+$labels['pagesize'] = 'Rows per page';
+$labels['signature'] = 'Signature';
+$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Compose HTML messages';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'HTML signature';
+$labels['showemail'] = 'Show email address with display name';
+$labels['previewpane'] = 'Show preview pane';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
+$labels['uisettings'] = 'User Interface';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
+$labels['askuser'] = 'ask me';
+$labels['autosend'] = 'send receipt';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignore';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
+$labels['skipdeleted'] = 'Do not show deleted messages';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
+$labels['always'] = 'always';
+$labels['showinlineimages'] = 'Display attached images below the message';
+$labels['autosavedraft'] = 'Automatically save draft';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
+$labels['never'] = 'never';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
+$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
+$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
+$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
+$labels['advancedoptions'] = 'Advanced options';
+$labels['focusonnewmessage'] = 'Focus browser window on new message';
+$labels['checkallfolders'] = 'Check all folders for new messages';
+$labels['displaynext'] = 'After message delete/move display the next message';
+$labels['defaultfont'] = 'Default font of HTML message';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Section';
+$labels['maintenance'] = 'Maintenance';
+$labels['newmessage'] = 'New Message';
+$labels['signatureoptions'] = 'Signature Options';
+$labels['whenreplying'] = 'When replying';
+$labels['replyempty'] = 'do not quote the original message';
+$labels['replytopposting'] = 'start new message above the quote';
+$labels['replybottomposting'] = 'start new message below the quote';
+$labels['replyremovesignature'] = 'When replying remove original signature from message';
+$labels['autoaddsignature'] = 'Automatically add signature';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
+$labels['afternseconds'] = 'after $n seconds';
+$labels['reqmdn'] = 'Always request a return receipt';
+$labels['reqdsn'] = 'Always request a delivery status notification';
+$labels['replysamefolder'] = 'Place replies in the folder of the message being replied to';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'Check spelling before sending a message';
+$labels['spellcheckoptions'] = 'Spellcheck Options';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
+$labels['addtodict'] = 'Add to dictionary';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['standardwindows'] = 'Handle popups as standard windows';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+$labels['replyallmode'] = 'Default action of [Reply all] button';
+$labels['replyalldefault'] = 'reply to all';
+$labels['replyalllist'] = 'reply to mailing list only (if found)';
+$labels['folder'] = 'Folder';
+$labels['folders'] = 'Folders';
+$labels['foldername'] = 'Folder name';
+$labels['subscribed'] = 'Subscribed';
+$labels['messagecount'] = 'Messages';
+$labels['create'] = 'Create';
+$labels['createfolder'] = 'Create new folder';
+$labels['managefolders'] = 'Manage folders';
+$labels['specialfolders'] = 'Special Folders';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
+$labels['info'] = 'Information';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+$labels['sortby'] = 'Sort by';
+$labels['sortasc'] = 'Sort ascending';
+$labels['sortdesc'] = 'Sort descending';
+$labels['undo'] = 'Undo';
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'English';
+$labels['westerneuropean'] = 'Western European';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
+$labels['baltic'] = 'Baltic';
+$labels['cyrillic'] = 'Cyrillic';
+$labels['arabic'] = 'Arabic';
+$labels['greek'] = 'Greek';
+$labels['hebrew'] = 'Hebrew';
+$labels['turkish'] = 'Turkish';
+$labels['nordic'] = 'Nordic';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+?>
diff --git a/program/localization/en_CA/messages.inc b/program/localization/en_CA/messages.inc
new file mode 100644
index 000000000..169c1c9b1
--- /dev/null
+++ b/program/localization/en_CA/messages.inc
@@ -0,0 +1,176 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | localization/<lang>/messages.inc |
+ | |
+ | Localization file 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. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
+*/
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Login failed.';
+$messages['cookiesdisabled'] = 'Your browser does not accept cookies.';
+$messages['sessionerror'] = 'Your session is invalid or expired.';
+$messages['storageerror'] = 'Connection to storage server failed.';
+$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['nomessagesfound'] = 'No messages found in this mailbox.';
+$messages['loggedout'] = 'You have successfully terminated the session. Good bye!';
+$messages['mailboxempty'] = 'Mailbox is empty.';
+$messages['refreshing'] = 'Refreshing...';
+$messages['loading'] = 'Loading...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
+$messages['loadingdata'] = 'Loading data...';
+$messages['checkingmail'] = 'Checking for new messages...';
+$messages['sendingmessage'] = 'Sending message...';
+$messages['messagesent'] = 'Message sent successfully.';
+$messages['savingmessage'] = 'Saving message...';
+$messages['messagesaved'] = 'Message saved to Drafts.';
+$messages['successfullysaved'] = 'Successfully saved.';
+$messages['savingresponse'] = 'Saving response text...';
+$messages['deleteresponseconfirm'] = 'Do you really want to delete this response text?';
+$messages['addedsuccessfully'] = 'Contact added successfully to address book.';
+$messages['contactexists'] = 'A contact with the same e-mail address already exists.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['blockedimages'] = 'To protect your privacy, remote images are blocked in this message.';
+$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
+$messages['nocontactsfound'] = 'No contacts found.';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
+$messages['sendingfailed'] = 'Failed to send message.';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occurred while saving sent message.';
+$messages['errorsaving'] = 'An error occurred while saving.';
+$messages['errormoving'] = 'Could not move the message(s).';
+$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errordeleting'] = 'Could not delete the message(s).';
+$messages['errormarking'] = 'Could not mark the message(s).';
+$messages['deletecontactconfirm'] = 'Do you really want to delete selected contact(s)?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletemessagesconfirm'] = 'Do you really want to delete selected message(s)?';
+$messages['deletefolderconfirm'] = 'Do you really want to delete this folder?';
+$messages['purgefolderconfirm'] = 'Do you really want to delete all messages in this folder?';
+$messages['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['formincomplete'] = 'The form was not completely filled out.';
+$messages['noemailwarning'] = 'Please enter a valid email address.';
+$messages['nonamewarning'] = 'Please enter a name.';
+$messages['nopagesizewarning'] = 'Please enter a page size.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
+$messages['norecipientwarning'] = 'Please enter at least one recipient.';
+$messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like to enter one now?';
+$messages['nobodywarning'] = 'Send this message without text?';
+$messages['notsentwarning'] = 'Message has not been sent. Do you want to discard your message?';
+$messages['restoresavedcomposedata'] = 'A previously composed but unsent message was found.\n\nSubject: $subject\nSaved: $date\n\nDo you want to restore this message?';
+$messages['noldapserver'] = 'Please select an ldap server to search.';
+$messages['nosearchname'] = 'Please enter a contact name or email address.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = '$nr messages found.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['searchnomatch'] = 'Search returned no matches.';
+$messages['searching'] = 'Searching...';
+$messages['checking'] = 'Checking...';
+$messages['nospellerrors'] = 'No spelling errors found.';
+$messages['folderdeleted'] = 'Folder successfully deleted.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
+$messages['deletedsuccessfully'] = 'Successfully deleted.';
+$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 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...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['receiptsent'] = 'Successfully sent a read receipt.';
+$messages['errorsendingreceipt'] = 'Could not send the receipt.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'You cannot delete this identity, it\'s your last one.';
+$messages['forbiddencharacter'] = 'Folder name contains a forbidden character.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$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['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?';
+$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 occurred. 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.';
+?>
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index 92ec82617..61890a642 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -64,6 +64,7 @@ $labels['fromtoshort'] = '$from – $to of $count';
$labels['copy'] = 'Copy';
$labels['move'] = 'Move';
$labels['moveto'] = 'Move to...';
+$labels['copyto'] = 'Copy to...';
$labels['download'] = 'Download';
$labels['open'] = 'Open';
$labels['showattachment'] = 'Show';
diff --git a/program/localization/es_419/labels.inc b/program/localization/es_419/labels.inc
new file mode 100644
index 000000000..437295bf1
--- /dev/null
+++ b/program/localization/es_419/labels.inc
@@ -0,0 +1,423 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | localization/<lang>/labels.inc |
+ | |
+ | Localization file 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. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
+*/
+$labels['welcome'] = 'Bienvenido a $product';
+$labels['username'] = 'Usuario';
+$labels['password'] = 'Contraseña';
+$labels['server'] = 'Servidor';
+$labels['login'] = 'Login';
+$labels['logout'] = 'Salir';
+$labels['mail'] = 'Correo';
+$labels['settings'] = 'Configuración';
+$labels['addressbook'] = 'Libreta de Direcciones';
+$labels['inbox'] = 'Bandeja de Entrada';
+$labels['drafts'] = 'Borradores';
+$labels['sent'] = 'Enviados';
+$labels['trash'] = 'Papelera';
+$labels['show_real_foldernames'] = 'Mostrar el nombre real para carpetas especiales';
+$labels['subject'] = 'Tema';
+$labels['from'] = 'De';
+$labels['sender'] = 'Remitente';
+$labels['to'] = 'Para';
+$labels['cc'] = 'Cc';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Responder-a';
+$labels['date'] = 'Fecha';
+$labels['size'] = 'Tamaño';
+$labels['priority'] = 'Prioridad';
+$labels['organization'] = 'Organización';
+$labels['readstatus'] = 'Leer estado';
+$labels['listoptions'] = 'Listar opciones';
+$labels['mailboxlist'] = 'Carpetas';
+$labels['messagesfromto'] = 'Mensajes $from a $to de $count';
+$labels['threadsfromto'] = 'Hilo $from hasta $to de $count';
+$labels['messagenrof'] = 'Mensaje $nr de $count';
+$labels['fromtoshort'] = '$from - $to de $count';
+$labels['copy'] = 'Copiar';
+$labels['move'] = 'Mover';
+$labels['moveto'] = 'Mover a...';
+$labels['download'] = 'Descargar';
+$labels['open'] = 'Abrir';
+$labels['showattachment'] = 'Mostrar';
+$labels['showanyway'] = 'Mostrar de todos modos';
+$labels['filename'] = 'Nombre del archivo';
+$labels['filesize'] = 'Tamaño del archivo';
+$labels['addtoaddressbook'] = 'Agregar a la libreta de direcciones';
+$labels['sun'] = 'Dom';
+$labels['mon'] = 'Lun';
+$labels['tue'] = 'Mar';
+$labels['wed'] = 'Mié';
+$labels['thu'] = 'Jue';
+$labels['fri'] = 'Vie';
+$labels['sat'] = 'Sáb';
+$labels['sunday'] = 'Domingo';
+$labels['monday'] = 'Lunes';
+$labels['tuesday'] = 'Martes';
+$labels['wednesday'] = 'Miércoles';
+$labels['thursday'] = 'Jueves';
+$labels['friday'] = 'Viernes';
+$labels['saturday'] = 'Sábado';
+$labels['jan'] = 'Ene';
+$labels['feb'] = 'Feb';
+$labels['mar'] = 'Mar';
+$labels['apr'] = 'Abr';
+$labels['may'] = 'May';
+$labels['jun'] = 'Jun';
+$labels['jul'] = 'Jul';
+$labels['aug'] = 'Ago';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+$labels['longjan'] = 'Enero';
+$labels['longfeb'] = 'Febrero';
+$labels['longmar'] = 'Marzo';
+$labels['longapr'] = 'Abril';
+$labels['longmay'] = 'Mayo';
+$labels['longjun'] = 'Junio';
+$labels['longjul'] = 'Julio';
+$labels['longaug'] = 'Agosto';
+$labels['longsep'] = 'Septiembre';
+$labels['longoct'] = 'Octubre';
+$labels['longnov'] = 'Noviembre';
+$labels['longdec'] = 'Diciembre';
+$labels['today'] = 'Hoy';
+$labels['refresh'] = 'Actualizar';
+$labels['checkmail'] = 'Revisar si hay nuevos mensajes';
+$labels['compose'] = 'Escribir';
+$labels['writenewmessage'] = 'Crear mensaje nuevo';
+$labels['reply'] = 'Responder';
+$labels['replytomessage'] = 'Responder a remitente';
+$labels['replytoallmessage'] = 'Responder a la lista o al remittente y todos los destinatarios';
+$labels['replyall'] = 'Responder a todos';
+$labels['replylist'] = 'Responder a la lista';
+$labels['forward'] = 'Re-enviar';
+$labels['forwardinline'] = 'Reenviar en linea';
+$labels['forwardattachment'] = 'Re-enviar como archivo adjunto';
+$labels['forwardmessage'] = 'Re-enviar el mensaje';
+$labels['deletemessage'] = 'Eliminar el mensaje';
+$labels['movemessagetotrash'] = 'Mover a la papelera';
+$labels['printmessage'] = 'Imprimir este mensaje';
+$labels['previousmessage'] = 'Mostrar mensaje anterior';
+$labels['firstmessage'] = 'Mostrar primer mensaje';
+$labels['nextmessage'] = 'Mostrar el siguiente mensaje ';
+$labels['lastmessage'] = 'Mostrar el último mensaje';
+$labels['backtolist'] = 'Volver a la lista de mensajes';
+$labels['viewsource'] = 'Mostrar fuente';
+$labels['mark'] = 'Marcar';
+$labels['markmessages'] = 'Macar mensajes';
+$labels['markread'] = 'Como leido';
+$labels['markunread'] = 'Como no leido';
+$labels['markflagged'] = 'Como marcado';
+$labels['markunflagged'] = 'Como no marcado';
+$labels['moreactions'] = 'Más acciones...';
+$labels['more'] = 'Más';
+$labels['back'] = 'Atrás';
+$labels['options'] = 'Opciones';
+$labels['select'] = 'Seleccionar';
+$labels['all'] = 'Todos';
+$labels['none'] = 'Ninguno';
+$labels['currpage'] = 'Página actual';
+$labels['unread'] = 'No leido';
+$labels['flagged'] = 'Marcado';
+$labels['unanswered'] = 'No respondido';
+$labels['withattachment'] = 'Con archivo adjunto';
+$labels['deleted'] = 'Eliminado';
+$labels['undeleted'] = 'No eliminado';
+$labels['invert'] = 'Invertir';
+$labels['filter'] = 'Filtrar';
+$labels['list'] = 'Enumerar';
+$labels['threads'] = 'Hilos';
+$labels['expand-all'] = 'Expandir todos';
+$labels['expand-unread'] = 'Espandir no leidos';
+$labels['collapse-all'] = 'Colapsar todos';
+$labels['threaded'] = 'En hilo';
+$labels['autoexpand_threads'] = 'Expandir hilos';
+$labels['do_expand'] = 'todos los hilos';
+$labels['expand_only_unread'] = 'solo con mensajes no leidos';
+$labels['fromto'] = 'De/Para';
+$labels['flag'] = 'Marcar';
+$labels['attachment'] = 'Archivo adjunto';
+$labels['nonesort'] = 'Ninguno';
+$labels['sentdate'] = 'Fecha de envío';
+$labels['arrival'] = 'Fecha de recepción';
+$labels['asc'] = 'ascendiente';
+$labels['desc'] = 'descendiente';
+$labels['listcolumns'] = 'Enumerar columnas';
+$labels['listsorting'] = 'Ordenar columnas';
+$labels['listorder'] = 'Ordenado por';
+$labels['folderactions'] = 'Acciones de carpeta';
+$labels['compact'] = 'Comprimir';
+$labels['empty'] = 'Vaciar';
+$labels['importmessages'] = 'Importar mensajes';
+$labels['quota'] = 'Uso de disco';
+$labels['unknown'] = 'desconocido';
+$labels['unlimited'] = 'ilimitado';
+$labels['quicksearch'] = 'Búsqueda rápida';
+$labels['searchmod'] = 'Modificadores de búsqueda';
+$labels['msgtext'] = 'Mensaje completo';
+$labels['body'] = 'Cuerpo';
+$labels['type'] = 'Tipo';
+$labels['namex'] = 'Nombre';
+$labels['openinextwin'] = 'Abrir en una ventana nueva';
+$labels['emlsave'] = 'Descargar (.eml)';
+$labels['changeformattext'] = 'Mostrar en texto plano';
+$labels['changeformathtml'] = 'Mostrar en formato HTML';
+$labels['editasnew'] = 'Editar como nuevo';
+$labels['send'] = 'Enviar';
+$labels['sendmessage'] = 'Enviar mensaje';
+$labels['savemessage'] = 'Guardar como borrador';
+$labels['addattachment'] = 'Adjuntar archivo';
+$labels['editortype'] = 'Tipo de editor';
+$labels['mailreplyintro'] = 'El $date, $sender escribió:';
+$labels['originalmessage'] = 'Mensaje Original';
+$labels['editidents'] = 'Editar identidades';
+$labels['resumeediting'] = 'Resumir edición';
+$labels['revertto'] = 'Revertir a';
+$labels['restore'] = 'Restaurar';
+$labels['restoremessage'] = '¿Restaurar mensaje?';
+$labels['responses'] = 'Respuestas';
+$labels['insertresponse'] = 'Insertar una respuesta';
+$labels['manageresponses'] = 'Administrar respuestas';
+$labels['savenewresponse'] = 'Guardar nueva respuesta';
+$labels['editresponses'] = 'Editar respuestas';
+$labels['editresponse'] = 'Editar respuesta';
+$labels['responsename'] = 'Nombre';
+$labels['attach'] = 'Adjuntar';
+$labels['attachments'] = 'Archivos adjuntos';
+$labels['uploadprogress'] = '$percent ($current de $total)';
+$labels['close'] = 'Cerrar';
+$labels['messageoptions'] = 'Opciones de mensaje';
+$labels['low'] = 'Bajo';
+$labels['lowest'] = 'Más bajo';
+$labels['normal'] = 'Normal';
+$labels['high'] = 'Alto';
+$labels['highest'] = 'Más alto';
+$labels['nosubject'] = '(sin título)';
+$labels['showimages'] = 'Mostrar imágenes';
+$labels['alwaysshow'] = 'Mostrar siempre las imagenes de $sender';
+$labels['isdraft'] = 'Este mensaje es un borrador.';
+$labels['andnmore'] = '$nr more...';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Texto plano';
+$labels['savesentmessagein'] = 'Guardar mensaje enviado en ';
+$labels['dontsave'] = 'No guardar';
+$labels['maxuploadsize'] = 'El tamaño máximo permitido por archivo es $size';
+$labels['addcc'] = 'Y Cc';
+$labels['addbcc'] = 'Y Bcc';
+$labels['addreplyto'] = 'Agregar Responder-a';
+$labels['mdnrequest'] = 'El remitente de este mensaje a pedido ser notificado cuando leas el mensaje. ¿Quieres notificar al remitente?';
+$labels['name'] = 'Nombre de pantalla';
+$labels['firstname'] = 'Primer nombre';
+$labels['surname'] = 'Apellido';
+$labels['middlename'] = 'Segundo Nombre';
+$labels['nameprefix'] = 'Prefijo';
+$labels['namesuffix'] = 'Sufijo';
+$labels['nickname'] = 'Sobrenombre';
+$labels['jobtitle'] = 'Puesto';
+$labels['department'] = 'Departamento';
+$labels['maidenname'] = 'Apellido de soltera';
+$labels['email'] = 'Email';
+$labels['phone'] = 'Teléfono';
+$labels['address'] = 'Dirección';
+$labels['street'] = 'Calle';
+$labels['locality'] = 'Ciudad';
+$labels['zipcode'] = 'Código Postal';
+$labels['region'] = 'Estado/Provincia';
+$labels['country'] = 'Pais';
+$labels['birthday'] = 'Cumpleaños';
+$labels['anniversary'] = 'Aniversario';
+$labels['website'] = 'Sitio Web';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notas';
+$labels['male'] = 'masculino';
+$labels['female'] = 'femenino';
+$labels['manager'] = 'Administrador';
+$labels['assistant'] = 'Asistente';
+$labels['spouse'] = 'Conjuge';
+$labels['allfields'] = 'Todos los campos';
+$labels['search'] = 'Buscar';
+$labels['advsearch'] = 'Busqueda Avanzada';
+$labels['advanced'] = 'Avanzado';
+$labels['other'] = 'Otro';
+$labels['typehome'] = 'Casa';
+$labels['typework'] = 'Trabajo';
+$labels['typeother'] = 'Otro';
+$labels['typemobile'] = 'Móvil';
+$labels['typemain'] = 'Principal';
+$labels['typehomefax'] = 'Fax Casa';
+$labels['typeworkfax'] = 'Fax Oficina';
+$labels['typecar'] = 'Auto';
+$labels['typevideo'] = 'Video';
+$labels['typeassistant'] = 'Assistente';
+$labels['typehomepage'] = 'Página Web';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Perfil';
+$labels['addfield'] = 'Agregar campo...';
+$labels['addcontact'] = 'Agregar nuevo contacto';
+$labels['editcontact'] = 'Editar contacto';
+$labels['contacts'] = 'Contactos';
+$labels['contactproperties'] = 'Propiedades del contacto';
+$labels['personalinfo'] = 'Información Personal';
+$labels['edit'] = 'Editar';
+$labels['cancel'] = 'Cancelar';
+$labels['save'] = 'Guardar';
+$labels['delete'] = 'Eliminar';
+$labels['rename'] = 'Renombrar';
+$labels['addphoto'] = 'Agregar';
+$labels['replacephoto'] = 'Remplazar';
+$labels['uploadphoto'] = 'Subir foto';
+$labels['newcontact'] = 'Crear nueva tarjeta de contacto';
+$labels['deletecontact'] = 'Eliminar contactos seleccionados';
+$labels['composeto'] = 'Escribir mail a ';
+$labels['contactsfromto'] = 'Contactos $from hasta $to de $count';
+$labels['print'] = 'Imprimir';
+$labels['export'] = 'Exportar';
+$labels['exportall'] = 'Exportar todo';
+$labels['exportsel'] = 'Exportar los seleccionados';
+$labels['exportvcards'] = 'Exportar contactos en formato vCard';
+$labels['newcontactgroup'] = 'Crear grupo de contactos nuevo';
+$labels['grouprename'] = 'Renombrar grupo';
+$labels['groupdelete'] = 'Eliminar grupo';
+$labels['groupremoveselected'] = 'Eliminar contactos seleccionados del grupo';
+$labels['previouspage'] = 'Mostrar página anterior';
+$labels['firstpage'] = 'Mostrar primera página';
+$labels['nextpage'] = 'Mostrar página siguiente';
+$labels['lastpage'] = 'Mostrar última página';
+$labels['group'] = 'Grupo';
+$labels['groups'] = 'Grupos';
+$labels['listgroup'] = 'Mostrar miembros del grupo';
+$labels['personaladrbook'] = 'Direcciones personales';
+$labels['searchsave'] = 'Guardar búsqueda';
+$labels['searchdelete'] = 'Eliminar busqueda';
+$labels['import'] = 'Importar';
+$labels['importcontacts'] = 'Importar contactos';
+$labels['importfromfile'] = 'Importar desde archivo';
+$labels['importtarget'] = 'Agregar contactos a';
+$labels['importreplace'] = 'Remplazar la libreta de direcciones completa';
+$labels['importgroups'] = 'Importar tareas del grupo';
+$labels['importgroupsall'] = 'Todo (crear grupos si es necesario)';
+$labels['done'] = 'Listo';
+$labels['about'] = 'Sobre';
+$labels['preferences'] = 'Preferencias';
+$labels['userpreferences'] = 'Preferencias de usuario ';
+$labels['editpreferences'] = 'Editar preferencias de usuario ';
+$labels['identities'] = 'identidades';
+$labels['manageidentities'] = 'Administrar identidades para esta cuenta ';
+$labels['newidentity'] = 'Identidad nueva ';
+$labels['newitem'] = 'Elemento nuevo ';
+$labels['edititem'] = 'Editar elemento ';
+$labels['preferhtml'] = 'Mostrar HTML ';
+$labels['htmlmessage'] = 'Mensaje HTML ';
+$labels['digitalsig'] = 'Firma digital';
+$labels['dateformat'] = 'Formato de fecha';
+$labels['timeformat'] = 'Formato de hora';
+$labels['setdefault'] = 'Predeterminar';
+$labels['autodetect'] = 'Automático';
+$labels['language'] = 'Idioma';
+$labels['timezone'] = 'Zona horaria';
+$labels['pagesize'] = 'Columnas por página ';
+$labels['signature'] = 'Firma';
+$labels['showinextwin'] = 'Abrir mensaje en una ventana nueva ';
+$labels['composeextwin'] = 'Escribir en una ventana nueva ';
+$labels['htmleditor'] = 'Escribir mensajes HTML';
+$labels['htmlsignature'] = 'Firma HTML ';
+$labels['showemail'] = 'Mostrar dirección de email junto al nombre de pantalla';
+$labels['previewpane'] = 'Mostrar vista previa ';
+$labels['logoutclear'] = 'Vaciar la papelera al salir';
+$labels['logoutcompact'] = 'Comprimir la bandeja de entrada al salir';
+$labels['uisettings'] = 'Interfaz de usuario';
+$labels['ignore'] = 'ignorar';
+$labels['readwhendeleted'] = 'Marcar mensaje como leído al elimiarlo ';
+$labels['skipdeleted'] = 'No mostrar mensajes eliminados ';
+$labels['always'] = 'siempre ';
+$labels['showinlineimages'] = 'Mostrar imágenes adjuntas debajo del mensaje';
+$labels['autosavedraft'] = 'Guardar borrador automáticamente';
+$labels['everynminutes'] = 'cada $n minuto(s)';
+$labels['never'] = 'nunca';
+$labels['immediately'] = 'inmediatamente';
+$labels['messagesdisplaying'] = 'Mostrando mensajes';
+$labels['messagescomposition'] = 'Escribiendo mensajes';
+$labels['advancedoptions'] = 'Opciones avanzadas';
+$labels['mainoptions'] = 'Opciones Principales';
+$labels['browseroptions'] = 'Opciones del Navagador';
+$labels['section'] = 'Sección';
+$labels['maintenance'] = 'Mantenimiento';
+$labels['newmessage'] = 'Mensaje Nuevo';
+$labels['signatureoptions'] = 'Opciones de Firma';
+$labels['whenreplying'] = 'Al responder';
+$labels['replyempty'] = 'No citar el mensaje original ';
+$labels['replytopposting'] = 'comenzar mensaje nuevo arriba de la cita';
+$labels['replybottomposting'] = 'comenzar mensaje nuevo debajo de la cita';
+$labels['replyremovesignature'] = 'Al responder borrar la firma original del mensaje';
+$labels['autoaddsignature'] = 'Agregar firma automáticamente';
+$labels['newmessageonly'] = 'solo mensajes nuevos';
+$labels['insertsignature'] = 'insertar firma';
+$labels['spellcheckignoresyms'] = 'Ignorar palabras con símbolos';
+$labels['spellcheckignorenums'] = 'Ignorar palabras con números';
+$labels['addtodict'] = 'Agregar al diccionario';
+$labels['standardwindows'] = 'Tratar popups como ventanas comunes';
+$labels['asattachment'] = 'como adjunto';
+$labels['replyalldefault'] = 'responder a todos';
+$labels['folder'] = 'Carpeta';
+$labels['folders'] = 'Carpetas';
+$labels['foldername'] = 'Nombre de carpeta';
+$labels['messagecount'] = 'Mensajes';
+$labels['create'] = 'Crear';
+$labels['createfolder'] = 'Crear carpeta nueva';
+$labels['managefolders'] = 'Administrar carpetas';
+$labels['specialfolders'] = 'Capetas Especiales';
+$labels['properties'] = 'Propiedades';
+$labels['location'] = 'Ubicación';
+$labels['info'] = 'Información';
+$labels['getfoldersize'] = 'Click para ver el tamaño de la carpeta';
+$labels['changesubscription'] = 'Click para cambiar la subscripción';
+$labels['foldertype'] = 'Tipo de Carpeta';
+$labels['personalfolder'] = 'Carpeta Privada';
+$labels['otherfolder'] = 'Carpeta de otro usuario';
+$labels['sharedfolder'] = 'Carpeta pública';
+$labels['sortby'] = 'Ordenar por';
+$labels['sortasc'] = 'Ordenar ascendientemente';
+$labels['sortdesc'] = 'Ordenar descendientemente';
+$labels['undo'] = 'Deshacer';
+$labels['installedplugins'] = 'Extensiones instaladas';
+$labels['plugin'] = 'Extensión';
+$labels['version'] = 'Versión';
+$labels['source'] = 'Fuente';
+$labels['license'] = 'Licencia';
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+$labels['unicode'] = 'Unicode';
+$labels['english'] = 'Inglés';
+$labels['westerneuropean'] = 'Europeo Occidental';
+$labels['easterneuropean'] = 'Europeo Oriental';
+$labels['southeasterneuropean'] = 'Europeo Sur-Oriental';
+$labels['baltic'] = 'Baltico';
+$labels['arabic'] = 'Arabigo';
+$labels['greek'] = 'Griego';
+$labels['hebrew'] = 'Hebreo';
+$labels['turkish'] = 'Turko';
+$labels['nordic'] = 'Nordico';
+$labels['thai'] = 'Thai';
+$labels['celtic'] = 'Celta';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japonés';
+$labels['korean'] = 'Koreano';
+$labels['chinese'] = 'Chino';
+?>
diff --git a/program/localization/es_419/messages.inc b/program/localization/es_419/messages.inc
new file mode 100644
index 000000000..f9f243422
--- /dev/null
+++ b/program/localization/es_419/messages.inc
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | localization/<lang>/messages.inc |
+ | |
+ | Localization file 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. |
+ | |
+ +-----------------------------------------------------------------------+
+
+ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
+*/
+$messages['errortitle'] = '¡Ha ocurrido un error!';
+$messages['loginfailed'] = 'Falló el Login';
+$messages['cookiesdisabled'] = 'Su navegador no acepta cookies.';
+$messages['sessionerror'] = 'Su sesión es inválida o ha expirado.';
+$messages['storageerror'] = 'Ha fallado la conexión al servidor de almacenamiento.';
+$messages['servererror'] = '¡Error del servidor!';
+$messages['servererrormsg'] = 'Error del servidor: $msg';
+$messages['dberror'] = 'Error en la base de datos';
+?>
diff --git a/program/localization/es_ES/labels.inc b/program/localization/es_ES/labels.inc
index 66fcafd0b..11cf6174d 100644
--- a/program/localization/es_ES/labels.inc
+++ b/program/localization/es_ES/labels.inc
@@ -197,6 +197,14 @@ $labels['spellcheck'] = 'Corrector ortográfico';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Continuar edición';
$labels['revertto'] = 'Revertir a';
+$labels['responses'] = 'Respuestas';
+$labels['insertresponse'] = 'Insertar una respuesta';
+$labels['manageresponses'] = 'Gestionar respuestas';
+$labels['savenewresponse'] = 'Guardar nueva respuesta';
+$labels['editresponses'] = 'Editar respuestas';
+$labels['editresponse'] = 'Editar respuesta';
+$labels['responsename'] = 'Nombre';
+$labels['responsetext'] = 'Texto de respuesta';
$labels['attach'] = 'Adjuntar';
$labels['attachments'] = 'Adjuntos';
$labels['upload'] = 'Subir';
@@ -428,6 +436,9 @@ $labels['standardwindows'] = 'Gestionar ventanas emergentes como ventanas están
$labels['forwardmode'] = 'Reenvío de mensajes';
$labels['inline'] = 'en línea';
$labels['asattachment'] = 'como adjunto';
+$labels['replyallmode'] = 'Acción predeterminada del botón [Responder a todos]';
+$labels['replyalldefault'] = 'responder a todos';
+$labels['replyalllist'] = 'responder sólo a la lista de correo (si se encuentra)';
$labels['folder'] = 'Bandeja';
$labels['folders'] = 'Carpetas';
$labels['foldername'] = 'Nombre de bandeja';
diff --git a/program/localization/es_ES/messages.inc b/program/localization/es_ES/messages.inc
index 694544cca..4daa7a97a 100644
--- a/program/localization/es_ES/messages.inc
+++ b/program/localization/es_ES/messages.inc
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Mensaje enviado correctamente.';
$messages['savingmessage'] = 'Guardando mensaje...';
$messages['messagesaved'] = 'Mensaje guardado en borradores.';
$messages['successfullysaved'] = 'Guardado correctamente.';
+$messages['savingresponse'] = 'Guardando texto de respuesta...';
+$messages['deleteresponseconfirm'] = '¿Realmente quieres borrar este texto de respuesta?';
$messages['addedsuccessfully'] = 'Contacto añadido correctamente a la libreta de direcciones.';
$messages['contactexists'] = 'Ya existe un contacto con esta dirección de correo.';
$messages['contactnameexists'] = 'Ya existe un contacto con el mismo nombre.';
diff --git a/program/localization/fi_FI/labels.inc b/program/localization/fi_FI/labels.inc
index 1e5e26193..2638bd093 100644
--- a/program/localization/fi_FI/labels.inc
+++ b/program/localization/fi_FI/labels.inc
@@ -29,6 +29,7 @@ $labels['drafts'] = 'Luonnokset';
$labels['sent'] = 'Lähetetyt';
$labels['trash'] = 'Roskakori';
$labels['junk'] = 'Roskaposti';
+$labels['show_real_foldernames'] = 'Näytä erikoiskansioiden oikeat nimet';
$labels['subject'] = 'Aihe';
$labels['from'] = 'Lähettäjä';
$labels['sender'] = 'Lähettäjä';
@@ -196,6 +197,8 @@ $labels['spellcheck'] = 'Oikeinkirjoitus';
$labels['checkspelling'] = 'Tarkista oikeinkirjoitus';
$labels['resumeediting'] = 'Jatka muokkausta';
$labels['revertto'] = 'Muuta takaisin';
+$labels['restore'] = 'Palauta';
+$labels['restoremessage'] = 'Palautetaanko viesti?';
$labels['responses'] = 'Vastaukset';
$labels['manageresponses'] = 'Hallitse vastauksia';
$labels['savenewresponse'] = 'Tallenna uusi vastaus';
@@ -214,7 +217,7 @@ $labels['lowest'] = 'Matalin';
$labels['normal'] = 'Normaali';
$labels['high'] = 'Korkea';
$labels['highest'] = 'Korkein';
-$labels['nosubject'] = '(ei otsikkoa)';
+$labels['nosubject'] = '(ei aihetta)';
$labels['showimages'] = 'Näytä kuvat';
$labels['alwaysshow'] = 'Näytä aina lähettäjältä $sender saapuneet kuvat';
$labels['isdraft'] = 'Tämä on luonnosviesti.';
@@ -428,6 +431,9 @@ $labels['mailtoprotohandler'] = 'Rekisteröi mailto:-linkkien protokollakäsitte
$labels['standardwindows'] = 'Käsittele popup-ikkunoita tavallisina ikkunoina';
$labels['forwardmode'] = 'Viestin välitys';
$labels['asattachment'] = 'liitteenä';
+$labels['replyallmode'] = 'Oletustoiminto [Vastaa kaikille]-painikkeelle';
+$labels['replyalldefault'] = 'vastaa kaikille';
+$labels['replyalllist'] = 'vastaa pelkälle postituslistalle (jos havaittu)';
$labels['folder'] = 'Kansio';
$labels['folders'] = 'Kansiot';
$labels['foldername'] = 'Kansion nimi';
diff --git a/program/localization/fi_FI/messages.inc b/program/localization/fi_FI/messages.inc
index a94339af1..25dc0dc0d 100644
--- a/program/localization/fi_FI/messages.inc
+++ b/program/localization/fi_FI/messages.inc
@@ -79,9 +79,10 @@ $messages['nonamewarning'] = 'Anna nimi';
$messages['nopagesizewarning'] = 'Anna sivukoko';
$messages['nosenderwarning'] = 'Anna lähettäjän sähköpostiosoite';
$messages['norecipientwarning'] = 'Anna ainakin yksi vastaanottaja';
-$messages['nosubjectwarning'] = '"Otsikko"-kenttä on tyhjä. Haluatko kirjoittaa viestillesi otsikon?';
+$messages['nosubjectwarning'] = '"Aihe"-kenttä on tyhjä. Haluatko kirjoittaa viestillesi aiheen?';
$messages['nobodywarning'] = 'Lähetetäänkö viesti ilman tekstiä?';
$messages['notsentwarning'] = 'Viestiä ei lähetetty. Haluatko poistaa viestin?';
+$messages['restoresavedcomposedata'] = 'Löydettiin aiemmin luotu, mutta lähettämätön viesti.\n\nAihe: $subject\nTallennettu: $date\n\nHaluatko palauttaa tämän viestin?';
$messages['noldapserver'] = 'Valitse LDAP-palvelin';
$messages['nosearchname'] = 'Anna yhteystiedon nimi tai sähköpostiosoite';
$messages['notuploadedwarning'] = 'Kaikkia liitteitä ei ole vielä ladattu palvelimelle. Odota tai peruuta lataus.';
diff --git a/program/localization/fr_FR/labels.inc b/program/localization/fr_FR/labels.inc
index 14d1066f9..f846471c2 100644
--- a/program/localization/fr_FR/labels.inc
+++ b/program/localization/fr_FR/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Orthographe';
$labels['checkspelling'] = 'Vérifier l\'orthographe';
$labels['resumeediting'] = 'Retourner à l\'édition';
$labels['revertto'] = 'Revenir à';
+$labels['restore'] = 'Restaurer';
+$labels['restoremessage'] = 'Restaurer le message ?';
$labels['responses'] = 'Réponses';
$labels['insertresponse'] = 'Insérer une réponse';
$labels['manageresponses'] = 'Gérer les réponses';
@@ -436,6 +438,8 @@ $labels['standardwindows'] = 'Manipuler les menus surgissants comme des fenêtre
$labels['forwardmode'] = 'Transfert des messages';
$labels['inline'] = 'dans le corps';
$labels['asattachment'] = 'en pièce jointe';
+$labels['replyalldefault'] = 'Répondre à tous';
+$labels['replyalllist'] = 'Répondre uniquement à la liste de diffusion (si trouvée)';
$labels['folder'] = 'Dossier';
$labels['folders'] = 'Dossiers';
$labels['foldername'] = 'Nom du dossier';
diff --git a/program/localization/gl_ES/labels.inc b/program/localization/gl_ES/labels.inc
index 780d47d77..899f35c5e 100644
--- a/program/localization/gl_ES/labels.inc
+++ b/program/localization/gl_ES/labels.inc
@@ -15,29 +15,29 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
-$labels['welcome'] = 'Benvido a $product';
-$labels['username'] = 'Nome de usuario';
+$labels['welcome'] = 'Dámosche a benvida a $product';
+$labels['username'] = 'Nome de utente';
$labels['password'] = 'Contrasinal';
$labels['server'] = 'Servidor';
$labels['login'] = 'Acceder';
$labels['logout'] = 'Saír';
$labels['mail'] = 'Caixa de entrada';
$labels['settings'] = 'Axustes persoais';
-$labels['addressbook'] = 'Caderno de enderezos';
+$labels['addressbook'] = 'Axenda de enderezos';
$labels['inbox'] = 'Caixa de entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
-$labels['trash'] = 'Cubo do lixo';
+$labels['trash'] = 'Lixo';
$labels['junk'] = 'Correo lixo';
-$labels['show_real_foldernames'] = 'Amosar nomes reáis para cartafois especiáis';
+$labels['show_real_foldernames'] = 'Amosar nomes reais para cartafois especiais';
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
-$labels['to'] = 'Destinatario';
+$labels['to'] = 'Destinatario(a)';
$labels['cc'] = 'Copia (Cc)';
$labels['bcc'] = 'Copia oculta (Cco)';
-$labels['replyto'] = 'Respostar a (Reply-To)';
-$labels['followupto'] = 'Respostar a todos (Followup-To)';
+$labels['replyto'] = 'Responder a';
+$labels['followupto'] = 'Responder a todos';
$labels['date'] = 'Data';
$labels['size'] = 'Tamaño';
$labels['priority'] = 'Prioridade';
@@ -45,20 +45,20 @@ $labels['organization'] = 'Organización';
$labels['readstatus'] = 'Estado da lectura';
$labels['listoptions'] = 'Opcións de lista...';
$labels['mailboxlist'] = 'Cartafoles';
-$labels['messagesfromto'] = 'Mensaxes da $from á $to de $count';
-$labels['threadsfromto'] = 'Fíos do $from ao $to de $count';
+$labels['messagesfromto'] = 'Mensaxes de $from para $to de $count';
+$labels['threadsfromto'] = 'Fíos do $from para $to de $count';
$labels['messagenrof'] = 'Mensaxe $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
-$labels['moveto'] = 'Mover a...';
+$labels['moveto'] = 'Mover para...';
$labels['download'] = 'Descargar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Amosar';
-$labels['showanyway'] = 'Amosala de tódolos xeitos';
-$labels['filename'] = 'Nome de ficheiro';
-$labels['filesize'] = 'Tamaño de ficheiro';
-$labels['addtoaddressbook'] = 'Engadir ao caderno de enderezos';
+$labels['showanyway'] = 'Amosar de todos os xeitos';
+$labels['filename'] = 'Nome do ficheiro';
+$labels['filesize'] = 'Tamaño do ficheiro';
+$labels['addtoaddressbook'] = 'Engadir á Axenda de enderezos';
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -101,18 +101,18 @@ $labels['today'] = 'Hoxe';
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Procurar novas mensaxes';
$labels['compose'] = 'Redactar unha mensaxe';
-$labels['writenewmessage'] = 'Redactar unha mensaxe nova';
+$labels['writenewmessage'] = 'Redactar unha nova mensaxe';
$labels['reply'] = 'Responder';
-$labels['replytomessage'] = 'Respostar a mensaxe';
-$labels['replytoallmessage'] = 'Respostar á lista ou ao remitente e a tódolos destinatarios';
-$labels['replyall'] = 'Respostar a todos';
-$labels['replylist'] = 'Respostar á lista de correo';
+$labels['replytomessage'] = 'Responder a mensaxe';
+$labels['replytoallmessage'] = 'Responder á persoa remitente e a todas as destinatarias';
+$labels['replyall'] = 'Responder a todos';
+$labels['replylist'] = 'Responder á lista de correo';
$labels['forward'] = 'Reenviar';
-$labels['forwardinline'] = 'Reenviar inserido';
+$labels['forwardinline'] = 'Reenviar en liña';
$labels['forwardattachment'] = 'Reenviar como anexo';
$labels['forwardmessage'] = 'Reenviar a mensaxe';
$labels['deletemessage'] = 'Eliminar a mensaxe';
-$labels['movemessagetotrash'] = 'Mover a mensaxe ao cubo do lixo';
+$labels['movemessagetotrash'] = 'Mover a mensaxe para o lixo';
$labels['printmessage'] = 'Imprimir esta mensaxe';
$labels['previousmessage'] = 'Amosar a mensaxe anterior';
$labels['firstmessage'] = 'Amosar a primeira mensaxe';
@@ -149,9 +149,9 @@ $labels['expand-unread'] = 'Expandir os non lidos';
$labels['collapse-all'] = 'Contraer todos';
$labels['threaded'] = 'Agrupar conversas';
$labels['autoexpand_threads'] = 'Expandir os fíos de mensaxes';
-$labels['do_expand'] = 'tódolos fíos';
+$labels['do_expand'] = 'todos os fíos';
$labels['expand_only_unread'] = 'só con mensaxes non lidas';
-$labels['fromto'] = 'Remitente/Destinatario';
+$labels['fromto'] = 'De/Para';
$labels['flag'] = 'Marca';
$labels['attachment'] = 'Anexo';
$labels['nonesort'] = 'Ningunha';
@@ -160,7 +160,7 @@ $labels['arrival'] = 'Data de chegada';
$labels['asc'] = 'ascendente';
$labels['desc'] = 'descendente';
$labels['listcolumns'] = 'Enumerar columnas';
-$labels['listsorting'] = 'Ordenar pola columna';
+$labels['listsorting'] = 'Ordenar en columnas';
$labels['listorder'] = 'Ordenación';
$labels['listmode'] = 'Modo de vista da lista';
$labels['folderactions'] = 'Accións cos cartafoles';
@@ -171,12 +171,14 @@ $labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'descoñecido';
$labels['unlimited'] = 'ilimitado';
$labels['quicksearch'] = 'Busca rápida';
-$labels['resetsearch'] = 'Restablecer a busca';
-$labels['searchmod'] = 'Modificadores de busca';
-$labels['msgtext'] = 'Mensaxe enteira';
+$labels['resetsearch'] = 'Restabelecer a pesquisa';
+$labels['searchmod'] = 'Modificadores de pesquisa';
+$labels['msgtext'] = 'Toda a mensaxe';
$labels['body'] = 'Corpo';
-$labels['openinextwin'] = 'Abrir nunha nova fiestra';
-$labels['emlsave'] = 'Gardar (.eml)';
+$labels['type'] = 'Tipo';
+$labels['namex'] = 'Nome';
+$labels['openinextwin'] = 'Abrir nunha nova xanela';
+$labels['emlsave'] = 'Descargar (.eml)';
$labels['changeformattext'] = 'Amosar en texto plano';
$labels['changeformathtml'] = 'Amosar en HTML';
$labels['editasnew'] = 'Editar como nova';
@@ -195,6 +197,16 @@ $labels['spellcheck'] = 'Ortografía';
$labels['checkspelling'] = 'Revisar a ortografía';
$labels['resumeediting'] = 'Voltar á edición';
$labels['revertto'] = 'Voltar a';
+$labels['restore'] = 'Restaurar';
+$labels['restoremessage'] = 'Restaurar mensaxe?';
+$labels['responses'] = 'Respostas';
+$labels['insertresponse'] = 'Inserir unha resposta';
+$labels['manageresponses'] = 'Xestionar respostas';
+$labels['savenewresponse'] = 'Gardar a nova resposta';
+$labels['editresponses'] = 'Editar respostas';
+$labels['editresponse'] = 'Editar resposta ';
+$labels['responsename'] = 'Nome';
+$labels['responsetext'] = 'Texto de resposta';
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Ficheiros anexos';
$labels['upload'] = 'Cargar';
@@ -212,26 +224,26 @@ $labels['alwaysshow'] = 'Amosar sempre as imaxes nas mensaxes de $sender';
$labels['isdraft'] = 'Esta mensaxe é un borrador';
$labels['andnmore'] = '$nr máis...';
$labels['togglemoreheaders'] = 'Amosar máis cabecerias';
-$labels['togglefullheaders'] = 'Conmutar cabeceiras en bruto';
+$labels['togglefullheaders'] = 'Mudar os encabezados das mensaxes';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Só texto';
$labels['savesentmessagein'] = 'Gardar a mensaxe enviada en';
$labels['dontsave'] = 'non gardar';
-$labels['maxuploadsize'] = 'O tamaño máximo permitido por ficheiro é de $size';
-$labels['addcc'] = 'Engadir copia (CC)';
-$labels['addbcc'] = 'Engadir copia oculta (BCC)';
-$labels['addreplyto'] = 'Engadir respostar a (Reply-To)';
-$labels['addfollowupto'] = 'Engadir respostar a todos (Followup-To)';
-$labels['mdnrequest'] = 'O remitente desta mensaxe pediu ser notificado cando vostede a lea. Quere notificar ao remitente?';
+$labels['maxuploadsize'] = 'O tamaño máximo permitido para o ficheiro é de $size';
+$labels['addcc'] = 'Engadir Copia (CC)';
+$labels['addbcc'] = 'Engadir Copia oculta (BCC)';
+$labels['addreplyto'] = 'Engadir Responder a (Reply-To)';
+$labels['addfollowupto'] = 'Engadir Respostar a todos (Followup-To)';
+$labels['mdnrequest'] = 'A persoa remitente pediu ser notificada cando a mensaxe for lida. Queres enviar notificación á persoa remitente?';
$labels['receiptread'] = 'Notificación da entrega da mensaxe (lectura)';
-$labels['yourmessage'] = 'Esta é unha notificación da entrega da súa mensaxe';
-$labels['receiptnote'] = 'Nota: Esta notificación só confirma que a mensaxe se abriu no computador do destinatario. Non asegura que o destinatario a lera ou entendera o seu contido.';
+$labels['yourmessage'] = 'Esta é unha notificación da entrega da túa mensaxe';
+$labels['receiptnote'] = 'Nota: Esta notificación só confirma que a mensaxe se abriu no computador da persoa destinataria. Non asegura que a persoa destinataria a lera ou entendera o seu contido.';
$labels['name'] = 'Nome completo';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Apelidos';
$labels['middlename'] = 'Segundo nome';
-$labels['nameprefix'] = 'Prefixo';
-$labels['namesuffix'] = 'Sufixo';
+$labels['nameprefix'] = 'Forma de tratamento (Prefixo)';
+$labels['namesuffix'] = 'Forma de tratamento (Sufixo)';
$labels['nickname'] = 'Alcume';
$labels['jobtitle'] = 'Titulación';
$labels['department'] = 'Departamento';
@@ -249,13 +261,13 @@ $labels['birthday'] = 'Aniversario';
$labels['anniversary'] = 'Aniversario';
$labels['website'] = 'Sitio web';
$labels['instantmessenger'] = 'Mensaxería instantánea';
-$labels['notes'] = 'Notes';
+$labels['notes'] = 'Anotacións';
$labels['male'] = 'home';
$labels['female'] = 'muller';
$labels['manager'] = 'Xerente';
$labels['assistant'] = 'Asistente';
-$labels['spouse'] = 'Cónxuxe';
-$labels['allfields'] = 'Tódolos campos';
+$labels['spouse'] = 'Parella';
+$labels['allfields'] = 'Todos os campos';
$labels['search'] = 'Procurar';
$labels['advsearch'] = 'Procura avanzada';
$labels['advanced'] = 'Avanzado';
@@ -268,13 +280,13 @@ $labels['typemain'] = 'Principal';
$labels['typehomefax'] = 'Fax da casa';
$labels['typeworkfax'] = 'Fax do traballo';
$labels['typecar'] = 'Coche';
-$labels['typepager'] = 'Buscapersonas';
+$labels['typepager'] = 'Buscapersoas';
$labels['typevideo'] = 'Vídeo';
$labels['typeassistant'] = 'Asistente';
$labels['typehomepage'] = 'Páxina principal';
$labels['typeblog'] = 'Blogue';
$labels['typeprofile'] = 'Perfil';
-$labels['addfield'] = 'Engadir campo';
+$labels['addfield'] = 'Engadir campo...';
$labels['addcontact'] = 'Engadir novo contacto';
$labels['editcontact'] = 'Modificar este contacto';
$labels['contacts'] = 'Contactos';
@@ -307,20 +319,25 @@ $labels['nextpage'] = 'Amosar o seguinte grupo';
$labels['lastpage'] = 'Amosar o último grupo';
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
+$labels['listgroup'] = 'Lista de integrantes do grupo';
$labels['personaladrbook'] = 'Enderezos persoais';
$labels['searchsave'] = 'Gardar procura';
$labels['searchdelete'] = 'Eliminar procura';
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar desde ficheiro:';
-$labels['importreplace'] = 'Substituír completamente o caderno de enderezos';
-$labels['importdesc'] = 'Pode cargar contactos desde un caderno de enderezos preexistente.<br/>Pódense importar enderezos en formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por comas)';
-$labels['done'] = 'Rematado';
+$labels['importtarget'] = 'Engadir contactos a';
+$labels['importreplace'] = 'Substituír completamente a Axenda de enderezos';
+$labels['importgroups'] = 'Importar atribucións do grupo';
+$labels['importgroupsall'] = 'Todos (crear grupos, se for necesario)';
+$labels['importgroupsexisting'] = 'Só para os grupos existentes';
+$labels['importdesc'] = 'Podes engadir contactos desde unha axenda de enderezos xa existente.<br/>Pódense importar enderezos en formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por comas)';
+$labels['done'] = 'Feito!';
$labels['settingsfor'] = 'Axustes de';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
-$labels['userpreferences'] = 'Preferencias de usuario';
-$labels['editpreferences'] = 'Editar preferencias de usuario';
+$labels['userpreferences'] = 'Preferencias de utente';
+$labels['editpreferences'] = 'Editar preferencias de utente';
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Administrar as identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
@@ -333,14 +350,14 @@ $labels['messagepart'] = 'Parte';
$labels['digitalsig'] = 'Sinatura dixital';
$labels['dateformat'] = 'Formato da data';
$labels['timeformat'] = 'Formato da hora';
-$labels['prettydate'] = 'Data decorada';
+$labels['prettydate'] = 'Data sinalada';
$labels['setdefault'] = 'Usar como predeterminada';
$labels['autodetect'] = 'Detectar automáticamente';
-$labels['language'] = 'Linguaxe';
+$labels['language'] = 'Lingua';
$labels['timezone'] = 'Zona horaria';
$labels['pagesize'] = 'Liñas por páxina';
$labels['signature'] = 'Sinatura';
-$labels['dstactive'] = 'Cambio de hora según horario de verán';
+$labels['dstactive'] = 'Mudar a hora según horario de verán';
$labels['showinextwin'] = 'Abrir a mensaxe nunha nova xanela';
$labels['composeextwin'] = 'Redactar nunha xanela nova';
$labels['htmleditor'] = 'Redactar mensaxes HTML';
@@ -350,24 +367,24 @@ $labels['htmlsignature'] = 'Sinatura HTML';
$labels['showemail'] = 'Amosar enderezo de correo co nome en pantalla';
$labels['previewpane'] = 'Amosar previsualización';
$labels['skin'] = 'Aspecto da interface';
-$labels['logoutclear'] = 'Baleirar o cubo do lixo ao saír';
+$labels['logoutclear'] = 'Baleirar o lixo ao saír';
$labels['logoutcompact'] = 'Compactar a caixa de entrada ao saír';
-$labels['uisettings'] = 'Interface de usuario';
+$labels['uisettings'] = 'Interface de utente';
$labels['serversettings'] = 'Axustes do servidor';
-$labels['mailboxview'] = 'Vista das caixas de correo';
+$labels['mailboxview'] = 'Vista da caixa de correo';
$labels['mdnrequests'] = 'Cando se solicitan notificacións da entrega';
-$labels['askuser'] = 'preguntarme qué facer';
+$labels['askuser'] = 'preguntarme que facer';
$labels['autosend'] = 'enviar automáticamente';
-$labels['autosendknown'] = 'enviar aos meus contactos, noutros casos preguntarme';
+$labels['autosendknown'] = 'enviar aos meus contactos, noutros casos preguntar';
$labels['autosendknownignore'] = 'enviar aos meus contactos, noutros casos ignorar';
$labels['ignore'] = 'ignorar';
$labels['readwhendeleted'] = 'Marcar a mensaxe como lida ao eliminar';
-$labels['flagfordeletion'] = 'Marcar a mensaxe para eliminar no canto de eliminar';
+$labels['flagfordeletion'] = 'Marcar a mensaxe para eliminar en vez de eliminar';
$labels['skipdeleted'] = 'Non amosar as mensaxes marcadas como eliminadas';
-$labels['deletealways'] = 'Eliminar as mensaxes aínda que non se poidan gardar no cubo do lixo';
+$labels['deletealways'] = 'Se falla Mover mensaxes para o lixo, eliminalas';
$labels['deletejunk'] = 'Borrar automáticamente as mensaxes no cartafol "Correo lixo"';
$labels['showremoteimages'] = 'Amosar as imaxes remotas';
-$labels['fromknownsenders'] = 'de remitentes coñecidos';
+$labels['fromknownsenders'] = 'con remite coñecido';
$labels['always'] = 'sempre';
$labels['showinlineimages'] = 'Amosar as imaxes anexas baixo a mensaxe';
$labels['autosavedraft'] = 'Gardar borrador automáticamente';
@@ -383,27 +400,27 @@ $labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Conforme ao RFC 2047 (outros)';
$labels['force7bit'] = 'Usar MIME para codificar caracteres de 8 bits';
$labels['advancedoptions'] = 'Opcións avanzadas';
-$labels['focusonnewmessage'] = 'Enfocar o navegador se hai mensaxes novas';
-$labels['checkallfolders'] = 'Procurar novas mensaxes en tódolos cartafoles';
+$labels['focusonnewmessage'] = 'Centrar a xanela do navegador en novas mensaxes';
+$labels['checkallfolders'] = 'Procurar novas mensaxes en todos os cartafoles';
$labels['displaynext'] = 'Logo de eliminar ou mover unha mensaxe ir á mensaxe seguinte';
$labels['defaultfont'] = 'Fonte por defecto da mensaxe HTML';
$labels['mainoptions'] = 'Opcións principais';
$labels['browseroptions'] = 'Opcións do navegador';
$labels['section'] = 'Sección';
$labels['maintenance'] = 'Mantemento';
-$labels['newmessage'] = 'Mensaxes novas';
+$labels['newmessage'] = 'Nova mensaxe';
$labels['signatureoptions'] = 'Opcións da firma';
-$labels['whenreplying'] = 'Ao respostar';
+$labels['whenreplying'] = 'Ao responder';
$labels['replyempty'] = 'non citar a mensaxe orixinal';
-$labels['replytopposting'] = 'comezar a nova mensaxe enriba da orixinal';
-$labels['replybottomposting'] = 'comezar a nova mensaxe embaixo da orixinal';
-$labels['replyremovesignature'] = 'Eliminar a firma do remitente ao respostar';
+$labels['replytopposting'] = 'comezar a nova mensaxe antes da orixinal';
+$labels['replybottomposting'] = 'comezar a nova mensaxe despois da orixinal';
+$labels['replyremovesignature'] = 'Eliminar a firma do remite ao respostar';
$labels['autoaddsignature'] = 'Engadir firma automáticamente';
$labels['newmessageonly'] = 'só nas mensaxes novas';
$labels['replyandforwardonly'] = 'só nas respostas e reenvíos';
$labels['insertsignature'] = 'Engadir firma';
$labels['previewpanemarkread'] = 'Marcar como lidas as mensaxes previsualizadas';
-$labels['afternseconds'] = 'logo de $n segundos';
+$labels['afternseconds'] = 'despois de $n segundos';
$labels['reqmdn'] = 'Solicitar sempre unha notificación da entrega';
$labels['reqdsn'] = 'Solicitar sempre unha notificación do estado de envío';
$labels['replysamefolder'] = 'Deixar as respostas no cartafol onde está a mensaxe á que se responde';
@@ -421,10 +438,13 @@ $labels['standardwindows'] = 'Manexar avisos emerxentes como xanelas estándar';
$labels['forwardmode'] = 'Reenvio de mensaxes';
$labels['inline'] = 'inserido';
$labels['asattachment'] = 'coma anexo';
+$labels['replyallmode'] = 'Acción dpor defecto do botón [Responder a todos]';
+$labels['replyalldefault'] = 'responder a todos';
+$labels['replyalllist'] = 'responder só para a lista (se for atopada)';
$labels['folder'] = 'Cartafol';
$labels['folders'] = 'Cartafoles';
$labels['foldername'] = 'Nome do cartafol';
-$labels['subscribed'] = 'Subscrito';
+$labels['subscribed'] = 'Subscrito(a)';
$labels['messagecount'] = 'Mensaxes';
$labels['create'] = 'Crear';
$labels['createfolder'] = 'Crear un novo cartafol';
@@ -432,14 +452,14 @@ $labels['managefolders'] = 'Xestionar cartafoles';
$labels['specialfolders'] = 'Cartafoles especiais';
$labels['properties'] = 'Propiedades';
$labels['folderproperties'] = 'Propiedades do cartafol';
-$labels['parentfolder'] = 'Cartafol padre';
+$labels['parentfolder'] = 'Cartafol principal';
$labels['location'] = 'Situación';
$labels['info'] = 'Información';
-$labels['getfoldersize'] = 'Prema para calcular o tamaño do cartafol';
-$labels['changesubscription'] = 'Prema para trocar a subscrición';
+$labels['getfoldersize'] = 'Preme para calcular o tamaño do cartafol';
+$labels['changesubscription'] = 'Preme para mudar a subscrición';
$labels['foldertype'] = 'Tipo do cartafol';
$labels['personalfolder'] = 'Cartafol privado';
-$labels['otherfolder'] = 'Cartafol de outro usuario';
+$labels['otherfolder'] = 'Cartafol de outra persoa usuaria';
$labels['sharedfolder'] = 'Cartafol público';
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orde ascendente';
diff --git a/program/localization/gl_ES/messages.inc b/program/localization/gl_ES/messages.inc
index 599f2ce41..069ff5d42 100644
--- a/program/localization/gl_ES/messages.inc
+++ b/program/localization/gl_ES/messages.inc
@@ -16,23 +16,23 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
$messages['errortitle'] = 'Ocurreu un erro!';
-$messages['loginfailed'] = 'O contrasinal ou o nome de usuario son incorrectos.';
-$messages['cookiesdisabled'] = 'O seu navegador non acepta galletas.';
-$messages['sessionerror'] = 'A súa sesión non é válida ou expirou.';
+$messages['loginfailed'] = 'O contrasinal ou o nome de utente son incorrectos.';
+$messages['cookiesdisabled'] = 'O teu navegador non acepta cookies.';
+$messages['sessionerror'] = 'A tú sesión non é válida ou expirou.';
$messages['storageerror'] = 'Fallou a conexión co servidor IMAP.';
$messages['servererror'] = 'Erro do servidor!';
$messages['servererrormsg'] = 'Erro do servidor: $msg';
$messages['dberror'] = 'Erro na base de datos!';
$messages['requesttimedout'] = 'A petición expirou';
-$messages['errorreadonly'] = 'Non foi posible realizar a operación. O cartafol é de só lectura.';
-$messages['errornoperm'] = 'Non foi posible realizar a operación. Permiso denegado.';
-$messages['erroroverquota'] = 'Non se pode realizar a operación, non hai espacio no disco.';
-$messages['erroroverquotadelete'] = 'Non hai espacio no disco. Utilice Maiúsculas+Supr para borrar unha mensaxe.';
-$messages['invalidrequest'] = 'Petición inválida!. Non se gardou ningún dato.';
+$messages['errorreadonly'] = 'Non foi posíbel realizar a operación. O cartafol é de só lectura.';
+$messages['errornoperm'] = 'Non foi posíbel realizar a operación. Permiso denegado.';
+$messages['erroroverquota'] = 'Non se pode realizar a operación, non hai espazo no disco.';
+$messages['erroroverquotadelete'] = 'Non hai espazo no disco. Usa Maiúsculas+Supr para borrar unha mensaxe.';
+$messages['invalidrequest'] = 'Petición non válida! Non se gardou ningún dato.';
$messages['invalidhost'] = 'O nome do servidor non é válido.';
$messages['nomessagesfound'] = 'Non se atoparon mensaxes nesta caixa de correo.';
-$messages['loggedout'] = 'Rematou correctamente a súa sesión. Ata logo!';
-$messages['mailboxempty'] = 'A caixa de correo está vacía.';
+$messages['loggedout'] = 'Rematou correctamente a tú sesión. Até logo!';
+$messages['mailboxempty'] = 'A caixa de correo está baleira.';
$messages['refreshing'] = 'A refrescar...';
$messages['loading'] = 'Cargando...';
$messages['uploading'] = 'Cargando ficheiro...';
@@ -42,44 +42,49 @@ $messages['checkingmail'] = 'Ã procura de novas mensaxes...';
$messages['sendingmessage'] = 'Enviando mensaxe...';
$messages['messagesent'] = 'A mensaxe enviouse correctamente.';
$messages['savingmessage'] = 'Gardando mensaxe...';
-$messages['messagesaved'] = 'A mensaxe gardouse en "Borradores';
+$messages['messagesaved'] = 'A mensaxe gardouse en "Borradores"';
$messages['successfullysaved'] = 'Gardado correctamente.';
-$messages['addedsuccessfully'] = 'O contacto engadiuse correctamente ao caderno de enderezos.';
+$messages['savingresponse'] = 'Gardar texto de resposta...';
+$messages['deleteresponseconfirm'] = 'Realmente queres borrar este texto de resposta?';
+$messages['addedsuccessfully'] = 'O contacto engadiuse correctamente á Axenda de enderezos.';
$messages['contactexists'] = 'Xa existe un contacto con este enderezo de correo electrónico.';
$messages['contactnameexists'] = 'Xa existe un contacto con este nome.';
-$messages['blockedimages'] = 'Estanse a bloquear as imaxes remotas para protexer a súa privacidade.';
-$messages['encryptedmessage'] = 'Non se pode amosar a mensaxe porque está cifrada.';
+$messages['blockedimages'] = 'Estanse a bloquear as imaxes remotas para protexer a túa privacidade.';
+$messages['encryptedmessage'] = 'Sentímolo! Non se pode amosar a mensaxe porque está cifrada.';
$messages['nocontactsfound'] = 'Non se atoparon contactos.';
$messages['contactnotfound'] = 'Non se atopou o contacto solicitado.';
-$messages['contactsearchonly'] = 'Introduza algún termo para atopar contactos';
+$messages['contactsearchonly'] = 'Introduce algún termo para atopar contactos';
$messages['sendingfailed'] = 'Fallou o envío da mensaxe.';
-$messages['senttooquickly'] = 'Por favor, espere $sec segundos antes de enviar esta mensaxe.';
-$messages['errormoving'] = 'Non foi posible mover a(s) mensaxe(s).';
-$messages['errorcopying'] = 'Non foi posible copiar a(s) mensaxe(s).';
-$messages['errordeleting'] = 'Non foi posible eliminar a(s) mensaxe(s).';
-$messages['errormarking'] = 'Non foi posible marcar a(s) mensaxe(s).';
-$messages['deletecontactconfirm'] = 'Quere eliminar o(s) contacto(s) seleccionado(s)?';
-$messages['deletegroupconfirm'] = 'Quere eliminar o grupo seleccionado?';
-$messages['deletemessagesconfirm'] = 'Quere eliminar a(s) mensaxe(s) seleccionadas?';
-$messages['deletefolderconfirm'] = 'Quere eliminar este cartafol?';
-$messages['purgefolderconfirm'] = 'Quere eliminar tódalas mensaxes neste cartafol?';
+$messages['senttooquickly'] = 'Por favor, espera $sec segundos antes de enviar esta mensaxe.';
+$messages['errorsavingsent'] = 'Houbo un erro ao gardar a mensaxe enviada.';
+$messages['errorsaving'] = 'Houbo un erro ao gardar.';
+$messages['errormoving'] = 'Non foi posíbel mover a(s) mensaxe(s).';
+$messages['errorcopying'] = 'Non foi posíbel copiar a(s) mensaxe(s).';
+$messages['errordeleting'] = 'Non foi posíbel eliminar a(s) mensaxe(s).';
+$messages['errormarking'] = 'Non foi posíbel marcar a(s) mensaxe(s).';
+$messages['deletecontactconfirm'] = 'Queres eliminar o(s) contacto(s) seleccionado(s)?';
+$messages['deletegroupconfirm'] = 'Queres eliminar o grupo seleccionado?';
+$messages['deletemessagesconfirm'] = 'Queres eliminar a(s) mensaxe(s) seleccionadas?';
+$messages['deletefolderconfirm'] = 'Queres eliminar este cartafol?';
+$messages['purgefolderconfirm'] = 'Queres eliminar todas as mensaxes neste cartafol?';
$messages['contactdeleting'] = 'Eliminando o(s) contacto(s)...';
$messages['groupdeleting'] = 'Eliminando o grupo...';
$messages['folderdeleting'] = 'Eliminando o cartafol...';
$messages['foldermoving'] = 'Movendo o cartafol...';
$messages['foldersubscribing'] = 'Subscribindo o cartafol...';
$messages['folderunsubscribing'] = 'Desubscribindo o cartafol...';
-$messages['formincomplete'] = 'Non se cumprimentou completamente o formulario.';
-$messages['noemailwarning'] = 'Por favor, introduza un enderezo de correo electrónico válido.';
-$messages['nonamewarning'] = 'Por favor, introduza un nome.';
-$messages['nopagesizewarning'] = 'Por favor, introduza un tamaño de páxina.';
-$messages['nosenderwarning'] = 'Por favor, introduza o enderezo de correo electrónico do remitente.';
-$messages['norecipientwarning'] = 'Por favor, introduza polo menos un destinatario.';
-$messages['nosubjectwarning'] = 'O campo "Asunto" está baleiro. Desexa completalo?';
-$messages['nobodywarning'] = 'Quere enviar esta mensaxe sen texto?';
-$messages['notsentwarning'] = 'A mensaxe non se enviou. Quere descartala?';
-$messages['noldapserver'] = 'Por favor, elixa un servidor LDAP para buscar.';
-$messages['nosearchname'] = 'Por favor, introduza un nome ou un enderezo de correo electrónico.';
+$messages['formincomplete'] = 'O formulario non foi completamente cuberto.';
+$messages['noemailwarning'] = 'Por favor, engade un enderezo de correo electrónico válido.';
+$messages['nonamewarning'] = 'Por favor, engade un nome.';
+$messages['nopagesizewarning'] = 'Por favor, engade un tamaño de páxina.';
+$messages['nosenderwarning'] = 'Por favor, engade o enderezo de correo electrónico do remite.';
+$messages['norecipientwarning'] = 'Por favor, engade polo menos unha persoa destinataria.';
+$messages['nosubjectwarning'] = 'O campo "Asunto" está baleiro. Queres completalo?';
+$messages['nobodywarning'] = 'Queres enviar esta mensaxe sen texto?';
+$messages['notsentwarning'] = 'A mensaxe non se enviou. Queres descartala?';
+$messages['restoresavedcomposedata'] = 'Foi atopada unha mensaxe que non se enviara.\n\nSubject: $subject\nSaved: $date\n\n¿queres restaurar esta mensaxe?';
+$messages['noldapserver'] = 'Por favor, elixe un servidor LDAP para buscar.';
+$messages['nosearchname'] = 'Por favor, engade un nome ou un enderezo de correo electrónico.';
$messages['notuploadedwarning'] = 'Aínda non se cargaron tódolos ficheiros. Por favor, agarde ou cancele a carga.';
$messages['searchsuccessful'] = 'Atopáronse $nr mensaxes.';
$messages['contactsearchsuccessful'] = 'Atopáronse $nr contactos.';
@@ -87,79 +92,85 @@ $messages['searchnomatch'] = 'A busca non atopou coincidencias.';
$messages['searching'] = 'Buscando...';
$messages['checking'] = 'Comprobando...';
$messages['nospellerrors'] = 'Non hai erros ortográficos.';
-$messages['folderdeleted'] = 'O cartafol eliminouse correctamente.';
-$messages['foldersubscribed'] = 'O cartafol suscribiuse correctamente.';
-$messages['folderunsubscribed'] = 'O cartafol desuscribiuse correctamente.';
+$messages['folderdeleted'] = 'O cartafol foi eliminado correctamente.';
+$messages['foldersubscribed'] = 'O cartafol subscribiuse correctamente.';
+$messages['folderunsubscribed'] = 'O cartafol desubscribiuse correctamente.';
$messages['folderpurged'] = 'O cartafol purgouse correctamente.';
$messages['folderexpunged'] = 'O cartafol baleirouse correctamente.';
$messages['deletedsuccessfully'] = 'Eliminouse correctamente.';
$messages['converting'] = 'Eliminando o formato da mensaxe...';
-$messages['messageopenerror'] = 'Non foi posible cargar a mensaxe desde o servidor.';
+$messages['messageopenerror'] = 'Non foi posíbel cargar a mensaxe desde o servidor.';
$messages['fileuploaderror'] = 'Fallou a carga do ficheiro.';
$messages['filesizeerror'] = 'O ficheiro cargado é máis grande que o tamaño máximo de $size.';
-$messages['sourceisreadonly'] = 'A orixe é de só lectura.';
-$messages['errorsavingcontact'] = 'Non foi posible gardar o contacto.';
+$messages['copysuccess'] = 'Copiáronse correctamente $nr contactos.';
+$messages['movesuccess'] = 'Movidos con suceso $nr contactos.';
+$messages['copyerror'] = 'Non foi posíbel copiar contactos.';
+$messages['moveerror'] = 'Non foi posíbel mover contactos.';
+$messages['sourceisreadonly'] = 'Este enderezo de orixe é de só lectura.';
+$messages['errorsavingcontact'] = 'Non foi posíbel gardar o contacto.';
$messages['movingmessage'] = 'Movendo a(s) mensaxe(s)...';
$messages['copyingmessage'] = 'Copiando a(s) mensaxe(s)...';
$messages['copyingcontact'] = 'Copiando o(s) contacto(s)...';
+$messages['movingcontact'] = 'Movendo contacto(s)...';
$messages['deletingmessage'] = 'Eliminando a(s) mensaxe(s)...';
$messages['markingmessage'] = 'Marcando a(s) mensaxe(s)...';
$messages['addingmember'] = 'Engadindo o(s) contacto(s) ao grupo...';
$messages['removingmember'] = 'Eliminando o(s) contacto(s) do grupo...';
$messages['receiptsent'] = 'A notificación da entrega enviouse correctamente.';
-$messages['errorsendingreceipt'] = 'Non foi posible enviar a notificación da entrega.';
-$messages['deleteidentityconfirm'] = 'Quere eliminar esta identidade?';
-$messages['nodeletelastidentity'] = 'Non pode eliminar esta identidade, é a última.';
-$messages['forbiddencharacter'] = 'O nome do cartafol contén un carácter non válido.';
-$messages['selectimportfile'] = 'Por favor, escolla un ficheiro para cargar.';
-$messages['addresswriterror'] = 'Non se pode escribir no caderno de enderezos que escolleu.';
+$messages['errorsendingreceipt'] = 'Non foi posíbel enviar a notificación da entrega.';
+$messages['deleteidentityconfirm'] = 'Queres eliminar esta identidade?';
+$messages['nodeletelastidentity'] = 'Non podes eliminar esta identidade, é a última.';
+$messages['forbiddencharacter'] = 'O nome do cartafol contén un caracter non válido.';
+$messages['selectimportfile'] = 'Por favor, escolle un ficheiro para cargar.';
+$messages['addresswriterror'] = 'Non se pode escribir na Axenda de enderezos que escolleches.';
$messages['contactaddedtogroup'] = 'Engadiuse correctamente o contacto a este grupo.';
$messages['contactremovedfromgroup'] = 'Suprimiuse correctamente o contacto deste grupo.';
$messages['nogroupassignmentschanged'] = 'Non cambiou ningunha asignación de grupo.';
-$messages['importwait'] = 'A importar. Por favor, agarde...';
+$messages['importwait'] = 'A importar. Por favor, agarda...';
$messages['importformaterror'] = 'Fallou a importación! O ficheiro cargado non contén datos válidos.';
-$messages['importconfirm'] = '<b>Importáronse correctamente $inserted contactos. Ignoráronse $skipped contactos que xa existían</b>:<p><em>$names</em></p>';
+$messages['importconfirm'] = '<b>Importáronse correctamente $inserted contactos</b>';
$messages['importconfirmskipped'] = '<b>Ignoráronse $skipped existing entradas</b>';
-$messages['importmessagesuccess'] = 'Importados $nr mensaxes con éxito';
-$messages['importmessageerror'] = 'Fallou a importación! O arquivo subido non é unha mensaxe válida ou un ficheiro de caixa de correo';
+$messages['importmessagesuccess'] = 'Importadas $nr mensaxes con éxito';
+$messages['importmessageerror'] = 'Fallou a importación! O arquivo subido non é unha mensaxe válida ou un ficheiro de correo';
$messages['opnotpermitted'] = 'Operación non permitida!';
-$messages['nofromaddress'] = 'Falta o enderezo de correo electrónico na identidade que escolleu.';
-$messages['editorwarning'] = 'Se troca neste intre ao editor de texto plano, vai perder todo o formato do texto. Quere continuar?';
-$messages['httpreceivedencrypterror'] = 'Produciuse un erro fatal de configuración. Contacte ao administrador inmediatamente. <b>Non se enviou a súa mensaxe.</b>';
+$messages['nofromaddress'] = 'Falta o enderezo de correo electrónico na identidade que escolleches.';
+$messages['editorwarning'] = 'Se mudas agora ao editor de texto plano, vas perder todo o formato do texto. Queres continuar?';
+$messages['httpreceivedencrypterror'] = 'Produciuse un erro fatal de configuración. Contacta coa persoa administradora inmediatamente. <b>Non se enviou a túa mensaxe.</b>';
$messages['smtpconnerror'] = 'Erro SMTP ($code): Fallou a conexión co servidor.';
$messages['smtpautherror'] = 'Erro SMTP ($code): Fallou a autenticación.';
-$messages['smtpfromerror'] = 'Erro SMTP ($code): Non foi posible establecer o remitente "$from" ($msg).';
-$messages['smtptoerror'] = 'Erro SMTP ($code): Non foi posible engadir o destinatario "$to" ($msg).';
-$messages['smtprecipientserror'] = 'Erro SMTP: Non se pode analizar a lista de destinatarios.';
+$messages['smtpfromerror'] = 'Erro SMTP ($code): Non foi posíbel estabelecer o remite "$from" ($msg).';
+$messages['smtptoerror'] = 'Erro SMTP ($code): Non foi posíbel engadir a persoa destinataria "$to" ($msg).';
+$messages['smtprecipientserror'] = 'Erro SMTP: Non se pode analizar a lista de persoas destinatarias.';
$messages['smtperror'] = 'Erro SMTP: $msg';
$messages['emailformaterror'] = 'O enderezo de correo electrónico é incorrecto: $email.';
-$messages['toomanyrecipients'] = 'Especificou destinatarios de máis. Por favor, redúzaos a un máximo de $max.';
-$messages['maxgroupmembersreached'] = 'O número de membros do grupo excede o máximo de $max.';
-$messages['contactdelerror'] = 'Non foi posible eliminar o(s) contacto(s).';
+$messages['toomanyrecipients'] = 'Especificou persoas destinatarias de máis. Por favor, redúceas a un máximo de $max.';
+$messages['maxgroupmembersreached'] = 'O número de integrantes do grupo excede o máximo de $max.';
+$messages['internalerror'] = 'Produciuse un erro interno. Por favor, téntao de novo.';
+$messages['contactdelerror'] = 'Non foi posíbel eliminar o(s) contacto(s).';
$messages['contactdeleted'] = 'Borráronse correctamente o(s) contacto(s).';
-$messages['contactrestoreerror'] = 'Non foi posible restaurar o(s) contacto(s) borrado(s).';
+$messages['contactrestoreerror'] = 'Non foi posíbel restaurar o(s) contacto(s) borrado(s).';
$messages['contactrestored'] = 'Restauráronse correctamente o(s) contacto(s).';
$messages['groupdeleted'] = 'Borrouse correctamente o grupo.';
$messages['grouprenamed'] = 'Mudouse correctamente o nome do grupo.';
$messages['groupcreated'] = 'Creouse correctamente o grupo.';
-$messages['savedsearchdeleted'] = 'Borrouse correctamente a procura gardada.';
-$messages['savedsearchdeleteerror'] = 'Non foi posible borrar a procura gardada.';
-$messages['savedsearchcreated'] = 'Creouse correctamente a procura gardada.';
-$messages['savedsearchcreateerror'] = 'Non foi posible crear a procura gardada.';
+$messages['savedsearchdeleted'] = 'Borrouse correctamente a busca gardada.';
+$messages['savedsearchdeleteerror'] = 'Non foi posíbel eliminar a busca gardada.';
+$messages['savedsearchcreated'] = 'Creouse correctamente a busca gardada.';
+$messages['savedsearchcreateerror'] = 'Non foi posíbel crear a busca gardada.';
$messages['messagedeleted'] = 'Borráronse correctamente a(s) mensaxe(s).';
$messages['messagemoved'] = 'Movéronse correctamente a(s) mensaxe(s).';
$messages['messagecopied'] = 'Copiáronse correctamente a(s) mensaxe(s).';
$messages['messagemarked'] = 'Marcáronse correctamente a(s) mensaxe(s).';
-$messages['autocompletechars'] = 'Introduza polo menos $min caracteres para autocompletar.';
-$messages['autocompletemore'] = 'Atopáronse máis entradas concidintes. Por favor, introduza máis caracteres.';
+$messages['autocompletechars'] = 'Engade polo menos $min caracteres para autocompletar.';
+$messages['autocompletemore'] = 'Atopáronse máis entradas concidintes. Por favor, engade máis caracteres.';
$messages['namecannotbeempty'] = 'O nome non pode estar baleiro.';
$messages['nametoolong'] = 'O nome é longo de máis.';
$messages['folderupdated'] = 'O cartafol actualizouse correctamente.';
$messages['foldercreated'] = 'O cartafol creouse correctamente.';
$messages['invalidimageformat'] = 'O formato da imaxe non é válido.';
$messages['mispellingsfound'] = 'Atopáronse erros ortográficos na mensaxe.';
-$messages['parentnotwritable'] = 'Non foi posible crear/mover o cartafol no cartafol padre escollido porque non ten permisos.';
+$messages['parentnotwritable'] = 'Non foi posíbel crear/mover o cartafol para o cartafol principal que selecionaches porque non tes permisos.';
$messages['messagetoobig'] = 'A mensaxe é demasiado grande para procesala';
-$messages['attachmentvalidationerror'] = 'ATENCIÓN! Este anexo é sospeitoso porque o seu tipo non coincide o tipo declarado na mensaxe. Se non confía no remitente, non debería abrilo, porque podería conter un virus ou malware.<br/><br/><em>Tipo agardado: $expected; Tipo detectado: $detected</em>';
+$messages['attachmentvalidationerror'] = 'ATENCIÓN! Este anexo é sospeitoso porque o seu tipo non coincide co tipo declarado na mensaxe. Se non confías no remite, non deberías abrilo, porque podería conter un virus ou malware.<br/><br/><em>Tipo agardado: $expected; Tipo detectado: $detected</em>';
$messages['noscriptwarning'] = 'Atención: Este servicio de correo web precisa de Javascript!. Por favor, active javascript nas opción do seu navegador.';
?>
diff --git a/program/localization/hu_HU/labels.inc b/program/localization/hu_HU/labels.inc
index f8d6a1c23..1a2135433 100644
--- a/program/localization/hu_HU/labels.inc
+++ b/program/localization/hu_HU/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Helyesírás ellenőrzés';
$labels['checkspelling'] = 'Helyesírás-ellenőrzés';
$labels['resumeediting'] = 'Helyesírás-ellenőrzés vége';
$labels['revertto'] = 'Visszaállítás erre';
+$labels['restore'] = 'Visszaállítás';
+$labels['restoremessage'] = 'Üzenet visszaállítás';
$labels['responses'] = 'Válaszok';
$labels['insertresponse'] = 'Egy válasz beillesztése';
$labels['manageresponses'] = 'Válaszok kezelése';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'A felugró ablakok használata szokásos ablakkén
$labels['forwardmode'] = 'Üzenet továbbítás';
$labels['inline'] = 'beágyazott';
$labels['asattachment'] = 'csatolmányként';
+$labels['replyallmode'] = 'Alapértelemezett művelete a [Válasz mindenkinek] gombnak';
+$labels['replyalldefault'] = 'válasz mindenkinek';
+$labels['replyalllist'] = 'válasz a csak a levelező listára(ha levelezőlista)';
$labels['folder'] = 'Mappa';
$labels['folders'] = 'Mappák';
$labels['foldername'] = 'Mappa neve';
diff --git a/program/localization/hu_HU/messages.inc b/program/localization/hu_HU/messages.inc
index 79de6ed2b..f7eaa1394 100644
--- a/program/localization/hu_HU/messages.inc
+++ b/program/localization/hu_HU/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Legalább egy címzettet adjon meg';
$messages['nosubjectwarning'] = 'A Tárgy mező üres. Szeretné most kitölteni?';
$messages['nobodywarning'] = 'Elküldi az üzenetet üresen?';
$messages['notsentwarning'] = 'Az üzenet még nem lett elküldve. Eldobja az üzenetet?';
+$messages['restoresavedcomposedata'] = 'Egy elkezdett de el nem küldött üzenetet talált a program.\n\Tárgy: $subject\nMentve: $date\n\nSzeretnéd visszaállítani és folytatni ez az üzenetet?';
$messages['noldapserver'] = 'Adjon meg egy LDAP szervert a kereséshez';
$messages['nosearchname'] = 'Adja meg a kapcsolat nevét vagy e-mail címét';
$messages['notuploadedwarning'] = 'Még nem került feltöltésre minden csatolmány. Kérem várjon vagy állítsa le a feltöltést!';
diff --git a/program/localization/index.inc b/program/localization/index.inc
index 616999514..4496b056a 100644
--- a/program/localization/index.inc
+++ b/program/localization/index.inc
@@ -46,6 +46,7 @@ $rcube_languages = array(
'de_DE' => 'German (Deutsch)',
'de_CH' => 'German (Schweiz)',
'nl_NL' => 'Dutch (Nederlands)',
+ 'en_CA' => 'English (Canada)',
'en_GB' => 'English (GB)',
'en_US' => 'English (US)',
'eo' => 'Esperanto',
@@ -66,6 +67,7 @@ $rcube_languages = array(
'it_IT' => 'Italian (Italiano)',
'ja_JP' => 'Japanese (日本語)',
'km_KH' => 'Khmer (ភាសាážáŸ’មែរ)',
+ 'kn_IN' => 'Konkani (कोंकणी)',
'ko_KR' => 'Korean (한국어)',
'ku' => 'Kurdish (Kurmancî)',
'lv_LV' => 'Latvian (Latviešu)',
@@ -91,6 +93,7 @@ $rcube_languages = array(
'sl_SI' => 'Slovenian (SlovenÅ¡Äina)',
'es_AR' => 'Spanish (Argentina)',
'es_ES' => 'Spanish (Español)',
+ 'es_419' => 'Spanish (Latin America)',
'sv_SE' => 'Swedish (Svenska)',
'ta_IN' => 'Tamil (தமிழà¯)',
'th_TH' => 'Thai (ไทย)',
diff --git a/program/localization/it_IT/labels.inc b/program/localization/it_IT/labels.inc
index ac8e2a6d4..c9f23c64d 100644
--- a/program/localization/it_IT/labels.inc
+++ b/program/localization/it_IT/labels.inc
@@ -197,6 +197,16 @@ $labels['spellcheck'] = 'Controllo ortografico';
$labels['checkspelling'] = 'Controlla ortografia';
$labels['resumeediting'] = 'Torna al messaggio';
$labels['revertto'] = 'Ripristina';
+$labels['restore'] = 'Ripristina';
+$labels['restoremessage'] = 'Ripristinare il messaggio?';
+$labels['responses'] = 'Risposte';
+$labels['insertresponse'] = 'Inserisci una risposta';
+$labels['manageresponses'] = 'Gestione risposte';
+$labels['savenewresponse'] = 'Salva una nuova risposta';
+$labels['editresponses'] = 'Modifica risposte';
+$labels['editresponse'] = 'Modifica risposta';
+$labels['responsename'] = 'Nome';
+$labels['responsetext'] = 'Testo della Risposta';
$labels['attach'] = 'Allega';
$labels['attachments'] = 'Allegati';
$labels['upload'] = 'Aggiungi';
@@ -428,6 +438,9 @@ $labels['standardwindows'] = 'Gestisci i popup come finestre standard';
$labels['forwardmode'] = 'Inoltro messaggi';
$labels['inline'] = 'In linea';
$labels['asattachment'] = 'come allegato';
+$labels['replyallmode'] = 'Azione di defualt del bottone [Reply all]';
+$labels['replyalldefault'] = 'rispondi a tutti';
+$labels['replyalllist'] = 'rispondi solo alla mailing list (se disponibile)';
$labels['folder'] = 'Cartella';
$labels['folders'] = 'Cartelle';
$labels['foldername'] = 'Nome cartella';
diff --git a/program/localization/it_IT/messages.inc b/program/localization/it_IT/messages.inc
index 0fd084f1b..47db415b4 100644
--- a/program/localization/it_IT/messages.inc
+++ b/program/localization/it_IT/messages.inc
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Messaggio inviato correttamente';
$messages['savingmessage'] = 'Salvataggio messaggio...';
$messages['messagesaved'] = 'Messaggio salvato in bozze';
$messages['successfullysaved'] = 'Salvato correttamente';
+$messages['savingresponse'] = 'Salvataggio della risposta...';
+$messages['deleteresponseconfirm'] = 'Sei sicuro di voler eliminare questa risposta?';
$messages['addedsuccessfully'] = 'Contatto aggiunto alla rubrica';
$messages['contactexists'] = 'Esiste già un contatto con questo indirizzo e-mail';
$messages['contactnameexists'] = 'Esiste già un contatto con questo nome';
@@ -80,6 +82,7 @@ $messages['norecipientwarning'] = 'Per favore, immetti almeno un destinatario';
$messages['nosubjectwarning'] = 'L\'oggetto è vuoto. Vuoi inserirlo adesso?';
$messages['nobodywarning'] = 'Inviare il messaggio senza testo?';
$messages['notsentwarning'] = 'Il messaggio non è stato inviato. Vuoi annullare questo messaggio?';
+$messages['restoresavedcomposedata'] = 'E\' stato rilevato un precedente messaggio non inviato.\n\nSoggetto: $subject\nSalvato: $date\n\nVuoi ripristinare il messaggio?';
$messages['noldapserver'] = 'Per favore, scegli un server LDAP in cui ricercare';
$messages['nosearchname'] = 'Per favore, immetti un nome o un indirizzo e-mail';
$messages['notuploadedwarning'] = 'Non tutti gli allegati sono stati ancora caricati. Prego attendere, oppure cancellare il caricamento.';
diff --git a/program/localization/ja_JP/labels.inc b/program/localization/ja_JP/labels.inc
index ef52695bb..600a40088 100644
--- a/program/localization/ja_JP/labels.inc
+++ b/program/localization/ja_JP/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'スペル';
$labels['checkspelling'] = 'スペルãƒã‚§ãƒƒã‚¯';
$labels['resumeediting'] = '編集をå†é–‹';
$labels['revertto'] = 'å…ƒã«æˆ»ã™';
+$labels['restore'] = '回復';
+$labels['restoremessage'] = 'メッセージを回復ã—ã¾ã™ã‹?';
$labels['responses'] = '回答';
$labels['insertresponse'] = '回答を挿入';
$labels['manageresponses'] = '回答を管ç†';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'ãƒãƒƒãƒ—アップを通常ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¨ã
$labels['forwardmode'] = 'メッセージã®è»¢é€å½¢å¼';
$labels['inline'] = 'インライン';
$labels['asattachment'] = '添付ファイル';
+$labels['replyallmode'] = '「全員ã«è¿”ä¿¡ã€ãƒœã‚¿ãƒ³ã®æ—¢å®šã®å‹•ä½œ';
+$labels['replyalldefault'] = '全員ã«è¿”ä¿¡';
+$labels['replyalllist'] = 'メーリングリスト(ã¨ã‚ã‹ã‚Œã°)ã ã‘ã«è¿”ä¿¡';
$labels['folder'] = 'フォルダー';
$labels['folders'] = 'フォルダー';
$labels['foldername'] = 'フォルダーå';
diff --git a/program/localization/ja_JP/messages.inc b/program/localization/ja_JP/messages.inc
index abe5a6e7a..8b4296ba4 100644
--- a/program/localization/ja_JP/messages.inc
+++ b/program/localization/ja_JP/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'å°‘ãªãã¨ã‚‚1ã¤å®›å…ˆã‚’入力ã—ã¦ãã
$messages['nosubjectwarning'] = '件å(Subject)ã®æ¬„ãŒç©ºã§ã™ã€‚今ã€å…¥åŠ›ã—ã¾ã™ã‹?';
$messages['nobodywarning'] = '本文ã®ç„¡ã„メッセージをé€ä¿¡ã—ã¾ã™ã‹?';
$messages['notsentwarning'] = 'メッセージをé€ä¿¡ã—ã¾ã›ã‚“ã§ã—ãŸã€‚ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’破棄ã—ã¾ã™ã‹ã€‚';
+$messages['restoresavedcomposedata'] = '以å‰ã«ä½œæˆã—ã¦æœªé€ä¿¡ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã‚ã‚Šã¾ã™ã€‚\n\n件å: $subject\nä¿å­˜æ—¥: $date\n\nã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’回復ã—ã¾ã™ã‹?';
$messages['noldapserver'] = '検索ã™ã‚‹LDAPサーãƒãƒ¼ã‚’é¸æŠžã—ã¦ãã ã•ã„。';
$messages['nosearchname'] = '連絡先ã®åå‰ã‹é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ãã ã•ã„。';
$messages['notuploadedwarning'] = 'ã™ã¹ã¦ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¢ãƒƒãƒ—ロードを完了ã—ã¦ã„ã¾ã›ã‚“。今ã—ã°ã‚‰ãå¾…ã¤ã‹ã€å–り消ã—ã—ã¦ãã ã•ã„。';
diff --git a/program/localization/lb_LU/labels.inc b/program/localization/lb_LU/labels.inc
index cbd5a12a8..00a133af3 100644
--- a/program/localization/lb_LU/labels.inc
+++ b/program/localization/lb_LU/labels.inc
@@ -165,7 +165,7 @@ $labels['listorder'] = 'Sortéier-Reiefolleg';
$labels['listmode'] = 'Oplëschtungs-Modus';
$labels['folderactions'] = 'Dossiers-Aktiounen...';
$labels['compact'] = 'Kompaktéieren';
-$labels['empty'] = 'Eidel';
+$labels['empty'] = 'Eidel maachen';
$labels['importmessages'] = 'Messagen importéieren';
$labels['quota'] = 'Plazverbrauch';
$labels['unknown'] = 'onbekannt';
@@ -436,6 +436,9 @@ $labels['standardwindows'] = 'Popup-Fënstere wéi normal Fënstere behandelen';
$labels['forwardmode'] = 'Messagë-Weiderleedung';
$labels['inline'] = 'am Message';
$labels['asattachment'] = 'als Unhank';
+$labels['replyallmode'] = 'Standard-Aktioun vum [U jiddwereen äntweren]-Knäppchen';
+$labels['replyalldefault'] = 'u jiddwereen äntweren';
+$labels['replyalllist'] = 'just der Mailinglëscht äntweren (wann eng fonnt gëtt) ';
$labels['folder'] = 'Dossier';
$labels['folders'] = 'Dossieren';
$labels['foldername'] = 'Dossiersnumm';
diff --git a/program/localization/lt_LT/labels.inc b/program/localization/lt_LT/labels.inc
index 129b0de47..63194f275 100644
--- a/program/localization/lt_LT/labels.inc
+++ b/program/localization/lt_LT/labels.inc
@@ -197,6 +197,14 @@ $labels['spellcheck'] = 'Tikrinti rašybą';
$labels['checkspelling'] = 'Tikrinti rašybą';
$labels['resumeediting'] = 'Tęsti redagavimą';
$labels['revertto'] = 'Atstatyti į';
+$labels['responses'] = 'Atsakymai';
+$labels['insertresponse'] = 'Įterpti atsakymą';
+$labels['manageresponses'] = 'Tvarkyti atsakymus';
+$labels['savenewresponse'] = 'Įrašyti naują atsakymą';
+$labels['editresponses'] = 'Taisyti atsakymus';
+$labels['editresponse'] = 'Taisyti atsakymÄ…';
+$labels['responsename'] = 'Pavadinimas';
+$labels['responsetext'] = 'Atsakymo tekstas';
$labels['attach'] = 'PridÄ—ti failÄ…';
$labels['attachments'] = 'PridÄ—ti failai';
$labels['upload'] = 'Įkelti';
@@ -316,7 +324,11 @@ $labels['searchdelete'] = 'Pašalinti radinių aplanką';
$labels['import'] = 'Importuoti';
$labels['importcontacts'] = 'Importuoti adresatus';
$labels['importfromfile'] = 'Importuoti iš failo:';
+$labels['importtarget'] = 'Pridėti adresatus į';
$labels['importreplace'] = 'Perrašyti visą adresų knygą';
+$labels['importgroups'] = 'Importuoti priskyrimus grupÄ—ms';
+$labels['importgroupsall'] = 'Visus (sukurti trūkstamas grupes)';
+$labels['importgroupsexisting'] = 'Tik esamoms grupÄ—ms';
$labels['importdesc'] = 'Galite įkelti kontaktus iš jau turimos adresų knygos. <br/>Šiuo metu galima importuoti kontaktus iš <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> arba CSV (comma-separated) duomenų formatų.';
$labels['done'] = 'Baigta';
$labels['settingsfor'] = 'Nuostatos';
@@ -424,6 +436,9 @@ $labels['standardwindows'] = 'IÅ¡kylanÄiuosius langus traktuoti kaip įprastus'
$labels['forwardmode'] = 'Laiškų persiuntimo būdas';
$labels['inline'] = 'kaip citatÄ…';
$labels['asattachment'] = 'kaip priedas';
+$labels['replyallmode'] = 'Numatytasis mygtuko „Atsakyti visiems“ veiksmas';
+$labels['replyalldefault'] = 'atsakyti visiems';
+$labels['replyalllist'] = 'atsakyti el. pašto grupei (jei aptikta)';
$labels['folder'] = 'Aplankas';
$labels['folders'] = 'Aplankai';
$labels['foldername'] = 'Aplanko vardas';
diff --git a/program/localization/lt_LT/messages.inc b/program/localization/lt_LT/messages.inc
index f3feedd47..d9c83f873 100644
--- a/program/localization/lt_LT/messages.inc
+++ b/program/localization/lt_LT/messages.inc
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Laiškas sėkmingai nusiųstas.';
$messages['savingmessage'] = 'Laiškas įrašomas…';
$messages['messagesaved'] = 'LaiÅ¡kas įraÅ¡ytas į JuodraÅ¡Äių aplankÄ….';
$messages['successfullysaved'] = 'Sėkmingai įrašyta.';
+$messages['savingresponse'] = 'Įrašomas atsakymo tekstas…';
+$messages['deleteresponseconfirm'] = 'Ar tikrai norite pašalinti šį atsakymo tekstą?';
$messages['addedsuccessfully'] = 'Asmuo įtrauktas į adresų knygą.';
$messages['contactexists'] = 'Adresatas, turintis šį el. pašto adresą, jau egzistuoja.';
$messages['contactnameexists'] = 'Adresatas tokiu vardu jau egzistuoja.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Ieškotas adresatas nerastas.';
$messages['contactsearchonly'] = 'Įveskite reikšminius žodžius adresatų paieškai';
$messages['sendingfailed'] = 'Laiško išsiųsti nepavyko.';
$messages['senttooquickly'] = 'Turite luktelėti $sec sek., kad galėtumėte išsiųsti laišką.';
+$messages['errorsavingsent'] = 'Įrašant išsiųstą laišką, įvyko klaida.';
+$messages['errorsaving'] = 'Įvyko klaida įrašant.';
$messages['errormoving'] = 'Laiško(-ų) perkelti nepavyko.';
$messages['errorcopying'] = 'Laiško(-ų) nukopijuoti nepavyko.';
$messages['errordeleting'] = 'Laiško(-ų) pašalinti nepavyko.';
@@ -140,6 +144,7 @@ $messages['smtperror'] = 'SMTP klaida: $msg';
$messages['emailformaterror'] = 'Netinkamas el. pašto adresas: $email';
$messages['toomanyrecipients'] = 'Per daug gavėjų. Sumažinkite jų bent iki $max.';
$messages['maxgroupmembersreached'] = 'GrupÄ—s narių skaiÄius virÅ¡ijo maksimalų leistinÄ… ($max).';
+$messages['internalerror'] = 'Įvyko klaida. Prašom bandyti iš naujo.';
$messages['contactdelerror'] = 'Nepavyko pašalinti adresato(-ų).';
$messages['contactdeleted'] = 'Adresatas(-ai) sėkmingai pašalintas(-i).';
$messages['contactrestoreerror'] = 'Nepavyko atkurti pašalinto(-ų) adresato(-ų).';
diff --git a/program/localization/nl_NL/labels.inc b/program/localization/nl_NL/labels.inc
index b5f273659..58179eda5 100644
--- a/program/localization/nl_NL/labels.inc
+++ b/program/localization/nl_NL/labels.inc
@@ -105,7 +105,7 @@ $labels['writenewmessage'] = 'Maak een nieuw bericht';
$labels['reply'] = 'Beantwoorden';
$labels['replytomessage'] = 'Beantwoord het bericht';
$labels['replytoallmessage'] = 'Beantwoord lijst of afzender en alle ontvangers';
-$labels['replyall'] = 'Beantwoord alle ontvangers';
+$labels['replyall'] = 'Beantwoord iedereen';
$labels['replylist'] = 'Beantwoord lijst';
$labels['forward'] = 'Doorsturen';
$labels['forwardinline'] = 'Doorsturen in bericht';
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Spelling';
$labels['checkspelling'] = 'Controleer spelling';
$labels['resumeediting'] = 'Doorgaan met opstellen';
$labels['revertto'] = 'Terugwijzigen in';
+$labels['restore'] = 'Herstellen';
+$labels['restoremessage'] = 'Bericht herstellen?';
$labels['responses'] = 'Reacties';
$labels['insertresponse'] = 'Reactie invoegen';
$labels['manageresponses'] = 'Reacties beheren';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Behandel pop-ups als normale vensters';
$labels['forwardmode'] = 'Berichten doorsturen';
$labels['inline'] = 'invoegen';
$labels['asattachment'] = 'als bijlage';
+$labels['replyallmode'] = 'Standaardactie van [Beantwoord iedereen]-knop';
+$labels['replyalldefault'] = 'iedereen beantwoorden';
+$labels['replyalllist'] = 'alleen maillijst beantwoorden (indien gevonden)';
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Mapnaam';
diff --git a/program/localization/nl_NL/messages.inc b/program/localization/nl_NL/messages.inc
index f6081bd8e..bf8c41472 100644
--- a/program/localization/nl_NL/messages.inc
+++ b/program/localization/nl_NL/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Geef tenminste één ontvanger op.';
$messages['nosubjectwarning'] = 'U heeft geen onderwerp ingevoerd. Wilt u nu een onderwerp opgeven?';
$messages['nobodywarning'] = 'Dit bericht zonder inhoud versturen?';
$messages['notsentwarning'] = 'Het bericht is niet verstuurd. Wilt u uw bericht weggooien?';
+$messages['restoresavedcomposedata'] = 'Eerder opgesteld, maar niet-verzonden bericht gevonden.\n\nOnderwerp: $subject\nOpgeslagen: $date\n\nWilt u dit bericht herstellen?';
$messages['noldapserver'] = 'Selecteer een LDAP-server om te zoeken.';
$messages['nosearchname'] = 'Vul de naam of e-mailadres in van een contactpersoon.';
$messages['notuploadedwarning'] = 'Nog niet alle bijlagen zijn geüpload. Wacht even of annuleer de upload.';
diff --git a/program/localization/pt_BR/labels.inc b/program/localization/pt_BR/labels.inc
index e42b1ce95..e1df5854a 100644
--- a/program/localization/pt_BR/labels.inc
+++ b/program/localization/pt_BR/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Revisar';
$labels['checkspelling'] = 'Verificar ortografia';
$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
+$labels['restore'] = 'Restaurar';
+$labels['restoremessage'] = 'Restaurar mensagem?';
$labels['responses'] = 'Respostas';
$labels['insertresponse'] = 'Inserir uma resposta';
$labels['manageresponses'] = 'Gerenciar respostas';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Usar popups como janelas do navegador';
$labels['forwardmode'] = 'Encaminhamento de mensagens';
$labels['inline'] = 'Em linha (no corpo da mensagem)';
$labels['asattachment'] = 'como anexo';
+$labels['replyallmode'] = 'Ação padrão do botão [Responder a todos]';
+$labels['replyalldefault'] = 'responder a todos';
+$labels['replyalllist'] = 'responder somente à lista de discussão (se identificada)';
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc
index 823dad22e..4546ceea9 100644
--- a/program/localization/pt_BR/messages.inc
+++ b/program/localization/pt_BR/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Por favor, informe pelo menos um destinatári
$messages['nosubjectwarning'] = 'O campo "Assunto" está vazio. Deseja incluí-lo agora?';
$messages['nobodywarning'] = 'Enviar a mensagem sem texto?';
$messages['notsentwarning'] = 'A mensagem não foi enviada. Deseja descartar sua mensagem?';
+$messages['restoresavedcomposedata'] = 'Uma mensagem criada anteriormente, mas não enviada, foi localizada.\n\nTítulo: $subject\nSalva em: $date\n\nDeseja restaurar esta mensagem?';
$messages['noldapserver'] = 'Por favor, selecione um servidor LDAP para a pesquisa';
$messages['nosearchname'] = 'Por favor, informe o nome do contato ou seu endereço de e-mail.';
$messages['notuploadedwarning'] = 'Há anexos ainda não enviados. Aguarde ou cancele o envio.';
diff --git a/program/localization/pt_PT/labels.inc b/program/localization/pt_PT/labels.inc
index b6db8a41e..a4b419d21 100644
--- a/program/localization/pt_PT/labels.inc
+++ b/program/localization/pt_PT/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Corrector Ortográfico';
$labels['checkspelling'] = 'Verificar ortografia';
$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
+$labels['restore'] = 'Restaurar';
+$labels['restoremessage'] = 'Restaurar mensagem?';
$labels['responses'] = 'Respostas';
$labels['insertresponse'] = 'Insira uma resposta';
$labels['manageresponses'] = 'Gerir respostas';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Lidar com popups como janelas padrão';
$labels['forwardmode'] = 'Reencaminhamento de mensagens';
$labels['inline'] = 'em linha';
$labels['asattachment'] = 'como anexo';
+$labels['replyallmode'] = 'Ação predefinida do botão [Responder a todos]';
+$labels['replyalldefault'] = 'responder a todos';
+$labels['replyalllist'] = 'responder só à lista de discussão (se identificada)';
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
diff --git a/program/localization/pt_PT/messages.inc b/program/localization/pt_PT/messages.inc
index fed7fa09e..f1206b589 100644
--- a/program/localization/pt_PT/messages.inc
+++ b/program/localization/pt_PT/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Por favor, insira pelo menos um destinatário
$messages['nosubjectwarning'] = 'O campo "Assunto" não foi preenchido. Deseja incluí-lo agora?';
$messages['nobodywarning'] = 'Enviar a mensagem sem texto?';
$messages['notsentwarning'] = 'A mensagem não foi enviada, deseja apagá-la?';
+$messages['restoresavedcomposedata'] = 'Uma mensagem, anteriormente, composta mas não enviada foi encontrado.\n\nAssunto: $subject\nGuardada: $date\n\nDeseja restaurar esta mensagem?';
$messages['noldapserver'] = 'Seleccione um servidor LDAP para efectuar a pesquisa';
$messages['nosearchname'] = 'Por favor, insira o nome do contacto ou endereço de e-mail';
$messages['notuploadedwarning'] = 'Nem todos os anexos foram ainda enviados. Por favor aguarde ou cancele o envio.';
diff --git a/program/localization/ro_RO/messages.inc b/program/localization/ro_RO/messages.inc
index c3e74597f..fb555ad47 100644
--- a/program/localization/ro_RO/messages.inc
+++ b/program/localization/ro_RO/messages.inc
@@ -44,6 +44,8 @@ $messages['messagesent'] = 'Mesajul a fost trimis cu succes!';
$messages['savingmessage'] = 'Salvare mesaj...';
$messages['messagesaved'] = 'Mesajul a fost salvat în Ciorne';
$messages['successfullysaved'] = 'Salvat cu succes.';
+$messages['savingresponse'] = 'Se salvează textul pentru răspuns...';
+$messages['deleteresponseconfirm'] = 'Chiar vrei să ștergi acest text pentru răspuns?';
$messages['addedsuccessfully'] = 'Contactul a fost adăugat cu succes în agendă';
$messages['contactexists'] = 'Un contact cu această adresă de e-mail există deja.';
$messages['contactnameexists'] = 'Există deja un contact cu acelaşi nume.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Contactul solicitat nu a fost găsit.';
$messages['contactsearchonly'] = 'Introdu nişte termeni de căutare pentru a găsi contactele';
$messages['sendingfailed'] = 'Nu s-a reuÅŸit trimiterea mesajului';
$messages['senttooquickly'] = 'Vă rugăm aşteptaţi $sec sec. înainte de a trimite acest mesaj';
+$messages['errorsavingsent'] = 'A intervenit o eroare în timp ce se efectua salvarea mesajului trimis.';
+$messages['errorsaving'] = 'A intervenit o eroare în timp ce se efectua salvarea.';
$messages['errormoving'] = 'Nu am putut muta mesajul (mesajele).';
$messages['errorcopying'] = 'Nu am putut copia mesajul (mesajele).';
$messages['errordeleting'] = 'Nu am putut ÅŸterge mesajul (mesajele).';
@@ -140,6 +144,7 @@ $messages['smtperror'] = 'Eroare SMTP: $msg';
$messages['emailformaterror'] = 'Adresă de e-mail incorectă: $email';
$messages['toomanyrecipients'] = 'Prea mulţi destinatari. Reduceţi numărul de destinatari la $max.';
$messages['maxgroupmembersreached'] = 'Numărul de membri ai grupului depăşeşte maximul de $max.';
+$messages['internalerror'] = 'A avut loc o eroare internă. Te rog încearcă din nou.';
$messages['contactdelerror'] = 'Nu am putut ÅŸterge contact(ele).';
$messages['contactdeleted'] = 'Contact(ele) au fost ÅŸterse cu succes.';
$messages['contactrestoreerror'] = 'Nu am putut restaura contact(ele) ÅŸterse.';
diff --git a/program/localization/ru_RU/labels.inc b/program/localization/ru_RU/labels.inc
index 109793666..aa83eb9df 100644
--- a/program/localization/ru_RU/labels.inc
+++ b/program/localization/ru_RU/labels.inc
@@ -197,6 +197,16 @@ $labels['spellcheck'] = 'ОрфографиÑ';
$labels['checkspelling'] = 'Проверить орфографию';
$labels['resumeediting'] = 'Продолжить редактирование';
$labels['revertto'] = 'Отменить правки';
+$labels['restore'] = 'ВоÑÑтановить';
+$labels['restoremessage'] = 'ВоÑÑтановить Ñообщение?';
+$labels['responses'] = 'Ответы';
+$labels['insertresponse'] = 'Ð’Ñтавить ответ';
+$labels['manageresponses'] = 'Управление ответами';
+$labels['savenewresponse'] = 'Сохранить новый ответ';
+$labels['editresponses'] = 'Редактировать ответы';
+$labels['editresponse'] = 'Редактировать ответ';
+$labels['responsename'] = 'Ðазвание';
+$labels['responsetext'] = 'ТекÑта ответа';
$labels['attach'] = 'Вложить';
$labels['attachments'] = 'ВложениÑ';
$labels['upload'] = 'Загрузить';
@@ -428,6 +438,9 @@ $labels['standardwindows'] = 'Обрабатывать вÑплывающие о
$labels['forwardmode'] = 'ПереÑылка Ñообщений';
$labels['inline'] = 'в текÑте';
$labels['asattachment'] = 'как вложение';
+$labels['replyallmode'] = 'ДейÑтвие по умолчанию кнопки [Ответить вÑем]';
+$labels['replyalldefault'] = 'ответить вÑем';
+$labels['replyalllist'] = 'ответить только в ÑпиÑок раÑÑылки (еÑли найден)';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸';
diff --git a/program/localization/ru_RU/messages.inc b/program/localization/ru_RU/messages.inc
index 2509ba49b..6d679f699 100644
--- a/program/localization/ru_RU/messages.inc
+++ b/program/localization/ru_RU/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'ПожалуйÑта, введите хотÑ
$messages['nosubjectwarning'] = 'Поле Тема не заполнено. Хотите заполнить его ÑейчаÑ?';
$messages['nobodywarning'] = 'Отправить Ñообщение без текÑта?';
$messages['notsentwarning'] = 'Сообщение не было отправлено. Ð’Ñ‹ хотите отказатьÑÑ Ð¾Ñ‚ отправки?';
+$messages['restoresavedcomposedata'] = 'Ðайдено ранее ÑоÑтавленное, но неотправленное Ñообщение.\n\nТема: $subject\nСохранено: $date\n\nХотите воÑÑтановить Ñто Ñообщение?';
$messages['noldapserver'] = 'ПожалуйÑта, выберите LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка.';
$messages['nosearchname'] = 'ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð°Ð´Ñ€ÐµÑ E-Mail';
$messages['notuploadedwarning'] = 'Ð’Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶ÐµÐ½Ñ‹ не полноÑтью. Подождите или отмените загрузку.';
diff --git a/program/localization/sk_SK/csv2vcard.inc b/program/localization/sk_SK/csv2vcard.inc
new file mode 100644
index 000000000..724ed7438
--- /dev/null
+++ b/program/localization/sk_SK/csv2vcard.inc
@@ -0,0 +1,93 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | localization/<lang>/csv2vcard.inc |
+ | |
+ | Localization file 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. |
+ | |
+ +-----------------------------------------------------------------------+
+ | Author: Marek MeÄiar <mmmeciar@gmail.com> |
+ +-----------------------------------------------------------------------+
+*/
+
+// This is a list of CSV column names specified in CSV file header
+// These must be original texts used in Outlook/Thunderbird exported csv files
+// Encoding UTF-8
+
+$map = array();
+
+// MS Outlook 2010
+$map['anniversary'] = "VýroÄie";
+$map['assistants_name'] = "Meno asistenta";
+$map['assistants_phone'] = "Telefón asistenta";
+$map['birthday'] = "Narodeniny";
+$map['business_city'] = "Mesto (práca)";
+$map['business_countryregion'] = "Krajina/oblasť (práca)";
+$map['business_fax'] = "Fax do práce";
+$map['business_phone'] = "Telefón do práce";
+$map['business_phone_2'] = "Telefón do práce 2";
+$map['business_postal_code'] = "PSČ (práca)";
+$map['business_state'] = "Okres (práca)";
+$map['business_street'] = "Ulica (práca)";
+$map['car_phone'] = "Autotelefón";
+$map['categories'] = "Kategórie";
+$map['company'] = "SpoloÄnosÅ¥";
+$map['department'] = "Oddelenie";
+$map['email_address'] = "E-mailová adresa";
+$map['first_name'] = "Krstné meno";
+$map['gender'] = "Pohlavie";
+$map['home_city'] = "Mesto (domov)";
+$map['home_countryregion'] = "Krajina/oblasť (domov)";
+$map['home_fax'] = "Fax domov";
+$map['home_phone'] = "Telefón domov";
+$map['home_phone_2'] = "Telefón domov 2";
+$map['home_postal_code'] = "PSČ (domov)";
+$map['home_state'] = "Okres (domov)";
+$map['home_street'] = "Ulica (domov)";
+$map['job_title'] = "Funkcia";
+$map['last_name'] = "Priezvisko";
+$map['managers_name'] = "Meno manažéra";
+$map['middle_name'] = "Ďalšie meno";
+$map['mobile_phone'] = "Mobilný telefón";
+$map['notes'] = "Poznámky";
+$map['other_city'] = "Iné mesto";
+$map['other_countryregion'] = "Krajina/oblasť (iné)";
+$map['other_fax'] = "Iný fax";
+$map['other_phone'] = "Iný telefón";
+$map['other_postal_code'] = "Iné PSČ";
+$map['other_state'] = "Krajina/oblasť (iné)";
+$map['other_street'] = "Iná ulica";
+$map['pager'] = "Operátor";
+$map['primary_phone'] = "Primárny telefón";
+$map['spouse'] = "Manžel(ka)";
+$map['suffix'] = "Prípona";
+$map['title'] = "Titul";
+$map['web_page'] = "Webová stránka";
+
+// Thunderbird
+$map['birth_day'] = "Deň narodenia";
+$map['birth_month'] = "Mesiac narodenia";
+$map['birth_year'] = "Rok narodenia";
+$map['display_name'] = "Zobrazované meno";
+$map['fax_number'] = "Fax";
+$map['home_address'] = "Adresa domov";
+$map['home_country'] = "Štát domov";
+$map['home_zipcode'] = "PSČ domov";
+$map['mobile_number'] = "Mobil";
+$map['nickname'] = "Prezývka";
+$map['organization'] = "Organizácia";
+$map['pager_number'] = "Pager";
+$map['primary_email'] = "E-mailová adresa";
+$map['secondary_email'] = "Ďalšia e-mailová adresa";
+$map['web_page_1'] = "Webová stránka 1";
+$map['web_page_2'] = "Webová stránka 2";
+$map['work_phone'] = "Telefón do zamestnania";
+$map['work_address'] = "Pracovná adresa";
+$map['work_country'] = "Štát zamestnania";
+$map['work_zipcode'] = "PSČ zamestnania";
diff --git a/program/localization/sk_SK/labels.inc b/program/localization/sk_SK/labels.inc
index 93bca166f..dee79f1bf 100644
--- a/program/localization/sk_SK/labels.inc
+++ b/program/localization/sk_SK/labels.inc
@@ -31,32 +31,32 @@ $labels['trash'] = 'Kôš';
$labels['junk'] = 'Nevyžiadaná pošta';
$labels['show_real_foldernames'] = 'Pri osobitných prieÄinkoch zobrazovaÅ¥ reálne názvy';
$labels['subject'] = 'Predmet';
-$labels['from'] = 'Odosielateľ';
+$labels['from'] = 'Od';
$labels['sender'] = 'Odosielateľ';
-$labels['to'] = 'Adresát';
+$labels['to'] = 'Komu';
$labels['cc'] = 'Kópia';
-$labels['bcc'] = 'Tajná kópia';
+$labels['bcc'] = 'Skrytá kópia';
$labels['replyto'] = 'Odpovedať na';
-$labels['followupto'] = 'PokraÄovaÅ¥ na';
+$labels['followupto'] = 'Preposlať na';
$labels['date'] = 'Dátum';
$labels['size'] = 'Veľkosť';
$labels['priority'] = 'Priorita';
$labels['organization'] = 'Organizácia';
-$labels['readstatus'] = 'Čítať stav';
+$labels['readstatus'] = 'PreÄítaÅ¥ stav';
$labels['listoptions'] = 'Nastavenia zoznamu...';
$labels['mailboxlist'] = 'PrieÄinky';
-$labels['messagesfromto'] = 'Správy od $from do $to z $count';
-$labels['threadsfromto'] = 'Konverzácie od $from do $to z $count';
-$labels['messagenrof'] = 'Správa $nr z $count';
+$labels['messagesfromto'] = 'Správy od $from, komu $to, z $count';
+$labels['threadsfromto'] = 'Konverzácie od $from, komu $to, z $count';
+$labels['messagenrof'] = 'Správa Ä. $nr z $count';
$labels['fromtoshort'] = '$from – $to z $count';
$labels['copy'] = 'Kopírovať';
$labels['move'] = 'Presunúť';
-$labels['moveto'] = 'presunúť do...';
-$labels['download'] = 'stiahnuť';
+$labels['moveto'] = 'Presunúť do...';
+$labels['download'] = 'Stiahnuť';
$labels['open'] = 'Otvoriť';
$labels['showattachment'] = 'Zobraziť';
$labels['showanyway'] = 'Zobraziť aj napriek tomu';
-$labels['filename'] = 'Meno súboru';
+$labels['filename'] = 'Názov súboru';
$labels['filesize'] = 'Veľkosť súboru';
$labels['addtoaddressbook'] = 'Pridať do adresára';
$labels['sun'] = 'Ne';
@@ -103,31 +103,31 @@ $labels['checkmail'] = 'Skontrolovať nové správy';
$labels['compose'] = 'Vytvoriť správu';
$labels['writenewmessage'] = 'Vytvoriť novú správu';
$labels['reply'] = 'Odpovedať';
-$labels['replytomessage'] = 'Odpovedať';
-$labels['replytoallmessage'] = 'Odpovedať všetkým';
+$labels['replytomessage'] = 'Odpovedať odosielateľovi';
+$labels['replytoallmessage'] = 'Odpovedať do zoznamu alebo odosielateľovi a všetkým príjemcom';
$labels['replyall'] = 'Odpovedať všetkým';
-$labels['replylist'] = 'Zoznam odpovedí';
+$labels['replylist'] = 'Zoznam pre odpovedanie';
$labels['forward'] = 'Dopredu';
$labels['forwardinline'] = 'PoslaÅ¥ Äalej';
$labels['forwardattachment'] = 'PoslaÅ¥ Äalej ako prílohu';
-$labels['forwardmessage'] = 'PoslaÅ¥ Äalej';
-$labels['deletemessage'] = 'Zmazať správu';
+$labels['forwardmessage'] = 'PoslaÅ¥ správu Äalej';
+$labels['deletemessage'] = 'Vymazať správu';
$labels['movemessagetotrash'] = 'Presunúť správu do koša';
-$labels['printmessage'] = 'VytlaÄiÅ¥ správu';
+$labels['printmessage'] = 'VytlaÄiÅ¥ túto správu';
$labels['previousmessage'] = 'Zobraziť predchádzajúcu správu';
$labels['firstmessage'] = 'Zobraziť prvú správu';
$labels['nextmessage'] = 'ZobraziÅ¥ ÄalÅ¡iu správu';
$labels['lastmessage'] = 'Zobraziť poslednú správu';
$labels['backtolist'] = 'Späť na zoznam správ';
-$labels['viewsource'] = 'Ukázať zdroj správy';
+$labels['viewsource'] = 'Zobraziť zdroj';
$labels['mark'] = 'OznaÄiÅ¥';
$labels['markmessages'] = 'OznaÄiÅ¥ správy';
$labels['markread'] = 'Ako preÄítané';
$labels['markunread'] = 'Ako nepreÄítané';
-$labels['markflagged'] = 'Ako oznaÄené';
-$labels['markunflagged'] = 'Ako neoznaÄené';
-$labels['moreactions'] = 'Ďalšie akcie...';
-$labels['more'] = 'Ďalšie';
+$labels['markflagged'] = 'Ako oznaÄené príznakom';
+$labels['markunflagged'] = 'Ako neoznaÄené príznakom';
+$labels['moreactions'] = 'Viac akcií...';
+$labels['more'] = 'Viac';
$labels['back'] = 'Dozadu';
$labels['options'] = 'Možnosti';
$labels['select'] = 'Výber';
@@ -135,68 +135,70 @@ $labels['all'] = 'VÅ¡etky';
$labels['none'] = 'NiÄ';
$labels['currpage'] = 'Aktuálna stránka';
$labels['unread'] = 'NepreÄítané';
-$labels['flagged'] = 'OznaÄené';
-$labels['unanswered'] = 'NeoznaÄené';
+$labels['flagged'] = 'OznaÄené príznakom';
+$labels['unanswered'] = 'Bez odpovede';
$labels['withattachment'] = 'S prílohou';
-$labels['deleted'] = 'Zmazané';
+$labels['deleted'] = 'Vymazané';
$labels['undeleted'] = 'Nevymazané';
-$labels['invert'] = 'Prevrátiť';
+$labels['invert'] = 'Obrátiť';
$labels['filter'] = 'Filter';
$labels['list'] = 'Zoznam';
$labels['threads'] = 'Konverzácie';
$labels['expand-all'] = 'Rozbaliť všetko';
$labels['expand-unread'] = 'RozbaliÅ¥ nepreÄítané';
$labels['collapse-all'] = 'Zbaliť všetko';
-$labels['threaded'] = 'Spájať do konverzácií';
-$labels['autoexpand_threads'] = 'Rozbaliť konverzácie';
+$labels['threaded'] = 'Spojené do konverzácií';
+$labels['autoexpand_threads'] = 'Rozbaliť konverzácie správy';
$labels['do_expand'] = 'všetky konverzácie';
$labels['expand_only_unread'] = 'len s nepreÄítanými správami';
-$labels['fromto'] = 'Odosielateľ/Príjemca';
-$labels['flag'] = 'Vlajka';
+$labels['fromto'] = 'Od/Komu';
+$labels['flag'] = 'Príznak';
$labels['attachment'] = 'Príloha';
$labels['nonesort'] = 'NiÄ';
$labels['sentdate'] = 'Dátum odoslania';
$labels['arrival'] = 'Dátum prijatia';
$labels['asc'] = 'vzostupne';
$labels['desc'] = 'zostupne';
-$labels['listcolumns'] = 'Zoznam stĺpcov';
-$labels['listsorting'] = 'Triedenie stĺpcov';
-$labels['listorder'] = 'Usporiadanie';
+$labels['listcolumns'] = 'Stĺpce v zozname';
+$labels['listsorting'] = 'ZoraÄovanie v stĺpci';
+$labels['listorder'] = 'Systém zoraÄovania';
$labels['listmode'] = 'Režim zobrazenia zoznamu';
-$labels['folderactions'] = 'Akcie so zložkou...';
-$labels['compact'] = 'ZhustiÅ¥ prieÄinok';
+$labels['folderactions'] = 'Akcie pre prieÄinky...';
+$labels['compact'] = 'Zhustiť';
$labels['empty'] = 'Vyprázdniť';
$labels['importmessages'] = 'Importovať správy';
-$labels['quota'] = 'Zaplnenie schránky';
+$labels['quota'] = 'Zaplnenie disku';
$labels['unknown'] = 'neznáme';
$labels['unlimited'] = 'neobmedzené';
$labels['quicksearch'] = 'Rýchle vyhľadávanie';
$labels['resetsearch'] = 'VyÄistiÅ¥ vyhľadávanie';
-$labels['searchmod'] = 'Parametre hľadanie';
+$labels['searchmod'] = 'Modifikátory pri hľadaní';
$labels['msgtext'] = 'Celá správa';
$labels['body'] = 'Telo';
$labels['type'] = 'Typ';
$labels['namex'] = 'Meno';
$labels['openinextwin'] = 'Otvoriť v novom okne';
-$labels['emlsave'] = 'Stiahnuť';
+$labels['emlsave'] = 'Stiahnuť (.eml)';
$labels['changeformattext'] = 'ZobraziÅ¥ vo formáte Äistého textu';
$labels['changeformathtml'] = 'Zobraziť vo formáte HTML';
$labels['editasnew'] = 'Upraviť ako novú';
$labels['send'] = 'Odoslať';
$labels['sendmessage'] = 'Odoslať správu';
-$labels['savemessage'] = 'Uložiť do rozpísaných';
-$labels['addattachment'] = 'Pridať prílohu';
+$labels['savemessage'] = 'Uložiť ako koncept';
+$labels['addattachment'] = 'Pripojiť súbor';
$labels['charset'] = 'Znaková sada';
$labels['editortype'] = 'Typ editora';
$labels['returnreceipt'] = 'Potvrdenie o doruÄení';
-$labels['dsn'] = 'DoruÄenie oznámenia o stave';
-$labels['mailreplyintro'] = '$date odosielateľ napísal:';
+$labels['dsn'] = 'Oznámenie o stave doruÄenia';
+$labels['mailreplyintro'] = 'Dňa $date $sender napísal(a):';
$labels['originalmessage'] = 'Pôvodná správa';
-$labels['editidents'] = 'Editovať identity';
+$labels['editidents'] = 'Upraviť identity';
$labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Skontrolovať pravopis';
$labels['resumeediting'] = 'PokraÄovaÅ¥ v úpravách';
$labels['revertto'] = 'Vrátiť sa na';
+$labels['restore'] = 'Obnoviť';
+$labels['restoremessage'] = 'Obnoviť správu?';
$labels['responses'] = 'Odpovede';
$labels['insertresponse'] = 'VložiÅ¥ odpoveÄ';
$labels['manageresponses'] = 'Spravovať odpovede';
@@ -217,47 +219,47 @@ $labels['normal'] = 'Normálna';
$labels['high'] = 'Vysoká';
$labels['highest'] = 'Najvyššia';
$labels['nosubject'] = '(bez predmetu)';
-$labels['showimages'] = 'Ukázať obrázky';
-$labels['alwaysshow'] = 'Vždy zobraziť obrázky od $sender';
-$labels['isdraft'] = 'Toto je rozpísaná správa';
+$labels['showimages'] = 'Zobraziť obrázky';
+$labels['alwaysshow'] = 'Vždy zobraziť obrázky od odosielateľa $sender';
+$labels['isdraft'] = 'Toto je koncept.';
$labels['andnmore'] = '$nr viac...';
$labels['togglemoreheaders'] = 'Zobraziť viac záhlaví správ';
$labels['togglefullheaders'] = 'Prepnúť zobrazenie nespracovaných záhlaví správ';
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Čistý text';
-$labels['savesentmessagein'] = 'Ukladať odoslané správy do';
-$labels['dontsave'] = 'Neukladať';
+$labels['savesentmessagein'] = 'Uložiť odoslanú správu do';
+$labels['dontsave'] = 'neukladať';
$labels['maxuploadsize'] = 'Maximálna povolená veľkosť súboru je $size';
$labels['addcc'] = 'Pridať kópiu';
$labels['addbcc'] = 'Pridať skrytú kopiu';
-$labels['addreplyto'] = 'PridaÅ¥ odpoveÄ';
-$labels['addfollowupto'] = 'PridaÅ¥ pokraÄovaÅ¥ na';
-$labels['mdnrequest'] = 'Odosielateľ tejto správy chce byť upozornený na to, že ste správu obdržali. Chcete potvrdiť prijatie správy?';
-$labels['receiptread'] = 'Potvrdenie o prijatí správy';
-$labels['yourmessage'] = 'Toto je potvrdenie o prijatí Vašej správy';
-$labels['receiptnote'] = 'Poznámka: Toto potvrdenie negarantuje, že správa bola príjemcom preÄítaná a porozumel jej obsahu.';
-$labels['name'] = 'Názov';
+$labels['addreplyto'] = 'Pridať pole Odpovedať na';
+$labels['addfollowupto'] = 'Pridať pole preposlať na';
+$labels['mdnrequest'] = 'Odosielateľ tejto správy chce byÅ¥ informovaný o tom, že ste túto správu Äítali. Chcete mu potvrdiÅ¥ prijatie správy?';
+$labels['receiptread'] = 'Potvrdenie o prijatí (a preÄítaní) správy';
+$labels['yourmessage'] = 'Toto je potvrdenie o prijatí vašej správy';
+$labels['receiptnote'] = 'Poznámka: Toto potvrdenie znamená len to, že správa sa zobrazila na poÄítaÄi príjemcu. Nie je vÅ¡ak zaruÄené, že klient správu Äítal a porozumel jej obsahu.';
+$labels['name'] = 'Zobraziť meno';
$labels['firstname'] = 'Meno';
$labels['surname'] = 'Priezvisko';
-$labels['middlename'] = 'Stredné meno';
+$labels['middlename'] = 'Stredná ÄasÅ¥ mena';
$labels['nameprefix'] = 'Titul';
$labels['namesuffix'] = 'Prípona';
$labels['nickname'] = 'Prezývka';
-$labels['jobtitle'] = 'Názov práce';
+$labels['jobtitle'] = 'Názov pozície';
$labels['department'] = 'Oddelenie';
$labels['gender'] = 'Pohlavie';
-$labels['maidenname'] = 'DievÄenské meno';
-$labels['email'] = 'E-Mail';
+$labels['maidenname'] = 'Rodné priezvisko';
+$labels['email'] = 'E-mail';
$labels['phone'] = 'Telefón';
$labels['address'] = 'Adresa';
$labels['street'] = 'Ulica';
$labels['locality'] = 'Mesto';
-$labels['zipcode'] = 'Smerovacie Äéslo';
-$labels['region'] = 'Kraj';
+$labels['zipcode'] = 'Smerovacie Äíslo';
+$labels['region'] = 'Štát/Provincia/Kraj';
$labels['country'] = 'Krajina';
-$labels['birthday'] = 'Dátum narodenia';
+$labels['birthday'] = 'Narodeniny';
$labels['anniversary'] = 'VýroÄie';
-$labels['website'] = 'Web stránka';
+$labels['website'] = 'Internetová stránka';
$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Poznámky';
$labels['male'] = 'muž';
@@ -272,10 +274,10 @@ $labels['advanced'] = 'Rozšírené';
$labels['other'] = 'Ostatné';
$labels['typehome'] = 'Domov';
$labels['typework'] = 'Práca';
-$labels['typeother'] = 'Ostatné';
-$labels['typemobile'] = 'Mobil';
+$labels['typeother'] = 'Iné';
+$labels['typemobile'] = 'Mobilný telefón';
$labels['typemain'] = 'Hlavný';
-$labels['typehomefax'] = 'Domáci fax';
+$labels['typehomefax'] = 'Fax - domov';
$labels['typeworkfax'] = 'Fax - práca';
$labels['typecar'] = 'Auto';
$labels['typepager'] = 'Pager';
@@ -284,22 +286,22 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Domovská stránka';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
-$labels['addfield'] = 'Pridať položku...';
+$labels['addfield'] = 'Pridať pole...';
$labels['addcontact'] = 'Pridať nový kontakt';
$labels['editcontact'] = 'Upraviť kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Vlastnosti kontaktu';
-$labels['personalinfo'] = 'Osobné informácie';
+$labels['personalinfo'] = 'Osobná informácia';
$labels['edit'] = 'Upraviť';
$labels['cancel'] = 'Zrušiť';
$labels['save'] = 'Uložiť';
-$labels['delete'] = 'Zmazať';
+$labels['delete'] = 'Vymazať';
$labels['rename'] = 'Premenovať';
$labels['addphoto'] = 'Pridať';
$labels['replacephoto'] = 'Nahradiť';
-$labels['uploadphoto'] = 'Nahrať fotku';
-$labels['newcontact'] = 'Vytvoriť nový kontakt';
-$labels['deletecontact'] = 'Zmazať zvolené kontakty';
+$labels['uploadphoto'] = 'Nahrať fotografiu';
+$labels['newcontact'] = 'Vytvoriť novú vizitku kontaktu';
+$labels['deletecontact'] = 'Vymazať vybrané kontakty';
$labels['composeto'] = 'Vytvoriť správu pre';
$labels['contactsfromto'] = 'Kontakty od $from do $to z $count';
$labels['print'] = 'TlaÄ';
@@ -309,47 +311,47 @@ $labels['exportsel'] = 'Exportovať vybrané';
$labels['exportvcards'] = 'Exportovať kontakty vo formáte vCard';
$labels['newcontactgroup'] = 'Vytvoriť novú skupinu kontaktov';
$labels['grouprename'] = 'Premenovať skupinu';
-$labels['groupdelete'] = 'Zmazať skupinu';
+$labels['groupdelete'] = 'Vymazať skupinu';
$labels['groupremoveselected'] = 'Odstrániť vybrané kontakty zo skupiny';
-$labels['previouspage'] = 'Predchádzajúca stránka';
-$labels['firstpage'] = 'Prvá stránka';
-$labels['nextpage'] = 'Nasledujúca stránka';
-$labels['lastpage'] = 'Posledná stránka';
+$labels['previouspage'] = 'Zobraziť predchádzajúcu stranu';
+$labels['firstpage'] = 'Zobraziť prvú stranu';
+$labels['nextpage'] = 'Zobraziť nasledujúcu stranu';
+$labels['lastpage'] = 'Zobraziť poslednú stranu';
$labels['group'] = 'Skupina';
$labels['groups'] = 'Skupiny';
$labels['listgroup'] = 'Zoznam Älenov skupiny';
$labels['personaladrbook'] = 'Osobné adresy';
$labels['searchsave'] = 'Uložiť vyhľadávanie';
-$labels['searchdelete'] = 'Zmazať vyhľadávanie';
+$labels['searchdelete'] = 'Vymazať vyhľadávanie';
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Importovať kontakty';
$labels['importfromfile'] = 'Importovať zo súboru:';
$labels['importtarget'] = 'Pridať kontakty do';
-$labels['importreplace'] = 'Nahradiť celý zoznam kontaktov';
+$labels['importreplace'] = 'Nahradiť celý adresár kontaktov';
$labels['importgroups'] = 'Importovať priradenia do skupín';
$labels['importgroupsall'] = 'Všetky (vytvoriť skupiny, ak je to potrebné)';
$labels['importgroupsexisting'] = 'Len pre existujúce skupiny';
$labels['importdesc'] = 'Môžete vložiÅ¥ kontakty zo svojho existujúceho adresára.<br/>Momentálne je možné importovanie adries z formátu <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> alebo CSV (údaje oddeľované Äiarkou).';
$labels['done'] = 'Hotovo';
$labels['settingsfor'] = 'Nastavenia pre';
-$labels['about'] = 'O programe';
-$labels['preferences'] = 'Vlastnosti';
+$labels['about'] = 'O systéme';
+$labels['preferences'] = 'Nastavenia';
$labels['userpreferences'] = 'Používateľské nastavenia';
$labels['editpreferences'] = 'Upraviť používateľské nastavenia';
-$labels['identities'] = 'Profily';
-$labels['manageidentities'] = 'SpravovaÅ¥ profily pre tento úÄet';
-$labels['newidentity'] = 'Nový profil';
+$labels['identities'] = 'Identity';
+$labels['manageidentities'] = 'SpravovaÅ¥ identity pre tento úÄet';
+$labels['newidentity'] = 'Nová identita';
$labels['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upraviť položku';
-$labels['preferhtml'] = 'Uprednostniť HTML zobrazenie';
+$labels['preferhtml'] = 'Zobraziť HTML';
$labels['defaultcharset'] = 'Predvolené kódovanie';
$labels['htmlmessage'] = 'HTML správa';
$labels['messagepart'] = 'Časť';
$labels['digitalsig'] = 'Digitálny podpis';
$labels['dateformat'] = 'Formát dátumu';
$labels['timeformat'] = 'Formát Äasu';
-$labels['prettydate'] = 'Krajší dátum';
-$labels['setdefault'] = 'Obnoviť pôvodné';
+$labels['prettydate'] = 'Pekné formáty dátumov';
+$labels['setdefault'] = 'Nastaviť pôvodné';
$labels['autodetect'] = 'Automaticky';
$labels['language'] = 'Jazyk';
$labels['timezone'] = 'Časová zóna';
@@ -358,36 +360,36 @@ $labels['signature'] = 'Podpis';
$labels['dstactive'] = 'Letný Äas';
$labels['showinextwin'] = 'Otvoriť správu v novom okne';
$labels['composeextwin'] = 'Písať v novom okne';
-$labels['htmleditor'] = 'Vytvoriť HTML správu';
-$labels['htmlonreply'] = 'len v odpovedi na HTML správy';
+$labels['htmleditor'] = 'Vytvoriť HTML správy';
+$labels['htmlonreply'] = 'len v odpovedi na HTML správu';
$labels['htmlonreplyandforward'] = 'pri preposielaní alebo odpovedi na HTML správu';
$labels['htmlsignature'] = 'HTML podpis';
$labels['showemail'] = 'Zobrazovať e-mailovú adresu so zobrazeným menom';
-$labels['previewpane'] = 'Ukázať náhľad';
-$labels['skin'] = 'Vzhľad';
+$labels['previewpane'] = 'Zobraziť panel s náhľadom';
+$labels['skin'] = 'Vzhľad rozhrania';
$labels['logoutclear'] = 'Vyprázdniť kôš pri odhlásení';
$labels['logoutcompact'] = 'ZhustiÅ¥ prieÄinok DoruÄená poÅ¡ta pri odhlásení';
$labels['uisettings'] = 'Používateľské rozhranie';
$labels['serversettings'] = 'Nastavenia servera';
-$labels['mailboxview'] = 'Pohľad na schránku';
-$labels['mdnrequests'] = 'Upozornenia odosielateľovi';
-$labels['askuser'] = 'spýtať sa používateľa';
-$labels['autosend'] = 'poslať potvrdenie automaticky';
-$labels['autosendknown'] = 'poslať potvrdenie iba mojím kontaktom';
-$labels['autosendknownignore'] = 'poslať potvrdenie mojím kontaktom, inak ignorovať';
+$labels['mailboxview'] = 'Zobrazenie schránky';
+$labels['mdnrequests'] = 'Pri požiadaní o potvrdenie o doruÄení';
+$labels['askuser'] = 'opýtať sa používateľa';
+$labels['autosend'] = 'odoslať potvrdenie';
+$labels['autosendknown'] = 'odoslať potvrdenie iba mojím kontaktom, inokedy sa opýtať';
+$labels['autosendknownignore'] = 'odoslať potvrdenie mojím kontaktom, inokedy ignorovať';
$labels['ignore'] = 'ignorovať';
-$labels['readwhendeleted'] = 'OznaÄiÅ¥ správu';
-$labels['flagfordeletion'] = 'Pri odstránení správy iba oznaÄiÅ¥ správu ako odstránenú';
-$labels['skipdeleted'] = 'Nezobrazovať zmazané správy';
+$labels['readwhendeleted'] = 'OznaÄiÅ¥ správu ako preÄítanú pri jej vymazávaní';
+$labels['flagfordeletion'] = 'Namiesto vymazania správy ju iba oznaÄiÅ¥ ako odstránenú';
+$labels['skipdeleted'] = 'Nezobrazovať vymazané správy';
$labels['deletealways'] = 'Odstrániť správy, ak zlyhá ich presun do koša';
-$labels['deletejunk'] = 'HneÄ mazaÅ¥ správy v Spame';
-$labels['showremoteimages'] = 'Zobrazovať obrázky uložené mimo mail';
-$labels['fromknownsenders'] = 'od známych užívateľov';
+$labels['deletejunk'] = 'HneÄ vymazávaÅ¥ správy v prieÄinku s Nevyžiadanou poÅ¡tou';
+$labels['showremoteimages'] = 'Zobrazovať obrázky uložené mimo správy';
+$labels['fromknownsenders'] = 'od známych odosielateľov';
$labels['always'] = 'vždy';
-$labels['showinlineimages'] = 'Zobraziť pripojené obrázky pod správou';
+$labels['showinlineimages'] = 'Zobrazovať pripojené obrázky pod správou';
$labels['autosavedraft'] = 'Automaticky uložiť koncept';
$labels['everynminutes'] = 'každých $n minút';
-$labels['refreshinterval'] = 'Obnoviť (skontrolovať nové správy a podobne)';
+$labels['refreshinterval'] = 'ObnoviÅ¥ (skontrolovaÅ¥ nové správy atÄ.)';
$labels['never'] = 'nikdy';
$labels['immediately'] = 'ihneÄ';
$labels['messagesdisplaying'] = 'Zobrazovanie správ';
@@ -395,13 +397,13 @@ $labels['messagescomposition'] = 'Vytváranie správ';
$labels['mimeparamfolding'] = 'Názvy príloh';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
-$labels['2047folding'] = 'Full RFC 2047 (other)';
+$labels['2047folding'] = 'Full RFC 2047 (iné)';
$labels['force7bit'] = 'Použiť kódovanie MIME pre 8-bitové znaky';
$labels['advancedoptions'] = 'Rozšírené nastavenia';
-$labels['focusonnewmessage'] = 'AktivovaÅ¥ okno prehliadaÄa pri príchozí správe';
-$labels['checkallfolders'] = 'Kontrolovať nové správy vo všetkých zložkách';
-$labels['displaynext'] = 'ZobraziÅ¥ ÄalÅ¡iu správu po zmazanie / prenosu správy';
-$labels['defaultfont'] = 'Prednastavený font HTML správ';
+$labels['focusonnewmessage'] = 'AktivovaÅ¥ okno prehliadaÄa pri novej správe';
+$labels['checkallfolders'] = 'KontrolovaÅ¥ nové správy vo vÅ¡etkých prieÄinkoch';
+$labels['displaynext'] = 'ZobraziÅ¥ ÄalÅ¡iu správu po vymazaní/prenose správy';
+$labels['defaultfont'] = 'Prednastavené písmo pre HTML správu';
$labels['mainoptions'] = 'Hlavné nastavenia';
$labels['browseroptions'] = 'Nastavenia prehliadania';
$labels['section'] = 'Sekcia';
@@ -410,56 +412,59 @@ $labels['newmessage'] = 'Nová správa';
$labels['signatureoptions'] = 'Nastavenia podpísania';
$labels['whenreplying'] = 'Pri odpovedaní';
$labels['replyempty'] = 'necitovať pôvodnú správu';
-$labels['replytopposting'] = 'zaÄaÅ¥ novú správu nad pôvodňou';
-$labels['replybottomposting'] = 'zaÄaÅ¥ novú správu pod pôvodňou';
+$labels['replytopposting'] = 'zaÄaÅ¥ novú správu nad citovanou správou';
+$labels['replybottomposting'] = 'zaÄaÅ¥ novú správu pod citovanou správou';
$labels['replyremovesignature'] = 'Pri odpovedaní odstrániť zo správy pôvodný podpis';
$labels['autoaddsignature'] = 'Automaticky pridať podpis';
$labels['newmessageonly'] = 'iba k novým správam';
-$labels['replyandforwardonly'] = 'len k odpovede a preposílanej správe';
-$labels['insertsignature'] = 'Vložit podpis';
-$labels['previewpanemarkread'] = 'OznaÄiÅ¥ zobrazenej správy ako preÄítané';
+$labels['replyandforwardonly'] = 'len k odpovediam a preposielaným správam';
+$labels['insertsignature'] = 'Vložiť podpis';
+$labels['previewpanemarkread'] = 'OznaÄiÅ¥ zobrazenú správu ako preÄítanú';
$labels['afternseconds'] = 'po $n sekundách';
-$labels['reqmdn'] = 'Vždy požadovaÅ¥ doruÄenku';
+$labels['reqmdn'] = 'Vždy požadovaÅ¥ potvrdenie o doruÄení';
$labels['reqdsn'] = 'Vždy vyžadovaÅ¥ potvrdenie o doruÄení správy';
-$labels['replysamefolder'] = 'UmietniÅ¥ odpoveÄ do adresára, kde je umiestnená správa, na ktorú sa odpovedalo';
-$labels['defaultabook'] = 'Predvolený adresár';
-$labels['autocompletesingle'] = 'Vynechať alternatívnu emailovú adresu pri automatickom dopĺňaní';
-$labels['listnamedisplay'] = 'Zobraziť kontakt ako';
+$labels['replysamefolder'] = 'UmiestňovaÅ¥ odpovede do rovnakého prieÄinka ako správu, na ktorú sa odpovedalo';
+$labels['defaultabook'] = 'Predvolený adresár kontaktov';
+$labels['autocompletesingle'] = 'Vynechať alternatívne emailové adresy pri automatickom dopĺňaní';
+$labels['listnamedisplay'] = 'Zobraziť kontakty ako';
$labels['spellcheckbeforesend'] = 'Skontrolovať pravopis pred odoslaním správy';
-$labels['spellcheckoptions'] = 'Voľby kontroly pravopisu';
+$labels['spellcheckoptions'] = 'Nastavenia kontroly pravopisu';
$labels['spellcheckignoresyms'] = 'Ignorovať slová so symbolmi';
$labels['spellcheckignorenums'] = 'IgnorovaÅ¥ slová s Äíslami';
$labels['spellcheckignorecaps'] = 'Ignorovať slová písané veľkými písmenami';
$labels['addtodict'] = 'Pridať do slovníka';
-$labels['mailtoprotohandler'] = 'Zaregistrovať handler pre odkazy „mailto:“';
+$labels['mailtoprotohandler'] = 'Zaregistrovať handler pre odkazy typu „mailto:“';
$labels['standardwindows'] = 'S vyskakovacími oknami pracovať ako so štandardnými oknami';
$labels['forwardmode'] = 'Preposielanie správ';
-$labels['inline'] = 'v tele spávy';
+$labels['inline'] = 'vo vnútri správy';
$labels['asattachment'] = 'ako príloha';
+$labels['replyallmode'] = 'Predvolená akcia pre tlaÄidlo [OdpovedaÅ¥ vÅ¡etkým]';
+$labels['replyalldefault'] = 'odpovedať všetkým';
+$labels['replyalllist'] = 'odpovedať len do mailing-listu (ak bol nájdený)';
$labels['folder'] = 'PrieÄinok';
$labels['folders'] = 'PrieÄinky';
-$labels['foldername'] = 'Názov prieÄinku';
+$labels['foldername'] = 'Názov prieÄinka';
$labels['subscribed'] = 'Prihlásený k odberu';
-$labels['messagecount'] = 'PoÄet správ';
+$labels['messagecount'] = 'Správy';
$labels['create'] = 'Vytvoriť';
-$labels['createfolder'] = 'Vytvor nový prieÄinok';
+$labels['createfolder'] = 'VytvoriÅ¥ nový prieÄinok';
$labels['managefolders'] = 'SpravovaÅ¥ prieÄinky';
$labels['specialfolders'] = 'Å peciálne prieÄinky';
$labels['properties'] = 'Vlastnosti';
-$labels['folderproperties'] = 'Vlastnosti adresára';
-$labels['parentfolder'] = 'RodiÄovský adresár';
+$labels['folderproperties'] = 'Vlastnosti prieÄinka';
+$labels['parentfolder'] = 'RodiÄovský prieÄinok';
$labels['location'] = 'Umiestnenie';
$labels['info'] = 'Informácia';
-$labels['getfoldersize'] = 'Kliknúť pre získanie leľkosti adresára';
-$labels['changesubscription'] = 'Kliknúť pre zmenu prihlásenia odberu';
+$labels['getfoldersize'] = 'Kliknúť pre zistenie veľkosti prieÄinka';
+$labels['changesubscription'] = 'Kliknúť pre zmenu prihlásení';
$labels['foldertype'] = 'Typ prieÄinka';
$labels['personalfolder'] = 'Súkromný prieÄinok';
-$labels['otherfolder'] = 'Iné užívateľove adresáre';
-$labels['sharedfolder'] = 'Verejný adresár';
-$labels['sortby'] = 'Triediť podľa';
-$labels['sortasc'] = 'Triediť vzostupne';
-$labels['sortdesc'] = 'Triediť zostupne';
-$labels['undo'] = 'Vrátiť';
+$labels['otherfolder'] = 'Iné prieÄinky používateľa';
+$labels['sharedfolder'] = 'Verejný prieÄinok';
+$labels['sortby'] = 'Zoradiť podľa';
+$labels['sortasc'] = 'Zoradiť vzostupne';
+$labels['sortdesc'] = 'Zoradiť zostupne';
+$labels['undo'] = 'Späť';
$labels['installedplugins'] = 'Nainštalované zásuvné moduly';
$labels['plugin'] = 'Zásuvný modul';
$labels['version'] = 'Verzia';
@@ -472,20 +477,20 @@ $labels['MB'] = 'MB';
$labels['GB'] = 'GB';
$labels['unicode'] = 'Unicode';
$labels['english'] = 'AngliÄtina';
-$labels['westerneuropean'] = 'Západná Európa';
-$labels['easterneuropean'] = 'Východná Európa';
+$labels['westerneuropean'] = 'Západoeurópske';
+$labels['easterneuropean'] = 'Východoeurópske';
$labels['southeasterneuropean'] = 'Juho-východná Európa';
$labels['baltic'] = 'Baltština';
-$labels['cyrillic'] = 'Cyriliky';
-$labels['arabic'] = 'ArabÄina';
-$labels['greek'] = 'GréÄtina';
-$labels['hebrew'] = 'HebrejÄina';
-$labels['turkish'] = 'Nordština';
-$labels['nordic'] = 'TureÄtina';
-$labels['thai'] = 'Tajština';
+$labels['cyrillic'] = 'Cyrilika';
+$labels['arabic'] = 'Arabsky';
+$labels['greek'] = 'Grécky';
+$labels['hebrew'] = 'Hebrejsky';
+$labels['turkish'] = 'Turecky';
+$labels['nordic'] = 'Nórsky';
+$labels['thai'] = 'Thajsky';
$labels['celtic'] = 'Keltština';
-$labels['vietnamese'] = 'VietnamÄina';
-$labels['japanese'] = 'JaponÄina';
-$labels['korean'] = 'KorejÄina';
-$labels['chinese'] = 'Čínština';
+$labels['vietnamese'] = 'Vietnamsky';
+$labels['japanese'] = 'Japonsky';
+$labels['korean'] = 'Kórejsky';
+$labels['chinese'] = 'Čínsky';
?>
diff --git a/program/localization/sk_SK/messages.inc b/program/localization/sk_SK/messages.inc
index 71d5d52c1..ece954d48 100644
--- a/program/localization/sk_SK/messages.inc
+++ b/program/localization/sk_SK/messages.inc
@@ -16,159 +16,160 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
$messages['errortitle'] = 'Vyskytla sa chyba!';
-$messages['loginfailed'] = 'Chybné prihlásenie';
-$messages['cookiesdisabled'] = 'Váš internetový prehliadaÄ nepodporuje cookies, ktoré sú potrebné pre prihlásenie';
-$messages['sessionerror'] = 'Vaše prihlásenie je neplatné alebo vypršala jeho platnosť';
-$messages['storageerror'] = 'Nepodarilo sa spojiť s IMAP serverom';
+$messages['loginfailed'] = 'Prihlasovanie bolo neúspešné.';
+$messages['cookiesdisabled'] = 'Váš internetový prehliadaÄ nepodporuje cookies, ktoré sú potrebné na prihlásenie.';
+$messages['sessionerror'] = 'Vaša relácia nie je platná alebo vypršala jej platnosť.';
+$messages['storageerror'] = 'Nepodarilo sa spojiť s úložným serverom.';
$messages['servererror'] = 'Chyba servera!';
$messages['servererrormsg'] = 'Chyba servera: $msg';
-$messages['dberror'] = 'Databázová chyba!';
-$messages['requesttimedout'] = 'Čas požiadavky vypršal';
-$messages['errorreadonly'] = 'Nemožno vykonaÅ¥ operáciu. Adresár je len na Äítanie';
-$messages['errornoperm'] = 'Nemožno vykonať operáciu. Prístup odmietnutý';
+$messages['dberror'] = 'Chyba databázy!';
+$messages['requesttimedout'] = 'Čas na vykonanie požiadavky uplynul';
+$messages['errorreadonly'] = 'Nemožno vykonaÅ¥ operáciu. PrieÄinok je urÄený len na Äítanie.';
+$messages['errornoperm'] = 'Nemožno vykonať operáciu. Prístup bol odmietnutý.';
$messages['erroroverquota'] = 'Nemožno vykonať operáciu. Na disku nie je dostatok voľného miesta.';
$messages['erroroverquotadelete'] = 'Na disku nie je dostatok voľného miesta. Vymažte nejakú správu pomocou klávesov SHIFT+DEL.';
-$messages['invalidrequest'] = 'Chybný požiadavek. Žiadne údaje neboli uložené.';
-$messages['invalidhost'] = 'Neplatný názov servera';
-$messages['nomessagesfound'] = 'Vo Vašej schránke nie je žiadna správa';
-$messages['loggedout'] = 'Odhlásenie prebehlo úspešne. Dovidenia.';
-$messages['mailboxempty'] = 'Schránka je prázdna';
+$messages['invalidrequest'] = 'Neplatná požiadavka! Neuložili sa žiadne údaje.';
+$messages['invalidhost'] = 'Neplatný názov servera.';
+$messages['nomessagesfound'] = 'Vo tejto schránke nie je žiadna správa.';
+$messages['loggedout'] = 'Odhlásenie prebehlo úspešne. Dovidenia!';
+$messages['mailboxempty'] = 'Schránka je prázdna.';
$messages['refreshing'] = 'Obnovuje sa...';
$messages['loading'] = 'NaÄítava sa...';
-$messages['uploading'] = 'Nahrávám súbor...';
-$messages['uploadingmany'] = 'Nahrávam súbory...';
+$messages['uploading'] = 'Nahráva sa súbor...';
+$messages['uploadingmany'] = 'Nahrávajú sa súbory...';
$messages['loadingdata'] = 'NaÄítavajú sa údaje...';
$messages['checkingmail'] = 'Kontrolujú sa nové správy...';
$messages['sendingmessage'] = 'Správa sa odosiela...';
-$messages['messagesent'] = 'Správa bola úspešne odoslaná';
+$messages['messagesent'] = 'Správa bola úspešne odoslaná.';
$messages['savingmessage'] = 'Správa sa ukladá...';
-$messages['messagesaved'] = 'Správa bola uložená medzi Rozpísané správy';
-$messages['successfullysaved'] = 'Úspešne uložená';
+$messages['messagesaved'] = 'Správa bola uložená medzi koncepty.';
+$messages['successfullysaved'] = 'Ukladanie bolo úspeÅ¡ne dokonÄené.';
$messages['savingresponse'] = 'Ukladanie textu odpovede...';
$messages['deleteresponseconfirm'] = 'Naozaj chcete vymazať text odpovede?';
-$messages['addedsuccessfully'] = 'Kontakt bol pridaný do adresára';
-$messages['contactexists'] = 'Kontakt s touto e-mailovou adresou už existuje';
-$messages['contactnameexists'] = 'Kontakt s rovnakým menom už existuje.';
-$messages['blockedimages'] = 'Z bezpeÄnostných dôvodov sú v správe zablokované obrázky.';
-$messages['encryptedmessage'] = 'Táto správa je zašifrovaná, a nie je možné ju zobraziť!';
-$messages['nocontactsfound'] = 'Nemáte žiadne kontakty';
-$messages['contactnotfound'] = 'Požadovaný kontakt nebol nájdený';
-$messages['contactsearchonly'] = 'Zadaj nejaký vyhľadávací výraz pre hľadanie kontaktov.';
-$messages['sendingfailed'] = 'Odosielanie správy zlyhalo';
-$messages['senttooquickly'] = 'PoÄkajte $sec sekúnd pred odoslaním tejto správy';
-$messages['errorsavingsent'] = 'PoÄas ukladania odoslanej správy nastala chyba.';
-$messages['errorsaving'] = 'PoÄas ukladania nastala chyba.';
-$messages['errormoving'] = 'Správa sa nedá presunúť';
-$messages['errorcopying'] = 'Správa sa nedá skopírovať';
-$messages['errordeleting'] = 'Správa sa nedá zmazať';
-$messages['errormarking'] = 'Správa sa nedá oznaÄiÅ¥';
-$messages['deletecontactconfirm'] = 'Ste si istý, že chcete zmazať zvolený(é) kontakt(y)?';
-$messages['deletegroupconfirm'] = 'SkutoÄne chceÅ¡ zmazaÅ¥ vybranú skupinu?';
-$messages['deletemessagesconfirm'] = 'Ste si istý, že chcete zmazať zvolenú(é) správu(y)?';
-$messages['deletefolderconfirm'] = 'Ste si istý, že chcete zmazaÅ¥ tento prieÄinok?';
-$messages['purgefolderconfirm'] = 'Ste si istý, že chcete zmazaÅ¥ vÅ¡etky správy v tomto prieÄinku?';
-$messages['contactdeleting'] = 'Mažem kontakt(y)...';
-$messages['groupdeleting'] = 'Mažem skupinu...';
-$messages['folderdeleting'] = 'Odstraňuje sa prieÄinok ...';
-$messages['foldermoving'] = 'PreÄinok sa presúva ...';
-$messages['foldersubscribing'] = 'Prihlasujem sa k adresáru...';
-$messages['folderunsubscribing'] = 'Odhlasujem sa z adresára...';
-$messages['formincomplete'] = 'Formulár nie je kompletne vyplnený';
-$messages['noemailwarning'] = 'Prosím, vložte platnú emailovú adresu';
-$messages['nonamewarning'] = 'Prosím, zadajte meno';
-$messages['nopagesizewarning'] = 'Prosím, zadajte veľkosť strany';
-$messages['nosenderwarning'] = 'Prosím, zadajte adresu odosielateľa';
-$messages['norecipientwarning'] = 'Prosím, vložte aspoň jedného príjemcu';
-$messages['nosubjectwarning'] = 'Predmet správy je prázdny. Chcete ho teraz zadať?';
+$messages['addedsuccessfully'] = 'Kontakt bol pridaný do adresára.';
+$messages['contactexists'] = 'Kontakt s touto e-mailovou adresou už existuje.';
+$messages['contactnameexists'] = 'Kontakt s týmto menom už existuje.';
+$messages['blockedimages'] = 'Kvôli ochrane vášho súkromia boli v tejto správe zablokované vzdialené obrázky.';
+$messages['encryptedmessage'] = 'Táto správa je zaÅ¡ifrovaná, a nie je možné ju zobraziÅ¥. PrepáÄte!';
+$messages['nocontactsfound'] = 'Nenašli sa žiadne kontakty.';
+$messages['contactnotfound'] = 'Požadovaný kontakt sa nenašiel.';
+$messages['contactsearchonly'] = 'Zadajte nejaký výraz pre vyhľadanie kontaktov';
+$messages['sendingfailed'] = 'Nepodarilo sa odoslať správu.';
+$messages['senttooquickly'] = 'PoÄkajte $sec sekúnd pred odoslaním tejto správy.';
+$messages['errorsavingsent'] = 'PoÄas ukladania odoslanej správy sa vyskytla chyba.';
+$messages['errorsaving'] = 'PoÄas ukladania sa vyskytla chyba.';
+$messages['errormoving'] = 'Správy nemožno presunúť.';
+$messages['errorcopying'] = 'Správy nemožno skopírovať,';
+$messages['errordeleting'] = 'Správy nemožno vymazať.';
+$messages['errormarking'] = 'Nemožno oznaÄiÅ¥ správu/správy.';
+$messages['deletecontactconfirm'] = 'Naozaj chcete vymazať vybrané kontakty?';
+$messages['deletegroupconfirm'] = 'Naozaj chcete vymazať vybranú skupinu?';
+$messages['deletemessagesconfirm'] = 'Naozaj chcete vymazať vybrané správy?';
+$messages['deletefolderconfirm'] = 'Naozaj chcete vymazaÅ¥ tento prieÄinok?';
+$messages['purgefolderconfirm'] = 'Naozaj chcete vymazaÅ¥ vÅ¡etky správy v tomto prieÄinku?';
+$messages['contactdeleting'] = 'Vymazávajú sa kontakty...';
+$messages['groupdeleting'] = 'Vymazáva sa skupina...';
+$messages['folderdeleting'] = 'Vymazáva sa prieÄinok ...';
+$messages['foldermoving'] = 'Presúva sa prieÄinok...';
+$messages['foldersubscribing'] = 'Prebieha prihlasovanie k prieÄinku...';
+$messages['folderunsubscribing'] = 'Prebieha odhlasovanie z prieÄinka...';
+$messages['formincomplete'] = 'Formulár nie je kompletne vyplnený.';
+$messages['noemailwarning'] = 'Prosím zadajte platnú emailovú adresu.';
+$messages['nonamewarning'] = 'Prosím zadajte meno.';
+$messages['nopagesizewarning'] = 'Prosím zadajte veľkosť strany.';
+$messages['nosenderwarning'] = 'Prosím zadajte adresu odosielateľa.';
+$messages['norecipientwarning'] = 'Prosím zadajte aspoň jedného príjemcu.';
+$messages['nosubjectwarning'] = '"Predmet" správy je prázdny. Chcete ho teraz zadať?';
$messages['nobodywarning'] = 'Chcete odoslať správu bez textu?';
$messages['notsentwarning'] = 'Správa nebola odoslaná, chcete ju zrušiť?';
-$messages['noldapserver'] = 'Prosím, zvoľte LDAP server na vyhľadávanie';
-$messages['nosearchname'] = 'Prosím vložte meno alebo emailovú adresu';
-$messages['notuploadedwarning'] = 'EÅ¡te neboli nahrané vÅ¡etky prílohy. PoÄkajte prosím alebo nahrávanie zruÅ¡te.';
-$messages['searchsuccessful'] = 'nájdených $nr správ';
-$messages['contactsearchsuccessful'] = 'Bolo nájdených $nr kontaktov.';
-$messages['searchnomatch'] = 'Hľadaný výraz nebol nájdený';
+$messages['restoresavedcomposedata'] = 'Našla sa staršia správa, ktorú ste napísali ale neodoslali.\n\nPredmet: $subject\nUložené: $date\n\nChcete túto správu obnoviť?';
+$messages['noldapserver'] = 'Prosím vyberte server LDAP pre vyhľadávanie.';
+$messages['nosearchname'] = 'Prosím zadajte meno alebo emailovú adresu kontaktu.';
+$messages['notuploadedwarning'] = 'EÅ¡te neboli nahrané vÅ¡etky prílohy. Prosím Äakajte alebo nahrávanie zruÅ¡te.';
+$messages['searchsuccessful'] = 'nájdené správy: $nr.';
+$messages['contactsearchsuccessful'] = 'nájdené kontakty: $nr.';
+$messages['searchnomatch'] = 'Hľadaný výraz sa nenašiel.';
$messages['searching'] = 'Vyhľadáva sa...';
$messages['checking'] = 'Kontroluje sa...';
-$messages['nospellerrors'] = 'Pri kontrole pravopisu neboli nájdené chyby';
-$messages['folderdeleted'] = 'PrieÄinok bol zmazaný';
-$messages['foldersubscribed'] = 'Úspešne prihlásený k adresáru';
-$messages['folderunsubscribed'] = 'Úspešne odhlásený z adresára';
-$messages['folderpurged'] = 'Adresár bol vyprázdnený';
-$messages['folderexpunged'] = 'Adresár bol zhustený';
-$messages['deletedsuccessfully'] = 'Úspešne zmazané';
-$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['nospellerrors'] = 'Pri kontrole pravopisu neboli nájdené chyby.';
+$messages['folderdeleted'] = 'PrieÄinok bol úspeÅ¡ne vymazaný.';
+$messages['foldersubscribed'] = 'Prihlásenie k prieÄinku bolo úspeÅ¡né.';
+$messages['folderunsubscribed'] = 'Odhlásenie z prieÄinka bolo úspeÅ¡né.';
+$messages['folderpurged'] = 'PrieÄinok bol úspeÅ¡ne vyprázdnený.';
+$messages['folderexpunged'] = 'Komprimovanie obsahu prieÄinka bolo úspeÅ¡né.';
+$messages['deletedsuccessfully'] = 'Vymazanie bolo úspešné.';
+$messages['converting'] = 'Odstraňuje sa formátovanie...';
+$messages['messageopenerror'] = 'Správu nemožno naÄítaÅ¥ zo servera.';
+$messages['fileuploaderror'] = 'Nahrávanie súboru bolo neúspešné.';
+$messages['filesizeerror'] = 'Nahraný súbor prekroÄil maximálnu veľkosÅ¥ $size.';
$messages['copysuccess'] = 'PoÄet úspeÅ¡ne skopírovaných kontaktov: $nr.';
$messages['movesuccess'] = 'PoÄet úspeÅ¡ne presunutých kontaktov: $nr.';
$messages['copyerror'] = 'Kontakty nie je možné kopírovať.';
$messages['moveerror'] = 'Kontakty nemožno presúvať.';
-$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'] = 'Presúvanie kontaktu (kontaktov)...';
-$messages['deletingmessage'] = 'Mažem správu(y)...';
-$messages['markingmessage'] = 'OznaÄujem správu(y)...';
-$messages['addingmember'] = 'Pridávam kontakt(y) do skupiny...';
-$messages['removingmember'] = 'Odoberám kontakt(y) zo skupiny';
-$messages['receiptsent'] = 'Potvrdenie o prijatí správy bolo odoslané';
-$messages['errorsendingreceipt'] = 'Potvrdenie o prijatí správy sa nedalo odoslať';
-$messages['deleteidentityconfirm'] = 'SkutoÄne chcete zmazaÅ¥ túto identitu?';
-$messages['nodeletelastidentity'] = 'Identita sa nedá odstrániť, je posledná a musí zostať.';
-$messages['forbiddencharacter'] = 'Názov prieÄinka obsahuje nepovolený znak';
-$messages['selectimportfile'] = 'Zvoľte súbor, ktorý chcete naÄítaÅ¥';
-$messages['addresswriterror'] = 'Zvolený adresár kontaktov je iba na Äítanie';
-$messages['contactaddedtogroup'] = 'Kontakty boli úspešne presunuty do tejto skupiny';
-$messages['contactremovedfromgroup'] = 'Kontakty boli úspešne odstráneny z tejto skupiny';
-$messages['nogroupassignmentschanged'] = 'Priradenia do skupín neboli zmenené.';
-$messages['importwait'] = 'Prebieha import, poÄkajte ...';
-$messages['importformaterror'] = 'Import nebol úspešný! Odoslaný súbor nie je platným súborom, z ktorého je možné vykonať import údajov.';
-$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['sourceisreadonly'] = 'Tento zdroj adries je len na Äítanie.';
+$messages['errorsavingcontact'] = 'Nemožno uložiť adresu kontaktu.';
+$messages['movingmessage'] = 'Prebieha presúvanie správ(y)...';
+$messages['copyingmessage'] = 'Prebieha kopírovanie správ(y)...';
+$messages['copyingcontact'] = 'Prebieha kopírovanie kontaktov...';
+$messages['movingcontact'] = 'Presúvanie kontaktov...';
+$messages['deletingmessage'] = 'Prebieha vymazávanie správ(y)...';
+$messages['markingmessage'] = 'Prebieha oznaÄovanie správ(y)...';
+$messages['addingmember'] = 'Prebieha pridávanie kontaktov do skupiny...';
+$messages['removingmember'] = 'Prebieha odstraňovanie kontaktov zo skupiny...';
+$messages['receiptsent'] = 'Potvrdenie o preÄítaní bolo odoslané.';
+$messages['errorsendingreceipt'] = 'Potvrdenie nemožno odoslať.';
+$messages['deleteidentityconfirm'] = 'Naozaj chcete vymazať túto identitu?';
+$messages['nodeletelastidentity'] = 'Túto identitu nemožno odstrániť, pretože je posledná.';
+$messages['forbiddencharacter'] = 'Názov prieÄinka obsahuje nepovolený znak.';
+$messages['selectimportfile'] = 'Zvoľte súbor, ktorý chcete nahrať na server.';
+$messages['addresswriterror'] = 'Do vybraného adresára nie je možné zapisovať údaje.';
+$messages['contactaddedtogroup'] = 'Kontakty boli úspešne pridané do tejto skupiny.';
+$messages['contactremovedfromgroup'] = 'Kontakty boli úspešne odstránené z tejto skupiny.';
+$messages['nogroupassignmentschanged'] = 'Priradenia do skupín sa nezmenili.';
+$messages['importwait'] = 'Prebieha importovanie, prosím Äakajte...';
+$messages['importformaterror'] = 'Importovanie nebolo úspešné! Nahraný súbor nie je platným súborom údajov pre importovanie.';
+$messages['importconfirm'] = '<b>PoÄet úspeÅ¡ne naimportovaných kontaktov: $inserted</b>';
+$messages['importconfirmskipped'] = '<b>PoÄet preskoÄených existujúcich záznamov: $skipped</b>';
$messages['importmessagesuccess'] = 'PoÄet úspeÅ¡ne naimportovaných správ: $nr';
$messages['importmessageerror'] = 'Importovanie bolo neúspeÅ¡né! Odoslaný súbor nie je platným súborom pre správu alebo poÅ¡tový prieÄinok';
-$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Å¥?';
-$messages['httpreceivedencrypterror'] = 'Vyskytla sa vážna chyba v konfigurácii. Kontaktujte bezodkladne administrátora. <b>Vaša správa nemohla byť odoslaná.</b>';
-$messages['smtpconnerror'] = 'Chyba SMTP: Pripojenie na server zlyhalo';
-$messages['smtpautherror'] = 'Chyba SMTP: Autorizácie zlyhala';
-$messages['smtpfromerror'] = 'Chyba SMTP: Nemožno nastaviť odosielateľa ($msg)';
-$messages['smtptoerror'] = 'Chyba SMTP: Nemožno pridať príjemca ($msg)';
-$messages['smtprecipientserror'] = 'Chyba SMTP: Nemožno spracovať zoznam príjemcov';
+$messages['opnotpermitted'] = 'Táto operácia nie je povolená!';
+$messages['nofromaddress'] = 'Pri vybranej identite chýba e-mailová adresa.';
+$messages['editorwarning'] = 'Prepnutie na editor Äistého textu spôsobí stratu formátovania. Naozaj chcete pokraÄovaÅ¥?';
+$messages['httpreceivedencrypterror'] = 'Vyskytla sa vážna chyba v konfigurácii. IhneÄ kontaktujte administrátora. <b>VaÅ¡u správu nemožno odoslaÅ¥.</b>';
+$messages['smtpconnerror'] = 'Chyba SMTP ($code): Neúspešné pripojenie k serveru.';
+$messages['smtpautherror'] = 'Chyba SMTP ($code): Neúspešná autentifikácia.';
+$messages['smtpfromerror'] = 'Chyba SMTP ($code): Nemožno nastaviť odosielateľa "$from" ($msg).';
+$messages['smtptoerror'] = 'Chyba SMTP ($code): Nemožno pridať príjemcu "$to" ($msg).';
+$messages['smtprecipientserror'] = 'Chyba SMTP: Nemožno spracovať zoznam príjemcov.';
$messages['smtperror'] = 'Chyba SMTP: $msg';
$messages['emailformaterror'] = 'Neplatná e-mailová adresa: $email';
-$messages['toomanyrecipients'] = 'PríliÅ¡ veľa príjemcov. ZmenÅ¡ite poÄet príjemcov na $max.';
-$messages['maxgroupmembersreached'] = 'PoÄet Älenov skupiny dosiahol maxima z $max';
+$messages['toomanyrecipients'] = 'PríliÅ¡ veľa príjemcov. Zredukujte poÄet príjemcov na $max.';
+$messages['maxgroupmembersreached'] = 'PoÄet Älenov skupiny prekraÄuje maximum: $max';
$messages['internalerror'] = 'Došlo k internej chybe systému. Prosím skúste to ešte raz.';
-$messages['contactdelerror'] = 'Nemôžem vymazať kontakt(y)';
-$messages['contactdeleted'] = 'Kontakt(y) bol vymazaný';
-$messages['contactrestoreerror'] = 'Nemôžem obnoviť zmazané kontakty';
-$messages['contactrestored'] = 'Kontakty boli úspešne obnovené';
-$messages['groupdeleted'] = 'Skupina bola vymazaná';
-$messages['grouprenamed'] = 'Skupina bola premenovaná';
-$messages['groupcreated'] = 'Skupina bola vytvorená';
-$messages['savedsearchdeleted'] = 'Uložené vyhľadávanie bolo vymazané.';
-$messages['savedsearchdeleteerror'] = 'Nemôžem zmazať uložené vyhľadávanie.';
-$messages['savedsearchcreated'] = 'Uložené vyhľadávanie bolo vytvorené.';
-$messages['savedsearchcreateerror'] = 'Nemôžem vytvoriť uložené vyhľadávanie';
-$messages['messagedeleted'] = 'Správa(y) bola vymazaná';
-$messages['messagemoved'] = 'Správa(y) bola presunutá';
-$messages['messagecopied'] = 'Správa(y) bola skopírovaná';
-$messages['messagemarked'] = 'Správa(y) bola oznaÄená';
-$messages['autocompletechars'] = 'Zadajte najmenej $min znamkov pre automatické dopĺňanie';
-$messages['autocompletemore'] = 'Bolo nájdených viac záznamov. Napíšte prosím viac znakov.';
-$messages['namecannotbeempty'] = 'Meno nemôže byť prázdne';
-$messages['nametoolong'] = 'Meno je príliš dlhé';
-$messages['folderupdated'] = 'Adresár bol aktualizovaný';
-$messages['foldercreated'] = 'Adresár bol vytvorený';
-$messages['invalidimageformat'] = 'Zlý formát obrázku';
-$messages['mispellingsfound'] = 'V správe boli nájdené pravopisné chyby';
-$messages['parentnotwritable'] = 'Nemôžem vytvoriť/presunúť adresár do zvoleného nadradeného adresára. Nemáte oprávnenia na zmenu.';
+$messages['contactdelerror'] = 'Nemožno vymazať kontakt(y).';
+$messages['contactdeleted'] = 'Kontakty boli úspešne vymazané.';
+$messages['contactrestoreerror'] = 'Nemožno obnoviť vymazané kontakty.';
+$messages['contactrestored'] = 'Kontakty boli úspešne obnovené.';
+$messages['groupdeleted'] = 'Skupina bola úspešne vymazaná.';
+$messages['grouprenamed'] = 'Skupina bola úspešne premenovaná.';
+$messages['groupcreated'] = 'Skupina bola úspešne vytvorená.';
+$messages['savedsearchdeleted'] = 'Uložené vyhľadávanie bolo úspešne vymazané.';
+$messages['savedsearchdeleteerror'] = 'Nemožno vymazať uložené vyhľadávanie.';
+$messages['savedsearchcreated'] = 'Uložené vyhľadávanie bolo úspešne vytvorené.';
+$messages['savedsearchcreateerror'] = 'Nemožno vytvoriť uložené vyhľadávanie.';
+$messages['messagedeleted'] = 'Vymazanie správ(y) bolo úspešné.';
+$messages['messagemoved'] = 'Presunutie správ(y) bolo úspešné.';
+$messages['messagecopied'] = 'Kopírovanie správ(y) bolo úspešné.';
+$messages['messagemarked'] = 'OznaÄovanie správ(y) bolo úspeÅ¡né.';
+$messages['autocompletechars'] = 'Zadajte najmenej $min znakov pre automatické dopĺňanie.';
+$messages['autocompletemore'] = 'Našlo sa viacero záznamov. Zadajte prosím viac znakov.';
+$messages['namecannotbeempty'] = 'Meno nemôže byť prázdne.';
+$messages['nametoolong'] = 'Meno je príliš dlhé.';
+$messages['folderupdated'] = 'PrieÄinok bol úspeÅ¡n aktualizovaný.';
+$messages['foldercreated'] = 'PrieÄinok bol úspeÅ¡ne vytvorený.';
+$messages['invalidimageformat'] = 'Neplatný formát obrázku';
+$messages['mispellingsfound'] = 'V správe boli nájdené pravopisné chyby.';
+$messages['parentnotwritable'] = 'Nemožno vytvoriÅ¥/presunúť prieÄinok do vybraného rodiÄovského prieÄinka. Nemáte prístupové oprávnenia.';
$messages['messagetoobig'] = 'Časť správy je príliš veľká na spracovanie.';
$messages['attachmentvalidationerror'] = 'UPOZORNENIE! Táto príloha je podozrivá, pretože jej typ sa nezhoduje s typom uvedeným v správe. Ak odosielateľovi prílohy nedôverujete, nemali by ste prílohu otváraÅ¥. Môže totiž obsahovaÅ¥ Å¡kodlivý obsah.<br/><br/><em>OÄakávaná hodnota: $expected; nájdená hodnota: $detected</em>';
$messages['noscriptwarning'] = 'Upozornenie: Táto webmailová služba vyžaduje Javascript! Ak ju chcete používaÅ¥, prosím aktivujte Javascript v nastaveniach svojho prehliadaÄa.';
diff --git a/program/localization/sv_SE/labels.inc b/program/localization/sv_SE/labels.inc
index 8116afeff..3a8af75d8 100644
--- a/program/localization/sv_SE/labels.inc
+++ b/program/localization/sv_SE/labels.inc
@@ -197,6 +197,8 @@ $labels['spellcheck'] = 'Rättstava';
$labels['checkspelling'] = 'Kontrollera stavning';
$labels['resumeediting'] = 'Ã…teruppta redigering';
$labels['revertto'] = 'Återgå till';
+$labels['restore'] = 'Ã…terskapa';
+$labels['restoremessage'] = 'Ã…terskapa meddelande?';
$labels['responses'] = 'Responser';
$labels['insertresponse'] = 'Infoga respons';
$labels['manageresponses'] = 'Hantera responser';
@@ -436,6 +438,9 @@ $labels['standardwindows'] = 'Hantera popup-rutor som standardfönster';
$labels['forwardmode'] = 'Vidarebefordra meddelande';
$labels['inline'] = 'Infogat';
$labels['asattachment'] = 'Bilaga';
+$labels['replyallmode'] = 'Standardfunktion för knappen [Svara alla]';
+$labels['replyalldefault'] = 'Svara alla';
+$labels['replyalllist'] = 'Svara endast lista (i förekommande fall)';
$labels['folder'] = 'Katalog';
$labels['folders'] = 'Kataloger';
$labels['foldername'] = 'Katalognamn';
diff --git a/program/localization/sv_SE/messages.inc b/program/localization/sv_SE/messages.inc
index 16bbd5a23..a61b7ccc4 100644
--- a/program/localization/sv_SE/messages.inc
+++ b/program/localization/sv_SE/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Ange minst en mottagare';
$messages['nosubjectwarning'] = 'Ämnesraden är tom. Vill du ange ämne nu?';
$messages['nobodywarning'] = 'Skicka det här meddelandet utan text?';
$messages['notsentwarning'] = 'Meddelandet har inte skickats. Vill du avbryta meddelandet?';
+$messages['restoresavedcomposedata'] = 'Ett tidigare skrivet men inte skickat meddelande upptäcktes.\n\nÄmne: $subject\nSparat: $date\n\nVill du återskapa meddelandet?';
$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.';
diff --git a/program/localization/tr_TR/labels.inc b/program/localization/tr_TR/labels.inc
index bcecd51f7..1f20a22bc 100644
--- a/program/localization/tr_TR/labels.inc
+++ b/program/localization/tr_TR/labels.inc
@@ -197,6 +197,16 @@ $labels['spellcheck'] = 'Yazım denetimi';
$labels['checkspelling'] = 'Yazım denetimi yap';
$labels['resumeediting'] = 'Düzenlemeye devam et';
$labels['revertto'] = 'Geri çevir:';
+$labels['restore'] = 'Geri yükle';
+$labels['restoremessage'] = 'Mesajı geri yükle?';
+$labels['responses'] = 'Yanıtlar';
+$labels['insertresponse'] = 'Yanıt ekle';
+$labels['manageresponses'] = 'Yanıtları yönet';
+$labels['savenewresponse'] = 'Yeni yanıt kaydet';
+$labels['editresponses'] = 'Yanıtları düzenle';
+$labels['editresponse'] = 'Yanıtı düzenle';
+$labels['responsename'] = 'Ad';
+$labels['responsetext'] = 'Yanıt metni';
$labels['attach'] = 'Ekle';
$labels['attachments'] = 'Ekler';
$labels['upload'] = 'Yükle';
@@ -428,6 +438,9 @@ $labels['standardwindows'] = 'Popup pencerelerini standart pencere olarak yönet
$labels['forwardmode'] = 'Posta yönlendirme';
$labels['inline'] = 'postanın içinde';
$labels['asattachment'] = 'ek olarak';
+$labels['replyallmode'] = '[Tümünü yanıtla] düğmesinin varsayılan eylemi';
+$labels['replyalldefault'] = 'Hepsini yanıtla';
+$labels['replyalllist'] = 'Sadece postalama listesindekileri yanıtla (eğer varsa)';
$labels['folder'] = 'Klasör';
$labels['folders'] = 'Klasörler';
$labels['foldername'] = 'Klasör Adı';
diff --git a/program/localization/tr_TR/messages.inc b/program/localization/tr_TR/messages.inc
index 182fc966b..ede900d01 100644
--- a/program/localization/tr_TR/messages.inc
+++ b/program/localization/tr_TR/messages.inc
@@ -82,6 +82,7 @@ $messages['norecipientwarning'] = 'Lütfen en az bir alıcı belirtin';
$messages['nosubjectwarning'] = '"Konu" kutusu boş bırakılmış. Şimdi bir konu belirtmek ister misiniz?';
$messages['nobodywarning'] = 'Postayı boş olarak gönder?';
$messages['notsentwarning'] = 'Posta gönderilmedi. Postanızı iptal etmek istiyor musunuz?';
+$messages['restoresavedcomposedata'] = 'Daha önce oluşturulmuş fakat gönderilmemiş mesaj bulundu.\n\nKonu: $subject\Kaydetme zamanı: $date\n\nBu mesajı geri yüklemek istiyor musunuz?';
$messages['noldapserver'] = 'Lütfen arama için bir LDAP sunucu seçin';
$messages['nosearchname'] = 'Lütfen bir kişi ismi veya e-posta adresi girin';
$messages['notuploadedwarning'] = 'Henüz tüm ekli dosyalar yüklenmedi. Lütfen bekleyin ya da yüklemeyi iptal edin.';
diff --git a/program/localization/uk_UA/labels.inc b/program/localization/uk_UA/labels.inc
index f530c212e..8603dd10c 100644
--- a/program/localization/uk_UA/labels.inc
+++ b/program/localization/uk_UA/labels.inc
@@ -136,6 +136,7 @@ $labels['currpage'] = 'Поточна Ñторінка';
$labels['unread'] = 'Ðепрочитані';
$labels['flagged'] = 'Із зірочкою';
$labels['unanswered'] = 'Без відповіді';
+$labels['withattachment'] = 'З вкладеннÑм';
$labels['deleted'] = 'Видалені';
$labels['undeleted'] = 'Ðе видалено';
$labels['invert'] = 'Інвертувати виділеннÑ';
@@ -173,13 +174,14 @@ $labels['resetsearch'] = 'ОчиÑтити пошук';
$labels['searchmod'] = 'Де шукати';
$labels['msgtext'] = 'Ð’ уÑьому лиÑÑ‚Ñ–';
$labels['body'] = 'Тіло повідомленнÑ';
+$labels['type'] = 'Тип';
$labels['namex'] = 'Ім\'Ñ';
$labels['openinextwin'] = 'Відкрити в новому вікні';
$labels['emlsave'] = 'Зберегти (.eml)';
$labels['changeformattext'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² текÑтовому форматі';
$labels['changeformathtml'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ форматі HTML';
$labels['editasnew'] = 'Редагувати Ñк новий';
-$labels['send'] = 'Відправлено';
+$labels['send'] = 'Відправити';
$labels['sendmessage'] = 'ÐадіÑлати зараз';
$labels['savemessage'] = 'Зберегти чернетку';
$labels['addattachment'] = 'ВклаÑти файл';
@@ -194,6 +196,9 @@ $labels['spellcheck'] = 'ОрфографіÑ';
$labels['checkspelling'] = 'Перевірити орфографію';
$labels['resumeediting'] = 'Продовжити редагуваннÑ';
$labels['revertto'] = 'Відмінити редагуваннÑ';
+$labels['restore'] = 'Відновити';
+$labels['restoremessage'] = 'ВІдновити повідомленнÑ?';
+$labels['responsename'] = 'Ім’Ñ';
$labels['attach'] = 'ВклаÑти';
$labels['attachments'] = 'Вкладені файли';
$labels['upload'] = 'ВклаÑти';
@@ -312,6 +317,7 @@ $labels['searchdelete'] = 'Видалити пошук';
$labels['import'] = 'Імпорт';
$labels['importcontacts'] = 'Імпортувати контакти';
$labels['importfromfile'] = 'Імпортувати з файлу:';
+$labels['importtarget'] = 'Додати контакт до';
$labels['importreplace'] = 'Замінити вÑÑŽ адреÑну книгу';
$labels['importgroupsexisting'] = 'Лише Ð´Ð»Ñ Ñ–Ñнуючих груп';
$labels['importdesc'] = 'Ви можете завантажити контакти з Ñ–Ñнуючої адреÑної книги.<br/>Ð’ даний Ñ‡Ð°Ñ Ð¼Ð¸ підтримуємо імпорт Ð°Ð´Ñ€ÐµÑ Ð² форматі візитної картки <a href="http://en.wikipedia.org/wiki/VCard"> vCard</ a> або CSV (дані розділені комами).';
@@ -419,6 +425,8 @@ $labels['mailtoprotohandler'] = 'ЗареєÑтрувати обробник дÐ
$labels['forwardmode'] = 'ПереÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ';
$labels['inline'] = 'у текÑÑ‚Ñ–';
$labels['asattachment'] = 'Ñк вкладеннÑ';
+$labels['replyallmode'] = 'Типова Ð´Ñ–Ñ Ð´Ð»Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ [ВідповіÑти вÑім]';
+$labels['replyalldefault'] = 'відповіÑти уÑім';
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Ðазва папки';
diff --git a/program/localization/uk_UA/messages.inc b/program/localization/uk_UA/messages.inc
index 620e1520b..fb3539467 100644
--- a/program/localization/uk_UA/messages.inc
+++ b/program/localization/uk_UA/messages.inc
@@ -27,6 +27,7 @@ $messages['requesttimedout'] = 'Тайм-аут запиту';
$messages['errorreadonly'] = 'Ðеможливо виконати операцію. Папка доÑтупна тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.';
$messages['errornoperm'] = 'Ðеможливо виконати операцію. ДоÑтуп заборонено';
$messages['erroroverquota'] = 'Ðеможливо виконати операцію. Ðемає вільного міÑÑ†Ñ Ð½Ð° диÑку.';
+$messages['erroroverquotadelete'] = 'ÐедоÑтатньо вільного міÑÑ†Ñ Ð½Ð° диÑку. СкориÑтайтеÑÑŒ SHIFT+DEL Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ.';
$messages['invalidrequest'] = 'Ðевірний запит! Дані не збережено.';
$messages['invalidhost'] = 'Ðевірне ім\'Ñ Ñерверу.';
$messages['nomessagesfound'] = 'ЛиÑтів не знайдено';
@@ -54,6 +55,7 @@ $messages['contactsearchonly'] = 'Введіть деÑкі критерії пÐ
$messages['sendingfailed'] = 'Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ лиÑта';
$messages['senttooquickly'] = 'Будь лаÑка, зачекайте $sec Ñекунд Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта';
$messages['errorsavingsent'] = 'Помилка при збереженні відправленого повідомленнÑ.';
+$messages['errorsaving'] = 'Помилка при збереженні.';
$messages['errormoving'] = 'Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñтити лиÑти';
$messages['errorcopying'] = 'Ðе вдалоÑÑ Ð·ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ñ‚Ð¸ лиÑти';
$messages['errordeleting'] = 'Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ лиÑти';
@@ -97,12 +99,16 @@ $messages['converting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ...';
$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['movingcontact'] = 'ПеренеÑÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів)...';
$messages['deletingmessage'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)';
$messages['markingmessage'] = 'ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)';
$messages['addingmember'] = 'Ð”Ð¾Ð´Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів) до групи...';
@@ -121,6 +127,7 @@ $messages['importwait'] = 'ІмпортуваннÑ, будь лаÑка, зач
$messages['importformaterror'] = 'Помилка імпорту! Завантажений файл має невідомий формат даних.';
$messages['importconfirm'] = '<b>УÑпішно імпортовано $inserted контактів, пропущено $skipped Ñ–Ñнуючих</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Пропущені $skipped наÑвні запиÑи</b>';
+$messages['importmessagesuccess'] = 'УÑпішно імпортовано $nr повідомлень';
$messages['importmessageerror'] = 'Імпорт не вдавÑÑ! Завантажений файл не Ñ” припуÑтимим Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ файлом поштової Ñкриньки';
$messages['opnotpermitted'] = 'Ð”Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð°!';
$messages['nofromaddress'] = 'Ð’ обраному профілі не виÑтачає адреÑи електронної пошти';
@@ -135,6 +142,7 @@ $messages['smtperror'] = 'Помилка SMTP: $msg';
$messages['emailformaterror'] = 'Ðевірна електронна адреÑа: $email';
$messages['toomanyrecipients'] = 'Занадто багато отримувачів. Зменшіть Ñ—Ñ… чиÑло до $max.';
$messages['maxgroupmembersreached'] = 'ЧиÑло Ð°Ð´Ñ€ÐµÑ Ñƒ групі перевищило макÑимум у $max.';
+$messages['internalerror'] = 'Виникла Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз.';
$messages['contactdelerror'] = 'Ðеможливо видалити контакт(и)';
$messages['contactdeleted'] = 'Контакт(и) видалено уÑпішно';
$messages['contactrestoreerror'] = 'Ðеможливо відновити видалений(Ñ–) контакт(и).';
diff --git a/program/localization/zh_TW/labels.inc b/program/localization/zh_TW/labels.inc
index 4250e5137..ca7debdea 100644
--- a/program/localization/zh_TW/labels.inc
+++ b/program/localization/zh_TW/labels.inc
@@ -423,6 +423,9 @@ $labels['mailtoprotohandler'] = '註冊mailto:å”定處ç†ç¨‹å¼';
$labels['forwardmode'] = '郵件轉寄方å¼';
$labels['inline'] = '放入內文';
$labels['asattachment'] = '當æˆé™„件';
+$labels['replyallmode'] = '「全部回覆ã€æŒ‰éˆ•çš„é è¨­å‹•ä½œ';
+$labels['replyalldefault'] = '全部回覆';
+$labels['replyalllist'] = 'åªå›žè¦†éƒµä»¶åˆ—表 (如有)';
$labels['folder'] = '資料夾';
$labels['folders'] = '資料夾';
$labels['foldername'] = '資料夾å稱';
diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index d4387194a..9af22ec35 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -25,8 +25,8 @@ if (!$OUTPUT->ajax_call)
$cids = rcmail_get_cids();
-$target = get_input_value('_to', RCUBE_INPUT_POST);
-$target_group = get_input_value('_togid', RCUBE_INPUT_POST);
+$target = rcube_utils::get_input_value('_to', rcube_utils::INPUT_POST);
+$target_group = rcube_utils::get_input_value('_togid', rcube_utils::INPUT_POST);
$success = 0;
$errormsg = 'copyerror';
diff --git a/program/steps/addressbook/delete.inc b/program/steps/addressbook/delete.inc
index 3bb2ef500..b2aac8a71 100644
--- a/program/steps/addressbook/delete.inc
+++ b/program/steps/addressbook/delete.inc
@@ -51,8 +51,21 @@ foreach ($cids as $source => $cid)
$deleted = !$plugin['abort'] ? $CONTACTS->delete($cid, $undo_time < 1) : $plugin['result'];
if (!$deleted) {
- $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'contactdelerror', 'error');
- $OUTPUT->command('list_contacts');
+ if ($plugin['message']) {
+ $error = $plugin['message'];
+ }
+ else if (($error = $CONTACTS->get_error()) && $error['message']) {
+ $error = $error['message'];
+ }
+ else {
+ $error = 'contactdelerror';
+ }
+
+ $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
+ $group = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC);
+
+ $OUTPUT->show_message($error, 'error');
+ $OUTPUT->command('list_contacts', $source, $group);
$OUTPUT->send();
}
else {
@@ -113,8 +126,8 @@ $OUTPUT->command('set_rowcount', rcmail_get_rowcount_text($result));
if (!empty($_SESSION['contact_undo'])) {
$_SESSION['contact_undo']['ts'] = time();
- $msg = html::span(null, rcube_label('contactdeleted'))
- . ' ' . html::a(array('onclick' => JS_OBJECT_NAME.".command('undo', '', this)"), rcube_label('undo'));
+ $msg = html::span(null, $RCMAIL->gettext('contactdeleted'))
+ . ' ' . html::a(array('onclick' => rcmail_output::JS_OBJECT_NAME.".command('undo', '', this)"), $RCMAIL->gettext('undo'));
$OUTPUT->show_message($msg, 'confirmation', null, true, $undo_time);
}
diff --git a/program/steps/addressbook/edit.inc b/program/steps/addressbook/edit.inc
index de78baa1b..b5f51d883 100644
--- a/program/steps/addressbook/edit.inc
+++ b/program/steps/addressbook/edit.inc
@@ -36,12 +36,12 @@ if ($RCMAIL->action == 'edit') {
// editing not allowed here
if ($CONTACTS->readonly || $record['readonly']) {
$OUTPUT->show_message('sourceisreadonly');
- rcmail_overwrite_action('show');
+ $RCMAIL->overwrite_action('show');
return;
}
}
else {
- $source = get_input_value('_source', RCUBE_INPUT_GPC);
+ $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
if (strlen($source)) {
$CONTACTS = $RCMAIL->get_address_book($source, true);
@@ -125,7 +125,7 @@ function rcmail_contact_editform($attrib)
$form = array(
'contact' => array(
- 'name' => rcube_label('properties'),
+ 'name' => $RCMAIL->gettext('properties'),
'content' => array(
'email' => array('size' => $i_size, 'visible' => true),
'phone' => array('size' => $i_size, 'visible' => true),
@@ -135,7 +135,7 @@ function rcmail_contact_editform($attrib)
),
),
'personal' => array(
- 'name' => rcube_label('personalinfo'),
+ 'name' => $RCMAIL->gettext('personalinfo'),
'content' => array(
'gender' => array('visible' => true),
'maidenname' => array('size' => $i_size),
@@ -150,7 +150,7 @@ function rcmail_contact_editform($attrib)
if (isset($CONTACT_COLTYPES['notes'])) {
$form['notes'] = array(
- 'name' => rcube_label('notes'),
+ 'name' => $RCMAIL->gettext('notes'),
'content' => array(
'notes' => array('size' => $t_cols, 'rows' => $t_rows, 'label' => false, 'visible' => true, 'limit' => 1),
),
@@ -169,7 +169,7 @@ function rcmail_contact_editform($attrib)
function rcmail_upload_photo_form($attrib)
{
- global $OUTPUT;
+ global $RCMAIL, $OUTPUT;
// set defaults
$attrib += array('id' => 'rcmUploadform', 'buttons' => 'yes');
@@ -179,7 +179,7 @@ function rcmail_upload_photo_form($attrib)
$max_postsize = parse_bytes(ini_get('post_max_size'));
if ($max_postsize && $max_postsize < $max_filesize)
$max_filesize = $max_postsize;
- $max_filesize = show_bytes($max_filesize);
+ $max_filesize = $RCMAIL->show_bytes($max_filesize);
$hidden = new html_hiddenfield(array('name' => '_cid', 'value' => $GLOBALS['cid']));
$input = new html_inputfield(array('type' => 'file', 'name' => '_photo', 'size' => $attrib['size']));
@@ -189,10 +189,10 @@ function rcmail_upload_photo_form($attrib)
$OUTPUT->form_tag(array('id' => $attrib['id'].'Frm', 'name' => 'uploadform', 'method' => 'post', 'enctype' => 'multipart/form-data'),
$hidden->show() .
html::div(null, $input->show()) .
- html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
- (get_boolean($attrib['buttons']) ? html::div('buttons',
- $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
- $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('upload-photo', this.form)"))
+ html::div('hint', $RCMAIL->gettext(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
+ (rcube_utils::get_boolean($attrib['buttons']) ? html::div('buttons',
+ $button->show($RCMAIL->gettext('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
+ $button->show($RCMAIL->gettext('upload'), array('class' => 'button mainaction', 'onclick' => rcmail_output::JS_OBJECT_NAME . ".command('upload-photo', this.form)"))
) : '')
)
);
@@ -247,7 +247,7 @@ function rcmail_source_selector($attrib)
$attrib['name'] = '_source';
$attrib['is_escaped'] = true;
- $attrib['onchange'] = JS_OBJECT_NAME . ".command('save', 'reload', this.form)";
+ $attrib['onchange'] = rcmail_output::JS_OBJECT_NAME . ".command('save', 'reload', this.form)";
$select = new html_select($attrib);
diff --git a/program/steps/addressbook/export.inc b/program/steps/addressbook/export.inc
index 1e988feab..c112f08a3 100644
--- a/program/steps/addressbook/export.inc
+++ b/program/steps/addressbook/export.inc
@@ -140,7 +140,7 @@ else {
}
// send downlaod headers
-header('Content-Type: text/x-vcard; charset='.RCMAIL_CHARSET);
+header('Content-Type: text/x-vcard; charset='.RCUBE_CHARSET);
header('Content-Disposition: attachment; filename="contacts.vcf"');
while ($result && ($row = $result->next())) {
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index f94d15338..db21be290 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -23,36 +23,36 @@ $SEARCH_MODS_DEFAULT = array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1
// general definition of contact coltypes
$CONTACT_COLTYPES = array(
- 'name' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('name'), 'category' => 'main'),
- 'firstname' => array('type' => 'text', 'size' => 19, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('firstname'), 'category' => 'main'),
- 'surname' => array('type' => 'text', 'size' => 19, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('surname'), 'category' => 'main'),
- 'email' => array('type' => 'text', 'size' => 40, 'maxlength' => 254, 'label' => rcube_label('email'), 'subtypes' => array('home','work','other'), 'category' => 'main'),
- 'middlename' => array('type' => 'text', 'size' => 19, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('middlename'), 'category' => 'main'),
- 'prefix' => array('type' => 'text', 'size' => 8, 'maxlength' => 20, 'limit' => 1, 'label' => rcube_label('nameprefix'), 'category' => 'main'),
- 'suffix' => array('type' => 'text', 'size' => 8, 'maxlength' => 20, 'limit' => 1, 'label' => rcube_label('namesuffix'), 'category' => 'main'),
- 'nickname' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('nickname'), 'category' => 'main'),
- 'jobtitle' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('jobtitle'), 'category' => 'main'),
- 'organization' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('organization'), 'category' => 'main'),
- 'department' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('department'), 'category' => 'main'),
- 'gender' => array('type' => 'select', 'limit' => 1, 'label' => rcube_label('gender'), 'options' => array('male' => rcube_label('male'), 'female' => rcube_label('female')), 'category' => 'personal'),
- 'maidenname' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('maidenname'), 'category' => 'personal'),
- 'phone' => array('type' => 'text', 'size' => 40, 'maxlength' => 20, 'label' => rcube_label('phone'), 'subtypes' => array('home','home2','work','work2','mobile','main','homefax','workfax','car','pager','video','assistant','other'), 'category' => 'main'),
- 'address' => array('type' => 'composite', 'label' => rcube_label('address'), 'subtypes' => array('home','work','other'), 'childs' => array(
- 'street' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => rcube_label('street'), 'category' => 'main'),
- 'locality' => array('type' => 'text', 'size' => 28, 'maxlength' => 50, 'label' => rcube_label('locality'), 'category' => 'main'),
- 'zipcode' => array('type' => 'text', 'size' => 8, 'maxlength' => 15, 'label' => rcube_label('zipcode'), 'category' => 'main'),
- 'region' => array('type' => 'text', 'size' => 12, 'maxlength' => 50, 'label' => rcube_label('region'), 'category' => 'main'),
- 'country' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => rcube_label('country'), 'category' => 'main'),
+ 'name' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('name'), 'category' => 'main'),
+ 'firstname' => array('type' => 'text', 'size' => 19, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('firstname'), 'category' => 'main'),
+ 'surname' => array('type' => 'text', 'size' => 19, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('surname'), 'category' => 'main'),
+ 'email' => array('type' => 'text', 'size' => 40, 'maxlength' => 254, 'label' => $RCMAIL->gettext('email'), 'subtypes' => array('home','work','other'), 'category' => 'main'),
+ 'middlename' => array('type' => 'text', 'size' => 19, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('middlename'), 'category' => 'main'),
+ 'prefix' => array('type' => 'text', 'size' => 8, 'maxlength' => 20, 'limit' => 1, 'label' => $RCMAIL->gettext('nameprefix'), 'category' => 'main'),
+ 'suffix' => array('type' => 'text', 'size' => 8, 'maxlength' => 20, 'limit' => 1, 'label' => $RCMAIL->gettext('namesuffix'), 'category' => 'main'),
+ 'nickname' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('nickname'), 'category' => 'main'),
+ 'jobtitle' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('jobtitle'), 'category' => 'main'),
+ 'organization' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('organization'), 'category' => 'main'),
+ 'department' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('department'), 'category' => 'main'),
+ 'gender' => array('type' => 'select', 'limit' => 1, 'label' => $RCMAIL->gettext('gender'), 'options' => array('male' => $RCMAIL->gettext('male'), 'female' => $RCMAIL->gettext('female')), 'category' => 'personal'),
+ 'maidenname' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('maidenname'), 'category' => 'personal'),
+ 'phone' => array('type' => 'text', 'size' => 40, 'maxlength' => 20, 'label' => $RCMAIL->gettext('phone'), 'subtypes' => array('home','home2','work','work2','mobile','main','homefax','workfax','car','pager','video','assistant','other'), 'category' => 'main'),
+ 'address' => array('type' => 'composite', 'label' => $RCMAIL->gettext('address'), 'subtypes' => array('home','work','other'), 'childs' => array(
+ 'street' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => $RCMAIL->gettext('street'), 'category' => 'main'),
+ 'locality' => array('type' => 'text', 'size' => 28, 'maxlength' => 50, 'label' => $RCMAIL->gettext('locality'), 'category' => 'main'),
+ 'zipcode' => array('type' => 'text', 'size' => 8, 'maxlength' => 15, 'label' => $RCMAIL->gettext('zipcode'), 'category' => 'main'),
+ 'region' => array('type' => 'text', 'size' => 12, 'maxlength' => 50, 'label' => $RCMAIL->gettext('region'), 'category' => 'main'),
+ 'country' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => $RCMAIL->gettext('country'), 'category' => 'main'),
), 'category' => 'main'),
- 'birthday' => array('type' => 'date', 'size' => 12, 'maxlength' => 16, 'label' => rcube_label('birthday'), 'limit' => 1, 'render_func' => 'rcmail_format_date_col', 'category' => 'personal'),
- 'anniversary' => array('type' => 'date', 'size' => 12, 'maxlength' => 16, 'label' => rcube_label('anniversary'), 'limit' => 1, 'render_func' => 'rcmail_format_date_col', 'category' => 'personal'),
- 'website' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => rcube_label('website'), 'subtypes' => array('homepage','work','blog','profile','other'), 'category' => 'main'),
- 'im' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => rcube_label('instantmessenger'), 'subtypes' => array('aim','icq','msn','yahoo','jabber','skype','other'), 'category' => 'main'),
- 'notes' => array('type' => 'textarea', 'size' => 40, 'rows' => 15, 'maxlength' => 500, 'label' => rcube_label('notes'), 'limit' => 1),
+ 'birthday' => array('type' => 'date', 'size' => 12, 'maxlength' => 16, 'label' => $RCMAIL->gettext('birthday'), 'limit' => 1, 'render_func' => 'rcmail_format_date_col', 'category' => 'personal'),
+ 'anniversary' => array('type' => 'date', 'size' => 12, 'maxlength' => 16, 'label' => $RCMAIL->gettext('anniversary'), 'limit' => 1, 'render_func' => 'rcmail_format_date_col', 'category' => 'personal'),
+ 'website' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => $RCMAIL->gettext('website'), 'subtypes' => array('homepage','work','blog','profile','other'), 'category' => 'main'),
+ 'im' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'label' => $RCMAIL->gettext('instantmessenger'), 'subtypes' => array('aim','icq','msn','yahoo','jabber','skype','other'), 'category' => 'main'),
+ 'notes' => array('type' => 'textarea', 'size' => 40, 'rows' => 15, 'maxlength' => 500, 'label' => $RCMAIL->gettext('notes'), 'limit' => 1),
'photo' => array('type' => 'image', 'limit' => 1, 'category' => 'main'),
- 'assistant' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('assistant'), 'category' => 'personal'),
- 'manager' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('manager'), 'category' => 'personal'),
- 'spouse' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => rcube_label('spouse'), 'category' => 'personal'),
+ 'assistant' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('assistant'), 'category' => 'personal'),
+ 'manager' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('manager'), 'category' => 'personal'),
+ 'spouse' => array('type' => 'text', 'size' => 40, 'maxlength' => 50, 'limit' => 1, 'label' => $RCMAIL->gettext('spouse'), 'category' => 'personal'),
// TODO: define fields for vcards like GEO, KEY
);
@@ -83,12 +83,12 @@ if (!$RCMAIL->action && !$OUTPUT->ajax_call) {
$OUTPUT->set_env('writable_source', $writeable);
$OUTPUT->set_env('compose_extwin', $RCMAIL->config->get('compose_extwin',false));
- $OUTPUT->set_pagetitle(rcube_label('addressbook'));
+ $OUTPUT->set_pagetitle($RCMAIL->gettext('addressbook'));
$_SESSION['addressbooks_count'] = $count;
$_SESSION['addressbooks_count_writeable'] = $writeable;
// select address book
- $source = get_input_value('_source', RCUBE_INPUT_GPC);
+ $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
// use first directory by default
if (!strlen($source) || !isset($js_list[$source])) {
@@ -115,7 +115,7 @@ function rcmail_contact_source($source=null, $init_env=false, $writable=false)
global $RCMAIL, $OUTPUT, $CONTACT_COLTYPES, $PAGE_SIZE;
if (!strlen($source)) {
- $source = get_input_value('_source', RCUBE_INPUT_GPC);
+ $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
}
// Get object
@@ -129,7 +129,7 @@ function rcmail_contact_source($source=null, $init_env=false, $writable=false)
$CONTACTS->set_page(isset($_SESSION['page']) ? $_SESSION['page'] : 1);
if (!empty($_REQUEST['_gid']))
- $CONTACTS->set_group(get_input_value('_gid', RCUBE_INPUT_GPC));
+ $CONTACTS->set_group(rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC));
if (!$init_env)
return $CONTACTS;
@@ -162,13 +162,13 @@ function rcmail_contact_source($source=null, $init_env=false, $writable=false)
function rcmail_set_sourcename($abook)
{
- global $OUTPUT;
+ global $OUTPUT, $RCMAIL;
// get address book name (for display)
if ($abook && $_SESSION['addressbooks_count'] > 1) {
$name = $abook->get_name();
if (!$name) {
- $name = rcube_label('personaladrbook');
+ $name = $RCMAIL->gettext('personaladrbook');
}
$OUTPUT->set_env('sourcename', html_entity_decode($name, ENT_COMPAT, 'UTF-8'));
}
@@ -189,17 +189,17 @@ function rcmail_directory_list($attrib)
'id' => 'rcmli%s', 'class' => '%s', 'noclose' => true),
html::a(array('href' => '%s',
'rel' => '%s',
- 'onclick' => "return ".JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
+ 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
$sources = (array) $OUTPUT->get_env('address_sources');
reset($sources);
// currently selected source
- $current = get_input_value('_source', RCUBE_INPUT_GPC);
+ $current = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
foreach ($sources as $j => $source) {
$id = strval(strlen($source['id']) ? $source['id'] : $j);
- $js_id = JQ($id);
+ $js_id = rcube::JQ($id);
// set class name(s)
$class_name = 'addressbook';
@@ -214,7 +214,7 @@ function rcmail_directory_list($attrib)
$out .= sprintf($line_templ,
rcube_utils::html_identifier($id, true),
$class_name,
- Q(rcmail_url(null, array('_source' => $id))),
+ rcube::Q($RCMAIL->url(array('_source' => $id))),
$source['id'],
$js_id, $name);
@@ -229,13 +229,13 @@ function rcmail_directory_list($attrib)
$line_templ = html::tag('li', array(
'id' => 'rcmli%s', 'class' => '%s'),
html::a(array('href' => '#', 'rel' => 'S%s',
- 'onclick' => "return ".JS_OBJECT_NAME.".command('listsearch', '%s', this)"), '%s'));
+ 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('listsearch', '%s', this)"), '%s'));
// Saved searches
$sources = $RCMAIL->user->list_searches(rcube_user::SEARCH_ADDRESSBOOK);
foreach ($sources as $j => $source) {
$id = $source['id'];
- $js_id = JQ($id);
+ $js_id = rcube::JQ($id);
// set class name(s)
$class_name = 'contactsearch';
@@ -248,7 +248,7 @@ function rcmail_directory_list($attrib)
rcube_utils::html_identifier('S'.$id, true),
$class_name,
$id,
- $js_id, (!empty($source['name']) ? Q($source['name']) : Q($id)));
+ $js_id, (!empty($source['name']) ? rcube::Q($source['name']) : rcube::Q($id)));
}
$OUTPUT->set_env('contactgroups', $jsdata);
@@ -275,7 +275,7 @@ function rcmail_contact_groups($args)
'id' => 'rcmli%s', 'class' => 'contactgroup'),
html::a(array('href' => '#',
'rel' => '%s:%s',
- 'onclick' => "return ".JS_OBJECT_NAME.".command('listgroup',{'source':'%s','id':'%s'},this)"), '%s'));
+ 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('listgroup',{'source':'%s','id':'%s'},this)"), '%s'));
// append collapse/expand toggle and open a new <ul>
$is_collapsed = strpos($RCMAIL->config->get('collapsed_abooks',''), '&'.rawurlencode($args['source']).'&') !== false;
@@ -285,7 +285,7 @@ function rcmail_contact_groups($args)
$groups_html .= sprintf($line_templ,
rcube_utils::html_identifier('G' . $args['source'] . $group['ID'], true),
$args['source'], $group['ID'],
- $args['source'], $group['ID'], Q($group['name'])
+ $args['source'], $group['ID'], rcube::Q($group['name'])
);
$args['jsdata']['G'.$args['source'].$group['ID']] = array(
'source' => $args['source'], 'id' => $group['ID'],
@@ -304,7 +304,7 @@ function rcmail_contact_groups($args)
// return the contacts list as HTML table
function rcmail_contacts_list($attrib)
{
- global $CONTACTS, $OUTPUT;
+ global $RCMAIL, $CONTACTS, $OUTPUT;
// define list of cols to be displayed
$a_show_cols = array('name','action');
@@ -314,7 +314,7 @@ function rcmail_contacts_list($attrib)
$attrib['id'] = 'rcmAddressList';
// create XHTML table
- $out = rcube_table_output($attrib, array(), $a_show_cols, $CONTACTS->primary_key);
+ $out = $RCMAIL->table_output($attrib, array(), $a_show_cols, $CONTACTS->primary_key);
// set client env
$OUTPUT->add_gui_object('contactslist', $attrib['id']);
@@ -330,7 +330,7 @@ function rcmail_contacts_list($attrib)
function rcmail_js_contacts_list($result, $prefix='')
{
- global $OUTPUT;
+ global $OUTPUT, $RCMAIL;
if (empty($result) || $result->count == 0)
return;
@@ -357,7 +357,7 @@ function rcmail_js_contacts_list($result, $prefix='')
$val = '';
switch ($col) {
case 'name':
- $val = Q(rcube_addressbook::compose_list_name($row));
+ $val = rcube::Q(rcube_addressbook::compose_list_name($row));
break;
case 'action':
@@ -365,8 +365,8 @@ function rcmail_js_contacts_list($result, $prefix='')
$val = html::a(array(
'href' => '#list',
'rel' => $row['ID'],
- 'title' => rcube_label('listgroup'),
- 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", JS_OBJECT_NAME, $source_id, $row['CID']),
+ 'title' => $RCMAIL->gettext('listgroup'),
+ 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", rcmail_output::JS_OBJECT_NAME, $source_id, $row['CID']),
), '&raquo;');
}
else
@@ -374,7 +374,7 @@ function rcmail_js_contacts_list($result, $prefix='')
break;
default:
- $val = Q($row[$col]);
+ $val = rcube::Q($row[$col]);
break;
}
@@ -391,7 +391,7 @@ function rcmail_js_contacts_list($result, $prefix='')
function rcmail_contacts_list_title($attrib)
{
- global $OUTPUT;
+ global $OUTPUT, $RCMAIL;
$attrib += array('label' => 'contacts', 'id' => 'rcmabooklisttitle', 'tag' => 'span');
unset($attrib['name']);
@@ -399,7 +399,7 @@ function rcmail_contacts_list_title($attrib)
$OUTPUT->add_gui_object('addresslist_title', $attrib['id']);
$OUTPUT->add_label('contacts');
- return html::tag($attrib['tag'], $attrib, rcube_label($attrib['label']), html::$common_attrib);
+ return html::tag($attrib['tag'], $attrib, $RCMAIL->gettext($attrib['label']), html::$common_attrib);
}
@@ -417,23 +417,23 @@ function rcmail_contact_frame($attrib)
function rcmail_rowcount_display($attrib)
{
- global $OUTPUT;
+ global $RCMAIL;
if (!$attrib['id'])
$attrib['id'] = 'rcmcountdisplay';
- $OUTPUT->add_gui_object('countdisplay', $attrib['id']);
+ $RCMAIL->output->add_gui_object('countdisplay', $attrib['id']);
if ($attrib['label'])
$_SESSION['contactcountdisplay'] = $attrib['label'];
- return html::span($attrib, rcube_label('loading'));
+ return html::span($attrib, $RCMAIL->gettext('loading'));
}
function rcmail_get_rowcount_text($result=null)
{
- global $CONTACTS, $PAGE_SIZE;
+ global $RCMAIL, $CONTACTS, $PAGE_SIZE;
// read nr of contacts
if (!$result) {
@@ -441,9 +441,9 @@ function rcmail_get_rowcount_text($result=null)
}
if ($result->count == 0)
- $out = rcube_label('nocontactsfound');
+ $out = $RCMAIL->gettext('nocontactsfound');
else
- $out = rcube_label(array(
+ $out = $RCMAIL->gettext(array(
'name' => $_SESSION['contactcountdisplay'] ? $_SESSION['contactcountdisplay'] : 'contactsfromto',
'vars' => array(
'from' => $result->first + 1,
@@ -457,13 +457,15 @@ function rcmail_get_rowcount_text($result=null)
function rcmail_get_type_label($type)
{
+ global $RCMAIL;
+
$label = 'type'.$type;
- if (rcube_label_exists($label, '*', $domain))
- return rcube_label($label, $domain);
+ if ($RCMAIL->text_exists($label, '*', $domain))
+ return $RCMAIL->gettext($label, $domain);
else if (preg_match('/\w+(\d+)$/', $label, $m)
&& ($label = preg_replace('/(\d+)$/', '', $label))
- && rcube_label_exists($label, '*', $domain))
- return rcube_label($label, $domain) . ' ' . $m[1];
+ && $RCMAIL->text_exists($label, '*', $domain))
+ return $RCMAIL->gettext($label, $domain) . ' ' . $m[1];
return ucfirst($type);
}
@@ -480,7 +482,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
$form = $plugin['form'];
$record = $plugin['record'];
$edit_mode = $RCMAIL->action != 'show';
- $del_button = $attrib['deleteicon'] ? html::img(array('src' => $RCMAIL->output->get_skin_file($attrib['deleteicon']), 'alt' => rcube_label('delete'))) : rcube_label('delete');
+ $del_button = $attrib['deleteicon'] ? html::img(array('src' => $RCMAIL->output->get_skin_file($attrib['deleteicon']), 'alt' => $RCMAIL->gettext('delete'))) : $RCMAIL->gettext('delete');
unset($attrib['deleteicon']);
$out = '';
@@ -507,7 +509,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
continue;
$select_add = new html_select(array('class' => 'addfieldmenu', 'rel' => $section));
- $select_add->add(rcube_label('addfield'), '');
+ $select_add->add($RCMAIL->gettext('addfield'), '');
// render head section with name fields (not a regular list of rows)
if ($section == 'head') {
@@ -539,7 +541,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
if ($RCMAIL->action == 'show') {
if (!empty($record[$col]))
- $fields .= html::span('namefield ' . $col, Q($record[$col])) . " ";
+ $fields .= html::span('namefield ' . $col, rcube::Q($record[$col])) . " ";
}
else {
$colprop = (array)$fieldset['content'][$col] + (array)$coltypes[$col];
@@ -548,7 +550,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
$colprop['style'] = 'display:none';
$select_add->add($colprop['label'], $col);
}
- $fields .= rcmail_get_edit_field($col, $record[$col], $colprop, $colprop['type']);
+ $fields .= rcube_output::get_edit_field($col, $record[$col], $colprop, $colprop['type']);
}
}
$content .= html::div($blockname, $fields);
@@ -557,7 +559,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
if ($edit_mode)
$content .= html::p('addfield', $select_add->show(null));
- $out .= html::tag('fieldset', $attrib, (!empty($fieldset['name']) ? html::tag('legend', null, Q($fieldset['name'])) : '') . $content) ."\n";
+ $out .= html::tag('fieldset', $attrib, (!empty($fieldset['name']) ? html::tag('legend', null, rcube::Q($fieldset['name'])) : '') . $content) ."\n";
continue;
}
@@ -575,7 +577,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
// merge colprop with global coltype configuration
$colprop += $coltypes[$field];
- $label = isset($colprop['label']) ? $colprop['label'] : rcube_label($col);
+ $label = isset($colprop['label']) ? $colprop['label'] : $RCMAIL->gettext($col);
// prepare subtype selector in edit mode
if ($edit_mode && is_array($colprop['subtypes'])) {
@@ -636,10 +638,10 @@ function rcmail_contact_form($form, $record, $attrib = null)
if ($edit_mode) {
if ($colprop['subtypes'] || $colprop['limit'] != 1) $cp['array'] = true;
- $composite['{'.$childcol.'}'] = rcmail_get_edit_field($childcol, $childvalue, $cp, $cp['type']) . " ";
+ $composite['{'.$childcol.'}'] = rcube_output::get_edit_field($childcol, $childvalue, $cp, $cp['type']) . " ";
}
else {
- $childval = $cp['render_func'] ? call_user_func($cp['render_func'], $childvalue, $childcol) : Q($childvalue);
+ $childval = $cp['render_func'] ? call_user_func($cp['render_func'], $childvalue, $childcol) : rcube::Q($childvalue);
$composite['{'.$childcol.'}'] = html::span('data ' . $childcol, $childval) . " ";
}
$j++;
@@ -666,7 +668,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
$val = rcmail_format_date_col($val);
}
- $val = rcmail_get_edit_field($col, $val, $colprop, $colprop['type']);
+ $val = rcube_output::get_edit_field($col, $val, $colprop, $colprop['type']);
$coltypes[$field]['count']++;
}
else if ($colprop['render_func'])
@@ -674,7 +676,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
else if (is_array($colprop['options']) && isset($colprop['options'][$val]))
$val = $colprop['options'][$val];
else
- $val = Q($val);
+ $val = rcube::Q($val);
// use subtype as label
if ($colprop['subtypes'])
@@ -682,12 +684,12 @@ function rcmail_contact_form($form, $record, $attrib = null)
// add delete button/link
if ($edit_mode && !($colprop['visible'] && $colprop['limit'] == 1))
- $val .= html::a(array('href' => '#del', 'class' => 'contactfieldbutton deletebutton', 'title' => rcube_label('delete'), 'rel' => $col), $del_button);
+ $val .= html::a(array('href' => '#del', 'class' => 'contactfieldbutton deletebutton', 'title' => $RCMAIL->gettext('delete'), 'rel' => $col), $del_button);
// display row with label
if ($label) {
$rows .= html::div('row',
- html::div('contactfieldlabel label', $select_subtype ? $select_subtype->show($subtype) : Q($label)) .
+ html::div('contactfieldlabel label', $select_subtype ? $select_subtype->show($subtype) : rcube::Q($label)) .
html::div('contactfieldcontent '.$colprop['type'], $val));
}
else // row without label
@@ -703,7 +705,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
// wrap rows in fieldgroup container
if ($rows) {
$content .= html::tag('fieldset', array('class' => 'contactfieldgroup ' . ($colprop['subtypes'] ? 'contactfieldgroupmulti ' : '') . 'contactcontroller' . $col, 'style' => ($rows ? null : 'display:none')),
- ($colprop['subtypes'] ? html::tag('legend', null, Q($colprop['label'])) : ' ') .
+ ($colprop['subtypes'] ? html::tag('legend', null, rcube::Q($colprop['label'])) : ' ') .
$rows);
}
}
@@ -722,7 +724,7 @@ function rcmail_contact_form($form, $record, $attrib = null)
}
if ($content)
- $out .= html::tag('fieldset', null, html::tag('legend', null, Q($fieldset['name'])) . $content) ."\n";
+ $out .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($fieldset['name'])) . $content) ."\n";
}
if ($edit_mode) {
@@ -792,7 +794,7 @@ function rcmail_contact_photo($attrib)
function rcmail_format_date_col($val)
{
global $RCMAIL;
- return format_date($val, $RCMAIL->config->get('date_format', 'Y-m-d'), false);
+ return $RCMAIL->format_date($val, $RCMAIL->config->get('date_format', 'Y-m-d'), false);
}
/**
@@ -855,8 +857,8 @@ function rcmail_get_cids($filter = null)
// forms. If _source is an empty string then the ID is a string
// containing contact ID and source name in form: <ID>-<SOURCE>
- $cid = get_input_value('_cid', RCUBE_INPUT_GPC);
- $source = (string) get_input_value('_source', RCUBE_INPUT_GPC);
+ $cid = rcube_utils::get_input_value('_cid', rcube_utils::INPUT_GPC);
+ $source = (string) rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
if (is_array($cid)) {
return $cid;
diff --git a/program/steps/addressbook/groups.inc b/program/steps/addressbook/groups.inc
index 3b9288a2b..900e7ff9f 100644
--- a/program/steps/addressbook/groups.inc
+++ b/program/steps/addressbook/groups.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-$source = get_input_value('_source', RCUBE_INPUT_GPC);
+$source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
$CONTACTS = rcmail_contact_source($source);
if ($CONTACTS->readonly || !$CONTACTS->groups) {
@@ -28,7 +28,7 @@ if ($CONTACTS->readonly || !$CONTACTS->groups) {
}
if ($RCMAIL->action == 'group-addmembers') {
- if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($ids = rcmail_get_cids($source))) {
+ if (($gid = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_POST)) && ($ids = rcmail_get_cids($source))) {
$plugin = $RCMAIL->plugins->exec_hook('group_addmembers', array('group_id' => $gid, 'ids' => $ids, 'source' => $source));
$CONTACTS->set_group($gid);
@@ -55,7 +55,7 @@ if ($RCMAIL->action == 'group-addmembers') {
}
else if ($RCMAIL->action == 'group-delmembers') {
- if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($ids = rcmail_get_cids($source))) {
+ if (($gid = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_POST)) && ($ids = rcmail_get_cids($source))) {
$plugin = $RCMAIL->plugins->exec_hook('group_delmembers', array('group_id' => $gid, 'ids' => $ids, 'source' => $source));
if (!$plugin['abort'])
@@ -74,7 +74,7 @@ else if ($RCMAIL->action == 'group-delmembers') {
}
else if ($RCMAIL->action == 'group-create') {
- if ($name = trim(get_input_value('_name', RCUBE_INPUT_POST, true))) {
+ if ($name = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true))) {
$plugin = $RCMAIL->plugins->exec_hook('group_create', array('name' => $name, 'source' => $source));
if (!$plugin['abort'])
@@ -84,7 +84,7 @@ else if ($RCMAIL->action == 'group-create') {
}
if ($created && $OUTPUT->ajax_call) {
- $created['name'] = Q($created['name']);
+ $created['name'] = rcube::Q($created['name']);
$OUTPUT->show_message('groupcreated', 'confirmation');
$OUTPUT->command('insert_contact_group', array('source' => $source) + $created);
}
@@ -94,7 +94,7 @@ else if ($RCMAIL->action == 'group-create') {
}
else if ($RCMAIL->action == 'group-rename') {
- if (($gid = get_input_value('_gid', RCUBE_INPUT_POST)) && ($name = trim(get_input_value('_name', RCUBE_INPUT_POST, true)))) {
+ if (($gid = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_POST)) && ($name = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true)))) {
$plugin = $RCMAIL->plugins->exec_hook('group_rename', array('group_id' => $gid, 'name' => $name, 'source' => $source));
if (!$plugin['abort'])
@@ -106,14 +106,14 @@ else if ($RCMAIL->action == 'group-rename') {
if ($newname && $OUTPUT->ajax_call) {
$OUTPUT->show_message('grouprenamed', 'confirmation');
$OUTPUT->command('update_contact_group', array(
- 'source' => $source, 'id' => $gid, 'name' => Q($newname), 'newid' => $newgid));
+ 'source' => $source, 'id' => $gid, 'name' => rcube::Q($newname), 'newid' => $newgid));
}
else if (!$newname)
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error');
}
else if ($RCMAIL->action == 'group-delete') {
- if ($gid = get_input_value('_gid', RCUBE_INPUT_POST)) {
+ if ($gid = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_POST)) {
$plugin = $RCMAIL->plugins->exec_hook('group_delete', array('group_id' => $gid, 'source' => $source));
if (!$plugin['abort'])
diff --git a/program/steps/addressbook/import.inc b/program/steps/addressbook/import.inc
index 60f5d7b61..c56ddf8f2 100644
--- a/program/steps/addressbook/import.inc
+++ b/program/steps/addressbook/import.inc
@@ -26,7 +26,7 @@
function rcmail_import_form($attrib)
{
global $RCMAIL, $OUTPUT;
- $target = get_input_value('_target', RCUBE_INPUT_GPC);
+ $target = rcube_utils::get_input_value('_target', rcube_utils::INPUT_GPC);
$attrib += array('id' => "rcmImportForm");
@@ -39,7 +39,7 @@ function rcmail_import_form($attrib)
'size' => 40,
'multiple' => 'multiple',
));
- $form = html::p(null, html::label('rcmimportfile', rcube_label('importfromfile')) . $upload->show());
+ $form = html::p(null, html::label('rcmimportfile', $RCMAIL->gettext('importfromfile')) . $upload->show());
$table = new html_table(array('cols' => 2));
// addressbook selector
@@ -49,7 +49,7 @@ function rcmail_import_form($attrib)
foreach ($writable_books as $book)
$select->add($book['name'], $book['id']);
- $table->add('title', html::label('rcmimporttarget', rcube_label('importtarget')));
+ $table->add('title', html::label('rcmimporttarget', $RCMAIL->gettext('importtarget')));
$table->add(null, $select->show($target));
}
else {
@@ -60,18 +60,18 @@ function rcmail_import_form($attrib)
// selector for group import options
if (count($writable_books) >= 1 || $writable_books[0]->groups) {
$select = new html_select(array('name' => '_groups', 'id' => 'rcmimportgroups', 'is_escaped' => true));
- $select->add(rcube_label('none'), '0');
- $select->add(rcube_label('importgroupsall'), '1');
- $select->add(rcube_label('importgroupsexisting'), '2');
+ $select->add($RCMAIL->gettext('none'), '0');
+ $select->add($RCMAIL->gettext('importgroupsall'), '1');
+ $select->add($RCMAIL->gettext('importgroupsexisting'), '2');
- $table->add('title', html::label('rcmimportgroups', rcube_label('importgroups')));
- $table->add(null, $select->show(get_input_value('_groups', RCUBE_INPUT_GPC)));
+ $table->add('title', html::label('rcmimportgroups', $RCMAIL->gettext('importgroups')));
+ $table->add(null, $select->show(rcube_utils::get_input_value('_groups', rcube_utils::INPUT_GPC)));
}
// checkbox to replace the entire address book
$check_replace = new html_checkbox(array('name' => '_replace', 'value' => 1, 'id' => 'rcmimportreplace'));
- $table->add('title', html::label('rcmimportreplace', rcube_label('importreplace')));
- $table->add(null, $check_replace->show(get_input_value('_replace', RCUBE_INPUT_GPC)));
+ $table->add('title', html::label('rcmimportreplace', $RCMAIL->gettext('importreplace')));
+ $table->add(null, $check_replace->show(rcube_utils::get_input_value('_replace', rcube_utils::INPUT_GPC)));
$form .= $table->show(array('id' => null) + $attrib);
@@ -79,7 +79,7 @@ function rcmail_import_form($attrib)
$OUTPUT->add_label('selectimportfile','importwait');
$OUTPUT->add_gui_object('importform', $attrib['id']);
- $out = html::p(null, Q(rcube_label('importdesc'), 'show'));
+ $out = html::p(null, rcube::Q($RCMAIL->gettext('importdesc'), 'show'));
$out .= $OUTPUT->form_tag(array(
'action' => $RCMAIL->url('import'),
@@ -96,12 +96,12 @@ function rcmail_import_form($attrib)
*/
function rcmail_import_confirm($attrib)
{
- global $IMPORT_STATS;
+ global $IMPORT_STATS, $RCMAIL;
$vars = get_object_vars($IMPORT_STATS);
$vars['names'] = $vars['skipped_names'] = '';
- $content = html::p(null, rcube_label(array(
+ $content = html::p(null, $RCMAIL->gettext(array(
'name' => 'importconfirm',
'nr' => $IMPORT_STATS->inserted,
'vars' => $vars,
@@ -111,7 +111,7 @@ function rcmail_import_confirm($attrib)
$content .= html::p('em', join(', ', array_map('Q', $IMPORT_STATS->names)));
if ($IMPORT_STATS->skipped) {
- $content .= html::p(null, rcube_label(array(
+ $content .= html::p(null, $RCMAIL->gettext(array(
'name' => 'importconfirmskipped',
'nr' => $IMPORT_STATS->skipped,
'vars' => $vars,
@@ -129,7 +129,7 @@ function rcmail_import_confirm($attrib)
function rcmail_import_buttons($attrib)
{
global $IMPORT_STATS, $OUTPUT;
- $target = get_input_value('_target', RCUBE_INPUT_GPC);
+ $target = rcube_utils::get_input_value('_target', rcube_utils::INPUT_GPC);
$attrib += array('type' => 'input');
unset($attrib['name']);
@@ -180,9 +180,9 @@ function rcmail_import_group_id($group_name, $CONTACTS, $create, &$import_groups
$importstep = 'rcmail_import_form';
if (is_array($_FILES['_file'])) {
- $replace = (bool)get_input_value('_replace', RCUBE_INPUT_GPC);
- $target = get_input_value('_target', RCUBE_INPUT_GPC);
- $with_groups = intval(get_input_value('_groups', RCUBE_INPUT_GPC));
+ $replace = (bool)rcube_utils::get_input_value('_replace', rcube_utils::INPUT_GPC);
+ $target = rcube_utils::get_input_value('_target', rcube_utils::INPUT_GPC);
+ $with_groups = intval(rcube_utils::get_input_value('_groups', rcube_utils::INPUT_GPC));
$vcards = array();
$upload_error = null;
@@ -232,7 +232,8 @@ if (is_array($_FILES['_file'])) {
// no vcards detected
if (!count($vcards)) {
if ($upload_error == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) {
- $OUTPUT->show_message('filesizeerror', 'error', array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize')))));
+ $size = $RCMAIL->show_bytes(parse_bytes(ini_get('upload_max_filesize')));
+ $OUTPUT->show_message('filesizeerror', 'error', array('size' => $size));
}
else if ($upload_error) {
$OUTPUT->show_message('fileuploaderror', 'error');
@@ -249,7 +250,7 @@ if (is_array($_FILES['_file'])) {
$IMPORT_STATS->inserted = $IMPORT_STATS->skipped = $IMPORT_STATS->invalid = $IMPORT_STATS->errors = 0;
if ($replace) {
- $CONTACTS->delete_all();
+ $CONTACTS->delete_all($CONTACTS->groups && $with_groups < 2);
}
if ($with_groups) {
@@ -276,7 +277,7 @@ if (is_array($_FILES['_file'])) {
// We're using UTF8 internally
$email = $vcard->email[0];
- $email = rcube_idn_to_utf8($email);
+ $email = rcube_utils::idn_to_utf8($email);
if (!$replace) {
$existing = null;
@@ -330,7 +331,7 @@ if (is_array($_FILES['_file'])) {
}
-$OUTPUT->set_pagetitle(rcube_label('importcontacts'));
+$OUTPUT->set_pagetitle($RCMAIL->gettext('importcontacts'));
$OUTPUT->add_handlers(array(
'importstep' => $importstep,
diff --git a/program/steps/addressbook/mailto.inc b/program/steps/addressbook/mailto.inc
index c3cbcadca..fc6a38dc9 100644
--- a/program/steps/addressbook/mailto.inc
+++ b/program/steps/addressbook/mailto.inc
@@ -37,10 +37,10 @@ foreach ($cids as $source => $cid)
if (!empty($_REQUEST['_gid']) && isset($_REQUEST['_source']))
{
- $source = get_input_value('_source', RCUBE_INPUT_GPC);
+ $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
$CONTACTS = $RCMAIL->get_address_book($source);
- $group_id = get_input_value('_gid', RCUBE_INPUT_GPC);
+ $group_id = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC);
$group_data = $CONTACTS->get_group($group_id);
// group has an email address assigned: use that
diff --git a/program/steps/addressbook/move.inc b/program/steps/addressbook/move.inc
index f8204e9ee..6a70e7bda 100644
--- a/program/steps/addressbook/move.inc
+++ b/program/steps/addressbook/move.inc
@@ -25,8 +25,8 @@ if (!$OUTPUT->ajax_call) {
}
$cids = rcmail_get_cids();
-$target = get_input_value('_to', RCUBE_INPUT_POST);
-$target_group = get_input_value('_togid', RCUBE_INPUT_POST);
+$target = rcube_utils::get_input_value('_to', rcube_utils::INPUT_POST);
+$target_group = rcube_utils::get_input_value('_togid', rcube_utils::INPUT_POST);
$all = 0;
$deleted = 0;
diff --git a/program/steps/addressbook/photo.inc b/program/steps/addressbook/photo.inc
index 658027de4..482185735 100644
--- a/program/steps/addressbook/photo.inc
+++ b/program/steps/addressbook/photo.inc
@@ -26,7 +26,7 @@ $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])) {
+if (($file_id = rcube_utils::get_input_value('_photo', rcube_utils::INPUT_GPC)) && ($tempfile = $_SESSION['contacts']['files'][$file_id])) {
$tempfile = $RCMAIL->plugins->exec_hook('attachment_display', $tempfile);
if ($tempfile['status']) {
if ($tempfile['data'])
@@ -37,7 +37,7 @@ if (($file_id = get_input_value('_photo', RCUBE_INPUT_GPC)) && ($tempfile = $_SE
}
else {
// by email, search for contact first
- if ($email = get_input_value('_email', RCUBE_INPUT_GPC)) {
+ if ($email = rcube_utils::get_input_value('_email', rcube_utils::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');
@@ -77,7 +77,7 @@ else {
}
// deliver alt image
-if (!$data && ($alt_img = get_input_value('_alt', RCUBE_INPUT_GPC)) && is_file($alt_img)) {
+if (!$data && ($alt_img = rcube_utils::get_input_value('_alt', rcube_utils::INPUT_GPC)) && is_file($alt_img)) {
$data = file_get_contents($alt_img);
}
@@ -86,6 +86,6 @@ if (!$cid && $email) {
$RCMAIL->output->future_expire_header(86400);
}
-header('Content-Type: ' . rc_image_content_type($data));
+header('Content-Type: ' . rcube_mime::image_content_type($data));
echo $data ? $data : file_get_contents('program/resources/blank.gif');
exit;
diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc
index 7911802b9..c4935b7e7 100644
--- a/program/steps/addressbook/save.inc
+++ b/program/steps/addressbook/save.inc
@@ -20,19 +20,19 @@
*/
$CONTACTS = rcmail_contact_source(null, true, true);
-$cid = get_input_value('_cid', RCUBE_INPUT_POST);
+$cid = rcube_utils::get_input_value('_cid', rcube_utils::INPUT_POST);
$return_action = empty($cid) ? 'add' : 'edit';
// Source changed, display the form again
if (!empty($_GET['_reload'])) {
- rcmail_overwrite_action($return_action);
+ $RCMAIL->overwrite_action($return_action);
return;
}
// cannot edit record
if ($CONTACTS->readonly) {
$OUTPUT->show_message('contactreadonly', 'error');
- rcmail_overwrite_action($return_action);
+ $RCMAIL->overwrite_action($return_action);
return;
}
@@ -46,11 +46,11 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
if ($colprop['childs']) {
$values = array();
foreach ($colprop['childs'] as $childcol => $cp) {
- $vals = get_input_value('_'.$childcol, RCUBE_INPUT_POST, true);
+ $vals = rcube_utils::get_input_value('_'.$childcol, rcube_utils::INPUT_POST, true);
foreach ((array)$vals as $i => $val)
$values[$i][$childcol] = $val;
}
- $subtypes = isset($_REQUEST['_subtype_' . $col]) ? (array)get_input_value('_subtype_' . $col, RCUBE_INPUT_POST) : array('');
+ $subtypes = isset($_REQUEST['_subtype_' . $col]) ? (array)rcube_utils::get_input_value('_subtype_' . $col, rcube_utils::INPUT_POST) : array('');
foreach ($subtypes as $i => $subtype) {
$suffix = $subtype ? ':'.$subtype : '';
if ($values[$i])
@@ -59,8 +59,8 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
}
// assign values and subtypes
else if (is_array($_POST[$fname])) {
- $values = get_input_value($fname, RCUBE_INPUT_POST, true);
- $subtypes = get_input_value('_subtype_' . $col, RCUBE_INPUT_POST);
+ $values = rcube_utils::get_input_value($fname, rcube_utils::INPUT_POST, true);
+ $subtypes = rcube_utils::get_input_value('_subtype_' . $col, rcube_utils::INPUT_POST);
foreach ($values as $i => $val) {
if ($col == 'email') {
@@ -76,7 +76,7 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
}
}
else if (isset($_POST[$fname])) {
- $a_record[$col] = get_input_value($fname, RCUBE_INPUT_POST, true);
+ $a_record[$col] = rcube_utils::get_input_value($fname, rcube_utils::INPUT_POST, true);
// normalize the submitted date strings
if ($colprop['type'] == 'date') {
@@ -103,9 +103,9 @@ if (empty($a_record['name'])) {
// do input checks (delegated to $CONTACTS instance)
if (!$CONTACTS->validate($a_record)) {
$err = (array)$CONTACTS->get_error();
- $OUTPUT->show_message($err['message'] ? Q($err['message']) : 'formincomplete', 'warning');
+ $OUTPUT->show_message($err['message'] ? rcube::Q($err['message']) : 'formincomplete', 'warning');
$GLOBALS['EDIT_RECORD'] = $a_record; // store submitted data to be used in edit form
- rcmail_overwrite_action($return_action);
+ $RCMAIL->overwrite_action($return_action);
return;
}
@@ -127,7 +127,7 @@ if (isset($a_record['photo'])) {
$RCMAIL->session->remove('contacts');
}
-$source = get_input_value('_source', RCUBE_INPUT_GPC);
+$source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
// update an existing contact
if (!empty($cid))
@@ -156,27 +156,27 @@ if (!empty($cid))
$record['name'] = rcube_addressbook::compose_list_name($record);
foreach (array('name') as $col)
- $a_js_cols[] = Q((string)$record[$col]);
+ $a_js_cols[] = rcube::Q((string)$record[$col]);
// update the changed col in list
$OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source, $record);
// show confirmation
$OUTPUT->show_message('successfullysaved', 'confirmation', null, false);
- rcmail_overwrite_action('show');
+ $RCMAIL->overwrite_action('show');
}
else {
// show error message
$err = $CONTACTS->get_error();
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : ($err['message'] ? $err['message'] : 'errorsaving'), 'error', null, false);
- rcmail_overwrite_action('show');
+ $RCMAIL->overwrite_action('show');
}
}
// insert a new contact
else {
// Name of the addressbook already selected on the list
- $orig_source = get_input_value('_orig_source', RCUBE_INPUT_GPC);
+ $orig_source = rcube_utils::get_input_value('_orig_source', rcube_utils::INPUT_GPC);
if (!strlen($source))
$source = $orig_source;
@@ -225,7 +225,7 @@ else {
$result = $CONTACTS->search($CONTACTS->primary_key, $insert_id);
rcmail_js_contacts_list($result, 'parent.');
- $OUTPUT->command('parent.contact_list.select', html_identifier($insert_id));
+ $OUTPUT->command('parent.contact_list.select', rcube_utils::html_identifier($insert_id));
// update record count display
$CONTACTS->reset();
@@ -244,6 +244,6 @@ else {
// show error message
$err = $CONTACTS->get_error();
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : ($err['message'] ? $err['message'] : 'errorsaving'), 'error', null, false);
- rcmail_overwrite_action('add');
+ $RCMAIL->overwrite_action('add');
}
}
diff --git a/program/steps/addressbook/search.inc b/program/steps/addressbook/search.inc
index d153c255a..bb22ec139 100644
--- a/program/steps/addressbook/search.inc
+++ b/program/steps/addressbook/search.inc
@@ -22,8 +22,8 @@
*/
if ($RCMAIL->action == 'search-create') {
- $id = get_input_value('_search', RCUBE_INPUT_POST);
- $name = get_input_value('_name', RCUBE_INPUT_POST, true);
+ $id = rcube_utils::get_input_value('_search', rcube_utils::INPUT_POST);
+ $name = rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true);
if (($params = $_SESSION['search_params']) && $params['id'] == $id) {
@@ -46,7 +46,7 @@ if ($RCMAIL->action == 'search-create') {
if ($result) {
$OUTPUT->show_message('savedsearchcreated', 'confirmation');
- $OUTPUT->command('insert_saved_search', Q($name), Q($result));
+ $OUTPUT->command('insert_saved_search', rcube::Q($name), rcube::Q($result));
}
else
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'savedsearchcreateerror', 'error');
@@ -55,7 +55,7 @@ if ($RCMAIL->action == 'search-create') {
}
if ($RCMAIL->action == 'search-delete') {
- $id = get_input_value('_sid', RCUBE_INPUT_POST);
+ $id = rcube_utils::get_input_value('_sid', rcube_utils::INPUT_POST);
$plugin = $RCMAIL->plugins->exec_hook('saved_search_delete', array('id' => $id));
@@ -66,9 +66,9 @@ if ($RCMAIL->action == 'search-delete') {
if ($result) {
$OUTPUT->show_message('savedsearchdeleted', 'confirmation');
- $OUTPUT->command('remove_search_item', Q($id));
+ $OUTPUT->command('remove_search_item', rcube::Q($id));
// contact list will be cleared, clear also page counter
- $OUTPUT->command('set_rowcount', rcube_label('nocontactsfound'));
+ $OUTPUT->command('set_rowcount', $RCMAIL->gettext('nocontactsfound'));
$OUTPUT->set_env('pagecount', 0);
}
else
@@ -91,7 +91,7 @@ function rcmail_contact_search()
global $RCMAIL, $OUTPUT, $SEARCH_MODS_DEFAULT, $PAGE_SIZE;
$adv = isset($_POST['_adv']);
- $sid = get_input_value('_sid', RCUBE_INPUT_GET);
+ $sid = rcube_utils::get_input_value('_sid', rcube_utils::INPUT_GET);
// get search criteria from saved search
if ($sid && ($search = $RCMAIL->user->get_search($sid))) {
@@ -101,7 +101,7 @@ function rcmail_contact_search()
// get fields/values from advanced search form
else if ($adv) {
foreach (array_keys($_POST) as $key) {
- $s = trim(get_input_value($key, RCUBE_INPUT_POST, true));
+ $s = trim(rcube_utils::get_input_value($key, rcube_utils::INPUT_POST, true));
if (strlen($s) && preg_match('/^_search_([a-zA-Z0-9_-]+)$/', $key, $m)) {
$search[] = $s;
$fields[] = $m[1];
@@ -115,8 +115,8 @@ function rcmail_contact_search()
}
// quick-search
else {
- $search = trim(get_input_value('_q', RCUBE_INPUT_GET, true));
- $fields = explode(',', get_input_value('_headers', RCUBE_INPUT_GET));
+ $search = trim(rcube_utils::get_input_value('_q', rcube_utils::INPUT_GET, true));
+ $fields = explode(',', rcube_utils::get_input_value('_headers', rcube_utils::INPUT_GET));
if (empty($fields)) {
$fields = array_keys($SEARCH_MODS_DEFAULT);
@@ -257,17 +257,17 @@ function rcmail_contact_search_form($attrib)
$form = array(
'main' => array(
- 'name' => rcube_label('properties'),
+ 'name' => $RCMAIL->gettext('properties'),
'content' => array(
),
),
'personal' => array(
- 'name' => rcube_label('personalinfo'),
+ 'name' => $RCMAIL->gettext('personalinfo'),
'content' => array(
),
),
'other' => array(
- 'name' => rcube_label('other'),
+ 'name' => $RCMAIL->gettext('other'),
'content' => array(
),
),
@@ -297,7 +297,7 @@ function rcmail_contact_search_form($attrib)
if ($colprop['type'] != 'image' && !$colprop['nosearch'])
{
$ftype = $colprop['type'] == 'select' ? 'select' : 'text';
- $label = isset($colprop['label']) ? $colprop['label'] : rcube_label($col);
+ $label = isset($colprop['label']) ? $colprop['label'] : $RCMAIL->gettext($col);
$category = $colprop['category'] ? $colprop['category'] : 'other';
// load jquery UI datepicker for date fields
@@ -307,8 +307,8 @@ function rcmail_contact_search_form($attrib)
$colprop['size'] = $i_size;
- $content = html::div('row', html::div('contactfieldlabel label', Q($label))
- . html::div('contactfieldcontent', rcmail_get_edit_field('search_'.$col, '', $colprop, $ftype)));
+ $content = html::div('row', html::div('contactfieldlabel label', rcube::Q($label))
+ . html::div('contactfieldcontent', rcube_output::get_edit_field('search_'.$col, '', $colprop, $ftype)));
$form[$category]['content'][] = $content;
}
@@ -332,7 +332,7 @@ function rcmail_contact_search_form($attrib)
$content = html::div('contactfieldgroup', join("\n", $f['content']));
$out .= html::tag('fieldset', $attrib,
- html::tag('legend', null, Q($f['name']))
+ html::tag('legend', null, rcube::Q($f['name']))
. $content) . "\n";
}
}
diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc
index 840023990..e6a515bd6 100644
--- a/program/steps/addressbook/show.inc
+++ b/program/steps/addressbook/show.inc
@@ -79,7 +79,7 @@ function rcmail_contact_details($attrib)
$form = array(
'contact' => array(
- 'name' => rcube_label('properties'),
+ 'name' => $RCMAIL->gettext('properties'),
'content' => array(
'email' => array('size' => $i_size, 'render_func' => 'rcmail_render_email_value'),
'phone' => array('size' => $i_size),
@@ -89,7 +89,7 @@ function rcmail_contact_details($attrib)
),
),
'personal' => array(
- 'name' => rcube_label('personalinfo'),
+ 'name' => $RCMAIL->gettext('personalinfo'),
'content' => array(
'gender' => array('size' => $i_size),
'maidenname' => array('size' => $i_size),
@@ -101,19 +101,19 @@ function rcmail_contact_details($attrib)
),
),
);
-
+
if (isset($CONTACT_COLTYPES['notes'])) {
$form['notes'] = array(
- 'name' => rcube_label('notes'),
+ 'name' => $RCMAIL->gettext('notes'),
'content' => array(
'notes' => array('type' => 'textarea', 'label' => false),
),
);
}
-
+
if ($CONTACTS->groups) {
$form['groups'] = array(
- 'name' => rcube_label('groups'),
+ 'name' => $RCMAIL->gettext('groups'),
'content' => rcmail_contact_record_groups($record['ID']),
);
}
@@ -124,12 +124,14 @@ function rcmail_contact_details($attrib)
function rcmail_render_email_value($email)
{
+ global $RCMAIL;
+
return html::a(array(
'href' => 'mailto:' . $email,
- 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ($email)),
- 'title' => rcube_label('composeto'),
+ 'onclick' => sprintf("return %s.command('compose','%s',this)", rcmail_output::JS_OBJECT_NAME, rcube::JQ($email)),
+ 'title' => $RCMAIL->gettext('composeto'),
'class' => 'email',
- ), Q($email));
+ ), rcube::Q($email));
}
@@ -140,7 +142,7 @@ function rcmail_render_url_value($url)
'href' => $prefix . $url,
'target' => '_blank',
'class' => 'url',
- ), Q($url));
+ ), rcube::Q($url));
}
@@ -163,10 +165,10 @@ function rcmail_contact_record_groups($contact_id)
$gid = $group['ID'];
$table->add(null, $checkbox->show($members[$gid] ? $gid : null,
array('value' => $gid, 'id' => 'ff_gid' . $gid)));
- $table->add(null, html::label('ff_gid' . $gid, Q($group['name'])));
+ $table->add(null, html::label('ff_gid' . $gid, rcube::Q($group['name'])));
}
- $hiddenfields = new html_hiddenfield(array('name' => '_source', 'value' => get_input_value('_source', RCUBE_INPUT_GPC)));
+ $hiddenfields = new html_hiddenfield(array('name' => '_source', 'value' => rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC)));
$hiddenfields->add(array('name' => '_cid', 'value' => $contact_id));
$form_start = $RCMAIL->output->request_form(array(
diff --git a/program/steps/addressbook/upload_photo.inc b/program/steps/addressbook/upload_photo.inc
index 035d67e83..dbb76d229 100644
--- a/program/steps/addressbook/upload_photo.inc
+++ b/program/steps/addressbook/upload_photo.inc
@@ -54,7 +54,7 @@ if ($filepath = $_FILES['_photo']['tmp_name']) {
));
}
else {
- $attachment['error'] = rcube_label('invalidimageformat');
+ $attachment['error'] = $RCMAIL->gettext('invalidimageformat');
}
if ($attachment['status'] && !$attachment['abort']) {
@@ -63,14 +63,16 @@ if ($filepath = $_FILES['_photo']['tmp_name']) {
$OUTPUT->command('replace_contact_photo', $file_id);
}
else { // upload failed
- $err = $_FILES['_photo']['error'];
+ $err = $_FILES['_photo']['error'];
+ $size = $RCMAIL->show_bytes(parse_bytes(ini_get('upload_max_filesize')));
+
if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE)
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
+ $msg = $RCMAIL->gettext(array('name' => 'filesizeerror', 'vars' => array('size' => $size)));
else if ($attachment['error'])
$msg = $attachment['error'];
else
- $msg = rcube_label('fileuploaderror');
-
+ $msg = $RCMAIL->gettext('fileuploaderror');
+
$OUTPUT->command('display_message', $msg, 'error');
}
}
@@ -78,9 +80,9 @@ else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// if filesize exceeds post_max_size then $_FILES array is empty,
// show filesizeerror instead of fileuploaderror
if ($maxsize = ini_get('post_max_size'))
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes($maxsize)))));
+ $msg = $RCMAIL->gettext(array('name' => 'filesizeerror', 'vars' => array('size' => $RCMAIL->show_bytes(parse_bytes($maxsize)))));
else
- $msg = rcube_label('fileuploaderror');
+ $msg = $RCMAIL->gettext('fileuploaderror');
$OUTPUT->command('display_message', $msg, 'error');
}
diff --git a/program/steps/mail/addcontact.inc b/program/steps/mail/addcontact.inc
index 380557766..9d16e094b 100644
--- a/program/steps/mail/addcontact.inc
+++ b/program/steps/mail/addcontact.inc
@@ -28,7 +28,7 @@ $CONTACTS = $RCMAIL->get_address_book(-1, true);
if (!empty($_POST['_address']) && is_object($CONTACTS))
{
- $contact_arr = rcube_mime::decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false);
+ $contact_arr = rcube_mime::decode_address_list(rcube_utils::get_input_value('_address', rcube_utils::INPUT_POST, true), 1, false);
if (!empty($contact_arr[1]['mailto'])) {
$contact = array(
@@ -42,13 +42,13 @@ if (!empty($_POST['_address']) && is_object($CONTACTS))
$OUTPUT->send();
}
- $email = rcube_idn_to_ascii($contact['email']);
- if (!check_email($email, false)) {
+ $email = rcube_utils::idn_to_ascii($contact['email']);
+ if (!rcube_utils::check_email($email, false)) {
$OUTPUT->show_message('emailformaterror', 'error', array('email' => $contact['email']));
$OUTPUT->send();
}
- $contact['email'] = rcube_idn_to_utf8($contact['email']);
+ $contact['email'] = rcube_utils::idn_to_utf8($contact['email']);
$contact = $RCMAIL->plugins->exec_hook('contact_displayname', $contact);
if (empty($contact['firstname']) || empty($contact['surname']))
diff --git a/program/steps/mail/attachments.inc b/program/steps/mail/attachments.inc
index 85aa9542b..f0ad97d20 100644
--- a/program/steps/mail/attachments.inc
+++ b/program/steps/mail/attachments.inc
@@ -21,10 +21,10 @@
// Upload progress update
if (!empty($_GET['_progress'])) {
- rcube_upload_progress();
+ $RCMAIL->upload_progress();
}
-$COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GPC);
+$COMPOSE_ID = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC);
$COMPOSE = null;
if ($COMPOSE_ID && $_SESSION['compose_data_' . $COMPOSE_ID]) {
@@ -84,7 +84,7 @@ if ($RCMAIL->action=='display-attachment')
// clear all stored output properties (like scripts and env vars)
$OUTPUT->reset();
-$uploadid = get_input_value('_uploadid', RCUBE_INPUT_GET);
+$uploadid = rcube_utils::get_input_value('_uploadid', rcube_utils::INPUT_GET);
if (is_array($_FILES['_attachments']['tmp_name'])) {
$multiple = count($_FILES['_attachments']['tmp_name']) > 1;
@@ -98,7 +98,7 @@ if (is_array($_FILES['_attachments']['tmp_name'])) {
'path' => $filepath,
'size' => $_FILES['_attachments']['size'][$i],
'name' => $_FILES['_attachments']['name'][$i],
- 'mimetype' => rc_mime_content_type($filepath, $_FILES['_attachments']['name'][$i], $_FILES['_attachments']['type'][$i]),
+ 'mimetype' => rcube_mime::file_content_type($filepath, $_FILES['_attachments']['name'][$i], $_FILES['_attachments']['type'][$i]),
'group' => $COMPOSE_ID,
);
@@ -115,11 +115,11 @@ if (is_array($_FILES['_attachments']['tmp_name'])) {
if (($icon = $COMPOSE['deleteicon']) && is_file($icon)) {
$button = html::img(array(
'src' => $icon,
- 'alt' => rcube_label('delete')
+ 'alt' => $RCMAIL->gettext('delete')
));
}
else if ($COMPOSE['textbuttons']) {
- $button = Q(rcube_label('delete'));
+ $button = rcube::Q($RCMAIL->gettext('delete'));
}
else {
$button = '';
@@ -127,29 +127,30 @@ if (is_array($_FILES['_attachments']['tmp_name'])) {
$content = html::a(array(
'href' => "#delete",
- 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id),
- 'title' => rcube_label('delete'),
+ 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", rcmail_output::JS_OBJECT_NAME, $id),
+ 'title' => $RCMAIL->gettext('delete'),
'class' => 'delete',
), $button);
- $content .= Q($attachment['name']);
+ $content .= rcube::Q($attachment['name']);
$OUTPUT->command('add2attachment_list', "rcmfile$id", array(
'html' => $content,
'name' => $attachment['name'],
'mimetype' => $attachment['mimetype'],
- 'classname' => rcmail_filetype2classname($attachment['mimetype'], $attachment['name']),
+ 'classname' => rcube_utils::file2class($attachment['mimetype'], $attachment['name']),
'complete' => true), $uploadid);
}
else { // upload failed
if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) {
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
+ $size = $RCMAIL->show_bytes(parse_bytes(ini_get('upload_max_filesize')));
+ $msg = $RCMAIL->gettext(array('name' => 'filesizeerror', 'vars' => array('size' => $size)));
}
else if ($attachment['error']) {
$msg = $attachment['error'];
}
else {
- $msg = rcube_label('fileuploaderror');
+ $msg = $RCMAIL->gettext('fileuploaderror');
}
if ($attachment['error'] || $err != UPLOAD_ERR_NO_FILE) {
@@ -163,9 +164,9 @@ else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// if filesize exceeds post_max_size then $_FILES array is empty,
// show filesizeerror instead of fileuploaderror
if ($maxsize = ini_get('post_max_size'))
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes($maxsize)))));
+ $msg = $RCMAIL->gettext(array('name' => 'filesizeerror', 'vars' => array('size' => $RCMAIL->show_bytes(parse_bytes($maxsize)))));
else
- $msg = rcube_label('fileuploaderror');
+ $msg = $RCMAIL->gettext('fileuploaderror');
$OUTPUT->command('display_message', $msg, 'error');
$OUTPUT->command('remove_from_attachment_list', $uploadid);
}
diff --git a/program/steps/mail/autocomplete.inc b/program/steps/mail/autocomplete.inc
index f9e8d71a4..acc86229f 100644
--- a/program/steps/mail/autocomplete.inc
+++ b/program/steps/mail/autocomplete.inc
@@ -21,16 +21,16 @@
*/
if ($RCMAIL->action == 'group-expand') {
- $abook = $RCMAIL->get_address_book(get_input_value('_source', RCUBE_INPUT_GPC));
- if ($gid = get_input_value('_gid', RCUBE_INPUT_GPC)) {
+ $abook = $RCMAIL->get_address_book(rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC));
+ if ($gid = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC)) {
$members = array();
$abook->set_group($gid);
$abook->set_pagesize(1000); // TODO: limit number of group members by config
$result = $abook->list_records($RCMAIL->config->get('contactlist_fields'));
while ($result && ($sql_arr = $result->iterate())) {
- foreach ((array)$sql_arr['email'] as $email) {
+ $emails = (array) $abook->get_col_values('email', $sql_arr, true);
+ if (!empty($emails) && ($email = array_shift($emails))) {
$members[] = format_email_recipient($email, rcube_addressbook::compose_list_name($sql_arr));
- break; // only expand one email per contact
}
}
@@ -45,9 +45,9 @@ if ($RCMAIL->action == 'group-expand') {
$MAXNUM = (int) $RCMAIL->config->get('autocomplete_max', 15);
$mode = (int) $RCMAIL->config->get('addressbook_search_mode');
$single = (bool) $RCMAIL->config->get('autocomplete_single');
-$search = get_input_value('_search', RCUBE_INPUT_GPC, true);
-$source = get_input_value('_source', RCUBE_INPUT_GPC);
-$sid = get_input_value('_id', RCUBE_INPUT_GPC);
+$search = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC, true);
+$source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
+$sid = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC);
if (strlen($source))
$book_types = array($source);
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc
index 8c0b1ffc0..60da68a96 100644
--- a/program/steps/mail/check_recent.inc
+++ b/program/steps/mail/check_recent.inc
@@ -65,7 +65,7 @@ foreach ($a_mailboxes as $mbox_name) {
if ($status && $is_current) {
// refresh saved search set
- $search_request = get_input_value('_search', RCUBE_INPUT_GPC);
+ $search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC);
if ($search_request && isset($_SESSION['search'])
&& $_SESSION['search_request'] == $search_request
) {
@@ -73,7 +73,7 @@ foreach ($a_mailboxes as $mbox_name) {
}
if (!empty($_GET['_quota']))
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
$OUTPUT->set_env('exists', $RCMAIL->storage->count($mbox_name, 'EXISTS'));
@@ -114,6 +114,24 @@ foreach ($a_mailboxes as $mbox_name) {
$OUTPUT->command('update_selection');
}
}
+ // handle flag updates
+ else if ($is_current && ($uids = rcube_utils::get_input_value('_uids', rcube_utils::INPUT_GPC))) {
+ $data = $RCMAIL->storage->folder_data($mbox_name);
+
+ if (empty($_SESSION['list_mod_seq']) || $_SESSION['list_mod_seq'] != $data['HIGHESTMODSEQ']) {
+ $flags = $RCMAIL->storage->list_flags($mbox_name, explode(',', $uids), $_SESSION['list_mod_seq']);
+ foreach ($flags as $idx => $row) {
+ $flags[$idx] = array_change_key_case(array_map('intval', $row));
+ }
+
+ // remember last HIGHESTMODSEQ value (if supported)
+ if (!empty($data['HIGHESTMODSEQ'])) {
+ $_SESSION['list_mod_seq'] = $data['HIGHESTMODSEQ'];
+ }
+
+ $RCMAIL->output->set_env('recent_flags', $flags);
+ }
+ }
}
// trigger refresh hook
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index f75b219ff..d5154ffed 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -26,7 +26,7 @@ define('RCUBE_COMPOSE_DRAFT', 'draft');
define('RCUBE_COMPOSE_EDIT', 'edit');
$MESSAGE_FORM = null;
-$COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GET);
+$COMPOSE_ID = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GET);
$COMPOSE = null;
if ($COMPOSE_ID && $_SESSION['compose_data_'.$COMPOSE_ID])
@@ -47,14 +47,14 @@ if (!is_array($COMPOSE))
{
// Infinite redirect prevention in case of broken session (#1487028)
if ($COMPOSE_ID)
- raise_error(array('code' => 500, 'type' => 'php',
+ rcube::raise_error(array('code' => 500, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Invalid compose ID"), true, true);
$COMPOSE_ID = uniqid(mt_rand());
$_SESSION['compose_data_'.$COMPOSE_ID] = array(
'id' => $COMPOSE_ID,
- 'param' => rcube_utils::request2param(RCUBE_INPUT_GET, 'task|action', true),
+ 'param' => rcube_utils::request2param(rcube_utils::INPUT_GET, 'task|action', true),
'mailbox' => $RCMAIL->storage->get_folder(),
);
$COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
@@ -74,7 +74,7 @@ if (!is_array($COMPOSE))
$attachment = array(
'group' => $COMPOSE_ID,
'name' => $filename,
- 'mimetype' => rc_mime_content_type($attach, $filename),
+ 'mimetype' => rcube_mime::file_content_type($attach, $filename),
'path' => $attach,
);
}
@@ -114,7 +114,7 @@ $OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubj
$OUTPUT->set_env('compose_id', $COMPOSE['id']);
$OUTPUT->set_env('session_id', session_id());
-$OUTPUT->set_pagetitle(rcube_label('compose'));
+$OUTPUT->set_pagetitle($RCMAIL->gettext('compose'));
// add config parameters to client script
if (!empty($CONFIG['drafts_mbox'])) {
@@ -127,7 +127,7 @@ $OUTPUT->set_env('top_posting', intval($RCMAIL->config->get('reply_mode')) > 0);
$OUTPUT->set_env('recipients_separator', trim($RCMAIL->config->get('recipients_separator', ',')));
// default font for HTML editor
-$font = rcube_fontdefs($RCMAIL->config->get('default_font'));
+$font = rcmail::font_defs($RCMAIL->config->get('default_font'));
if ($font && !is_array($font)) {
$OUTPUT->set_env('default_font', $font);
}
@@ -264,7 +264,7 @@ $MESSAGE->identities = $RCMAIL->user->list_identities(null, true);
// Set From field value
if (!empty($_POST['_from'])) {
- $MESSAGE->compose['from'] = get_input_value('_from', RCUBE_INPUT_POST);
+ $MESSAGE->compose['from'] = rcube_utils::get_input_value('_from', rcube_utils::INPUT_POST);
}
else if (!empty($COMPOSE['param']['from'])) {
$MESSAGE->compose['from'] = $COMPOSE['param']['from'];
@@ -297,7 +297,7 @@ foreach ($parts as $header) {
$COMPOSE['param']['to'] = $fvalue;
}
else if (!empty($_POST['_'.$header])) {
- $fvalue = get_input_value('_'.$header, RCUBE_INPUT_POST, TRUE);
+ $fvalue = rcube_utils::get_input_value('_'.$header, rcube_utils::INPUT_POST, TRUE);
}
else if (!empty($COMPOSE['param'][$header])) {
$fvalue = $COMPOSE['param'][$header];
@@ -376,7 +376,7 @@ foreach ($parts as $header) {
if (empty($addr_part['mailto']))
continue;
- $mailto = format_email(rcube_idn_to_utf8($addr_part['mailto']));
+ $mailto = format_email(rcube_utils::idn_to_utf8($addr_part['mailto']));
if (!in_array($mailto, $a_recipients)
&& (
@@ -463,7 +463,7 @@ function rcmail_process_compose_params(&$COMPOSE)
function rcmail_compose_headers($attrib)
{
- global $MESSAGE;
+ global $RCMAIL, $MESSAGE;
list($form_start,) = get_form_tags($attrib);
@@ -521,7 +521,7 @@ function rcmail_compose_headers($attrib)
$out = $form_start.$out;
// configure autocompletion
- rcube_autocomplete_init();
+ $RCMAIL->autocomplete_init();
return $out;
}
@@ -544,7 +544,7 @@ function rcmail_compose_header_from($attrib)
$separator = intval($RCMAIL->config->get('reply_mode')) > 0
&& ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD) ? '---' : '-- ';
- $field_attrib['onchange'] = JS_OBJECT_NAME.".change_identity(this)";
+ $field_attrib['onchange'] = rcmail_output::JS_OBJECT_NAME.".change_identity(this)";
$select_from = new html_select($field_attrib);
// create SELECT element
@@ -563,7 +563,7 @@ function rcmail_compose_header_from($attrib)
$text = trim($h2t->get_text());
}
else {
- $html = htmlentities($html, ENT_NOQUOTES, RCMAIL_CHARSET);
+ $html = htmlentities($html, ENT_NOQUOTES, RCUBE_CHARSET);
}
if (!preg_match('/^--[ -]\r?\n/m', $text)) {
@@ -646,8 +646,8 @@ function rcmail_prepare_message_body()
// use posted message body
if (!empty($_POST['_message'])) {
- $body = get_input_value('_message', RCUBE_INPUT_POST, true);
- $isHtml = (bool) get_input_value('_is_html', RCUBE_INPUT_POST);
+ $body = rcube_utils::get_input_value('_message', rcube_utils::INPUT_POST, true);
+ $isHtml = (bool) rcube_utils::get_input_value('_is_html', rcube_utils::INPUT_POST);
}
else if ($COMPOSE['param']['body']) {
$body = $COMPOSE['param']['body'];
@@ -736,7 +736,7 @@ function rcmail_compose_part_body($part, $isHtml = false)
// Check if we have enough memory to handle the message in it
// #1487424: we need up to 10x more memory than the body
- if (!rcmail_mem_check($part->size * 10)) {
+ if (!rcube_utils::mem_check($part->size * 10)) {
return '';
}
@@ -841,7 +841,7 @@ function rcmail_compose_body($attrib)
// If desired, set this textarea to be editable by TinyMCE
if ($isHtml) {
- $MESSAGE_BODY = htmlentities($MESSAGE_BODY, ENT_NOQUOTES, RCMAIL_CHARSET);
+ $MESSAGE_BODY = htmlentities($MESSAGE_BODY, ENT_NOQUOTES, RCUBE_CHARSET);
$attrib['class'] = 'mce_editor';
$attrib['is_escaped'] = true;
$textarea = new html_textarea($attrib);
@@ -861,7 +861,7 @@ function rcmail_compose_body($attrib)
$OUTPUT->set_env('composebody', $attrib['id']);
// include HTML editor
- rcube_html_editor();
+ $RCMAIL->html_editor();
// Set language list
if (!empty($CONFIG['enable_spellcheck'])) {
@@ -882,7 +882,7 @@ function rcmail_compose_body($attrib)
$editor_lang_set = array();
foreach ($spellcheck_langs as $key => $name) {
- $editor_lang_set[] = ($key == $lang ? '+' : '') . JQ($name).'='.JQ($key);
+ $editor_lang_set[] = ($key == $lang ? '+' : '') . rcube::JQ($name).'='.rcube::JQ($key);
}
// include GoogieSpell
@@ -903,16 +903,16 @@ function rcmail_compose_body($attrib)
$RCMAIL->output->get_skin_path(),
$RCMAIL->url(array('_task' => 'utils', '_action' => 'spell', '_remote' => 1)),
!empty($dictionary) ? 'true' : 'false',
- JQ(Q(rcube_label('checkspelling'))),
- JQ(Q(rcube_label('resumeediting'))),
- JQ(Q(rcube_label('close'))),
- JQ(Q(rcube_label('revertto'))),
- JQ(Q(rcube_label('nospellerrors'))),
- JQ(Q(rcube_label('addtodict'))),
- json_serialize($spellcheck_langs),
+ rcube::JQ(rcube::Q($RCMAIL->gettext('checkspelling'))),
+ rcube::JQ(rcube::Q($RCMAIL->gettext('resumeediting'))),
+ rcube::JQ(rcube::Q($RCMAIL->gettext('close'))),
+ rcube::JQ(rcube::Q($RCMAIL->gettext('revertto'))),
+ rcube::JQ(rcube::Q($RCMAIL->gettext('nospellerrors'))),
+ rcube::JQ(rcube::Q($RCMAIL->gettext('addtodict'))),
+ rcube_output::json_serialize($spellcheck_langs),
$lang,
$attrib['id'],
- JS_OBJECT_NAME), 'foot');
+ rcmail_output::JS_OBJECT_NAME), 'foot');
$OUTPUT->add_label('checking');
$OUTPUT->set_env('spellcheck_langs', join(',', $editor_lang_set));
@@ -930,11 +930,11 @@ function rcmail_create_reply_body($body, $bodyIsHtml)
// build reply prefix
$from = array_pop(rcube_mime::decode_address_list($MESSAGE->get_header('from'), 1, false, $MESSAGE->headers->charset));
- $prefix = rcube_label(array(
+ $prefix = $RCMAIL->gettext(array(
'name' => 'mailreplyintro',
'vars' => array(
- 'date' => format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long')),
- 'sender' => $from['name'] ? $from['name'] : rcube_idn_to_utf8($from['mailto']),
+ 'date' => $RCMAIL->format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long')),
+ 'sender' => $from['name'] ? $from['name'] : rcube_utils::idn_to_utf8($from['mailto']),
)
));
@@ -961,7 +961,7 @@ function rcmail_create_reply_body($body, $bodyIsHtml)
$body = rcmail_wash_html($body, array('safe' => $MESSAGE->is_safe), $cid_map);
// build reply (quote content)
- $prefix = '<p>' . Q($prefix) . "</p>\n";
+ $prefix = '<p>' . rcube::Q($prefix) . "</p>\n";
$prefix .= '<blockquote>';
if (intval($RCMAIL->config->get('reply_mode')) > 0) { // top-posting
@@ -985,19 +985,19 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
if (!isset($COMPOSE['forward_attachments']) && is_array($MESSAGE->mime_parts))
$cid_map = rcmail_write_compose_attachments($MESSAGE, $bodyIsHtml);
- $date = format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long'));
+ $date = $RCMAIL->format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long'));
if (!$bodyIsHtml) {
- $prefix = "\n\n\n-------- " . rcube_label('originalmessage') . " --------\n";
- $prefix .= rcube_label('subject') . ': ' . $MESSAGE->subject . "\n";
- $prefix .= rcube_label('date') . ': ' . $date . "\n";
- $prefix .= rcube_label('from') . ': ' . $MESSAGE->get_header('from') . "\n";
- $prefix .= rcube_label('to') . ': ' . $MESSAGE->get_header('to') . "\n";
+ $prefix = "\n\n\n-------- " . $RCMAIL->gettext('originalmessage') . " --------\n";
+ $prefix .= $RCMAIL->gettext('subject') . ': ' . $MESSAGE->subject . "\n";
+ $prefix .= $RCMAIL->gettext('date') . ': ' . $date . "\n";
+ $prefix .= $RCMAIL->gettext('from') . ': ' . $MESSAGE->get_header('from') . "\n";
+ $prefix .= $RCMAIL->gettext('to') . ': ' . $MESSAGE->get_header('to') . "\n";
if ($cc = $MESSAGE->headers->get('cc'))
- $prefix .= rcube_label('cc') . ': ' . $cc . "\n";
+ $prefix .= $RCMAIL->gettext('cc') . ': ' . $cc . "\n";
if (($replyto = $MESSAGE->headers->get('reply-to')) && $replyto != $MESSAGE->get_header('from'))
- $prefix .= rcube_label('replyto') . ': ' . $replyto . "\n";
+ $prefix .= $RCMAIL->gettext('replyto') . ': ' . $replyto . "\n";
$prefix .= "\n";
$body = trim($body, "\r\n");
@@ -1009,24 +1009,24 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
$body = rcmail_wash_html($body, array('safe' => $MESSAGE->is_safe), $cid_map);
$prefix = sprintf(
- "<br /><p>-------- " . rcube_label('originalmessage') . " --------</p>" .
+ "<br /><p>-------- " . $RCMAIL->gettext('originalmessage') . " --------</p>" .
"<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tbody>" .
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">%s: </th><td>%s</td></tr>" .
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">%s: </th><td>%s</td></tr>" .
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">%s: </th><td>%s</td></tr>" .
"<tr><th align=\"right\" nowrap=\"nowrap\" valign=\"baseline\">%s: </th><td>%s</td></tr>",
- rcube_label('subject'), Q($MESSAGE->subject),
- rcube_label('date'), Q($date),
- rcube_label('from'), Q($MESSAGE->get_header('from'), 'replace'),
- rcube_label('to'), Q($MESSAGE->get_header('to'), 'replace'));
+ $RCMAIL->gettext('subject'), rcube::Q($MESSAGE->subject),
+ $RCMAIL->gettext('date'), rcube::Q($date),
+ $RCMAIL->gettext('from'), rcube::Q($MESSAGE->get_header('from'), 'replace'),
+ $RCMAIL->gettext('to'), rcube::Q($MESSAGE->get_header('to'), 'replace'));
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($cc, 'replace'));
+ $RCMAIL->gettext('cc'), rcube::Q($cc, 'replace'));
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($replyto, 'replace'));
+ $RCMAIL->gettext('replyto'), rcube::Q($replyto, 'replace'));
$prefix .= "</tbody></table><br>";
}
@@ -1286,12 +1286,12 @@ function rcmail_save_attachment(&$message, $pid)
$temp_dir = unslashify($rcmail->config->get('temp_dir'));
$path = tempnam($temp_dir, 'rcmAttmnt');
if ($fp = fopen($path, 'w')) {
- $message->get_part_content($pid, $fp);
+ $message->get_part_content($pid, $fp, true, 0, false);
fclose($fp);
} else
return false;
} else {
- $data = $message->get_part_content($pid);
+ $data = $message->get_part_content($pid, null, true, 0, false);
}
$mimetype = $part->ctype_primary . '/' . $part->ctype_secondary;
@@ -1330,7 +1330,7 @@ function rcmail_save_image($path, $mimetype='')
$attachment = array(
'group' => $COMPOSE['id'],
'name' => $name,
- 'mimetype' => $mimetype ? $mimetype : rc_mime_content_type($path, $name),
+ 'mimetype' => $mimetype ? $mimetype : rcube_mime::file_content_type($path, $name),
'data' => $data,
'size' => strlen($data),
);
@@ -1370,7 +1370,7 @@ function rcmail_compose_subject($attrib)
// use subject from post
if (isset($_POST['_subject'])) {
- $subject = get_input_value('_subject', RCUBE_INPUT_POST, TRUE);
+ $subject = rcube_utils::get_input_value('_subject', rcube_utils::INPUT_POST, TRUE);
}
// create a reply-subject
else if ($compose_mode == RCUBE_COMPOSE_REPLY) {
@@ -1404,7 +1404,7 @@ function rcmail_compose_subject($attrib)
function rcmail_compose_attachment_list($attrib)
{
- global $OUTPUT, $CONFIG, $COMPOSE;
+ global $RCMAIL, $OUTPUT, $CONFIG, $COMPOSE;
// add ID if not given
if (!$attrib['id'])
@@ -1418,11 +1418,11 @@ function rcmail_compose_attachment_list($attrib)
if ($attrib['deleteicon']) {
$button = html::img(array(
'src' => $CONFIG['skin_path'] . $attrib['deleteicon'],
- 'alt' => rcube_label('delete')
+ 'alt' => $RCMAIL->gettext('delete')
));
}
else if (rcube_utils::get_boolean($attrib['textbuttons'])) {
- $button = Q(rcube_label('delete'));
+ $button = rcube::Q($RCMAIL->gettext('delete'));
}
foreach ($COMPOSE['attachments'] as $id => $a_prop) {
@@ -1432,17 +1432,17 @@ function rcmail_compose_attachment_list($attrib)
$out .= html::tag('li',
array(
'id' => 'rcmfile'.$id,
- 'class' => rcmail_filetype2classname($a_prop['mimetype'], $a_prop['name']),
+ 'class' => rcube_utils::file2class($a_prop['mimetype'], $a_prop['name']),
'onmouseover' => "rcube_webmail.long_subject_title_ex(this, 0)",
),
html::a(array(
'href' => "#delete",
- 'title' => rcube_label('delete'),
- 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id),
+ 'title' => $RCMAIL->gettext('delete'),
+ 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", rcmail_output::JS_OBJECT_NAME, $id),
'class' => 'delete'
),
$button
- ) . Q($a_prop['name'])
+ ) . rcube::Q($a_prop['name'])
);
$jslist['rcmfile'.$id] = array('name' => $a_prop['name'], 'complete' => true, 'mimetype' => $a_prop['mimetype']);
@@ -1467,23 +1467,23 @@ function rcmail_compose_attachment_list($attrib)
function rcmail_compose_attachment_form($attrib)
{
- global $OUTPUT;
+ global $OUTPUT, $RCMAIL;
// set defaults
$attrib += array('id' => 'rcmUploadbox', 'buttons' => 'yes');
// Get filesize, enable upload progress bar
- $max_filesize = rcube_upload_init();
+ $max_filesize = $RCMAIL->upload_init();
$button = new html_inputfield(array('type' => 'button'));
$out = html::div($attrib,
$OUTPUT->form_tag(array('id' => $attrib['id'].'Frm', 'name' => 'uploadform', 'method' => 'post', 'enctype' => 'multipart/form-data'),
html::div(null, rcmail_compose_attachment_field()) .
- html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
- (get_boolean($attrib['buttons']) ? html::div('buttons',
- $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
- $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('send-attachment', this.form)"))
+ html::div('hint', $RCMAIL->gettext(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
+ (rcube_utils::get_boolean($attrib['buttons']) ? html::div('buttons',
+ $button->show($RCMAIL->gettext('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
+ $button->show($RCMAIL->gettext('upload'), array('class' => 'button mainaction', 'onclick' => rcmail_output::JS_OBJECT_NAME . ".command('send-attachment', this.form)"))
) : '')
)
);
@@ -1506,7 +1506,7 @@ function rcmail_compose_attachment_field($attrib = array())
function rcmail_priority_selector($attrib)
{
- global $MESSAGE;
+ global $RCMAIL, $MESSAGE;
list($form_start, $form_end) = get_form_tags($attrib);
unset($attrib['form']);
@@ -1514,11 +1514,11 @@ function rcmail_priority_selector($attrib)
$attrib['name'] = '_priority';
$selector = new html_select($attrib);
- $selector->add(array(rcube_label('lowest'),
- rcube_label('low'),
- rcube_label('normal'),
- rcube_label('high'),
- rcube_label('highest')),
+ $selector->add(array($RCMAIL->gettext('lowest'),
+ $RCMAIL->gettext('low'),
+ $RCMAIL->gettext('normal'),
+ $RCMAIL->gettext('high'),
+ $RCMAIL->gettext('highest')),
array('5', '4', '0', '2', '1'));
if (isset($_POST['_priority']))
@@ -1594,6 +1594,8 @@ function rcmail_dsn_checkbox($attrib)
function rcmail_editor_selector($attrib)
{
+ global $RCMAIL;
+
// determine whether HTML or plain text should be checked
$useHtml = rcmail_compose_editor_mode();
@@ -1607,15 +1609,15 @@ function rcmail_editor_selector($attrib)
$select = new html_select($attrib);
- $select->add(Q(rcube_label('htmltoggle')), 'html');
- $select->add(Q(rcube_label('plaintoggle')), 'plain');
+ $select->add(rcube::Q($RCMAIL->gettext('htmltoggle')), 'html');
+ $select->add(rcube::Q($RCMAIL->gettext('plaintoggle')), 'plain');
return $select->show($useHtml ? 'html' : 'plain');
/*
foreach ($choices as $value => $text) {
$attrib['id'] = '_' . $value;
$attrib['value'] = $value;
- $selector .= $radio->show($chosenvalue, $attrib) . html::label($attrib['id'], Q(rcube_label($text)));
+ $selector .= $radio->show($chosenvalue, $attrib) . html::label($attrib['id'], rcube::Q($RCMAIL->gettext($text)));
}
return $selector;
@@ -1625,11 +1627,11 @@ function rcmail_editor_selector($attrib)
function rcmail_store_target_selection($attrib)
{
- global $COMPOSE;
+ global $COMPOSE, $RCMAIL;
$attrib['name'] = '_store_target';
- $select = rcmail_mailbox_select(array_merge($attrib, array(
- 'noselection' => '- '.rcube_label('dontsave').' -',
+ $select = $RCMAIL->folder_selector(array_merge($attrib, array(
+ 'noselection' => '- ' . $RCMAIL->gettext('dontsave') . ' -',
'folder_filter' => 'mail',
'folder_rights' => 'w',
)));
@@ -1701,11 +1703,11 @@ function rcmail_addressbook_list($attrib = array())
'id' => 'rcmli%s', 'class' => '%s'),
html::a(array('href' => '#list',
'rel' => '%s',
- 'onclick' => "return ".JS_OBJECT_NAME.".command('list-adresses','%s',this)"), '%s'));
+ 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('list-adresses','%s',this)"), '%s'));
foreach ($RCMAIL->get_address_sources(false, true) as $j => $source) {
$id = strval(strlen($source['id']) ? $source['id'] : $j);
- $js_id = JQ($id);
+ $js_id = rcube::JQ($id);
// set class name(s)
$class_name = 'addressbook';
@@ -1713,7 +1715,7 @@ function rcmail_addressbook_list($attrib = array())
$class_name .= ' ' . $source['class_name'];
$out .= sprintf($line_templ,
- html_identifier($id,true),
+ rcube_utils::html_identifier($id,true),
$class_name,
$source['id'],
$js_id, (!empty($source['name']) ? $source['name'] : $id));
@@ -1727,7 +1729,7 @@ function rcmail_addressbook_list($attrib = array())
// return the contacts list as HTML table
function rcmail_contacts_list($attrib = array())
{
- global $OUTPUT;
+ global $RCMAIL, $OUTPUT;
$attrib += array('id' => 'rcmAddressList');
@@ -1737,7 +1739,7 @@ function rcmail_contacts_list($attrib = array())
$OUTPUT->set_env('current_page', 0);
$OUTPUT->include_script('list.js');
- return rcube_table_output($attrib, array(), array('name'), 'ID');
+ return $RCMAIL->table_output($attrib, array(), array('name'), 'ID');
}
@@ -1773,7 +1775,7 @@ function rcmail_compose_responses_list($attrib)
'class' => rtrim('insertresponse ' . $attrib['itemclass']),
'unselectable' => 'on',
'rel' => $key,
- ), Q($response['name']));
+ ), rcube::Q($response['name']));
$jsenv[$key] = $response;
$list->add(array(), $item);
diff --git a/program/steps/mail/copy.inc b/program/steps/mail/copy.inc
index 876657485..4cebae6c6 100644
--- a/program/steps/mail/copy.inc
+++ b/program/steps/mail/copy.inc
@@ -25,15 +25,15 @@ if (!$OUTPUT->ajax_call)
// move messages
if (!empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
- $uids = get_input_value('_uid', RCUBE_INPUT_POST);
- $target = get_input_value('_target_mbox', RCUBE_INPUT_POST, true);
- $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+ $uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST);
+ $target = rcube_utils::get_input_value('_target_mbox', rcube_utils::INPUT_POST, true);
+ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
$copied = $RCMAIL->storage->copy_message($uids, $target, $mbox);
if (!$copied) {
// send error message
- rcmail_display_server_error('errorcopying');
+ $RCMAIL->display_server_error('errorcopying');
$OUTPUT->send();
exit;
}
@@ -43,7 +43,7 @@ if (!empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
rcmail_send_unread_count($target, true);
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
}
// unknown action or missing query param
else {
diff --git a/program/steps/mail/folders.inc b/program/steps/mail/folders.inc
index 574d6e975..d7cfd93f3 100644
--- a/program/steps/mail/folders.inc
+++ b/program/steps/mail/folders.inc
@@ -23,7 +23,7 @@
if (!$OUTPUT->ajax_call)
return;
-$mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+$mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
// send EXPUNGE command
if ($RCMAIL->action == 'expunge') {
@@ -35,14 +35,14 @@ if ($RCMAIL->action == 'expunge') {
$OUTPUT->show_message('folderexpunged', 'confirmation');
if (!empty($_REQUEST['_reload'])) {
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
$OUTPUT->command('message_list.clear');
$RCMAIL->action = 'list';
return;
}
}
else {
- rcmail_display_server_error();
+ $RCMAIL->display_server_error();
}
}
@@ -69,12 +69,12 @@ else if ($RCMAIL->action == 'purge')
$OUTPUT->command('message_list.clear');
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text(), $mbox);
$OUTPUT->command('set_unread_count', $mbox, 0);
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
rcmail_set_unseen_count($mbox, 0);
}
}
else {
- rcmail_display_server_error();
+ $RCMAIL->display_server_error();
}
}
}
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 8164592dd..00d66a0d0 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -32,7 +32,7 @@ $SEARCH_MODS_DEFAULT = array(
$RCMAIL->storage_init();
// set imap properties and session vars
-if (strlen(trim($mbox = get_input_value('_mbox', RCUBE_INPUT_GPC, true))))
+if (strlen(trim($mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true))))
$RCMAIL->storage->set_folder(($_SESSION['mbox'] = $mbox));
else if ($RCMAIL->storage)
$_SESSION['mbox'] = $RCMAIL->storage->get_folder();
@@ -78,7 +78,7 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL') {
$search_request = md5($mbox_name.$_SESSION['search_filter']);
- $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, rcmail_sort_column());
+ $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCUBE_CHARSET, rcmail_sort_column());
$_SESSION['search'] = $RCMAIL->storage->get_search_set();
$_SESSION['search_request'] = $search_request;
$OUTPUT->set_env('search_request', $search_request);
@@ -131,10 +131,10 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
// register UI objects
$OUTPUT->add_handlers(array(
- 'mailboxlist' => 'rcmail_mailbox_list',
+ 'mailboxlist' => array($RCMAIL, 'folder_list'),
'messages' => 'rcmail_message_list',
'messagecountdisplay' => 'rcmail_messagecount_display',
- 'quotadisplay' => 'rcmail_quota_display',
+ 'quotadisplay' => array($RCMAIL, 'quota_display'),
'mailboxname' => 'rcmail_mailbox_name_display',
'messageheaders' => 'rcmail_message_headers',
'messagefullheaders' => 'rcmail_message_full_headers',
@@ -249,7 +249,7 @@ function rcmail_message_list($attrib)
$OUTPUT->set_env('col_movable', !in_array('list_cols', (array)$CONFIG['dont_override']));
}
else {
- $a_show_cols = preg_split('/[\s,;]+/', strip_quotes($attrib['columns']));
+ $a_show_cols = preg_split('/[\s,;]+/', str_replace(array("'", '"'), '', $attrib['columns']));
$attrib['columns'] = $a_show_cols;
}
@@ -298,7 +298,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
}
else {
if (!is_array($a_show_cols))
- $a_show_cols = preg_split('/[\s,;]+/', strip_quotes($a_show_cols));
+ $a_show_cols = preg_split('/[\s,;]+/', str_replace(array("'", '"'), '', $a_show_cols));
$head_replace = true;
}
@@ -357,15 +357,15 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
$cont = rcmail_address_string($header->$col_name, 3, false, null, $header->charset);
else if ($col == 'subject') {
$cont = trim(rcube_mime::decode_header($header->$col, $header->charset));
- if (!$cont) $cont = rcube_label('nosubject');
- $cont = Q($cont);
+ if (!$cont) $cont = $RCMAIL->gettext('nosubject');
+ $cont = rcube::Q($cont);
}
else if ($col == 'size')
$cont = show_bytes($header->$col);
else if ($col == 'date')
- $cont = format_date($header->date);
+ $cont = $RCMAIL->format_date($header->date);
else
- $cont = Q($header->$col);
+ $cont = rcube::Q($header->$col);
$a_msg_cols[$col] = $cont;
}
@@ -386,7 +386,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
if ($header->priority)
$a_msg_flags['prio'] = (int) $header->priority;
- $a_msg_flags['ctype'] = Q($header->ctype);
+ $a_msg_flags['ctype'] = rcube::Q($header->ctype);
$a_msg_flags['mbox'] = $mbox;
// merge with plugin result (Deprecated, use $header->flags)
@@ -435,14 +435,14 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$a_sort_cols = array('subject', 'date', 'from', 'to', 'fromto', 'size', 'cc');
if (!empty($attrib['optionsmenuicon'])) {
- $onclick = 'return ' . JS_OBJECT_NAME . ".command('menu-open', 'messagelistmenu')";
+ $onclick = 'return ' . rcmail_output::JS_OBJECT_NAME . ".command('menu-open', 'messagelistmenu')";
if ($attrib['optionsmenuicon'] === true || $attrib['optionsmenuicon'] == 'true')
$list_menu = html::div(array('onclick' => $onclick, 'class' => 'listmenu',
- 'id' => 'listmenulink', 'title' => rcube_label('listoptions')));
+ 'id' => 'listmenulink', 'title' => $RCMAIL->gettext('listoptions')));
else
$list_menu = html::a(array('href' => '#', 'onclick' => $onclick),
html::img(array('src' => $skin_path . $attrib['optionsmenuicon'],
- 'id' => 'listmenulink', 'title' => rcube_label('listoptions')))
+ 'id' => 'listmenulink', 'title' => $RCMAIL->gettext('listoptions')))
);
}
else
@@ -470,15 +470,15 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$col_name = $list_menu;
break;
case 'fromto':
- $col_name = Q(rcube_label($smart_col));
+ $col_name = rcube::Q($RCMAIL->gettext($smart_col));
break;
default:
- $col_name = Q(rcube_label($col));
+ $col_name = rcube::Q($RCMAIL->gettext($col));
}
// make sort links
if (in_array($col, $a_sort_cols))
- $col_name = html::a(array('href'=>"./#sort", 'onclick' => 'return '.JS_OBJECT_NAME.".command('sort','".$col."',this)", 'title' => rcube_label('sortby')), $col_name);
+ $col_name = html::a(array('href'=>"./#sort", 'onclick' => 'return '.rcmail_output::JS_OBJECT_NAME.".command('sort','".$col."',this)", 'title' => $RCMAIL->gettext('sortby')), $col_name);
else if ($col_name[0] != '<')
$col_name = '<span class="' . $col .'">' . $col_name . '</span>';
@@ -522,7 +522,7 @@ function rcmail_messagecount_display($attrib)
$RCMAIL->output->add_gui_object('countdisplay', $attrib['id']);
- $content = $RCMAIL->action != 'show' ? rcmail_get_messagecount_text() : rcube_label('loading');
+ $content = $RCMAIL->action != 'show' ? rcmail_get_messagecount_text() : $RCMAIL->gettext('loading');
return html::span($attrib, $content);
}
@@ -545,14 +545,14 @@ function rcmail_get_messagecount_text($count=NULL, $page=NULL)
$max = $RCMAIL->storage->count(NULL, $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL');
if ($max==0)
- $out = rcube_label('mailboxempty');
+ $out = $RCMAIL->gettext('mailboxempty');
else
- $out = rcube_label(array('name' => $RCMAIL->storage->get_threading() ? 'threadsfromto' : 'messagesfromto',
+ $out = $RCMAIL->gettext(array('name' => $RCMAIL->storage->get_threading() ? 'threadsfromto' : 'messagesfromto',
'vars' => array('from' => $start_msg,
'to' => min($max, $start_msg + $page_size - 1),
'count' => $max)));
- return Q($out);
+ return rcube::Q($out);
}
@@ -572,7 +572,7 @@ function rcmail_mailbox_name_display($attrib)
function rcmail_get_mailbox_name_text()
{
global $RCMAIL;
- return rcmail_localize_foldername($RCMAIL->storage->get_folder());
+ return $RCMAIL->localize_foldername($RCMAIL->storage->get_folder());
}
@@ -671,7 +671,7 @@ function rcmail_wash_html($html, $p, $cid_replaces)
// charset was converted to UTF-8 in rcube_storage::get_message_part(),
// change/add charset specification in HTML accordingly,
// washtml cannot work without that
- $meta = '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />';
+ $meta = '<meta http-equiv="Content-Type" content="text/html; charset='.RCUBE_CHARSET.'" />';
// remove old meta tag and add the new one, making sure
// that it is placed in the head (#1488093)
@@ -686,7 +686,7 @@ function rcmail_wash_html($html, $p, $cid_replaces)
'show_washed' => false,
'allow_remote' => $p['safe'],
'blocked_src' => "./program/resources/blocked.gif",
- 'charset' => RCMAIL_CHARSET,
+ 'charset' => RCUBE_CHARSET,
'cid_map' => $cid_replaces,
'html_elements' => array('body'),
);
@@ -716,7 +716,7 @@ function rcmail_wash_html($html, $p, $cid_replaces)
$washer->add_callback('style', 'rcmail_washtml_callback');
// Remove non-UTF8 characters (#1487813)
- $html = rc_utf8_clean($html);
+ $html = rcube_charset::clean($html);
$html = $washer->wash($html);
$REMOTE_OBJECTS = $washer->extlinks;
@@ -840,7 +840,7 @@ function rcmail_plain_body($body)
$body = join("\n", $body);
- // quote plain text (don't use Q() here, to display entities "as is")
+ // quote plain text (don't use rcube::Q() here, to display entities "as is")
$table = get_html_translation_table(HTML_SPECIALCHARS);
unset($table['?']);
$body = strtr($body, $table);
@@ -877,7 +877,7 @@ function rcmail_washtml_callback($tagname, $attrib, $content, $washtml)
case 'style':
// decode all escaped entities and reduce to ascii strings
- $stripped = preg_replace('/[^a-zA-Z\(:;]/', '', rcmail_xss_entity_decode($content));
+ $stripped = preg_replace('/[^a-zA-Z\(:;]/', '', rcube_utils::xss_entity_decode($content));
// now check for evil strings like expression, behavior or url()
if (!preg_match('/expression|behavior|javascript:|import[^a]/i', $stripped)) {
@@ -945,13 +945,13 @@ function rcmail_message_headers($attrib, $headers=null)
if (in_array($hkey, $exclude_headers))
continue;
- $header_title = rcube_label(preg_replace('/(^mail-|-)/', '', $hkey));
+ $header_title = $RCMAIL->gettext(preg_replace('/(^mail-|-)/', '', $hkey));
if ($hkey == 'date') {
if ($PRINT_MODE)
- $header_value = format_date($value, $RCMAIL->config->get('date_long', 'x'));
+ $header_value = $RCMAIL->format_date($value, $RCMAIL->config->get('date_long', 'x'));
else
- $header_value = format_date($value);
+ $header_value = $RCMAIL->format_date($value);
}
else if ($hkey == 'priority') {
if ($value) {
@@ -995,7 +995,7 @@ function rcmail_message_headers($attrib, $headers=null)
$ishtml = true;
}
else if ($hkey == 'subject' && empty($value))
- $header_value = rcube_label('nosubject');
+ $header_value = $RCMAIL->gettext('nosubject');
else
$header_value = trim(rcube_mime::decode_header($value, $headers['charset']));
@@ -1012,14 +1012,14 @@ function rcmail_message_headers($attrib, $headers=null)
// single header value is requested
if (!empty($attrib['valueof']))
- return Q($plugin['output'][$attrib['valueof']]['value'], ($attrib['valueof'] == 'subject' ? 'strict' : 'show'));
+ return rcube::Q($plugin['output'][$attrib['valueof']]['value'], ($attrib['valueof'] == 'subject' ? 'strict' : 'show'));
// compose html table
$table = new html_table(array('cols' => 2));
foreach ($plugin['output'] as $hkey => $row) {
- $table->add(array('class' => 'header-title'), Q($row['title']));
- $table->add(array('class' => 'header '.$hkey), $row['html'] ? $row['value'] : Q($row['value'], ($hkey == 'subject' ? 'strict' : 'show')));
+ $table->add(array('class' => 'header-title'), rcube::Q($row['title']));
+ $table->add(array('class' => 'header '.$hkey), $row['html'] ? $row['value'] : rcube::Q($row['value'], ($hkey == 'subject' ? 'strict' : 'show')));
}
return $table->show($attrib);
@@ -1030,6 +1030,8 @@ function rcmail_message_headers($attrib, $headers=null)
*/
function rcmail_localized_priority($value)
{
+ global $RCMAIL;
+
$labels_map = array(
'1' => 'highest',
'2' => 'high',
@@ -1039,7 +1041,7 @@ function rcmail_localized_priority($value)
);
if ($value && $labels_map[$value])
- return rcube_label($labels_map[$value]);
+ return $RCMAIL->gettext($labels_map[$value]);
return '';
}
@@ -1049,10 +1051,10 @@ function rcmail_localized_priority($value)
*/
function rcmail_message_full_headers($attrib, $headers=NULL)
{
- global $OUTPUT;
+ global $OUTPUT, $RCMAIL;
$html = html::div(array('id' => "all-headers", 'class' => "all", 'style' => 'display:none'), html::div(array('id' => 'headers-source'), ''));
- $html .= html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".JS_OBJECT_NAME.".command('show-headers','',this)", 'title' => rcube_label('togglefullheaders')), '');
+ $html .= html::div(array('class' => "more-headers show-headers", 'onclick' => "return ".rcmail_output::JS_OBJECT_NAME.".command('show-headers','',this)", 'title' => $RCMAIL->gettext('togglefullheaders')), '');
$OUTPUT->add_gui_object('all_headers_row', 'all-headers');
$OUTPUT->add_gui_object('all_headers_box', 'headers-source');
@@ -1094,7 +1096,7 @@ function rcmail_message_body($attrib)
// unsupported (e.g. encrypted)
if ($part->realtype) {
if ($part->realtype == 'multipart/encrypted' || $part->realtype == 'application/pkcs7-mime') {
- $out .= html::span('part-notice', rcube_label('encryptedmessage'));
+ $out .= html::span('part-notice', $RCMAIL->gettext('encryptedmessage'));
}
continue;
}
@@ -1103,10 +1105,10 @@ function rcmail_message_body($attrib)
}
// Check if we have enough memory to handle the message in it
// #1487424: we need up to 10x more memory than the body
- else if (!rcmail_mem_check($part->size * 10)) {
- $out .= html::span('part-notice', rcube_label('messagetoobig'). ' '
+ else if (!rcube_utils::mem_check($part->size * 10)) {
+ $out .= html::span('part-notice', $RCMAIL->gettext('messagetoobig'). ' '
. html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part='.$part->mime_id
- .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download')));
+ .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), $RCMAIL->gettext('download')));
continue;
}
@@ -1158,17 +1160,17 @@ function rcmail_message_body($attrib)
else {
// Check if we have enough memory to handle the message in it
// #1487424: we need up to 10x more memory than the body
- if (!rcmail_mem_check(strlen($MESSAGE->body) * 10)) {
- $out .= html::span('part-notice', rcube_label('messagetoobig'). ' '
+ if (!rcube_utils::mem_check(strlen($MESSAGE->body) * 10)) {
+ $out .= html::span('part-notice', $RCMAIL->gettext('messagetoobig'). ' '
. html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part=0'
- .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download')));
+ .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), $RCMAIL->gettext('download')));
}
else {
$plugin = $RCMAIL->plugins->exec_hook('message_body_prefix', array(
'part' => $MESSAGE, 'prefix' => ''));
$out .= html::div('message-part', $plugin['prefix'] . html::tag('pre', array(),
- rcmail_plain_body(Q($MESSAGE->body, 'strict', false))));
+ rcmail_plain_body(rcube::Q($MESSAGE->body, 'strict', false))));
}
}
@@ -1191,7 +1193,7 @@ function rcmail_message_body($attrib)
'href' => $MESSAGE->get_part_url($attach_prop->mime_id, false),
'onclick' => sprintf(
'return %s.command(\'load-attachment\',\'%s\',this)',
- JS_OBJECT_NAME,
+ rcmail_output::JS_OBJECT_NAME,
$attach_prop->mime_id)
);
$out .= html::p('image-attachment',
@@ -1204,18 +1206,18 @@ function rcmail_message_body($attrib)
'style' => sprintf('max-width:%dpx; max-height:%dpx', $thumbnail_size, $thumbnail_size),
))
) .
- html::span('image-filename', Q($attach_prop->filename)) .
- html::span('image-filesize', Q($RCMAIL->message_part_size($attach_prop))) .
+ html::span('image-filename', rcube::Q($attach_prop->filename)) .
+ html::span('image-filesize', rcube::Q($RCMAIL->message_part_size($attach_prop))) .
html::span('attachment-links',
- (in_array($mimetype, $client_mimetypes) ? html::a($show_link, rcube_label('showattachment')) . '&nbsp;' : '') .
- html::a($show_link['href'] . '&_download=1', rcube_label('download'))
+ (in_array($mimetype, $client_mimetypes) ? html::a($show_link, $RCMAIL->gettext('showattachment')) . '&nbsp;' : '') .
+ html::a($show_link['href'] . '&_download=1', $RCMAIL->gettext('download'))
) .
html::br(array('style' => 'clear:both'))
);
}
else {
$out .= html::tag('fieldset', 'image-attachment',
- html::tag('legend', 'image-filename', Q($attach_prop->filename)) .
+ html::tag('legend', 'image-filename', rcube::Q($attach_prop->filename)) .
html::p(array('align' => "center"),
html::img(array(
'src' => $MESSAGE->get_part_url($attach_prop->mime_id, 'image'),
@@ -1295,7 +1297,7 @@ function rcmail_html4inline($body, $container_id, $body_id='', &$attributes=null
// replace all css definitions with #container [def]
$styles = substr($body, $pos, $len);
- $styles = rcmail_mod_css_styles($styles, $cont_id, $allow_remote);
+ $styles = rcube_utils::mod_css_styles($styles, $cont_id, $allow_remote);
$body = substr_replace($body, $styles, $pos, $len);
$last_style_pos = $pos2 + strlen($styles) - $len;
@@ -1385,7 +1387,7 @@ function rcmail_alter_html_link($matches)
global $RCMAIL;
$tag = strtolower($matches[1]);
- $attrib = parse_attrib_string($matches[2]);
+ $attrib = html::parse_attrib_string($matches[2]);
$end = '>';
// Remove non-printable characters in URL (#1487805)
@@ -1421,8 +1423,8 @@ function rcmail_alter_html_link($matches)
$attrib['href'] = 'mailto:' . implode(',', $addresses);
$attrib['onclick'] = sprintf(
"return %s.command('compose','%s',this)",
- JS_OBJECT_NAME,
- JQ(implode(',', $mailto) . ($url ? "?$url" : '')));
+ rcmail_output::JS_OBJECT_NAME,
+ rcube::JQ(implode(',', $mailto) . ($url ? "?$url" : '')));
}
else {
$attrib['href'] = '#NOP';
@@ -1477,7 +1479,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$name = $part['name'];
$mailto = $part['mailto'];
$string = $part['string'];
- $valid = check_email($mailto, false);
+ $valid = rcube_utils::check_email($mailto, false);
// phishing email prevention (#1488981), e.g. "valid@email.addr <phishing@email.addr>"
if (!$show_email && $valid && $name && $name != $mailto && strpos($name, '@')) {
@@ -1486,27 +1488,27 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
// IDNA ASCII to Unicode
if ($name == $mailto)
- $name = rcube_idn_to_utf8($name);
+ $name = rcube_utils::idn_to_utf8($name);
if ($string == $mailto)
- $string = rcube_idn_to_utf8($string);
- $mailto = rcube_idn_to_utf8($mailto);
+ $string = rcube_utils::idn_to_utf8($string);
+ $mailto = rcube_utils::idn_to_utf8($mailto);
if ($PRINT_MODE) {
- $address = sprintf('%s &lt;%s&gt;', Q($name), Q($mailto));
+ $address = sprintf('%s &lt;%s&gt;', rcube::Q($name), rcube::Q($mailto));
}
else if ($valid) {
if ($linked) {
$attrs = array(
'href' => 'mailto:' . $mailto,
- 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ(format_email_recipient($mailto, $name))),
+ 'onclick' => sprintf("return %s.command('compose','%s',this)", rcmail_output::JS_OBJECT_NAME, rcube::JQ(format_email_recipient($mailto, $name))),
'class' => "rcmContactAddress",
);
if ($show_email && $name && $mailto) {
- $content = Q($name ? sprintf('%s <%s>', $name, $mailto) : $mailto);
+ $content = rcube::Q($name ? sprintf('%s <%s>', $name, $mailto) : $mailto);
}
else {
- $content = Q($name ? $name : $mailto);
+ $content = rcube::Q($name ? $name : $mailto);
$attrs['title'] = $mailto;
}
@@ -1514,14 +1516,14 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
}
else {
$address = html::span(array('title' => $mailto, 'class' => "rcmContactAddress"),
- Q($name ? $name : $mailto));
+ rcube::Q($name ? $name : $mailto));
}
if ($addicon && $_SESSION['writeable_abook']) {
$address .= html::a(array(
'href' => "#add",
- 'onclick' => sprintf("return %s.command('add-contact','%s',this)", JS_OBJECT_NAME, JQ($string)),
- 'title' => rcube_label('addtoaddressbook'),
+ 'onclick' => sprintf("return %s.command('add-contact','%s',this)", rcmail_output::JS_OBJECT_NAME, rcube::JQ($string)),
+ 'title' => $RCMAIL->gettext('addtoaddressbook'),
'class' => 'rcmaddcontact',
),
html::img(array(
@@ -1533,9 +1535,9 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
else {
$address = '';
if ($name)
- $address .= Q($name);
+ $address .= rcube::Q($name);
if ($mailto)
- $address = trim($address . ' ' . Q($name ? sprintf('<%s>', $mailto) : $mailto));
+ $address = trim($address . ' ' . rcube::Q($name ? sprintf('<%s>', $mailto) : $mailto));
}
$address = html::span('adr', $address);
@@ -1561,7 +1563,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
'href' => '#more',
'class' => 'morelink',
'onclick' => '$(this).hide().next().show()',
- ), Q(rcube_label(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs))))) .
+ ), rcube::Q($RCMAIL->gettext(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs))))) .
html::span(array('style' => 'display:none'), join(', ', $allvalues));
}
else {
@@ -1569,11 +1571,11 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
'href' => '#more',
'class' => 'morelink',
'onclick' => sprintf("return %s.show_popup_dialog('%s','%s')",
- JS_OBJECT_NAME,
- JQ(join(', ', $allvalues)),
- JQ($title))
+ rcmail_output::JS_OBJECT_NAME,
+ rcube::JQ(join(', ', $allvalues)),
+ rcube::JQ($title))
),
- Q(rcube_label(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs)))));
+ rcube::Q($RCMAIL->gettext(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs)))));
}
}
@@ -1604,7 +1606,7 @@ function rcmail_wrap_and_quote($text, $length = 72)
$line = '>' . rtrim($line);
else if (mb_strlen($line) > $max) {
$newline = '';
- foreach (explode("\n", rc_wordwrap($line, $length - 2)) as $l) {
+ foreach (explode("\n", rcube_mime::wordwrap($line, $length - 2)) as $l) {
if (strlen($l))
$newline .= '> ' . $l . "\n";
else
@@ -1690,49 +1692,49 @@ function rcmail_send_mdn($message, &$smtp_error)
$compose->setParam('text_encoding', 'quoted-printable');
$compose->setParam('html_encoding', 'quoted-printable');
$compose->setParam('head_encoding', 'quoted-printable');
- $compose->setParam('head_charset', RCMAIL_CHARSET);
- $compose->setParam('html_charset', RCMAIL_CHARSET);
- $compose->setParam('text_charset', RCMAIL_CHARSET);
+ $compose->setParam('head_charset', RCUBE_CHARSET);
+ $compose->setParam('html_charset', RCUBE_CHARSET);
+ $compose->setParam('text_charset', RCUBE_CHARSET);
// compose headers array
$headers = array(
- 'Date' => rcmail_user_date(),
+ 'Date' => $RCMAIL->user_date(),
'From' => $sender,
'To' => $message->headers->mdn_to,
- 'Subject' => rcube_label('receiptread') . ': ' . $message->subject,
- 'Message-ID' => rcmail_gen_message_id(),
+ 'Subject' => $RCMAIL->gettext('receiptread') . ': ' . $message->subject,
+ 'Message-ID' => $RCMAIL->gen_message_id(),
'X-Sender' => $identity['email'],
'References' => trim($message->headers->references . ' ' . $message->headers->messageID),
);
- if ($agent = $RCMAIL->config->get('useragent'))
- $headers['User-Agent'] = $agent;
-
- if ($RCMAIL->config->get('mdn_use_from'))
- $options['mdn_use_from'] = true;
-
- $body = rcube_label("yourmessage") . "\r\n\r\n" .
- "\t" . rcube_label("to") . ': ' . rcube_mime::decode_mime_string($message->headers->to, $message->headers->charset) . "\r\n" .
- "\t" . rcube_label("subject") . ': ' . $message->subject . "\r\n" .
- "\t" . rcube_label("sent") . ': ' . format_date($message->headers->date, $RCMAIL->config->get('date_long')) . "\r\n" .
- "\r\n" . rcube_label("receiptnote") . "\r\n";
-
- $ua = $RCMAIL->config->get('useragent', "Roundcube Webmail (Version ".RCMAIL_VERSION.")");
- $report = "Reporting-UA: $ua\r\n";
+ $report = "Final-Recipient: rfc822; {$identity['email']}\r\n" .
+ "Original-Message-ID: {$message->headers->messageID}\r\n" .
+ "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
- if ($message->headers->to)
+ if ($message->headers->to) {
$report .= "Original-Recipient: {$message->headers->to}\r\n";
+ }
- $report .= "Final-Recipient: rfc822; {$identity['email']}\r\n" .
- "Original-Message-ID: {$message->headers->messageID}\r\n" .
- "Disposition: manual-action/MDN-sent-manually; displayed\r\n";
+ if ($agent = $RCMAIL->config->get('useragent')) {
+ $headers['User-Agent'] = $agent;
+ $report .= "Reporting-UA: $agent\r\n";
+ }
+
+ $body = $RCMAIL->gettext("yourmessage") . "\r\n\r\n" .
+ "\t" . $RCMAIL->gettext("to") . ': ' . rcube_mime::decode_mime_string($message->headers->to, $message->headers->charset) . "\r\n" .
+ "\t" . $RCMAIL->gettext("subject") . ': ' . $message->subject . "\r\n" .
+ "\t" . $RCMAIL->gettext("sent") . ': ' . $RCMAIL->format_date($message->headers->date, $RCMAIL->config->get('date_long')) . "\r\n" .
+ "\r\n" . $RCMAIL->gettext("receiptnote");
$compose->headers($headers);
$compose->setContentType('multipart/report', array('report-type'=> 'disposition-notification'));
- $compose->setTXTBody(rc_wordwrap($body, 75, "\r\n"));
+ $compose->setTXTBody(rcube_mime::wordwrap($body, 75, "\r\n"));
$compose->addAttachment($report, 'message/disposition-notification', 'MDNPart2.txt', false, '7bit', 'inline');
- $sent = rcmail_deliver_message($compose, $identity['email'], $mailto, $smtp_error, $body_file, $options);
+ if ($RCMAIL->config->get('mdn_use_from'))
+ $options['mdn_use_from'] = true;
+
+ $sent = $RCMAIL->deliver_message($compose, $identity['email'], $mailto, $smtp_error, $body_file, $options);
if ($sent) {
$RCMAIL->storage->set_flag($message->uid, 'MDNSENT');
@@ -1868,16 +1870,18 @@ function rcmail_fix_mimetype($name)
// return attachment filename, handle empty filename case
function rcmail_attachment_name($attachment, $display = false)
{
+ global $RCMAIL;
+
$filename = $attachment->filename;
if ($filename === null || $filename === '') {
if ($attachment->mimetype == 'text/html') {
- $filename = rcube_label('htmlmessage');
+ $filename = $RCMAIL->gettext('htmlmessage');
}
else {
$ext = (array) rcube_mime::get_mime_extensions($attachment->mimetype);
$ext = array_shift($ext);
- $filename = rcube_label('messagepart') . ' ' . $attachment->mime_id;
+ $filename = $RCMAIL->gettext('messagepart') . ' ' . $attachment->mime_id;
if ($ext) {
$filename .= '.' . $ext;
}
@@ -1889,7 +1893,7 @@ function rcmail_attachment_name($attachment, $display = false)
// Display smart names for some known mimetypes
if ($display) {
if (preg_match('/application\/(pgp|pkcs7)-signature/i', $attachment->mimetype)) {
- $filename = rcube_label('digitalsig');
+ $filename = $RCMAIL->gettext('digitalsig');
}
}
@@ -1898,12 +1902,12 @@ function rcmail_attachment_name($attachment, $display = false)
function rcmail_search_filter($attrib)
{
- global $OUTPUT, $CONFIG;
+ global $RCMAIL, $OUTPUT, $CONFIG;
if (!strlen($attrib['id']))
$attrib['id'] = 'rcmlistfilter';
- $attrib['onchange'] = JS_OBJECT_NAME.'.filter_mailbox(this.value)';
+ $attrib['onchange'] = rcmail_output::JS_OBJECT_NAME.'.filter_mailbox(this.value)';
// Content-Type values of messages with attachments
// the same as in app.js:add_message_row()
@@ -1916,20 +1920,20 @@ function rcmail_search_filter($attrib)
}
$select_filter = new html_select($attrib);
- $select_filter->add(rcube_label('all'), 'ALL');
- $select_filter->add(rcube_label('unread'), 'UNSEEN');
- $select_filter->add(rcube_label('flagged'), 'FLAGGED');
- $select_filter->add(rcube_label('unanswered'), 'UNANSWERED');
+ $select_filter->add($RCMAIL->gettext('all'), 'ALL');
+ $select_filter->add($RCMAIL->gettext('unread'), 'UNSEEN');
+ $select_filter->add($RCMAIL->gettext('flagged'), 'FLAGGED');
+ $select_filter->add($RCMAIL->gettext('unanswered'), 'UNANSWERED');
if (!$CONFIG['skip_deleted']) {
- $select_filter->add(rcube_label('deleted'), 'DELETED');
- $select_filter->add(rcube_label('undeleted'), 'UNDELETED');
+ $select_filter->add($RCMAIL->gettext('deleted'), 'DELETED');
+ $select_filter->add($RCMAIL->gettext('undeleted'), 'UNDELETED');
}
- $select_filter->add(rcube_label('withattachment'), $attachment);
- $select_filter->add(rcube_label('priority').': '.rcube_label('highest'), 'HEADER X-PRIORITY 1');
- $select_filter->add(rcube_label('priority').': '.rcube_label('high'), 'HEADER X-PRIORITY 2');
- $select_filter->add(rcube_label('priority').': '.rcube_label('normal'), 'NOT HEADER X-PRIORITY 1 NOT HEADER X-PRIORITY 2 NOT HEADER X-PRIORITY 4 NOT HEADER X-PRIORITY 5');
- $select_filter->add(rcube_label('priority').': '.rcube_label('low'), 'HEADER X-PRIORITY 4');
- $select_filter->add(rcube_label('priority').': '.rcube_label('lowest'), 'HEADER X-PRIORITY 5');
+ $select_filter->add($RCMAIL->gettext('withattachment'), $attachment);
+ $select_filter->add($RCMAIL->gettext('priority').': '.$RCMAIL->gettext('highest'), 'HEADER X-PRIORITY 1');
+ $select_filter->add($RCMAIL->gettext('priority').': '.$RCMAIL->gettext('high'), 'HEADER X-PRIORITY 2');
+ $select_filter->add($RCMAIL->gettext('priority').': '.$RCMAIL->gettext('normal'), 'NOT HEADER X-PRIORITY 1 NOT HEADER X-PRIORITY 2 NOT HEADER X-PRIORITY 4 NOT HEADER X-PRIORITY 5');
+ $select_filter->add($RCMAIL->gettext('priority').': '.$RCMAIL->gettext('low'), 'HEADER X-PRIORITY 4');
+ $select_filter->add($RCMAIL->gettext('priority').': '.$RCMAIL->gettext('lowest'), 'HEADER X-PRIORITY 5');
$out = $select_filter->show($_SESSION['search_filter']);
@@ -1956,13 +1960,13 @@ function rcmail_message_error($uid=null)
function rcmail_message_import_form($attrib = array())
{
- global $OUTPUT;
+ global $OUTPUT, $RCMAIL;
// set defaults
$attrib += array('id' => 'rcmImportform', 'buttons' => 'yes');
// Get filesize, enable upload progress bar
- $max_filesize = rcube_upload_init();
+ $max_filesize = $RCMAIL->upload_init();
$button = new html_inputfield(array('type' => 'button'));
$fileinput = new html_inputfield(array(
@@ -1976,10 +1980,10 @@ function rcmail_message_import_form($attrib = array())
$OUTPUT->form_tag(array('id' => $attrib['id'].'Frm', 'method' => 'post', 'enctype' => 'multipart/form-data'),
html::tag('input', array('type' => 'hidden', 'name' => '_unlock', 'value' => '')) .
html::div(null, $fileinput->show()) .
- html::div('hint', rcube_label(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
- (get_boolean($attrib['buttons']) ? html::div('buttons',
- $button->show(rcube_label('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
- $button->show(rcube_label('upload'), array('class' => 'button mainaction', 'onclick' => JS_OBJECT_NAME . ".command('import-messages', this.form)"))
+ html::div('hint', $RCMAIL->gettext(array('name' => 'maxuploadsize', 'vars' => array('size' => $max_filesize)))) .
+ (rcube_utils::get_boolean($attrib['buttons']) ? html::div('buttons',
+ $button->show($RCMAIL->gettext('close'), array('class' => 'button', 'onclick' => "$('#$attrib[id]').hide()")) . ' ' .
+ $button->show($RCMAIL->gettext('upload'), array('class' => 'button mainaction', 'onclick' => rcmail_output::JS_OBJECT_NAME . ".command('import-messages', this.form)"))
) : '')
)
);
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index ae48307e3..d588343de 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -23,12 +23,12 @@
// show loading page
if (!empty($_GET['_preload'])) {
$url = preg_replace('/([&?]+)_preload=/', '\\1_mimewarning=1&_embed=', $_SERVER['REQUEST_URI']);
- $message = rcube_label('loadingdata');
+ $message = $RCMAIL->gettext('loadingdata');
- header('Content-Type: text/html; charset=' . RCMAIL_CHARSET);
+ header('Content-Type: text/html; charset=' . RCUBE_CHARSET);
print "<html>\n<head>\n"
- . '<meta http-equiv="refresh" content="0; url='.Q($url).'">' . "\n"
- . '<meta http-equiv="content-type" content="text/html; charset='.RCMAIL_CHARSET.'">' . "\n"
+ . '<meta http-equiv="refresh" content="0; url='.rcube::Q($url).'">' . "\n"
+ . '<meta http-equiv="content-type" content="text/html; charset='.RCUBE_CHARSET.'">' . "\n"
. "</head>\n<body>\n$message\n</body>\n</html>";
exit;
}
@@ -38,7 +38,7 @@ ob_end_clean();
// similar code as in program/steps/mail/show.inc
if (!empty($_GET['_uid'])) {
- $uid = get_input_value('_uid', RCUBE_INPUT_GET);
+ $uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET);
$RCMAIL->config->set('prefer_html', true);
$MESSAGE = new rcube_message($uid);
}
@@ -46,7 +46,7 @@ if (!empty($_GET['_uid'])) {
// check connection status
check_storage_status();
-$part_id = get_input_value('_part', RCUBE_INPUT_GPC);
+$part_id = rcube_utils::get_input_value('_part', rcube_utils::INPUT_GPC);
// show part page
if (!empty($_GET['_frame'])) {
@@ -72,7 +72,7 @@ if (!empty($_GET['_frame'])) {
// render thumbnail of an image attachment
else if ($_GET['_thumb']) {
- $pid = get_input_value('_part', RCUBE_INPUT_GET);
+ $pid = rcube_utils::get_input_value('_part', rcube_utils::INPUT_GET);
if ($part = $MESSAGE->mime_parts[$pid]) {
$thumbnail_size = $RCMAIL->config->get('image_thumbnail_size', 240);
$temp_dir = $RCMAIL->config->get('temp_dir');
@@ -187,7 +187,7 @@ else if (strlen($part_id)) {
$OUTPUT = new rcmail_html_page();
$OUTPUT->write(html::tag('html', null, html::tag('body', 'embed',
html::div(array('class' => 'rcmail-inline-message rcmail-inline-warning'),
- rcube_label(array(
+ $RCMAIL->gettext(array(
'name' => 'attachmentvalidationerror',
'vars' => array(
'expected' => $mimetype . ($file_extension ? " (.$file_extension)" : ''),
@@ -197,7 +197,7 @@ else if (strlen($part_id)) {
html::p(array('class' => 'rcmail-inline-buttons'),
html::tag('button',
array('onclick' => "location.href='" . $RCMAIL->url(array_merge($_GET, array('_nocheck' => 1))) . "'"),
- rcube_label('showanyway')))
+ $RCMAIL->gettext('showanyway')))
)
)));
}
@@ -220,14 +220,8 @@ else if (strlen($part_id)) {
$browser = $RCMAIL->output->browser;
list($ctype_primary, $ctype_secondary) = explode('/', $mimetype);
- // send download headers
- if ($plugin['download']) {
- header("Content-Type: application/octet-stream");
- if ($browser->ie)
- header("Content-Type: application/force-download");
- }
- else if ($ctype_primary == 'text') {
- header("Content-Type: text/$ctype_secondary; charset=" . ($part->charset ? $part->charset : RCMAIL_CHARSET));
+ if (!$plugin['download'] && $ctype_primary == 'text') {
+ header("Content-Type: text/$ctype_secondary; charset=" . ($part->charset ? $part->charset : RCUBE_CHARSET));
}
else {
header("Content-Type: $mimetype");
@@ -238,10 +232,10 @@ else if (strlen($part_id)) {
if ($ctype_primary == 'text' && $ctype_secondary == 'html' && empty($plugin['download'])) {
// Check if we have enough memory to handle the message in it
// #1487424: we need up to 10x more memory than the body
- if (!rcmail_mem_check($part->size * 10)) {
- $out = '<body>' . rcube_label('messagetoobig'). ' '
+ if (!rcube_utils::mem_check($part->size * 10)) {
+ $out = '<body>' . $RCMAIL->gettext('messagetoobig'). ' '
. html::a('?_task=mail&_action=get&_download=1&_uid='.$MESSAGE->uid.'&_part='.$part->mime_id
- .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), rcube_label('download')) . '</body></html>';
+ .'&_mbox='. urlencode($RCMAIL->storage->get_folder()), $RCMAIL->gettext('download')) . '</body></html>';
}
else {
// get part body if not available
@@ -262,10 +256,10 @@ else if (strlen($part_id)) {
}
$out = substr($out, 0, $body_start) .
html::div(array('class' => 'rcmail-inline-message rcmail-inline-warning'),
- Q(rcube_label('blockedimages')) . '&nbsp;' .
+ rcube::Q($RCMAIL->gettext('blockedimages')) . '&nbsp;' .
html::tag('button',
array('onclick' => "location.href='" . $RCMAIL->url(array_merge($_GET, array('_safe' => 1))) . "'"),
- Q(rcube_label('showimages')))
+ rcube::Q($RCMAIL->gettext('showimages')))
) .
substr($out, $body_start);
}
@@ -276,7 +270,7 @@ else if (strlen($part_id)) {
check_storage_status();
}
- $OUTPUT = new rcube_html_page();
+ $OUTPUT = new rcmail_html_page();
$OUTPUT->write($out);
}
else {
@@ -382,7 +376,7 @@ else {
$cont .= rcmail_message_body(array());
$cont .= "\n</body>\n</html>";
- $OUTPUT = new rcube_html_page();
+ $OUTPUT = new rcmail_html_page();
$OUTPUT->write($cont);
exit;
@@ -416,7 +410,7 @@ function check_storage_status()
header('Location: ' . $_SERVER['REQUEST_URI'] . '&_redirected=1');
}
else {
- raise_error(array(
+ rcube::raise_error(array(
'code' => 500, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => 'Unable to get/display message part. IMAP connection error'),
@@ -435,7 +429,7 @@ function rcmail_message_part_controls($attrib)
{
global $MESSAGE, $RCMAIL;
- $part = asciiwords(get_input_value('_part', RCUBE_INPUT_GPC));
+ $part = asciiwords(rcube_utils::get_input_value('_part', rcube_utils::INPUT_GPC));
if (!is_object($MESSAGE) || !is_array($MESSAGE->parts)
|| !($_GET['_uid'] && $_GET['_part']) || !$MESSAGE->mime_parts[$part]
) {
@@ -445,14 +439,14 @@ function rcmail_message_part_controls($attrib)
$part = $MESSAGE->mime_parts[$part];
$table = new html_table(array('cols' => 2));
- $table->add('title', Q(rcube_label('namex')).':');
- $table->add('header', Q(rcmail_attachment_name($part)));
+ $table->add('title', rcube::Q($RCMAIL->gettext('namex')).':');
+ $table->add('header', rcube::Q(rcmail_attachment_name($part)));
- $table->add('title', Q(rcube_label('type')).':');
- $table->add('header', Q($part->mimetype));
+ $table->add('title', rcube::Q($RCMAIL->gettext('type')).':');
+ $table->add('header', rcube::Q($part->mimetype));
- $table->add('title', Q(rcube_label('size')).':');
- $table->add('header', Q($RCMAIL->message_part_size($part)));
+ $table->add('title', rcube::Q($RCMAIL->gettext('size')).':');
+ $table->add('header', rcube::Q($RCMAIL->message_part_size($part)));
return $table->show($attrib);
}
@@ -464,7 +458,7 @@ function rcmail_message_part_frame($attrib)
{
global $MESSAGE, $RCMAIL;
- $part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
+ $part = $MESSAGE->mime_parts[asciiwords(rcube_utils::get_input_value('_part', rcube_utils::INPUT_GPC))];
$ctype_primary = strtolower($part->ctype_primary);
$attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_embed=' : '_preload='), $_SERVER['QUERY_STRING']);
diff --git a/program/steps/mail/getunread.inc b/program/steps/mail/getunread.inc
index fb7e802fb..fda6448d4 100644
--- a/program/steps/mail/getunread.inc
+++ b/program/steps/mail/getunread.inc
@@ -35,7 +35,10 @@ if (!empty($a_folders))
else
$unseen = $RCMAIL->storage->count($mbox_row, 'UNSEEN', $unseen_old === null);
- if ($unseen || $unseen_old === null) {
+ // call it always for current folder, so it can update counter
+ // after possible message status change when opening a message
+ // not in preview frame
+ if ($unseen || $unseen_old === null || $mbox_row == $current) {
$OUTPUT->command('set_unread_count', $mbox_row, $unseen, $inbox && $mbox_row == 'INBOX');
}
@@ -44,5 +47,3 @@ if (!empty($a_folders))
}
$OUTPUT->send();
-
-
diff --git a/program/steps/mail/headers.inc b/program/steps/mail/headers.inc
index cad113f68..ae1f1db81 100644
--- a/program/steps/mail/headers.inc
+++ b/program/steps/mail/headers.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-if ($uid = get_input_value('_uid', RCUBE_INPUT_POST))
+if ($uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST))
{
$source = $RCMAIL->storage->get_raw_headers($uid);
diff --git a/program/steps/mail/import.inc b/program/steps/mail/import.inc
index f7e7a3eb8..69124f71a 100644
--- a/program/steps/mail/import.inc
+++ b/program/steps/mail/import.inc
@@ -31,7 +31,7 @@ if (is_array($_FILES['_file'])) {
if (!$err) {
// check file content type first
- list($mtype_primary,) = explode('/', rc_mime_content_type($filepath, $_FILES['_file']['name'][$i], $_FILES['_file']['type'][$i]));
+ list($mtype_primary,) = explode('/', rcube_mime::file_content_type($filepath, $_FILES['_file']['name'][$i], $_FILES['_file']['type'][$i]));
if (!in_array($mtype_primary, array('text','message'))) {
$OUTPUT->show_message('importmessageerror', 'error');
continue;
@@ -74,7 +74,8 @@ if (is_array($_FILES['_file'])) {
}
if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) {
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes(ini_get('upload_max_filesize'))))));
+ $size = $RCMAIL->show_bytes(parse_bytes(ini_get('upload_max_filesize')));
+ $msg = $RCMAIL->gettext(array('name' => 'filesizeerror', 'vars' => array('size' => $size)));
}
else if ($err) {
$OUTPUT->show_message('fileuploaderror', 'error');
@@ -82,7 +83,7 @@ if (is_array($_FILES['_file'])) {
} // end foreach
if ($imported) {
- $OUTPUT->show_message(rcube_label(array('name' => 'importmessagesuccess', 'nr' => $imported, 'vars' => array('nr' => $imported))), 'confirmation');
+ $OUTPUT->show_message($RCMAIL->gettext(array('name' => 'importmessagesuccess', 'nr' => $imported, 'vars' => array('nr' => $imported))), 'confirmation');
$OUTPUT->command('command', 'list');
}
else {
@@ -93,9 +94,9 @@ else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// if filesize exceeds post_max_size then $_FILES array is empty,
// show filesizeerror instead of fileuploaderror
if ($maxsize = ini_get('post_max_size'))
- $msg = rcube_label(array('name' => 'filesizeerror', 'vars' => array('size' => show_bytes(parse_bytes($maxsize)))));
+ $msg = $RCMAIL->gettext(array('name' => 'filesizeerror', 'vars' => array('size' => $RCMAIL->show_bytes(parse_bytes($maxsize)))));
else
- $msg = rcube_label('fileuploaderror');
+ $msg = $RCMAIL->gettext('fileuploaderror');
$OUTPUT->command('display_message', $msg, 'error');
}
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index a2380131a..91c53e852 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -23,11 +23,11 @@ if (!$OUTPUT->ajax_call) {
return;
}
-$save_arr = array();
-$dont_override = (array) $RCMAIL->config->get('dont_override');
+$save_arr = array();
+$dont_override = (array) $RCMAIL->config->get('dont_override');
// is there a sort type for this request?
-if ($sort = get_input_value('_sort', RCUBE_INPUT_GET)) {
+if ($sort = rcube_utils::get_input_value('_sort', rcube_utils::INPUT_GET)) {
// yes, so set the sort vars
list($sort_col, $sort_order) = explode('_', $sort);
@@ -41,7 +41,7 @@ if ($sort = get_input_value('_sort', RCUBE_INPUT_GET)) {
}
// is there a set of columns for this request?
-if ($cols = get_input_value('_cols', RCUBE_INPUT_GET)) {
+if ($cols = rcube_utils::get_input_value('_cols', rcube_utils::INPUT_GET)) {
if (!in_array('list_cols', $dont_override)) {
$save_arr['list_cols'] = explode(',', $cols);
}
@@ -60,7 +60,7 @@ $RCMAIL->storage->folder_sync($mbox_name);
// initialize searching result if search_filter is used
if ($_SESSION['search_filter'] && $_SESSION['search_filter'] != 'ALL') {
$search_request = md5($mbox_name.$_SESSION['search_filter']);
- $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCMAIL_CHARSET, rcmail_sort_column());
+ $RCMAIL->storage->search($mbox_name, $_SESSION['search_filter'], RCUBE_CHARSET, rcmail_sort_column());
$_SESSION['search'] = $RCMAIL->storage->get_search_set();
$_SESSION['search_request'] = $search_request;
$OUTPUT->set_env('search_request', $search_request);
@@ -104,11 +104,18 @@ if (isset($a_headers) && count($a_headers)) {
if ($search_request) {
$OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $count));
}
+
+ // remember last HIGHESTMODSEQ value (if supported)
+ // we need it for flag updates in check-recent
+ $data = $RCMAIL->storage->folder_data($mbox_name);
+ if (!empty($data['HIGHESTMODSEQ'])) {
+ $_SESSION['list_mod_seq'] = $data['HIGHESTMODSEQ'];
+ }
}
else {
// handle IMAP errors (e.g. #1486905)
if ($err_code = $RCMAIL->storage->get_error_code()) {
- rcmail_display_server_error();
+ $RCMAIL->display_server_error();
}
else if ($search_request)
$OUTPUT->show_message('searchnomatch', 'notice');
diff --git a/program/steps/mail/list_contacts.inc b/program/steps/mail/list_contacts.inc
index dab146431..46f81353a 100644
--- a/program/steps/mail/list_contacts.inc
+++ b/program/steps/mail/list_contacts.inc
@@ -65,7 +65,7 @@ if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search
}
// list contacts from selected source
else {
- $source = get_input_value('_source', RCUBE_INPUT_GPC);
+ $source = rcube_utils::get_input_value('_source', rcube_utils::INPUT_GPC);
$CONTACTS = $RCMAIL->get_address_book($source);
if ($CONTACTS && $CONTACTS->ready) {
@@ -73,7 +73,7 @@ else {
$CONTACTS->set_pagesize($page_size);
$CONTACTS->set_page($list_page);
- if ($group_id = get_input_value('_gid', RCUBE_INPUT_GPC)) {
+ if ($group_id = rcube_utils::get_input_value('_gid', rcube_utils::INPUT_GPC)) {
$CONTACTS->set_group($group_id);
}
// list groups of this source (on page one)
@@ -89,7 +89,7 @@ else {
$row_id = 'G'.$group['ID'];
$jsresult[$row_id] = format_email_recipient($email, $group['name']);
$OUTPUT->command('add_contact_row', $row_id, array(
- 'contactgroup' => html::span(array('title' => $email), Q($group['name']))), 'group');
+ 'contactgroup' => html::span(array('title' => $email), rcube::Q($group['name']))), 'group');
}
}
// make virtual groups clickable to list their members
@@ -99,9 +99,9 @@ else {
'contactgroup' => html::a(array(
'href' => '#list',
'rel' => $row['ID'],
- 'title' => rcube_label('listgroup'),
- 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", JS_OBJECT_NAME, $source, $group['ID']),
- ), Q($group['name']) . '&nbsp;' . html::span('action', '&raquo;'))),
+ 'title' => $RCMAIL->gettext('listgroup'),
+ 'onclick' => sprintf("return %s.command('pushgroup',{'source':'%s','id':'%s'},this,event)", rcmail_output::JS_OBJECT_NAME, $source, $group['ID']),
+ ), rcube::Q($group['name']) . '&nbsp;' . html::span('action', '&raquo;'))),
'group',
array('ID' => $group['ID'], 'name' => $group['name'], 'virtual' => true));
}
@@ -110,7 +110,7 @@ else {
$row_id = 'E'.$group['ID'];
$jsresult[$row_id] = $group['name'];
$OUTPUT->command('add_contact_row', $row_id, array(
- 'contactgroup' => Q($group['name'] . ' (' . intval($result->count) . ')')), 'group');
+ 'contactgroup' => rcube::Q($group['name'] . ' (' . intval($result->count) . ')')), 'group');
}
}
@@ -134,14 +134,14 @@ else if (!empty($result) && $result->count > 0) {
// add record for every email address of the contact
$emails = $CONTACTS->get_col_values('email', $row, true);
foreach ($emails as $i => $email) {
- $row_id = $row['ID'].$i;
+ $row_id = $row['ID'].'-'.$i;
$jsresult[$row_id] = format_email_recipient($email, $name);
$classname = $row['_type'] == 'group' ? 'group' : 'person';
$keyname = $row['_type'] == 'group' ? 'contactgroup' : 'contact';
$OUTPUT->command('add_contact_row', $row_id, array(
- $keyname => html::span(array('title' => $email), Q($name ? $name : $email) .
- ($name && count($emails) > 1 ? '&nbsp;' . html::span('email', Q($email)) : '')
+ $keyname => html::span(array('title' => $email), rcube::Q($name ? $name : $email) .
+ ($name && count($emails) > 1 ? '&nbsp;' . html::span('email', rcube::Q($email)) : '')
)), $classname);
}
}
diff --git a/program/steps/mail/mark.inc b/program/steps/mail/mark.inc
index dfc892ea1..b081bc9b0 100644
--- a/program/steps/mail/mark.inc
+++ b/program/steps/mail/mark.inc
@@ -32,7 +32,7 @@ $a_flags_map = array(
$threading = (bool) $RCMAIL->storage->get_threading();
-if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_value('_flag', RCUBE_INPUT_POST)))
+if (($uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST)) && ($flag = rcube_utils::get_input_value('_flag', rcube_utils::INPUT_POST)))
{
$flag = $a_flags_map[$flag] ? $a_flags_map[$flag] : strtoupper($flag);
@@ -49,7 +49,7 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va
// send error message
if ($_POST['_from'] != 'show')
$OUTPUT->command('list_mailbox');
- rcmail_display_server_error('errormarking');
+ $RCMAIL->display_server_error('errormarking');
$OUTPUT->send();
exit;
}
@@ -58,7 +58,7 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va
}
if ($flag == 'DELETED' && $CONFIG['read_when_deleted'] && !empty($_POST['_ruid'])) {
- $ruids = get_input_value('_ruid', RCUBE_INPUT_POST);
+ $ruids = rcube_utils::get_input_value('_ruid', rcube_utils::INPUT_POST);
$read = $RCMAIL->storage->set_flag($ruids, 'SEEN');
if ($read && !$CONFIG['skip_deleted'])
@@ -70,12 +70,12 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va
}
else if ($flag == 'DELETED' && $CONFIG['skip_deleted']) {
if ($_POST['_from'] == 'show') {
- if ($next = get_input_value('_next_uid', RCUBE_INPUT_GPC))
+ if ($next = rcube_utils::get_input_value('_next_uid', rcube_utils::INPUT_GPC))
$OUTPUT->command('show_message', $next);
else
$OUTPUT->command('command', 'list');
} else {
- $search_request = get_input_value('_search', RCUBE_INPUT_GPC);
+ $search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC);
// refresh saved search set after moving some messages
if ($search_request && $RCMAIL->storage->get_search_set()) {
$_SESSION['search'] = $RCMAIL->storage->refresh_search();
@@ -113,7 +113,7 @@ if (($uids = get_input_value('_uid', RCUBE_INPUT_POST)) && ($flag = get_input_va
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
if ($threading) {
- $count = get_input_value('_count', RCUBE_INPUT_POST);
+ $count = rcube_utils::get_input_value('_count', rcube_utils::INPUT_POST);
}
// add new rows from next page (if any)
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index f15cd2460..587373997 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -30,9 +30,9 @@ $old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize());
// move messages
if ($RCMAIL->action == 'move' && !empty($_POST['_uid']) && strlen($_POST['_target_mbox'])) {
- $count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST))));
- $target = get_input_value('_target_mbox', RCUBE_INPUT_POST, true);
- $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+ $count = sizeof(explode(',', ($uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST))));
+ $target = rcube_utils::get_input_value('_target_mbox', rcube_utils::INPUT_POST, true);
+ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
$trash = $RCMAIL->config->get('trash_mbox');
$moved = $RCMAIL->storage->move_message($uids, $target, $mbox);
@@ -41,7 +41,7 @@ if ($RCMAIL->action == 'move' && !empty($_POST['_uid']) && strlen($_POST['_targe
// send error message
if ($_POST['_from'] != 'show')
$OUTPUT->command('list_mailbox');
- rcmail_display_server_error('errormoving', null, $target == $trash ? 'delete' : '');
+ $RCMAIL->display_server_error('errormoving', null, $target == $trash ? 'delete' : '');
$OUTPUT->send();
exit;
}
@@ -53,8 +53,8 @@ if ($RCMAIL->action == 'move' && !empty($_POST['_uid']) && strlen($_POST['_targe
}
// delete messages
else if ($RCMAIL->action=='delete' && !empty($_POST['_uid'])) {
- $count = sizeof(explode(',', ($uids = get_input_value('_uid', RCUBE_INPUT_POST))));
- $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+ $count = sizeof(explode(',', ($uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST))));
+ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
$del = $RCMAIL->storage->delete_message($uids, $mbox);
@@ -62,7 +62,7 @@ else if ($RCMAIL->action=='delete' && !empty($_POST['_uid'])) {
// send error message
if ($_POST['_from'] != 'show')
$OUTPUT->command('list_mailbox');
- rcmail_display_server_error('errordeleting');
+ $RCMAIL->display_server_error('errordeleting');
$OUTPUT->send();
exit;
}
@@ -79,7 +79,7 @@ else {
exit;
}
-$search_request = get_input_value('_search', RCUBE_INPUT_GPC);
+$search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC);
// refresh saved search set after moving some messages
if ($search_request && $RCMAIL->storage->get_search_set()) {
@@ -88,7 +88,7 @@ if ($search_request && $RCMAIL->storage->get_search_set()) {
if ($_POST['_from'] == 'show')
{
- if ($next = get_input_value('_next_uid', RCUBE_INPUT_GPC))
+ if ($next = rcube_utils::get_input_value('_next_uid', rcube_utils::INPUT_GPC))
$OUTPUT->command('show_message', $next);
else
$OUTPUT->command('command', 'list');
@@ -130,11 +130,11 @@ else
rcmail_send_unread_count($target, true);
}
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
if ($threading) {
- $count = get_input_value('_count', RCUBE_INPUT_POST);
+ $count = rcube_utils::get_input_value('_count', rcube_utils::INPUT_POST);
}
// add new rows from next page (if any)
diff --git a/program/steps/mail/pagenav.inc b/program/steps/mail/pagenav.inc
index e4b70ad60..59c131f69 100644
--- a/program/steps/mail/pagenav.inc
+++ b/program/steps/mail/pagenav.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-$uid = get_input_value('_uid', RCUBE_INPUT_GET);
+$uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET);
$index = $RCMAIL->storage->index(null, rcmail_sort_column(), rcmail_sort_order());
$cnt = $index->count_messages();
@@ -48,7 +48,7 @@ if ($last)
$OUTPUT->set_env('messagecount', 1);
// Set rowcount text
-$OUTPUT->command('set_rowcount', rcube_label(array(
+$OUTPUT->command('set_rowcount', $RCMAIL->gettext(array(
'name' => 'messagenrof',
'vars' => array('nr' => $pos+1, 'count' => $cnt)
)));
diff --git a/program/steps/mail/search.inc b/program/steps/mail/search.inc
index fb1b48797..210bedbb8 100644
--- a/program/steps/mail/search.inc
+++ b/program/steps/mail/search.inc
@@ -24,13 +24,13 @@ $_SESSION['page'] = 1;
// using encodeURI with javascript "should" give us
// a correctly encoded query string
-$imap_charset = RCMAIL_CHARSET;
+$imap_charset = RCUBE_CHARSET;
// get search string
-$str = get_input_value('_q', RCUBE_INPUT_GET, true);
-$mbox = get_input_value('_mbox', RCUBE_INPUT_GET, true);
-$filter = get_input_value('_filter', RCUBE_INPUT_GET);
-$headers = get_input_value('_headers', RCUBE_INPUT_GET);
+$str = rcube_utils::get_input_value('_q', rcube_utils::INPUT_GET, true);
+$mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GET, true);
+$filter = rcube_utils::get_input_value('_filter', rcube_utils::INPUT_GET);
+$headers = rcube_utils::get_input_value('_headers', rcube_utils::INPUT_GET);
$subject = array();
$search_request = md5($mbox.$filter.$str);
@@ -131,10 +131,17 @@ if (!empty($result_h)) {
rcmail_js_message_list($result_h);
if ($search_str)
$OUTPUT->show_message('searchsuccessful', 'confirmation', array('nr' => $RCMAIL->storage->count(NULL, 'ALL')));
+
+ // remember last HIGHESTMODSEQ value (if supported)
+ // we need it for flag updates in check-recent
+ $data = $RCMAIL->storage->folder_data($mbox_name);
+ if (!empty($data['HIGHESTMODSEQ'])) {
+ $_SESSION['list_mod_seq'] = $data['HIGHESTMODSEQ'];
+ }
}
// handle IMAP errors (e.g. #1486905)
else if ($err_code = $RCMAIL->storage->get_error_code()) {
- rcmail_display_server_error();
+ $RCMAIL->display_server_error();
}
else {
$OUTPUT->show_message('searchnomatch', 'notice');
diff --git a/program/steps/mail/search_contacts.inc b/program/steps/mail/search_contacts.inc
index 6a30ad1f5..4d5abf9ef 100644
--- a/program/steps/mail/search_contacts.inc
+++ b/program/steps/mail/search_contacts.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-$search = get_input_value('_q', RCUBE_INPUT_GPC, true);
+$search = rcube_utils::get_input_value('_q', rcube_utils::INPUT_GPC, true);
$sources = $RCMAIL->get_address_sources();
$search_mode = (int) $RCMAIL->config->get('addressbook_search_mode');
$addr_sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
@@ -76,11 +76,11 @@ if (!empty($result) && $result->count > 0) {
// (same as in list_contacts.inc)
$emails = $source->get_col_values('email', $row, true);
foreach ($emails as $i => $email) {
- $row_id = $row['ID'].$i;
+ $row_id = $row['ID'].'-'.$i;
$jsresult[$row_id] = format_email_recipient($email, $name);
$OUTPUT->command('add_contact_row', $row_id, array(
- 'contact' => html::span(array('title' => $email), Q($name ? $name : $email) .
- ($name && count($emails) > 1 ? '&nbsp;' . html::span('email', Q($email)) : '')
+ 'contact' => html::span(array('title' => $email), rcube::Q($name ? $name : $email) .
+ ($name && count($emails) > 1 ? '&nbsp;' . html::span('email', rcube::Q($email)) : '')
)), 'person');
}
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index ea5eaaed1..9f79df343 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -26,13 +26,13 @@ $OUTPUT->framed = TRUE;
$savedraft = !empty($_POST['_draft']) ? true : false;
-$COMPOSE_ID = get_input_value('_id', RCUBE_INPUT_GPC);
+$COMPOSE_ID = rcube_utils::get_input_value('_id', rcube_utils::INPUT_GPC);
$COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
/****** checks ********/
if (!isset($COMPOSE['id'])) {
- raise_error(array('code' => 500, 'type' => 'php',
+ rcube::raise_error(array('code' => 500, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Invalid compose ID"), true, false);
@@ -78,9 +78,9 @@ function rcmail_get_identity($id)
if ($sql_arr = $RCMAIL->user->get_identity($id)) {
$out = $sql_arr;
- if ($message_charset != RCMAIL_CHARSET) {
+ if ($message_charset != RCUBE_CHARSET) {
foreach ($out as $k => $v)
- $out[$k] = rcube_charset_convert($v, RCMAIL_CHARSET, $message_charset);
+ $out[$k] = rcube_charset::convert($v, RCUBE_CHARSET, $message_charset);
}
$out['mailto'] = $sql_arr['email'];
@@ -212,17 +212,17 @@ function rcmail_email_input_format($mailto, $count=false, $check=true)
$mailto = trim(preg_replace($regexp, $replace, $mailto));
$result = array();
- $items = rcube_explode_quoted_string($delim, $mailto);
+ $items = rcube_utils::explode_quoted_string($delim, $mailto);
foreach($items as $item) {
$item = trim($item);
// address in brackets without name (do nothing)
if (preg_match('/^<'.$email_regexp.'>$/', $item)) {
- $item = rcube_idn_to_ascii(trim($item, '<>'));
+ $item = rcube_utils::idn_to_ascii(trim($item, '<>'));
$result[] = $item;
// address without brackets and without name (add brackets)
} else if (preg_match('/^'.$email_regexp.'$/', $item)) {
- $item = rcube_idn_to_ascii($item);
+ $item = rcube_utils::idn_to_ascii($item);
$result[] = $item;
// address with name (handle name)
} else if (preg_match('/<*'.$email_regexp.'>*$/', $item, $matches)) {
@@ -232,7 +232,7 @@ function rcmail_email_input_format($mailto, $count=false, $check=true)
$name = substr($name, 1, -1);
}
$name = stripcslashes($name);
- $address = rcube_idn_to_ascii(trim($address, '<>'));
+ $address = rcube_utils::idn_to_ascii(trim($address, '<>'));
$result[] = format_email_recipient($address, $name);
$item = $address;
} else if (trim($item)) {
@@ -241,7 +241,7 @@ function rcmail_email_input_format($mailto, $count=false, $check=true)
// check address format
$item = trim($item, '<>');
- if ($item && $check && !check_email($item)) {
+ if ($item && $check && !rcube_utils::check_email($item)) {
$EMAIL_FORMAT_ERROR = $item;
return;
}
@@ -285,9 +285,9 @@ function rcmail_generic_message_footer($isHtml)
/****** compose message ********/
if (strlen($_POST['_draft_saveid']) > 3)
- $olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST);
+ $olddraftmessageid = rcube_utils::get_input_value('_draft_saveid', rcube_utils::INPUT_POST);
-$message_id = rcmail_gen_message_id();
+$message_id = $RCMAIL->gen_message_id();
// set default charset
$message_charset = isset($_POST['_charset']) ? $_POST['_charset'] : $OUTPUT->get_charset();
@@ -295,9 +295,9 @@ $message_charset = isset($_POST['_charset']) ? $_POST['_charset'] : $OUTPUT->get
$EMAIL_FORMAT_ERROR = NULL;
$RECIPIENT_COUNT = 0;
-$mailto = rcmail_email_input_format(get_input_value('_to', RCUBE_INPUT_POST, TRUE, $message_charset), true);
-$mailcc = rcmail_email_input_format(get_input_value('_cc', RCUBE_INPUT_POST, TRUE, $message_charset), true);
-$mailbcc = rcmail_email_input_format(get_input_value('_bcc', RCUBE_INPUT_POST, TRUE, $message_charset), true);
+$mailto = rcmail_email_input_format(rcube_utils::get_input_value('_to', rcube_utils::INPUT_POST, TRUE, $message_charset), true);
+$mailcc = rcmail_email_input_format(rcube_utils::get_input_value('_cc', rcube_utils::INPUT_POST, TRUE, $message_charset), true);
+$mailbcc = rcmail_email_input_format(rcube_utils::get_input_value('_bcc', rcube_utils::INPUT_POST, TRUE, $message_charset), true);
if ($EMAIL_FORMAT_ERROR) {
$OUTPUT->show_message('emailformaterror', 'error', array('email' => $EMAIL_FORMAT_ERROR));
@@ -312,7 +312,7 @@ else if (empty($mailto))
$mailto = 'undisclosed-recipients:;';
// Get sender name and address...
-$from = get_input_value('_from', RCUBE_INPUT_POST, true, $message_charset);
+$from = rcube_utils::get_input_value('_from', rcube_utils::INPUT_POST, true, $message_charset);
// ... from identity...
if (is_numeric($from)) {
if (is_array($identity_arr = rcmail_get_identity($from))) {
@@ -345,9 +345,10 @@ if ($CONFIG['http_received_header'])
$nldlm = "\r\n\t";
// FROM/VIA
$http_header = 'from ';
- if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
- $host = $_SERVER['HTTP_X_FORWARDED_FOR'];
- $hostname = gethostbyaddr($host);
+ if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+ $hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'], 2);
+ $hostname = gethostbyaddr($hosts[0]);
+
if ($CONFIG['http_received_header_encrypt']) {
$http_header .= rcmail_encrypt_header($hostname);
if ($host != $hostname)
@@ -380,8 +381,8 @@ if ($CONFIG['http_received_header'])
$headers['Received'] = $http_header;
}
-$headers['Date'] = rcmail_user_date();
-$headers['From'] = rcube_charset_convert($from_string, RCMAIL_CHARSET, $message_charset);
+$headers['Date'] = $RCMAIL->user_date();
+$headers['From'] = rcube_charset::convert($from_string, RCUBE_CHARSET, $message_charset);
$headers['To'] = $mailto;
// additional recipients
@@ -400,19 +401,19 @@ if (($max_recipients = (int) $RCMAIL->config->get('max_recipients')) > 0) {
}
// add subject
-$headers['Subject'] = trim(get_input_value('_subject', RCUBE_INPUT_POST, TRUE, $message_charset));
+$headers['Subject'] = trim(rcube_utils::get_input_value('_subject', rcube_utils::INPUT_POST, TRUE, $message_charset));
if (!empty($identity_arr['organization'])) {
$headers['Organization'] = $identity_arr['organization'];
}
if (!empty($_POST['_replyto'])) {
- $headers['Reply-To'] = rcmail_email_input_format(get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset));
+ $headers['Reply-To'] = rcmail_email_input_format(rcube_utils::get_input_value('_replyto', rcube_utils::INPUT_POST, TRUE, $message_charset));
}
if (!empty($headers['Reply-To'])) {
$headers['Mail-Reply-To'] = $headers['Reply-To'];
}
if (!empty($_POST['_followupto'])) {
- $headers['Mail-Followup-To'] = rcmail_email_input_format(get_input_value('_followupto', RCUBE_INPUT_POST, TRUE, $message_charset));
+ $headers['Mail-Followup-To'] = rcmail_email_input_format(rcube_utils::get_input_value('_followupto', rcube_utils::INPUT_POST, TRUE, $message_charset));
}
// remember reply/forward UIDs in special headers
@@ -467,10 +468,10 @@ else
$headers = $data['headers'];
-$isHtml = (bool) get_input_value('_is_html', RCUBE_INPUT_POST);
+$isHtml = (bool) rcube_utils::get_input_value('_is_html', rcube_utils::INPUT_POST);
// fetch message body
-$message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset);
+$message_body = rcube_utils::get_input_value('_message', rcube_utils::INPUT_POST, TRUE, $message_charset);
if ($isHtml) {
$bstyle = array();
@@ -504,7 +505,7 @@ if (!$savedraft) {
&& empty($COMPOSE['spell_checked']) && !empty($message_body)
) {
$message_body = str_replace("\r\n", "\n", $message_body);
- $spellchecker = new rcube_spellchecker(get_input_value('_lang', RCUBE_INPUT_GPC));
+ $spellchecker = new rcube_spellchecker(rcube_utils::get_input_value('_lang', rcube_utils::INPUT_GPC));
$spell_result = $spellchecker->check($message_body, $isHtml);
$COMPOSE['spell_checked'] = true;
@@ -519,7 +520,7 @@ if (!$savedraft) {
// generic footer for all messages
if ($footer = rcmail_generic_message_footer($isHtml)) {
- $footer = rcube_charset_convert($footer, RCMAIL_CHARSET, $message_charset);
+ $footer = rcube_charset::convert($footer, RCUBE_CHARSET, $message_charset);
$message_body .= "\r\n" . $footer;
}
}
@@ -529,7 +530,7 @@ if ($isHtml) {
}
// sort attachments to make sure the order is the same as in the UI (#1488423)
-$files = get_input_value('_attachments', RCUBE_INPUT_POST);
+$files = rcube_utils::get_input_value('_attachments', rcube_utils::INPUT_POST);
if ($files) {
$files = explode(',', $files);
$files = array_flip($files);
@@ -575,11 +576,11 @@ if ($isHtml) {
$MAIL_MIME->setHTMLBody($plugin['body']);
// replace emoticons
- $plugin['body'] = rcmail_replace_emoticons($plugin['body']);
+ $plugin['body'] = $RCMAIL->replace_emoticons($plugin['body']);
// add a plain text version of the e-mail as an alternative part.
$h2t = new rcube_html2text($plugin['body'], false, true, 0, $message_charset);
- $plainTextPart = rc_wordwrap($h2t->get_text(), $LINE_LENGTH, "\r\n", false, $message_charset);
+ $plainTextPart = rcube_mime::wordwrap($h2t->get_text(), $LINE_LENGTH, "\r\n", false, $message_charset);
$plainTextPart = wordwrap($plainTextPart, 998, "\r\n", true);
// make sure all line endings are CRLF (#1486712)
@@ -607,7 +608,7 @@ else {
if ($flowed = ($savedraft || $RCMAIL->config->get('send_format_flowed', true)))
$message_body = rcube_mime::format_flowed($message_body, min($LINE_LENGTH+2, 79), $message_charset);
else
- $message_body = rc_wordwrap($message_body, $LINE_LENGTH, "\r\n", false, $message_charset);
+ $message_body = rcube_mime::wordwrap($message_body, $LINE_LENGTH, "\r\n", false, $message_charset);
$message_body = wordwrap($message_body, 998, "\r\n", true);
@@ -662,17 +663,29 @@ if (is_array($COMPOSE['attachments'])) {
'', '', '',
$CONFIG['mime_param_folding'] ? 'quoted-printable' : NULL,
$CONFIG['mime_param_folding'] == 2 ? 'quoted-printable' : NULL,
- '', RCMAIL_CHARSET
+ '', RCUBE_CHARSET
);
}
}
}
// choose transfer encoding for plain/text body
-if (preg_match('/[^\x00-\x7F]/', $MAIL_MIME->getTXTBody()))
+if (preg_match('/[^\x00-\x7F]/', $MAIL_MIME->getTXTBody())) {
+ $text_charset = $message_charset;
$transfer_encoding = $RCMAIL->config->get('force_7bit') ? 'quoted-printable' : '8bit';
-else
+}
+else {
+ $text_charset = '';
$transfer_encoding = '7bit';
+}
+
+if ($flowed) {
+ if (!$text_charset) {
+ $text_charset = 'US-ASCII';
+ }
+
+ $text_charset .= ";\r\n format=flowed";
+}
// encoding settings for mail composing
$MAIL_MIME->setParam('text_encoding', $transfer_encoding);
@@ -680,14 +693,14 @@ $MAIL_MIME->setParam('html_encoding', 'quoted-printable');
$MAIL_MIME->setParam('head_encoding', 'quoted-printable');
$MAIL_MIME->setParam('head_charset', $message_charset);
$MAIL_MIME->setParam('html_charset', $message_charset);
-$MAIL_MIME->setParam('text_charset', $message_charset . ($flowed ? ";\r\n format=flowed" : ''));
+$MAIL_MIME->setParam('text_charset', $text_charset);
// encoding subject header with mb_encode provides better results with asian characters
if (function_exists('mb_encode_mimeheader')) {
mb_internal_encoding($message_charset);
$headers['Subject'] = mb_encode_mimeheader($headers['Subject'],
$message_charset, 'Q', "\r\n", 8);
- mb_internal_encoding(RCMAIL_CHARSET);
+ mb_internal_encoding(RCUBE_CHARSET);
}
// pass headers to message object
@@ -707,7 +720,7 @@ if (!$savedraft)
$smtp_opts['dsn'] = true;
}
- $sent = rcmail_deliver_message($MAIL_MIME, $from, $mailto,
+ $sent = $RCMAIL->deliver_message($MAIL_MIME, $from, $mailto,
$smtp_error, $mailbody_file, $smtp_opts);
// return to compose page if sending failed
@@ -741,7 +754,7 @@ if (!$savedraft)
if ($savedraft)
$store_target = $CONFIG['drafts_mbox'];
else if (!$RCMAIL->config->get('no_save_sent_messages'))
- $store_target = isset($_POST['_store_target']) ? get_input_value('_store_target', RCUBE_INPUT_POST) : $CONFIG['sent_mbox'];
+ $store_target = isset($_POST['_store_target']) ? rcube_utils::get_input_value('_store_target', rcube_utils::INPUT_POST) : $CONFIG['sent_mbox'];
if ($store_target) {
// check if folder is subscribed
@@ -775,7 +788,7 @@ if ($store_target) {
}
if (PEAR::isError($msg))
- raise_error(array('code' => 650, 'type' => 'php',
+ rcube::raise_error(array('code' => 650, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not create message: ".$msg->getMessage()),
TRUE, FALSE);
@@ -792,7 +805,7 @@ if ($store_target) {
// raise error if saving failed
if (!$saved) {
- raise_error(array('code' => 800, 'type' => 'imap',
+ rcube::raise_error(array('code' => 800, 'type' => 'imap',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not save message in $store_target"), TRUE, FALSE);
@@ -815,7 +828,7 @@ if ($store_target) {
// raise error if deletion of old draft failed
if (!$deleted)
- raise_error(array('code' => 800, 'type' => 'imap',
+ rcube::raise_error(array('code' => 800, 'type' => 'imap',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not delete message from ".$CONFIG['drafts_mbox']), TRUE, FALSE);
}
@@ -858,13 +871,13 @@ else {
$OUTPUT->command('remove_compose_data', $COMPOSE_ID);
if ($store_folder && !$saved)
- $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'), $folders);
+ $OUTPUT->command('sent_successfully', 'error', $RCMAIL->gettext('errorsavingsent'), $folders);
else {
if ($store_folder) {
$folders[] = $store_target;
}
- $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $folders);
+ $OUTPUT->command('sent_successfully', 'confirmation', $RCMAIL->gettext('messagesent'), $folders);
}
}
diff --git a/program/steps/mail/sendmdn.inc b/program/steps/mail/sendmdn.inc
index 01d0807be..7cc152a2b 100644
--- a/program/steps/mail/sendmdn.inc
+++ b/program/steps/mail/sendmdn.inc
@@ -24,7 +24,7 @@ if (!$OUTPUT->ajax_call)
return;
if (!empty($_POST['_uid'])) {
- $sent = rcmail_send_mdn(get_input_value('_uid', RCUBE_INPUT_POST), $smtp_error);
+ $sent = rcmail_send_mdn(rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST), $smtp_error);
}
// show either confirm or error message
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 9d85f9c8f..6382e49fe 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -22,7 +22,7 @@
$PRINT_MODE = $RCMAIL->action == 'print' ? TRUE : FALSE;
// Read browser capabilities and store them in session
-if ($caps = get_input_value('_caps', RCUBE_INPUT_GET)) {
+if ($caps = rcube_utils::get_input_value('_caps', rcube_utils::INPUT_GET)) {
$browser_caps = array();
foreach (explode(',', $caps) as $cap) {
$cap = explode('=', $cap);
@@ -31,7 +31,7 @@ if ($caps = get_input_value('_caps', RCUBE_INPUT_GET)) {
$_SESSION['browser_caps'] = $browser_caps;
}
-$uid = get_input_value('_uid', RCUBE_INPUT_GET);
+$uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET);
$mbox_name = $RCMAIL->storage->get_folder();
// similar code as in program/steps/mail/get.inc
@@ -68,7 +68,7 @@ if ($uid) {
// set environement
$OUTPUT->set_env('safemode', $MESSAGE->is_safe);
$OUTPUT->set_env('sender', $MESSAGE->sender['string']);
- $OUTPUT->set_env('permaurl', rcmail_url('show', array('_uid' => $MESSAGE->uid, '_mbox' => $mbox_name)));
+ $OUTPUT->set_env('permaurl', $RCMAIL->url(array('_action' => 'show', '_uid' => $MESSAGE->uid, '_mbox' => $mbox_name)));
$OUTPUT->set_env('delimiter', $RCMAIL->storage->get_hierarchy_delimiter());
$OUTPUT->set_env('mailbox', $mbox_name);
$OUTPUT->set_env('compose_extwin', $RCMAIL->config->get('compose_extwin',false));
@@ -172,7 +172,7 @@ function rcmail_message_attachments($attrib)
if ($PRINT_MODE) {
$size = $RCMAIL->message_part_size($attach_prop);
- $ol .= html::tag('li', null, Q(sprintf("%s (%s)", $filename, $size)));
+ $ol .= html::tag('li', null, rcube::Q(sprintf("%s (%s)", $filename, $size)));
}
else {
if ($attrib['maxlength'] && mb_strlen($filename) > $attrib['maxlength']) {
@@ -184,15 +184,15 @@ function rcmail_message_attachments($attrib)
}
$mimetype = rcmail_fix_mimetype($attach_prop->mimetype);
- $class = rcmail_filetype2classname($mimetype, $filename);
+ $class = rcube_utils::file2class($mimetype, $filename);
$id = 'attach' . $attach_prop->mime_id;
$link = html::a(array(
'href' => $MESSAGE->get_part_url($attach_prop->mime_id, false),
'onclick' => sprintf('return %s.command(\'load-attachment\',\'%s\',this)',
- JS_OBJECT_NAME, $attach_prop->mime_id),
+ rcmail_output::JS_OBJECT_NAME, $attach_prop->mime_id),
'onmouseover' => $title ? '' : 'rcube_webmail.long_subject_title_ex(this, 0)',
- 'title' => Q($title),
- ), Q($filename));
+ 'title' => rcube::Q($title),
+ ), rcube::Q($filename));
$ol .= html::tag('li', array('class' => $class, 'id' => $id), $link);
$attachments[$attach_prop->mime_id] = $mimetype;
@@ -214,13 +214,13 @@ function rcmail_remote_objects_msg()
$attrib['class'] = 'notice';
$attrib['style'] = 'display: none';
- $msg = Q(rcube_label('blockedimages')) . '&nbsp;';
- $msg .= html::a(array('href' => "#loadimages", 'onclick' => JS_OBJECT_NAME.".command('load-images')"), Q(rcube_label('showimages')));
+ $msg = rcube::Q($RCMAIL->gettext('blockedimages')) . '&nbsp;';
+ $msg .= html::a(array('href' => "#loadimages", 'onclick' => rcmail_output::JS_OBJECT_NAME.".command('load-images')"), rcube::Q($RCMAIL->gettext('showimages')));
// add link to save sender in addressbook and reload message
if ($MESSAGE->sender['mailto'] && $RCMAIL->config->get('show_images') == 1) {
- $msg .= ' ' . html::a(array('href' => "#alwaysload", 'onclick' => JS_OBJECT_NAME.".command('always-load')", 'style' => "white-space:nowrap"),
- Q(rcube_label(array('name' => 'alwaysshow', 'vars' => array('sender' => $MESSAGE->sender['mailto'])))));
+ $msg .= ' ' . html::a(array('href' => "#alwaysload", 'onclick' => rcmail_output::JS_OBJECT_NAME.".command('always-load')", 'style' => "white-space:nowrap"),
+ rcube::Q($RCMAIL->gettext(array('name' => 'alwaysshow', 'vars' => array('sender' => $MESSAGE->sender['mailto'])))));
}
$RCMAIL->output->add_gui_object('remoteobjectsmsg', $attrib['id']);
@@ -243,8 +243,8 @@ function rcmail_message_buttons()
$attrib['id'] = 'message-buttons';
$attrib['class'] = 'notice';
- $msg = Q(rcube_label('isdraft')) . '&nbsp;';
- $msg .= html::a(array('href' => "#edit", 'onclick' => JS_OBJECT_NAME.".command('edit')"), Q(rcube_label('edit')));
+ $msg = rcube::Q($RCMAIL->gettext('isdraft')) . '&nbsp;';
+ $msg .= html::a(array('href' => "#edit", 'onclick' => rcmail_output::JS_OBJECT_NAME.".command('edit')"), rcube::Q($RCMAIL->gettext('edit')));
return html::div($attrib, $msg);
}
diff --git a/program/steps/mail/viewsource.inc b/program/steps/mail/viewsource.inc
index c560d7d41..719239344 100644
--- a/program/steps/mail/viewsource.inc
+++ b/program/steps/mail/viewsource.inc
@@ -22,7 +22,7 @@
ob_end_clean();
// similar code as in program/steps/mail/get.inc
-if ($uid = get_input_value('_uid', RCUBE_INPUT_GET))
+if ($uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET))
{
$headers = $RCMAIL->storage->get_message_headers($uid);
$charset = $headers->charset ? $headers->charset : $CONFIG['default_charset'];
@@ -48,7 +48,7 @@ if ($uid = get_input_value('_uid', RCUBE_INPUT_GET))
}
else
{
- raise_error(array(
+ rcube::raise_error(array(
'code' => 500,
'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
diff --git a/program/steps/settings/about.inc b/program/steps/settings/about.inc
index 0fdefddda..eae4da842 100644
--- a/program/steps/settings/about.inc
+++ b/program/steps/settings/about.inc
@@ -28,7 +28,7 @@ function rcmail_supportlink($attrib)
if ($url = $RCMAIL->config->get('support_url')) {
$label = $attrib['label'] ? $attrib['label'] : 'support';
$attrib['href'] = $url;
- return html::a($attrib, rcube_label($label));
+ return html::a($attrib, $RCMAIL->gettext($label));
}
}
@@ -66,10 +66,10 @@ function rcmail_plugins_list($attrib)
$table = new html_table($attrib);
// add table header
- $table->add_header('name', rcube_label('plugin'));
- $table->add_header('version', rcube_label('version'));
- $table->add_header('license', rcube_label('license'));
- $table->add_header('source', rcube_label('source'));
+ $table->add_header('name', $RCMAIL->gettext('plugin'));
+ $table->add_header('version', $RCMAIL->gettext('version'));
+ $table->add_header('license', $RCMAIL->gettext('license'));
+ $table->add_header('source', $RCMAIL->gettext('source'));
foreach ($plugin_info as $name => $data) {
$uri = $data['src_uri'] ? $data['src_uri'] : $data['uri'];
@@ -78,19 +78,19 @@ function rcmail_plugins_list($attrib)
}
$table->add_row();
- $table->add('name', Q($data['name'] ? $data['name'] : $name));
- $table->add('version', Q($data['version']));
- $table->add('license', $data['license_uri'] ? html::a(array('target' => '_blank', href=> Q($data['license_uri'])),
- Q($data['license'])) : $data['license']);
- $table->add('source', $uri ? html::a(array('target' => '_blank', href=> Q($uri)),
- Q(rcube_label('download'))) : '');
+ $table->add('name', rcube::Q($data['name'] ? $data['name'] : $name));
+ $table->add('version', rcube::Q($data['version']));
+ $table->add('license', $data['license_uri'] ? html::a(array('target' => '_blank', href=> rcube::Q($data['license_uri'])),
+ rcube::Q($data['license'])) : $data['license']);
+ $table->add('source', $uri ? html::a(array('target' => '_blank', href=> rcube::Q($uri)),
+ rcube::Q($RCMAIL->gettext('download'))) : '');
}
return $table->show();
}
-$OUTPUT->set_pagetitle(rcube_label('about'));
+$OUTPUT->set_pagetitle($RCMAIL->gettext('about'));
$OUTPUT->add_handler('supportlink', 'rcmail_supportlink');
$OUTPUT->add_handler('pluginlist', 'rcmail_plugins_list');
diff --git a/program/steps/settings/delete_identity.inc b/program/steps/settings/delete_identity.inc
index d5146db66..85d128c8f 100644
--- a/program/steps/settings/delete_identity.inc
+++ b/program/steps/settings/delete_identity.inc
@@ -19,19 +19,19 @@
+-----------------------------------------------------------------------+
*/
-$iid = get_input_value('_iid', RCUBE_INPUT_GPC);
+$iid = rcube_utils::get_input_value('_iid', rcube_utils::INPUT_GPC);
// check request token
-if (!$OUTPUT->ajax_call && !$RCMAIL->check_request(RCUBE_INPUT_GPC)) {
+if (!$OUTPUT->ajax_call && !$RCMAIL->check_request(rcube_utils::INPUT_GPC)) {
$OUTPUT->show_message('invalidrequest', 'error');
- rcmail_overwrite_action('identities');
+ $RCMAIL->overwrite_action('identities');
return;
}
if ($iid && preg_match('/^[0-9]+(,[0-9]+)*$/', $iid))
{
$plugin = $RCMAIL->plugins->exec_hook('identity_delete', array('id' => $iid));
-
+
$deleted = !$plugin['abort'] ? $RCMAIL->user->delete_identity($iid) : $plugin['result'];
if ($deleted > 0 && $deleted !== false)
@@ -48,4 +48,4 @@ if ($OUTPUT->ajax_call)
exit;
// go to identities page
-rcmail_overwrite_action('identities');
+$RCMAIL->overwrite_action('identities');
diff --git a/program/steps/settings/edit_folder.inc b/program/steps/settings/edit_folder.inc
index 7f2a10ebc..ff28d04c8 100644
--- a/program/steps/settings/edit_folder.inc
+++ b/program/steps/settings/edit_folder.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-// WARNING: folder names in UI are encoded with RCMAIL_CHARSET
+// WARNING: folder names in UI are encoded with RCUBE_CHARSET
function rcmail_folder_form($attrib)
{
@@ -28,12 +28,12 @@ function rcmail_folder_form($attrib)
$storage = $RCMAIL->get_storage();
// edited folder name (empty in create-folder mode)
- $mbox = get_input_value('_mbox', RCUBE_INPUT_GPC, true);
- $mbox_imap = rcube_charset_convert($mbox, RCMAIL_CHARSET, 'UTF7-IMAP');
+ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_GPC, true);
+ $mbox_imap = rcube_charset::convert($mbox, RCUBE_CHARSET, 'UTF7-IMAP');
// predefined path for new folder
- $parent = get_input_value('_path', RCUBE_INPUT_GPC, true);
- $parent_imap = rcube_charset_convert($parent, RCMAIL_CHARSET, 'UTF7-IMAP');
+ $parent = rcube_utils::get_input_value('_path', rcube_utils::INPUT_GPC, true);
+ $parent_imap = rcube_charset::convert($parent, RCUBE_CHARSET, 'UTF7-IMAP');
$threading_supported = $storage->get_capability('THREAD');
$delimiter = $storage->get_hierarchy_delimiter();
@@ -46,7 +46,7 @@ function rcmail_folder_form($attrib)
$path = explode($delimiter, $mbox_imap);
$folder = array_pop($path);
$path = implode($delimiter, $path);
- $folder = rcube_charset_convert($folder, 'UTF7-IMAP');
+ $folder = rcube_charset::convert($folder, 'UTF7-IMAP');
$hidden_fields = array('name' => '_mbox', 'value' => $mbox);
}
@@ -73,33 +73,33 @@ function rcmail_folder_form($attrib)
// General tab
$form['props'] = array(
- 'name' => rcube_label('properties'),
+ 'name' => $RCMAIL->gettext('properties'),
);
// Location (name)
if ($options['protected']) {
- $foldername = str_replace($delimiter, ' &raquo; ', Q(rcmail_localize_folderpath($mbox_imap)));
+ $foldername = str_replace($delimiter, ' &raquo; ', rcube::Q($RCMAIL->localize_folderpath($mbox_imap)));
}
else if ($options['norename']) {
- $foldername = Q($folder);
+ $foldername = rcube::Q($folder);
}
else {
if (isset($_POST['_name']))
- $folder = trim(get_input_value('_name', RCUBE_INPUT_POST, true));
+ $folder = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true));
$foldername = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30));
$foldername = $foldername->show($folder);
if ($options['special']) {
- $foldername .= '&nbsp;(' . Q(rcmail_localize_foldername($mbox_imap)) .')';
+ $foldername .= '&nbsp;(' . rcube::Q($RCMAIL->localize_foldername($mbox_imap)) .')';
}
}
$form['props']['fieldsets']['location'] = array(
- 'name' => rcube_label('location'),
+ 'name' => $RCMAIL->gettext('location'),
'content' => array(
'name' => array(
- 'label' => rcube_label('foldername'),
+ 'label' => $RCMAIL->gettext('foldername'),
'value' => $foldername,
),
),
@@ -121,7 +121,7 @@ function rcmail_folder_form($attrib)
$exceptions[] = substr($prefix, 0, -1);
}
- $select = rcmail_mailbox_select(array(
+ $select = $RCMAIL->folder_selector(array(
'name' => '_parent',
'noselection' => '---',
'realnames' => false,
@@ -132,21 +132,21 @@ function rcmail_folder_form($attrib)
));
$form['props']['fieldsets']['location']['content']['path'] = array(
- 'label' => rcube_label('parentfolder'),
+ 'label' => $RCMAIL->gettext('parentfolder'),
'value' => $select->show($selected),
);
}
// Settings
$form['props']['fieldsets']['settings'] = array(
- 'name' => rcube_label('settings'),
+ 'name' => $RCMAIL->gettext('settings'),
);
// Settings: threading
if ($threading_supported && ($mbox_imap == 'INBOX' || (!$options['noselect'] && !$options['is_root']))) {
$select = new html_select(array('name' => '_viewmode', 'id' => '_listmode'));
- $select->add(rcube_label('list'), 0);
- $select->add(rcube_label('threads'), 1);
+ $select->add($RCMAIL->gettext('list'), 0);
+ $select->add($RCMAIL->gettext('threads'), 1);
if (isset($_POST['_viewmode'])) {
$value = (int) $_POST['_viewmode'];
@@ -157,38 +157,38 @@ function rcmail_folder_form($attrib)
}
$form['props']['fieldsets']['settings']['content']['viewmode'] = array(
- 'label' => rcube_label('listmode'),
+ 'label' => $RCMAIL->gettext('listmode'),
'value' => $select->show($value),
);
}
/*
// Settings: sorting column
$select = new html_select(array('name' => '_sortcol', 'id' => '_sortcol'));
- $select->add(rcube_label('nonesort'), '');
- $select->add(rcube_label('arrival'), 'arrival');
- $select->add(rcube_label('sentdate'), 'date');
- $select->add(rcube_label('subject'), 'subject');
- $select->add(rcube_label('fromto'), 'from');
- $select->add(rcube_label('replyto'), 'replyto');
- $select->add(rcube_label('cc'), 'cc');
- $select->add(rcube_label('size'), 'size');
+ $select->add($RCMAIL->gettext('nonesort'), '');
+ $select->add($RCMAIL->gettext('arrival'), 'arrival');
+ $select->add($RCMAIL->gettext('sentdate'), 'date');
+ $select->add($RCMAIL->gettext('subject'), 'subject');
+ $select->add($RCMAIL->gettext('fromto'), 'from');
+ $select->add($RCMAIL->gettext('replyto'), 'replyto');
+ $select->add($RCMAIL->gettext('cc'), 'cc');
+ $select->add($RCMAIL->gettext('size'), 'size');
$value = isset($_POST['_sortcol']) ? $_POST['_sortcol'] : '';
$form['props']['fieldsets']['settings']['content']['sortcol'] = array(
- 'label' => rcube_label('listsorting'),
+ 'label' => $RCMAIL->gettext('listsorting'),
'value' => $select->show($value),
);
// Settings: sorting order
$select = new html_select(array('name' => '_sortord', 'id' => '_sortord'));
- $select->add(rcube_label('asc'), 'ASC');
- $select->add(rcube_label('desc'), 'DESC');
+ $select->add($RCMAIL->gettext('asc'), 'ASC');
+ $select->add($RCMAIL->gettext('desc'), 'DESC');
$value = isset($_POST['_sortord']) ? $_POST['_sortord'] : '';
$form['props']['fieldsets']['settings']['content']['sortord'] = array(
- 'label' => rcube_label('listorder'),
+ 'label' => $RCMAIL->gettext('listorder'),
'value' => $select->show(),
);
*/
@@ -196,7 +196,7 @@ function rcmail_folder_form($attrib)
if (strlen($mbox)) {
// Number of messages
$form['props']['fieldsets']['info'] = array(
- 'name' => rcube_label('info'),
+ 'name' => $RCMAIL->gettext('info'),
'content' => array()
);
@@ -207,9 +207,9 @@ function rcmail_folder_form($attrib)
if ($msgcount) {
// create link with folder-size command
$onclick = sprintf("return %s.command('folder-size', '%s', this)",
- JS_OBJECT_NAME, JQ($mbox_imap));
+ rcmail_output::JS_OBJECT_NAME, rcube::JQ($mbox_imap));
$size = html::a(array('href' => '#', 'onclick' => $onclick,
- 'id' => 'folder-size'), rcube_label('getfoldersize'));
+ 'id' => 'folder-size'), $RCMAIL->gettext('getfoldersize'));
}
else {
// no messages -> zero size
@@ -217,11 +217,11 @@ function rcmail_folder_form($attrib)
}
$form['props']['fieldsets']['info']['content']['count'] = array(
- 'label' => rcube_label('messagecount'),
+ 'label' => $RCMAIL->gettext('messagecount'),
'value' => (int) $msgcount
);
$form['props']['fieldsets']['info']['content']['size'] = array(
- 'label' => rcube_label('size'),
+ 'label' => $RCMAIL->gettext('size'),
'value' => $size,
);
}
@@ -229,8 +229,8 @@ function rcmail_folder_form($attrib)
// show folder type only if we have non-private namespaces
if (!empty($namespace['shared']) || !empty($namespace['others'])) {
$form['props']['fieldsets']['info']['content']['foldertype'] = array(
- 'label' => rcube_label('foldertype'),
- 'value' => rcube_label($options['namespace'] . 'folder'));
+ 'label' => $RCMAIL->gettext('foldertype'),
+ 'value' => $RCMAIL->gettext($options['namespace'] . 'folder'));
}
}
@@ -256,7 +256,7 @@ function rcmail_folder_form($attrib)
foreach ($tab['fieldsets'] as $fieldset) {
$subcontent = rcmail_get_form_part($fieldset, $attrib);
if ($subcontent) {
- $content .= html::tag('fieldset', null, html::tag('legend', null, Q($fieldset['name'])) . $subcontent) ."\n";
+ $content .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($fieldset['name'])) . $subcontent) ."\n";
}
}
}
@@ -265,7 +265,7 @@ function rcmail_folder_form($attrib)
}
if ($content && sizeof($form) > 1) {
- $out .= html::tag('fieldset', null, html::tag('legend', null, Q($tab['name'])) . $content) ."\n";
+ $out .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($tab['name'])) . $content) ."\n";
}
else {
$out .= $content ."\n";
@@ -287,9 +287,9 @@ function rcmail_get_form_part($form, $attrib = array())
$table = new html_table(array('cols' => 2));
foreach ($form['content'] as $col => $colprop) {
$colprop['id'] = '_'.$col;
- $label = !empty($colprop['label']) ? $colprop['label'] : rcube_label($col);
+ $label = !empty($colprop['label']) ? $colprop['label'] : $RCMAIL->gettext($col);
- $table->add('title', html::label($colprop['id'], Q($label)));
+ $table->add('title', html::label($colprop['id'], rcube::Q($label)));
$table->add(null, $colprop['value']);
}
$content = $table->show($attrib);
@@ -302,7 +302,7 @@ function rcmail_get_form_part($form, $attrib = array())
}
-//$OUTPUT->set_pagetitle(rcube_label('folders'));
+//$OUTPUT->set_pagetitle($RCMAIL->gettext('folders'));
// register UI objects
$OUTPUT->add_handlers(array(
diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc
index edd4ba60d..974acb42a 100644
--- a/program/steps/settings/edit_identity.inc
+++ b/program/steps/settings/edit_identity.inc
@@ -23,14 +23,14 @@ define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));
// edit-identity
if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity') {
- $IDENTITY_RECORD = $RCMAIL->user->get_identity(get_input_value('_iid', RCUBE_INPUT_GPC));
+ $IDENTITY_RECORD = $RCMAIL->user->get_identity(rcube_utils::get_input_value('_iid', rcube_utils::INPUT_GPC));
if (is_array($IDENTITY_RECORD))
$OUTPUT->set_env('iid', $IDENTITY_RECORD['identity_id']);
else {
$OUTPUT->show_message('dberror', 'error');
// go to identities page
- rcmail_overwrite_action('identities');
+ $RCMAIL->overwrite_action('identities');
return;
}
}
@@ -39,7 +39,7 @@ else {
if (IDENTITIES_LEVEL > 1) {
$OUTPUT->show_message('opnotpermitted', 'error');
// go to identities page
- rcmail_overwrite_action('identities');
+ $RCMAIL->overwrite_action('identities');
return;
}
else if (IDENTITIES_LEVEL == 1) {
@@ -53,7 +53,7 @@ function rcube_identity_form($attrib)
global $IDENTITY_RECORD, $RCMAIL, $OUTPUT;
// Add HTML editor script(s)
- rcube_html_editor('identity');
+ $RCMAIL->html_editor('identity');
// add some labels to client
$OUTPUT->add_label('noemailwarning', 'nonamewarning', 'converting', 'editorwarning');
@@ -65,21 +65,21 @@ function rcube_identity_form($attrib)
// list of available cols
$form = array(
'addressing' => array(
- 'name' => rcube_label('settings'),
+ 'name' => $RCMAIL->gettext('settings'),
'content' => array(
'name' => array('type' => 'text', 'size' => $i_size),
'email' => array('type' => 'text', 'size' => $i_size),
'organization' => array('type' => 'text', 'size' => $i_size),
'reply-to' => array('type' => 'text', 'size' => $i_size),
'bcc' => array('type' => 'text', 'size' => $i_size),
- 'standard' => array('type' => 'checkbox', 'label' => rcube_label('setdefault')),
+ 'standard' => array('type' => 'checkbox', 'label' => $RCMAIL->gettext('setdefault')),
)),
'signature' => array(
- 'name' => rcube_label('signature'),
+ 'name' => $RCMAIL->gettext('signature'),
'content' => array(
'signature' => array('type' => 'textarea', 'size' => $t_cols, 'rows' => $t_rows,
'spellcheck' => true),
- 'html_signature' => array('type' => 'checkbox', 'label' => rcube_label('htmlsignature'),
+ 'html_signature' => array('type' => 'checkbox', 'label' => $RCMAIL->gettext('htmlsignature'),
'onclick' => 'return rcmail_toggle_editor(this, \'rcmfd_signature\');'),
))
);
@@ -90,7 +90,7 @@ function rcube_identity_form($attrib)
$form['signature']['content']['signature']['is_escaped'] = true;
// Correctly handle HTML entities in HTML editor (#1488483)
- $IDENTITY_RECORD['signature'] = htmlspecialchars($IDENTITY_RECORD['signature'], ENT_NOQUOTES, RCMAIL_CHARSET);
+ $IDENTITY_RECORD['signature'] = htmlspecialchars($IDENTITY_RECORD['signature'], ENT_NOQUOTES, RCUBE_CHARSET);
}
// disable some field according to access level
@@ -106,7 +106,7 @@ function rcube_identity_form($attrib)
}
}
- $IDENTITY_RECORD['email'] = rcube_idn_to_utf8($IDENTITY_RECORD['email']);
+ $IDENTITY_RECORD['email'] = rcube_utils::idn_to_utf8($IDENTITY_RECORD['email']);
// Allow plugins to modify identity form content
$plugin = $RCMAIL->plugins->exec_hook('identity_form', array(
@@ -137,12 +137,12 @@ function rcube_identity_form($attrib)
$colprop['id'] = 'rcmfd_'.$col;
$label = !empty($colprop['label']) ? $colprop['label'] :
- rcube_label(str_replace('-', '', $col));
+ $RCMAIL->gettext(str_replace('-', '', $col));
$value = !empty($colprop['value']) ? $colprop['value'] :
- rcmail_get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']);
+ rcube_output::get_edit_field($col, $IDENTITY_RECORD[$col], $colprop, $colprop['type']);
- $table->add('title', html::label($colprop['id'], Q($label)));
+ $table->add('title', html::label($colprop['id'], rcube::Q($label)));
$table->add(null, $value);
}
$content = $table->show($attrib);
@@ -151,7 +151,7 @@ function rcube_identity_form($attrib)
$content = $fieldset['content'];
}
- $out .= html::tag('fieldset', null, html::tag('legend', null, Q($fieldset['name'])) . $content) ."\n";
+ $out .= html::tag('fieldset', null, html::tag('legend', null, rcube::Q($fieldset['name'])) . $content) ."\n";
}
$out .= $form_end;
@@ -164,7 +164,7 @@ $OUTPUT->add_handler('identityform', 'rcube_identity_form');
$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL);
$OUTPUT->add_label('deleteidentityconfirm');
-$OUTPUT->set_pagetitle(rcube_label(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem')));
+$OUTPUT->set_pagetitle($RCMAIL->gettext(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem')));
if ($RCMAIL->action=='add-identity' && $OUTPUT->template_exists('identityadd'))
$OUTPUT->send('identityadd');
diff --git a/program/steps/settings/edit_prefs.inc b/program/steps/settings/edit_prefs.inc
index adf6b1623..93e27aedc 100644
--- a/program/steps/settings/edit_prefs.inc
+++ b/program/steps/settings/edit_prefs.inc
@@ -20,10 +20,10 @@
*/
if (!$OUTPUT->ajax_call)
- $OUTPUT->set_pagetitle(rcube_label('preferences'));
+ $OUTPUT->set_pagetitle($RCMAIL->gettext('preferences'));
-$CURR_SECTION = get_input_value('_section', RCUBE_INPUT_GPC);
+$CURR_SECTION = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GPC);
list($SECTIONS,) = rcmail_user_prefs($CURR_SECTION);
function rcmail_user_prefs_form($attrib)
diff --git a/program/steps/settings/edit_response.inc b/program/steps/settings/edit_response.inc
index 49856775a..371d7ecc4 100644
--- a/program/steps/settings/edit_response.inc
+++ b/program/steps/settings/edit_response.inc
@@ -22,7 +22,7 @@
$responses = $RCMAIL->get_compose_responses();
// edit-response
-if (($key = get_input_value('_key', RCUBE_INPUT_GPC))) {
+if (($key = rcube_utils::get_input_value('_key', rcube_utils::INPUT_GPC))) {
foreach ($responses as $i => $response) {
if ($response['key'] == $key) {
$RESPONSE_RECORD = $response;
@@ -34,8 +34,8 @@ if (($key = get_input_value('_key', RCUBE_INPUT_GPC))) {
// save response
if ($RCMAIL->action == 'save-response' && isset($_POST['_name']) && !$RESPONSE_RECORD['static']) {
- $name = trim(get_input_value('_name', RCUBE_INPUT_POST));
- $text = trim(get_input_value('_text', RCUBE_INPUT_POST));
+ $name = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST));
+ $text = trim(rcube_utils::get_input_value('_text', rcube_utils::INPUT_POST));
if (!empty($name) && !empty($text)) {
$dupes = 0;
@@ -85,12 +85,12 @@ function rcube_response_form($attrib)
$out = "$form_start\n";
$table = new html_table(array('cols' => 2));
- $label = rcube_label('responsename');
+ $label = $RCMAIL->gettext('responsename');
- $table->add('title', html::label('ffname', Q(rcube_label('responsename'))));
+ $table->add('title', html::label('ffname', rcube::Q($RCMAIL->gettext('responsename'))));
$table->add(null, rcube_output::get_edit_field('name', $RESPONSE_RECORD['name'], array('id' => 'ffname', 'size' => $attrib['size'], 'disabled' => $disabled), 'text'));
- $table->add('title', html::label('fftext', Q(rcube_label('responsetext'))));
+ $table->add('title', html::label('fftext', rcube::Q($RCMAIL->gettext('responsetext'))));
$table->add(null, rcube_output::get_edit_field('text', $RESPONSE_RECORD['text'], array('id' => 'fftext', 'size' => $attrib['textareacols'], 'rows' => $attrib['textarearows'], 'disabled' => $disabled), 'textarea'));
$out .= $table->show($attrib);
@@ -101,7 +101,7 @@ function rcube_response_form($attrib)
$OUTPUT->set_env('readonly', !empty($RESPONSE_RECORD['static']));
$OUTPUT->add_handler('responseform', 'rcube_response_form');
-$OUTPUT->set_pagetitle(rcube_label(($RCMAIL->action=='add-response' ? 'savenewresponse' : 'editresponse')));
+$OUTPUT->set_pagetitle($RCMAIL->gettext($RCMAIL->action == 'add-response' ? 'savenewresponse' : 'editresponse'));
$OUTPUT->send('responseedit');
diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc
index 44482e938..118590318 100644
--- a/program/steps/settings/folders.inc
+++ b/program/steps/settings/folders.inc
@@ -20,7 +20,7 @@
+-----------------------------------------------------------------------+
*/
-// WARNING: folder names in UI are encoded with RCMAIL_CHARSET
+// WARNING: folder names in UI are encoded with RCUBE_CHARSET
// init IMAP connection
$STORAGE = $RCMAIL->get_storage();
@@ -28,7 +28,7 @@ $STORAGE = $RCMAIL->get_storage();
// subscribe mailbox
if ($RCMAIL->action == 'subscribe')
{
- $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP');
+ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true, 'UTF7-IMAP');
if (strlen($mbox)) {
$result = $STORAGE->subscribe(array($mbox));
@@ -53,28 +53,28 @@ if ($RCMAIL->action == 'subscribe')
$OUTPUT->show_message('foldersubscribed', 'confirmation');
}
else
- rcmail_display_server_error('errorsaving');
+ $RCMAIL->display_server_error('errorsaving');
}
}
// unsubscribe mailbox
else if ($RCMAIL->action == 'unsubscribe')
{
- $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true, 'UTF7-IMAP');
+ $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true, 'UTF7-IMAP');
if (strlen($mbox)) {
$result = $STORAGE->unsubscribe(array($mbox));
if ($result)
$OUTPUT->show_message('folderunsubscribed', 'confirmation');
else
- rcmail_display_server_error('errorsaving');
+ $RCMAIL->display_server_error('errorsaving');
}
}
// delete an existing mailbox
else if ($RCMAIL->action == 'delete-folder')
{
- $mbox_utf8 = get_input_value('_mbox', RCUBE_INPUT_POST, true);
- $mbox = rcube_charset_convert($mbox_utf8, RCMAIL_CHARSET, 'UTF7-IMAP');
+ $mbox_utf8 = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
+ $mbox = rcube_charset::convert($mbox_utf8, RCUBE_CHARSET, 'UTF7-IMAP');
if (strlen($mbox)) {
$plugin = $RCMAIL->plugins->exec_hook('folder_delete', array('name' => $mbox));
@@ -98,22 +98,22 @@ else if ($RCMAIL->action == 'delete-folder')
$OUTPUT->show_message('folderdeleted', 'confirmation');
// Clear content frame
$OUTPUT->command('subscription_select');
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
}
else if (!$deleted) {
- rcmail_display_server_error('errorsaving');
+ $RCMAIL->display_server_error('errorsaving');
}
}
// rename an existing mailbox
else if ($RCMAIL->action == 'rename-folder')
{
- $name_utf8 = trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, true));
- $oldname_utf8 = get_input_value('_folder_oldname', RCUBE_INPUT_POST, true);
+ $name_utf8 = trim(rcube_utils::get_input_value('_folder_newname', rcube_utils::INPUT_POST, true));
+ $oldname_utf8 = rcube_utils::get_input_value('_folder_oldname', rcube_utils::INPUT_POST, true);
if (strlen($name_utf8) && strlen($oldname_utf8)) {
- $name = rcube_charset_convert($name_utf8, RCMAIL_CHARSET, 'UTF7-IMAP');
- $oldname = rcube_charset_convert($oldname_utf8, RCMAIL_CHARSET, 'UTF7-IMAP');
+ $name = rcube_charset::convert($name_utf8, RCUBE_CHARSET, 'UTF7-IMAP');
+ $oldname = rcube_charset::convert($oldname_utf8, RCUBE_CHARSET, 'UTF7-IMAP');
$rename = rcmail_rename_folder($oldname, $name);
}
@@ -122,15 +122,15 @@ else if ($RCMAIL->action == 'rename-folder')
rcmail_update_folder_row($name, $oldname);
}
else if (!$rename) {
- rcmail_display_server_error('errorsaving');
+ $RCMAIL->display_server_error('errorsaving');
}
}
// clear mailbox
else if ($RCMAIL->action == 'purge')
{
- $mbox_utf8 = get_input_value('_mbox', RCUBE_INPUT_POST, true);
- $mbox = rcube_charset_convert($mbox_utf8, RCMAIL_CHARSET, 'UTF7-IMAP');
+ $mbox_utf8 = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
+ $mbox = rcube_charset::convert($mbox_utf8, RCUBE_CHARSET, 'UTF7-IMAP');
$delimiter = $STORAGE->get_hierarchy_delimiter();
$trash_regexp = '/^' . preg_quote($CONFIG['trash_mbox'] . $delimiter, '/') . '/';
@@ -151,7 +151,7 @@ else if ($RCMAIL->action == 'purge')
$OUTPUT->set_env('messagecount', 0);
if ($delete) {
$OUTPUT->show_message('folderpurged', 'confirmation');
- $OUTPUT->command('set_quota', rcmail_quota_content());
+ $OUTPUT->command('set_quota', $RCMAIL->quota_content());
}
else {
$OUTPUT->show_message('messagemoved', 'confirmation');
@@ -160,24 +160,24 @@ else if ($RCMAIL->action == 'purge')
$OUTPUT->command('show_folder', $mbox_utf8, null, true);
}
else {
- rcmail_display_server_error('errorsaving');
+ $RCMAIL->display_server_error('errorsaving');
}
}
// get mailbox size
else if ($RCMAIL->action == 'folder-size')
{
- $name = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+ $name = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
$size = $STORAGE->folder_size($name);
// @TODO: check quota and show percentage usage of specified mailbox?
if ($size !== false) {
- $OUTPUT->command('folder_size_update', show_bytes($size));
+ $OUTPUT->command('folder_size_update', $RCMAIL->show_bytes($size));
}
else {
- rcmail_display_server_error();
+ $RCMAIL->display_server_error();
}
}
@@ -200,7 +200,7 @@ function rcube_subscription_form($attrib)
if ($attrib['noheader'] !== true && $attrib['noheader'] != "true") {
// add table header
- $table->add_header('name', rcube_label('foldername'));
+ $table->add_header('name', $RCMAIL->gettext('foldername'));
$table->add_header('subscribed', '');
}
@@ -225,7 +225,7 @@ function rcube_subscription_form($attrib)
$folder_id = $folder;
$folder = $STORAGE->mod_folder($folder);
$foldersplit = explode($delimiter, $folder);
- $name = rcube_charset_convert(array_pop($foldersplit), 'UTF7-IMAP');
+ $name = rcube_charset::convert(array_pop($foldersplit), 'UTF7-IMAP');
$parent_folder = join($delimiter, $foldersplit);
$level = count($foldersplit);
@@ -234,7 +234,7 @@ function rcube_subscription_form($attrib)
for ($i=1; $i<=$level; $i++) {
$ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i));
if ($ancestor_folder && !$seen[$ancestor_folder]++) {
- $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP');
+ $ancestor_name = rcube_charset::convert($foldersplit[$i-1], 'UTF7-IMAP');
$list_folders[] = array(
'id' => $ancestor_folder,
'name' => $ancestor_name,
@@ -270,8 +270,8 @@ function rcube_subscription_form($attrib)
$checkbox_subscribe = new html_checkbox(array(
'name' => '_subscribed[]',
- 'title' => rcube_label('changesubscription'),
- 'onclick' => JS_OBJECT_NAME.".command(this.checked?'subscribe':'unsubscribe',this.value)",
+ 'title' => $RCMAIL->gettext('changesubscription'),
+ 'onclick' => rcmail_output::JS_OBJECT_NAME.".command(this.checked?'subscribe':'unsubscribe',this.value)",
));
// create list of available folders
@@ -283,9 +283,9 @@ function rcube_subscription_form($attrib)
$noselect = false;
$classes = array($i%2 ? 'even' : 'odd');
- $folder_utf8 = rcube_charset_convert($folder['id'], 'UTF7-IMAP');
+ $folder_utf8 = rcube_charset::convert($folder['id'], 'UTF7-IMAP');
$display_folder = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $folder['level'])
- . Q($protected ? rcmail_localize_foldername($folder['id']) : $folder['name']);
+ . rcube::Q($protected ? $RCMAIL->localize_foldername($folder['id']) : $folder['name']);
if ($folder['virtual']) {
$classes[] = 'virtual';
@@ -418,7 +418,7 @@ function rcmail_rename_folder($oldname, $newname)
}
-$OUTPUT->set_pagetitle(rcube_label('folders'));
+$OUTPUT->set_pagetitle($RCMAIL->gettext('folders'));
$OUTPUT->include_script('list.js');
$OUTPUT->set_env('prefix_ns', $STORAGE->get_namespace('prefix'));
if ($STORAGE->get_capability('QUOTA')) {
@@ -432,9 +432,8 @@ $OUTPUT->add_label('deletefolderconfirm', 'purgefolderconfirm', 'folderdeleting'
// register UI objects
$OUTPUT->add_handlers(array(
'foldersubscription' => 'rcube_subscription_form',
- 'folderframe' => 'rcmail_folder_frame',
- 'quotadisplay' => 'rcmail_quota_display',
+ 'folderframe' => 'rcmail_folder_frame',
+ 'quotadisplay' => array($RCMAIL, 'quota_display'),
));
$OUTPUT->send('folders');
-
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 81744d904..c504e6c40 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -20,7 +20,7 @@
*/
if (!$OUTPUT->ajax_call) {
- $OUTPUT->set_pagetitle(rcube_label('preferences'));
+ $OUTPUT->set_pagetitle($RCMAIL->gettext('preferences'));
}
// similar function as /steps/settings/identities.inc::rcmail_identity_frame()
@@ -48,7 +48,7 @@ function rcmail_sections_list($attrib)
list($list, $cols) = rcmail_user_prefs();
// create XHTML table
- $out = rcube_table_output($attrib, $list, $cols, 'id');
+ $out = $RCMAIL->table_output($attrib, $list, $cols, 'id');
// set client env
$RCMAIL->output->add_gui_object('sectionslist', $attrib['id']);
@@ -70,7 +70,7 @@ function rcmail_identities_list($attrib)
// get identities list and define 'mail' column
$list = $RCMAIL->user->list_identities();
foreach ($list as $idx => $row) {
- $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_idn_to_utf8($row['email']) .'>');
+ $list[$idx]['mail'] = trim($row['name'] . ' <' . rcube_utils::idn_to_utf8($row['email']) .'>');
}
// get all identites from DB and define list of cols to be displayed
@@ -81,7 +81,7 @@ function rcmail_identities_list($attrib)
// @TODO: use <UL> instead of <TABLE> for identities list
// create XHTML table
- $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
+ $out = $RCMAIL->table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
// set client env
$OUTPUT->add_gui_object('identitieslist', $attrib['id']);
@@ -127,13 +127,13 @@ function rcmail_user_prefs($current = null)
{
global $RCMAIL;
- $sections['general'] = array('id' => 'general', 'section' => rcube_label('uisettings'));
- $sections['mailbox'] = array('id' => 'mailbox', 'section' => rcube_label('mailboxview'));
- $sections['mailview'] = array('id' => 'mailview','section' => rcube_label('messagesdisplaying'));
- $sections['compose'] = array('id' => 'compose', 'section' => rcube_label('messagescomposition'));
- $sections['addressbook'] = array('id' => 'addressbook','section' => rcube_label('addressbook'));
- $sections['folders'] = array('id' => 'folders', 'section' => rcube_label('specialfolders'));
- $sections['server'] = array('id' => 'server', 'section' => rcube_label('serversettings'));
+ $sections['general'] = array('id' => 'general', 'section' => $RCMAIL->gettext('uisettings'));
+ $sections['mailbox'] = array('id' => 'mailbox', 'section' => $RCMAIL->gettext('mailboxview'));
+ $sections['mailview'] = array('id' => 'mailview','section' => $RCMAIL->gettext('messagesdisplaying'));
+ $sections['compose'] = array('id' => 'compose', 'section' => $RCMAIL->gettext('messagescomposition'));
+ $sections['addressbook'] = array('id' => 'addressbook','section' => $RCMAIL->gettext('addressbook'));
+ $sections['folders'] = array('id' => 'folders', 'section' => $RCMAIL->gettext('specialfolders'));
+ $sections['server'] = array('id' => 'server', 'section' => $RCMAIL->gettext('serversettings'));
// hook + define list cols
$plugin = $RCMAIL->plugins->exec_hook('preferences_sections_list',
@@ -155,10 +155,10 @@ function rcmail_user_prefs($current = null)
// general
case 'general':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'skin' => array('name' => Q(rcube_label('skin'))),
- 'browser' => array('name' => Q(rcube_label('browseroptions'))),
- 'advanced'=> array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'skin' => array('name' => rcube::Q($RCMAIL->gettext('skin'))),
+ 'browser' => array('name' => rcube::Q($RCMAIL->gettext('browseroptions'))),
+ 'advanced'=> array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
// language selection
@@ -175,7 +175,7 @@ function rcmail_user_prefs($current = null)
$select->add(array_values($a_lang), array_keys($a_lang));
$blocks['main']['options']['language'] = array(
- 'title' => html::label($field_id, Q(rcube_label('language'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('language'))),
'content' => $select->show($RCMAIL->user->language),
);
}
@@ -188,7 +188,7 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_timezone';
$select = new html_select(array('name' => '_timezone', 'id' => $field_id));
- $select->add(rcube_label('autodetect'), 'auto');
+ $select->add($RCMAIL->gettext('autodetect'), 'auto');
$zones = array();
foreach (DateTimeZone::listIdentifiers() as $i => $tzs) {
@@ -210,7 +210,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['timezone'] = array(
- 'title' => html::label($field_id, Q(rcube_label('timezone'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('timezone'))),
'content' => $select->show((string)$config['timezone']),
);
}
@@ -232,7 +232,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['time_format'] = array(
- 'title' => html::label($field_id, Q(rcube_label('timeformat'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('timeformat'))),
'content' => $select->show($RCMAIL->config->get('time_format')),
);
}
@@ -253,7 +253,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['date_format'] = array(
- 'title' => html::label($field_id, Q(rcube_label('dateformat'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('dateformat'))),
'content' => $select->show($config['date_format']),
);
}
@@ -268,7 +268,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_pretty_date', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['prettydate'] = array(
- 'title' => html::label($field_id, Q(rcube_label('prettydate'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('prettydate'))),
'content' => $input->show($config['prettydate']?1:0),
);
}
@@ -281,16 +281,16 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_refresh_interval';
$select = new html_select(array('name' => '_refresh_interval', 'id' => $field_id));
- $select->add(rcube_label('never'), 0);
+ $select->add($RCMAIL->gettext('never'), 0);
foreach (array(1, 3, 5, 10, 15, 30, 60) as $min) {
if (!$config['min_refresh_interval'] || $config['min_refresh_interval'] <= $min * 60) {
- $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
+ $label = $RCMAIL->gettext(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
$select->add($label, $min);
}
}
$blocks['main']['options']['refresh_interval'] = array(
- 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('refreshinterval'))),
'content' => $select->show($config['refresh_interval']/60),
);
}
@@ -318,16 +318,16 @@ function rcmail_user_prefs($current = null)
if (is_array($meta) && $meta['name']) {
$skinname = $meta['name'];
- $author_link = $meta['url'] ? html::a(array('href' => $meta['url'], 'target' => '_blank'), Q($meta['author'])) : Q($meta['author']);
- $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank'), Q($meta['license'])) : Q($meta['license']);
+ $author_link = $meta['url'] ? html::a(array('href' => $meta['url'], 'target' => '_blank'), rcube::Q($meta['author'])) : rcube::Q($meta['author']);
+ $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank'), rcube::Q($meta['license'])) : rcube::Q($meta['license']);
}
$blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'),
html::span('skinitem', $input->show($config['skin'], array('value' => $skin, 'id' => $field_id.$skin))) .
html::span('skinitem', html::img(array('src' => $thumbnail, 'class' => 'skinthumbnail', 'alt' => $skin, 'width' => 64, 'height' => 64))) .
- html::span('skinitem', html::span('skinname', Q($skinname)) . html::br() .
+ html::span('skinitem', html::span('skinname', rcube::Q($skinname)) . html::br() .
html::span('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() .
- html::span('skinlicense', $license_link ? rcube_label('license').':&nbsp;' . $license_link : ''))
+ html::span('skinlicense', $license_link ? $RCMAIL->gettext('license').':&nbsp;' . $license_link : ''))
);
}
}
@@ -344,7 +344,7 @@ function rcmail_user_prefs($current = null)
$checkbox = new html_checkbox(array('name' => '_standard_windows', 'id' => $field_id, 'value' => 1));
$blocks['browser']['options']['standard_windows'] = array(
- 'title' => html::label($field_id, Q(rcube_label('standardwindows'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('standardwindows'))),
'content' => $checkbox->show($config['standard_windows']?1:0),
);
}
@@ -352,13 +352,13 @@ function rcmail_user_prefs($current = null)
if ($current) {
$product_name = $RCMAIL->config->get('product_name', 'Roundcube Webmail');
$RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');",
- JS_OBJECT_NAME, JQ($product_name)), 'foot');
+ rcmail_output::JS_OBJECT_NAME, rcube::JQ($product_name)), 'foot');
}
$blocks['browser']['options']['mailtoprotohandler'] = array(
'content' => html::a(array(
'href' => '#',
- 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))),
+ 'id' => 'mailtoprotohandler'), rcube::Q($RCMAIL->gettext('mailtoprotohandler'))),
);
break;
@@ -366,9 +366,9 @@ function rcmail_user_prefs($current = null)
// Mailbox view (mail screen)
case 'mailbox':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'new_message' => array('name' => Q(rcube_label('newmessage'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'new_message' => array('name' => rcube::Q($RCMAIL->gettext('newmessage'))),
+ 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
// show config parameter for preview pane
@@ -382,7 +382,7 @@ function rcmail_user_prefs($current = null)
'onchange' => "$('#rcmfd_preview_pane_mark_read').prop('disabled', !this.checked)"));
$blocks['main']['options']['preview_pane'] = array(
- 'title' => html::label($field_id, Q(rcube_label('previewpane'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('previewpane'))),
'content' => $input->show($config['preview_pane']?1:0),
);
}
@@ -400,16 +400,16 @@ function rcmail_user_prefs($current = null)
$select = new html_select(array('name' => '_preview_pane_mark_read', 'id' => $field_id,
'disabled' => $config['preview_pane']?0:1));
- $select->add(rcube_label('never'), '-1');
- $select->add(rcube_label('immediately'), 0);
+ $select->add($RCMAIL->gettext('never'), '-1');
+ $select->add($RCMAIL->gettext('immediately'), 0);
foreach (array(5, 10, 20, 30) as $sec) {
- $label = rcube_label(array('name' => 'afternseconds', 'vars' => array('n' => $sec)));
+ $label = $RCMAIL->gettext(array('name' => 'afternseconds', 'vars' => array('n' => $sec)));
$select->add($label, $sec);
}
$blocks['main']['options']['preview_pane_mark_read'] = array(
- 'title' => html::label($field_id, Q(rcube_label('previewpanemarkread'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('previewpanemarkread'))),
'content' => $select->show(intval($config['preview_pane_mark_read'])),
);
}
@@ -421,14 +421,14 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_mdn_requests';
$select = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
- $select->add(rcube_label('askuser'), 0);
- $select->add(rcube_label('autosend'), 1);
- $select->add(rcube_label('autosendknown'), 3);
- $select->add(rcube_label('autosendknownignore'), 4);
- $select->add(rcube_label('ignore'), 2);
+ $select->add($RCMAIL->gettext('askuser'), 0);
+ $select->add($RCMAIL->gettext('autosend'), 1);
+ $select->add($RCMAIL->gettext('autosendknown'), 3);
+ $select->add($RCMAIL->gettext('autosendknownignore'), 4);
+ $select->add($RCMAIL->gettext('ignore'), 2);
$blocks['main']['options']['mdn_requests'] = array(
- 'title' => html::label($field_id, Q(rcube_label('mdnrequests'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('mdnrequests'))),
'content' => $select->show($config['mdn_requests']),
);
}
@@ -444,12 +444,12 @@ function rcmail_user_prefs($current = null)
if ($supported) {
$field_id = 'rcmfd_autoexpand_threads';
$select = new html_select(array('name' => '_autoexpand_threads', 'id' => $field_id));
- $select->add(rcube_label('never'), 0);
- $select->add(rcube_label('do_expand'), 1);
- $select->add(rcube_label('expand_only_unread'), 2);
+ $select->add($RCMAIL->gettext('never'), 0);
+ $select->add($RCMAIL->gettext('do_expand'), 1);
+ $select->add($RCMAIL->gettext('expand_only_unread'), 2);
$blocks['main']['options']['autoexpand_threads'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autoexpand_threads'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('autoexpand_threads'))),
'content' => $select->show($config['autoexpand_threads']),
);
}
@@ -466,7 +466,7 @@ function rcmail_user_prefs($current = null)
$size = intval($config['mail_pagesize'] ? $config['mail_pagesize'] : $config['pagesize']);
$blocks['main']['options']['pagesize'] = array(
- 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('pagesize'))),
'content' => $input->show($size ? $size : 50),
);
}
@@ -480,7 +480,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_check_all_folders', 'id' => $field_id, 'value' => 1));
$blocks['new_message']['options']['check_all_folders'] = array(
- 'title' => html::label($field_id, Q(rcube_label('checkallfolders'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('checkallfolders'))),
'content' => $input->show($config['check_all_folders']?1:0),
);
}
@@ -489,8 +489,8 @@ function rcmail_user_prefs($current = null)
// Message viewing
case 'mailview':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
// show checkbox to open message view in new window
@@ -503,7 +503,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_message_extwin', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['message_extwin'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showinextwin'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('showinextwin'))),
'content' => $input->show($config['message_extwin']?1:0),
);
}
@@ -518,7 +518,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_message_show_email', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['message_show_email'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showemail'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('showemail'))),
'content' => $input->show($config['message_show_email']?1:0),
);
}
@@ -534,7 +534,7 @@ function rcmail_user_prefs($current = null)
'onchange' => "$('#rcmfd_show_images').prop('disabled', !this.checked).val(0)"));
$blocks['main']['options']['prefer_html'] = array(
- 'title' => html::label($field_id, Q(rcube_label('preferhtml'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('preferhtml'))),
'content' => $input->show($config['prefer_html']?1:0),
);
}
@@ -547,7 +547,7 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_default_charset';
$blocks['advanced']['options']['default_charset'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultcharset'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('defaultcharset'))),
'content' => $RCMAIL->output->charset_selector(array(
'id' => $field_id, 'name' => '_default_charset', 'selected' => $config['default_charset']
)));
@@ -562,12 +562,12 @@ function rcmail_user_prefs($current = null)
$input = new html_select(array('name' => '_show_images', 'id' => $field_id,
'disabled' => !$config['prefer_html']));
- $input->add(rcube_label('never'), 0);
- $input->add(rcube_label('fromknownsenders'), 1);
- $input->add(rcube_label('always'), 2);
+ $input->add($RCMAIL->gettext('never'), 0);
+ $input->add($RCMAIL->gettext('fromknownsenders'), 1);
+ $input->add($RCMAIL->gettext('always'), 2);
$blocks['main']['options']['show_images'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showremoteimages'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('showremoteimages'))),
'content' => $input->show($config['prefer_html'] ? $config['show_images'] : 0),
);
}
@@ -581,7 +581,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_inline_images', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['inline_images'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showinlineimages'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('showinlineimages'))),
'content' => $input->show($config['inline_images']?1:0),
);
}
@@ -596,7 +596,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_display_next', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['display_next'] = array(
- 'title' => html::label($field_id, Q(rcube_label('displaynext'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('displaynext'))),
'content' => $input->show($config['display_next']?1:0),
);
}
@@ -605,10 +605,10 @@ function rcmail_user_prefs($current = null)
// Mail composition
case 'compose':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'sig' => array('name' => Q(rcube_label('signatureoptions'))),
- 'spellcheck' => array('name' => Q(rcube_label('spellcheckoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'sig' => array('name' => rcube::Q($RCMAIL->gettext('signatureoptions'))),
+ 'spellcheck' => array('name' => rcube::Q($RCMAIL->gettext('spellcheckoptions'))),
+ 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
// show checkbox to compose messages in a new window
@@ -621,7 +621,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_compose_extwin', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['compose_extwin'] = array(
- 'title' => html::label($field_id, Q(rcube_label('composeextwin'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('composeextwin'))),
'content' => $input->show($config['compose_extwin']?1:0),
);
}
@@ -634,13 +634,13 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_htmleditor';
$select = new html_select(array('name' => '_htmleditor', 'id' => $field_id));
- $select->add(rcube_label('never'), 0);
- $select->add(rcube_label('always'), 1);
- $select->add(rcube_label('htmlonreply'), 2);
- $select->add(rcube_label('htmlonreplyandforward'), 3);
+ $select->add($RCMAIL->gettext('never'), 0);
+ $select->add($RCMAIL->gettext('always'), 1);
+ $select->add($RCMAIL->gettext('htmlonreply'), 2);
+ $select->add($RCMAIL->gettext('htmlonreplyandforward'), 3);
$blocks['main']['options']['htmleditor'] = array(
- 'title' => html::label($field_id, Q(rcube_label('htmleditor'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('htmleditor'))),
'content' => $select->show(intval($config['htmleditor'])),
);
}
@@ -653,14 +653,14 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_autosave';
$select = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
- $select->add(rcube_label('never'), 0);
+ $select->add($RCMAIL->gettext('never'), 0);
foreach (array(1, 3, 5, 10) as $i => $min) {
- $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
+ $label = $RCMAIL->gettext(array('name' => 'everynminutes', 'vars' => array('n' => $min)));
$select->add($label, $min*60);
}
$blocks['main']['options']['draft_autosave'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autosavedraft'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('autosavedraft'))),
'content' => $select->show($config['draft_autosave']),
);
}
@@ -673,12 +673,12 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_param_folding';
$select = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
- $select->add(rcube_label('2231folding'), 0);
- $select->add(rcube_label('miscfolding'), 1);
- $select->add(rcube_label('2047folding'), 2);
+ $select->add($RCMAIL->gettext('2231folding'), 0);
+ $select->add($RCMAIL->gettext('miscfolding'), 1);
+ $select->add($RCMAIL->gettext('2047folding'), 2);
$blocks['advanced']['options']['mime_param_folding'] = array(
- 'title' => html::label($field_id, Q(rcube_label('mimeparamfolding'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('mimeparamfolding'))),
'content' => $select->show($config['mime_param_folding']),
);
}
@@ -692,7 +692,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_force_7bit', 'id' => $field_id, 'value' => 1));
$blocks['advanced']['options']['force_7bit'] = array(
- 'title' => html::label($field_id, Q(rcube_label('force7bit'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('force7bit'))),
'content' => $input->show($config['force_7bit']?1:0),
);
}
@@ -706,7 +706,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_mdn_default', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['mdn_default'] = array(
- 'title' => html::label($field_id, Q(rcube_label('reqmdn'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('reqmdn'))),
'content' => $input->show($config['mdn_default']?1:0),
);
}
@@ -720,7 +720,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_dsn_default', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['dsn_default'] = array(
- 'title' => html::label($field_id, Q(rcube_label('reqdsn'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('reqdsn'))),
'content' => $input->show($config['dsn_default']?1:0),
);
}
@@ -734,7 +734,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_reply_same_folder', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['reply_same_folder'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replysamefolder'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('replysamefolder'))),
'content' => $input->show($config['reply_same_folder']?1:0),
);
}
@@ -747,12 +747,12 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_reply_mode';
$select = new html_select(array('name' => '_reply_mode', 'id' => $field_id));
- $select->add(rcube_label('replyempty'), -1);
- $select->add(rcube_label('replybottomposting'), 0);
- $select->add(rcube_label('replytopposting'), 1);
+ $select->add($RCMAIL->gettext('replyempty'), -1);
+ $select->add($RCMAIL->gettext('replybottomposting'), 0);
+ $select->add($RCMAIL->gettext('replytopposting'), 1);
$blocks['main']['options']['reply_mode'] = array(
- 'title' => html::label($field_id, Q(rcube_label('whenreplying'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('whenreplying'))),
'content' => $select->show(intval($config['reply_mode'])),
);
}
@@ -766,7 +766,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_spellcheck_before_send', 'id' => $field_id, 'value' => 1));
$blocks['spellcheck']['options']['spellcheck_before_send'] = array(
- 'title' => html::label($field_id, Q(rcube_label('spellcheckbeforesend'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('spellcheckbeforesend'))),
'content' => $input->show($config['spellcheck_before_send']?1:0),
);
}
@@ -782,7 +782,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_'.$key, 'id' => 'rcmfd_'.$key, 'value' => 1));
$blocks['spellcheck']['options'][$key] = array(
- 'title' => html::label($field_id, Q(rcube_label(str_replace('_', '', $key)))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext(str_replace('_', '', $key)))),
'content' => $input->show($config[$key]?1:0),
);
}
@@ -797,13 +797,13 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_show_sig';
$select = new html_select(array('name' => '_show_sig', 'id' => $field_id));
- $select->add(rcube_label('never'), 0);
- $select->add(rcube_label('always'), 1);
- $select->add(rcube_label('newmessageonly'), 2);
- $select->add(rcube_label('replyandforwardonly'), 3);
+ $select->add($RCMAIL->gettext('never'), 0);
+ $select->add($RCMAIL->gettext('always'), 1);
+ $select->add($RCMAIL->gettext('newmessageonly'), 2);
+ $select->add($RCMAIL->gettext('replyandforwardonly'), 3);
$blocks['sig']['options']['show_sig'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autoaddsignature'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('autoaddsignature'))),
'content' => $select->show($RCMAIL->config->get('show_sig', 1)),
);
}
@@ -817,7 +817,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_strip_existing_sig', 'id' => $field_id, 'value' => 1));
$blocks['sig']['options']['strip_existing_sig'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replyremovesignature'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('replyremovesignature'))),
'content' => $input->show($config['strip_existing_sig']?1:0),
);
}
@@ -830,11 +830,11 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_forward_attachment';
$select = new html_select(array('name' => '_forward_attachment', 'id' => $field_id));
- $select->add(rcube_label('inline'), 0);
- $select->add(rcube_label('asattachment'), 1);
+ $select->add($RCMAIL->gettext('inline'), 0);
+ $select->add($RCMAIL->gettext('asattachment'), 1);
$blocks['main']['options']['forward_attachment'] = array(
- 'title' => html::label($field_id, Q(rcube_label('forwardmode'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('forwardmode'))),
'content' => $select->show(intval($config['forward_attachment'])),
);
}
@@ -858,13 +858,13 @@ function rcmail_user_prefs($current = null)
$select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id));
$select_default_font->add('', '');
- $fonts = rcube_fontdefs();
+ $fonts = rcmail::font_defs();
foreach ($fonts as $fname => $font) {
$select_default_font->add($fname, $fname);
}
$blocks['main']['options']['default_font'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultfont'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('defaultfont'))),
'content' => $select_default_font->show($RCMAIL->config->get('default_font', 1)) .
$select_default_font_size->show($RCMAIL->config->get('default_font_size', 1))
);
@@ -878,11 +878,11 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_reply_all_mode';
$select = new html_select(array('name' => '_reply_all_mode', 'id' => $field_id));
- $select->add(rcube_label('replyalldefault'), 0);
- $select->add(rcube_label('replyalllist'), 1);
+ $select->add($RCMAIL->gettext('replyalldefault'), 0);
+ $select->add($RCMAIL->gettext('replyalllist'), 1);
$blocks['main']['options']['reply_all_mode'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replyallmode'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('replyallmode'))),
'content' => $select->show(intval($config['reply_all_mode'])),
);
}
@@ -892,8 +892,8 @@ function rcmail_user_prefs($current = null)
// Addressbook config
case 'addressbook':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
if (!isset($no_override['default_addressbook'])
@@ -911,7 +911,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['default_addressbook'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultabook'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('defaultabook'))),
'content' => $select->show($config['default_addressbook']),
);
}
@@ -925,13 +925,13 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_addressbook_name_listing';
$select = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id));
- $select->add(rcube_label('name'), 0);
- $select->add(rcube_label('firstname') . ' ' . rcube_label('surname'), 1);
- $select->add(rcube_label('surname') . ' ' . rcube_label('firstname'), 2);
- $select->add(rcube_label('surname') . ', ' . rcube_label('firstname'), 3);
+ $select->add($RCMAIL->gettext('name'), 0);
+ $select->add($RCMAIL->gettext('firstname') . ' ' . $RCMAIL->gettext('surname'), 1);
+ $select->add($RCMAIL->gettext('surname') . ' ' . $RCMAIL->gettext('firstname'), 2);
+ $select->add($RCMAIL->gettext('surname') . ', ' . $RCMAIL->gettext('firstname'), 3);
$blocks['main']['options']['list_name_listing'] = array(
- 'title' => html::label($field_id, Q(rcube_label('listnamedisplay'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('listnamedisplay'))),
'content' => $select->show($config['addressbook_name_listing']),
);
}
@@ -945,12 +945,12 @@ function rcmail_user_prefs($current = null)
$field_id = 'rcmfd_addressbook_sort_col';
$select = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id));
- $select->add(rcube_label('name'), 'name');
- $select->add(rcube_label('firstname'), 'firstname');
- $select->add(rcube_label('surname'), 'surname');
+ $select->add($RCMAIL->gettext('name'), 'name');
+ $select->add($RCMAIL->gettext('firstname'), 'firstname');
+ $select->add($RCMAIL->gettext('surname'), 'surname');
$blocks['main']['options']['sort_col'] = array(
- 'title' => html::label($field_id, Q(rcube_label('listsorting'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('listsorting'))),
'content' => $select->show($config['addressbook_sort_col']),
);
}
@@ -966,7 +966,7 @@ function rcmail_user_prefs($current = null)
$size = intval($config['addressbook_pagesize'] ? $config['addressbook_pagesize'] : $config['pagesize']);
$blocks['main']['options']['pagesize'] = array(
- 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('pagesize'))),
'content' => $input->show($size ? $size : 50),
);
}
@@ -980,7 +980,7 @@ function rcmail_user_prefs($current = null)
$checkbox = new html_checkbox(array('name' => '_autocomplete_single', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['autocomplete_single'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autocompletesingle'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('autocompletesingle'))),
'content' => $checkbox->show($config['autocomplete_single']?1:0),
);
}
@@ -989,8 +989,8 @@ function rcmail_user_prefs($current = null)
// Special IMAP folders
case 'folders':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
if (!isset($no_override['show_real_foldernames'])) {
@@ -1002,14 +1002,14 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_show_real_foldernames', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['show_real_foldernames'] = array(
- 'title' => html::label($field_id, Q(rcube_label('show_real_foldernames'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('show_real_foldernames'))),
'content' => $input->show($config['show_real_foldernames']?1:0),
);
}
// Configure special folders
if (!isset($no_override['default_folders']) && $current) {
- $select = rcmail_mailbox_select(array(
+ $select = $RCMAIL->folder_selector(array(
'noselection' => '---',
'realnames' => true,
'maxlength' => 30,
@@ -1027,7 +1027,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['drafts_mbox'] = array(
- 'title' => Q(rcube_label('drafts')),
+ 'title' => rcube::Q($RCMAIL->gettext('drafts')),
'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => $onchange)),
);
}
@@ -1038,7 +1038,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['sent_mbox'] = array(
- 'title' => Q(rcube_label('sent')),
+ 'title' => rcube::Q($RCMAIL->gettext('sent')),
'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox", 'onchange' => '')),
);
}
@@ -1049,7 +1049,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['junk_mbox'] = array(
- 'title' => Q(rcube_label('junk')),
+ 'title' => rcube::Q($RCMAIL->gettext('junk')),
'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox", 'onchange' => $onchange)),
);
}
@@ -1060,7 +1060,7 @@ function rcmail_user_prefs($current = null)
}
$blocks['main']['options']['trash_mbox'] = array(
- 'title' => Q(rcube_label('trash')),
+ 'title' => rcube::Q($RCMAIL->gettext('trash')),
'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox", 'onchange' => $onchange)),
);
}
@@ -1069,9 +1069,9 @@ function rcmail_user_prefs($current = null)
// Server settings
case 'server':
$blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'maintenance' => array('name' => Q(rcube_label('maintenance'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
+ 'main' => array('name' => rcube::Q($RCMAIL->gettext('mainoptions'))),
+ 'maintenance' => array('name' => rcube::Q($RCMAIL->gettext('maintenance'))),
+ 'advanced' => array('name' => rcube::Q($RCMAIL->gettext('advancedoptions'))),
);
if (!isset($no_override['read_when_deleted'])) {
@@ -1083,7 +1083,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_read_when_deleted', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['read_when_deleted'] = array(
- 'title' => html::label($field_id, Q(rcube_label('readwhendeleted'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('readwhendeleted'))),
'content' => $input->show($config['read_when_deleted']?1:0),
);
}
@@ -1097,7 +1097,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_flag_for_deletion', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['flag_for_deletion'] = array(
- 'title' => html::label($field_id, Q(rcube_label('flagfordeletion'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('flagfordeletion'))),
'content' => $input->show($config['flag_for_deletion']?1:0),
);
}
@@ -1112,7 +1112,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_skip_deleted', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['skip_deleted'] = array(
- 'title' => html::label($field_id, Q(rcube_label('skipdeleted'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('skipdeleted'))),
'content' => $input->show($config['skip_deleted']?1:0),
);
}
@@ -1126,7 +1126,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_delete_always', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['delete_always'] = array(
- 'title' => html::label($field_id, Q(rcube_label('deletealways'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('deletealways'))),
'content' => $input->show($config['delete_always']?1:0),
);
}
@@ -1140,7 +1140,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_delete_junk', 'id' => $field_id, 'value' => 1));
$blocks['main']['options']['delete_junk'] = array(
- 'title' => html::label($field_id, Q(rcube_label('deletejunk'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('deletejunk'))),
'content' => $input->show($config['delete_junk']?1:0),
);
}
@@ -1155,7 +1155,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_logout_purge', 'id' => $field_id, 'value' => 1));
$blocks['maintenance']['options']['logout_purge'] = array(
- 'title' => html::label($field_id, Q(rcube_label('logoutclear'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('logoutclear'))),
'content' => $input->show($config['logout_purge']?1:0),
);
}
@@ -1170,7 +1170,7 @@ function rcmail_user_prefs($current = null)
$input = new html_checkbox(array('name' => '_logout_expunge', 'id' => $field_id, 'value' => 1));
$blocks['maintenance']['options']['logout_expunge'] = array(
- 'title' => html::label($field_id, Q(rcube_label('logoutcompact'))),
+ 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('logoutcompact'))),
'content' => $input->show($config['logout_expunge']?1:0),
);
}
@@ -1265,19 +1265,19 @@ function rcmail_update_folder_row($name, $oldname=null, $subscribe=false, $class
$storage = $RCMAIL->get_storage();
$delimiter = $storage->get_hierarchy_delimiter();
- $name_utf8 = rcube_charset_convert($name, 'UTF7-IMAP');
+ $name_utf8 = rcube_charset::convert($name, 'UTF7-IMAP');
$protected = $protect_folders && in_array($name, $default_folders);
$foldersplit = explode($delimiter, $storage->mod_folder($name));
$level = count($foldersplit) - 1;
$display_name = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $level)
- . Q($protected ? rcmail_localize_foldername($name) : rcube_charset_convert($foldersplit[$level], 'UTF7-IMAP'));
+ . rcube::Q($protected ? $RCMAIL->localize_foldername($name) : rcube_charset::convert($foldersplit[$level], 'UTF7-IMAP'));
if ($oldname === null)
$OUTPUT->command('add_folder_row', $name_utf8, $display_name, $protected, $subscribe,
false, $class_name);
else
- $OUTPUT->command('replace_folder_row', rcube_charset_convert($oldname, 'UTF7-IMAP'),
+ $OUTPUT->command('replace_folder_row', rcube_charset::convert($oldname, 'UTF7-IMAP'),
$name_utf8, $display_name, $protected, $class_name);
}
diff --git a/program/steps/settings/identities.inc b/program/steps/settings/identities.inc
index 82a1841a3..7072acf72 100644
--- a/program/steps/settings/identities.inc
+++ b/program/steps/settings/identities.inc
@@ -21,7 +21,7 @@
define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0)));
-$OUTPUT->set_pagetitle(rcube_label('identities'));
+$OUTPUT->set_pagetitle($RCMAIL->gettext('identities'));
$OUTPUT->include_script('list.js');
diff --git a/program/steps/settings/responses.inc b/program/steps/settings/responses.inc
index cfc4148c3..45d1405f7 100644
--- a/program/steps/settings/responses.inc
+++ b/program/steps/settings/responses.inc
@@ -21,8 +21,8 @@
if (!empty($_POST['_insert'])) {
- $name = trim(get_input_value('_name', RCUBE_INPUT_POST));
- $text = trim(get_input_value('_text', RCUBE_INPUT_POST));
+ $name = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST));
+ $text = trim(rcube_utils::get_input_value('_text', rcube_utils::INPUT_POST));
if (!empty($name) && !empty($text)) {
$dupes = 0;
@@ -40,10 +40,10 @@ if (!empty($_POST['_insert'])) {
if ($RCMAIL->user->save_prefs(array('compose_responses' => $responses))) {
$RCMAIL->output->command('add_response_item', $response);
- $RCMAIL->output->command('display_message', rcube_label('successfullysaved'), 'confirmation');
+ $RCMAIL->output->command('display_message', $RCMAIL->gettext('successfullysaved'), 'confirmation');
}
else {
- $RCMAIL->output->command('display_message', rcube_label('errorsaving'), 'error');
+ $RCMAIL->output->command('display_message', $RCMAIL->gettext('errorsaving'), 'error');
}
}
@@ -53,7 +53,7 @@ if (!empty($_POST['_insert'])) {
if ($RCMAIL->action == 'delete-response') {
- if ($key = get_input_value('_key', RCUBE_INPUT_GPC)) {
+ if ($key = rcube_utils::get_input_value('_key', rcube_utils::INPUT_GPC)) {
$responses = $RCMAIL->get_compose_responses(false, true);
foreach ($responses as $i => $response) {
if (empty($response['key']))
@@ -67,7 +67,7 @@ if ($RCMAIL->action == 'delete-response') {
}
if ($deleted) {
- $RCMAIL->output->command('display_message', rcube_label('deletedsuccessfully'), 'confirmation');
+ $RCMAIL->output->command('display_message', $RCMAIL->gettext('deletedsuccessfully'), 'confirmation');
$RCMAIL->output->command('remove_response', $key);
}
@@ -77,7 +77,7 @@ if ($RCMAIL->action == 'delete-response') {
}
-$OUTPUT->set_pagetitle(rcube_label('responses'));
+$OUTPUT->set_pagetitle($RCMAIL->gettext('responses'));
$OUTPUT->include_script('list.js');
@@ -95,7 +95,7 @@ function rcmail_responses_list($attrib)
'cols' => array('name')
));
- $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'key');
+ $out = $RCMAIL->table_output($attrib, $plugin['list'], $plugin['cols'], 'key');
// set client env
$OUTPUT->add_gui_object('responseslist', $attrib['id']);
diff --git a/program/steps/settings/save_folder.inc b/program/steps/settings/save_folder.inc
index efb096d57..f876ff8e0 100644
--- a/program/steps/settings/save_folder.inc
+++ b/program/steps/settings/save_folder.inc
@@ -19,18 +19,18 @@
+-----------------------------------------------------------------------+
*/
-// WARNING: folder names in UI are encoded with RCMAIL_CHARSET
+// WARNING: folder names in UI are encoded with RCUBE_CHARSET
// init IMAP connection
$STORAGE = $RCMAIL->get_storage();
-$name = trim(get_input_value('_name', RCUBE_INPUT_POST, true));
-$old = get_input_value('_mbox', RCUBE_INPUT_POST, true);
-$path = get_input_value('_parent', RCUBE_INPUT_POST, true);
+$name = trim(rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST, true));
+$old = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST, true);
+$path = rcube_utils::get_input_value('_parent', rcube_utils::INPUT_POST, true);
-$name_imap = rcube_charset_convert($name, RCMAIL_CHARSET, 'UTF7-IMAP');
-$old_imap = rcube_charset_convert($old, RCMAIL_CHARSET, 'UTF7-IMAP');
+$name_imap = rcube_charset::convert($name, RCUBE_CHARSET, 'UTF7-IMAP');
+$old_imap = rcube_charset::convert($old, RCUBE_CHARSET, 'UTF7-IMAP');
// $path is in UTF7-IMAP already
$delimiter = $STORAGE->get_hierarchy_delimiter();
@@ -40,16 +40,16 @@ $options = strlen($old_imap) ? rcmail_folder_options($old_imap) : array();
if ($options['protected'] || $options['norename']) {
}
else if (!strlen($name)) {
- $error = rcube_label('cannotbeempty');
+ $error = $RCMAIL->gettext('namecannotbeempty');
}
else if (mb_strlen($name) > 128) {
- $error = rcube_label('nametoolong');
+ $error = $RCMAIL->gettext('nametoolong');
}
else {
// these characters are problematic e.g. when used in LIST/LSUB
foreach (array($delimiter, '%', '*') as $char) {
if (strpos($name, $delimiter) !== false) {
- $error = rcube_label('forbiddencharacter') . " ($char)";
+ $error = $RCMAIL->gettext('forbiddencharacter') . " ($char)";
break;
}
}
@@ -76,7 +76,7 @@ if (!$error && strlen($path) && (!strlen($old_imap) || $old_imap != $name_imap))
if ($parent_opts['namespace'] != 'personal'
&& (empty($parent_opts['rights']) || !preg_match('/[ck]/', implode($parent_opts['rights'])))
) {
- $error = rcube_label('parentnotwritable');
+ $error = $RCMAIL->gettext('parentnotwritable');
}
}
@@ -90,9 +90,9 @@ else {
$folder['options'] = $options;
$folder['settings'] = array(
// List view mode: 0-list, 1-threads
- 'view_mode' => (int) get_input_value('_viewmode', RCUBE_INPUT_POST),
- 'sort_column' => get_input_value('_sortcol', RCUBE_INPUT_POST),
- 'sort_order' => get_input_value('_sortord', RCUBE_INPUT_POST),
+ 'view_mode' => (int) rcube_utils::get_input_value('_viewmode', rcube_utils::INPUT_POST),
+ 'sort_column' => rcube_utils::get_input_value('_sortcol', rcube_utils::INPUT_POST),
+ 'sort_order' => rcube_utils::get_input_value('_sortord', rcube_utils::INPUT_POST),
);
}
@@ -199,4 +199,4 @@ else if (!$error) {
}
}
-rcmail_overwrite_action('edit-folder');
+$RCMAIL->overwrite_action('edit-folder');
diff --git a/program/steps/settings/save_identity.inc b/program/steps/settings/save_identity.inc
index d3b132f8b..5bd04003d 100644
--- a/program/steps/settings/save_identity.inc
+++ b/program/steps/settings/save_identity.inc
@@ -28,7 +28,7 @@ $updated = $default_id = false;
// check input
if (IDENTITIES_LEVEL != 4 && (empty($_POST['_name']) || (empty($_POST['_email']) && IDENTITIES_LEVEL != 1 && IDENTITIES_LEVEL != 3))) {
$OUTPUT->show_message('formincomplete', 'warning');
- rcmail_overwrite_action('edit-identity');
+ $RCMAIL->overwrite_action('edit-identity');
return;
}
@@ -36,7 +36,7 @@ $save_data = array();
foreach ($a_save_cols as $col) {
$fname = '_'.$col;
if (isset($_POST[$fname]))
- $save_data[$col] = get_input_value($fname, RCUBE_INPUT_POST, true);
+ $save_data[$col] = rcube_utils::get_input_value($fname, rcube_utils::INPUT_POST, true);
}
// set "off" values for checkboxes that were not checked, and therefore
@@ -61,17 +61,17 @@ else if (IDENTITIES_LEVEL == 4) {
}
// Validate e-mail addresses
-$email_checks = array(rcube_idn_to_ascii($save_data['email']));
+$email_checks = array(rcube_utils::idn_to_ascii($save_data['email']));
foreach (array('reply-to', 'bcc') as $item) {
foreach (rcube_mime::decode_address_list($save_data[$item], null, false) as $rcpt)
- $email_checks[] = rcube_idn_to_ascii($rcpt['mailto']);
+ $email_checks[] = rcube_utils::idn_to_ascii($rcpt['mailto']);
}
foreach ($email_checks as $email) {
- if ($email && !check_email($email)) {
+ if ($email && !rcube_utils::check_email($email)) {
// show error message
- $OUTPUT->show_message('emailformaterror', 'error', array('email' => rcube_idn_to_utf8($email)), false);
- rcmail_overwrite_action('edit-identity');
+ $OUTPUT->show_message('emailformaterror', 'error', array('email' => rcube_utils::idn_to_utf8($email)), false);
+ $RCMAIL->overwrite_action('edit-identity');
return;
}
}
@@ -87,7 +87,7 @@ if (!empty($save_data['signature']) && !empty($save_data['html_signature'])) {
// update an existing contact
if ($_POST['_iid']) {
- $iid = get_input_value('_iid', RCUBE_INPUT_POST);
+ $iid = rcube_utils::get_input_value('_iid', rcube_utils::INPUT_POST);
if (in_array(IDENTITIES_LEVEL, array(1,3,4))) {
// merge with old identity data, fixes #1488834
@@ -100,7 +100,7 @@ if ($_POST['_iid']) {
$save_data = $plugin['record'];
if ($save_data['email'])
- $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
+ $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']);
if (!$plugin['abort'])
$updated = $RCMAIL->user->update_identity($iid, $save_data);
else
@@ -114,13 +114,13 @@ if ($_POST['_iid']) {
if ($_POST['_framed']) {
// update the changed col in list
- $OUTPUT->command('parent.update_identity_row', $iid, Q(trim($save_data['name'] . ' <' . rcube_idn_to_utf8($save_data['email']) .'>')));
+ $OUTPUT->command('parent.update_identity_row', $iid, rcube::Q(trim($save_data['name'] . ' <' . rcube_utils::idn_to_utf8($save_data['email']) .'>')));
}
}
else {
// show error message
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false);
- rcmail_overwrite_action('edit-identity');
+ $RCMAIL->overwrite_action('edit-identity');
return;
}
}
@@ -135,7 +135,7 @@ else if (IDENTITIES_LEVEL < 2) {
$save_data = $plugin['record'];
if ($save_data['email'])
- $save_data['email'] = rcube_idn_to_ascii($save_data['email']);
+ $save_data['email'] = rcube_utils::idn_to_ascii($save_data['email']);
if (!$plugin['abort'])
$insert_id = $save_data['email'] ? $RCMAIL->user->insert_identity($save_data) : null;
@@ -152,13 +152,13 @@ else if (IDENTITIES_LEVEL < 2) {
if ($_POST['_framed']) {
// add a new row to the list
- $OUTPUT->command('parent.update_identity_row', $insert_id, Q(trim($save_data['name'] . ' <' . rcube_idn_to_utf8($save_data['email']) .'>')), true);
+ $OUTPUT->command('parent.update_identity_row', $insert_id, rcube::Q(trim($save_data['name'] . ' <' . rcube_utils::idn_to_utf8($save_data['email']) .'>')), true);
}
}
else {
// show error message
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error', null, false);
- rcmail_overwrite_action('edit-identity');
+ $RCMAIL->overwrite_action('edit-identity');
return;
}
}
@@ -172,10 +172,10 @@ if ($default_id)
// go to next step
if (!empty($_REQUEST['_framed'])) {
- rcmail_overwrite_action('edit-identity');
+ $RCMAIL->overwrite_action('edit-identity');
}
else
- rcmail_overwrite_action('identities');
+ $RCMAIL->overwrite_action('identities');
/**
@@ -185,14 +185,14 @@ function rcmail_wash_html($html)
{
// Add header with charset spec., washtml cannot work without that
$html = '<html><head>'
- . '<meta http-equiv="Content-Type" content="text/html; charset='.RCMAIL_CHARSET.'" />'
+ . '<meta http-equiv="Content-Type" content="text/html; charset='.RCUBE_CHARSET.'" />'
. '</head><body>' . $html . '</body></html>';
// clean HTML with washhtml by Frederic Motte
$wash_opts = array(
'show_washed' => false,
'allow_remote' => 1,
- 'charset' => RCMAIL_CHARSET,
+ 'charset' => RCUBE_CHARSET,
'html_elements' => array('body', 'link'),
'html_attribs' => array('rel', 'type'),
);
@@ -204,7 +204,7 @@ function rcmail_wash_html($html)
//$washer->add_callback('style', 'rcmail_washtml_callback');
// Remove non-UTF8 characters (#1487813)
- $html = rc_utf8_clean($html);
+ $html = rcube_charset::clean($html);
$html = $washer->wash($html);
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index bcd05bb85..325c66ae8 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-$CURR_SECTION = get_input_value('_section', RCUBE_INPUT_POST);
+$CURR_SECTION = rcube_utils::get_input_value('_section', rcube_utils::INPUT_POST);
$a_user_prefs = array();
@@ -28,14 +28,14 @@ switch ($CURR_SECTION)
{
case 'general':
$a_user_prefs = array(
- 'language' => isset($_POST['_language']) ? get_input_value('_language', RCUBE_INPUT_POST) : $CONFIG['language'],
- 'timezone' => isset($_POST['_timezone']) ? get_input_value('_timezone', RCUBE_INPUT_POST) : $CONFIG['timezone'],
- 'date_format' => isset($_POST['_date_format']) ? get_input_value('_date_format', RCUBE_INPUT_POST) : $CONFIG['date_format'],
- 'time_format' => isset($_POST['_time_format']) ? get_input_value('_time_format', RCUBE_INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'),
+ 'language' => isset($_POST['_language']) ? rcube_utils::get_input_value('_language', rcube_utils::INPUT_POST) : $CONFIG['language'],
+ 'timezone' => isset($_POST['_timezone']) ? rcube_utils::get_input_value('_timezone', rcube_utils::INPUT_POST) : $CONFIG['timezone'],
+ 'date_format' => isset($_POST['_date_format']) ? rcube_utils::get_input_value('_date_format', rcube_utils::INPUT_POST) : $CONFIG['date_format'],
+ 'time_format' => isset($_POST['_time_format']) ? rcube_utils::get_input_value('_time_format', rcube_utils::INPUT_POST) : ($CONFIG['time_format'] ? $CONFIG['time_format'] : 'H:i'),
'prettydate' => isset($_POST['_pretty_date']) ? TRUE : FALSE,
'refresh_interval' => isset($_POST['_refresh_interval']) ? intval($_POST['_refresh_interval'])*60 : $CONFIG['refresh_interval'],
'standard_windows' => isset($_POST['_standard_windows']) ? TRUE : FALSE,
- 'skin' => isset($_POST['_skin']) ? get_input_value('_skin', RCUBE_INPUT_POST) : $CONFIG['skin'],
+ 'skin' => isset($_POST['_skin']) ? rcube_utils::get_input_value('_skin', rcube_utils::INPUT_POST) : $CONFIG['skin'],
);
// compose derived date/time format strings
@@ -66,7 +66,7 @@ switch ($CURR_SECTION)
'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE,
'show_images' => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0,
'display_next' => isset($_POST['_display_next']) ? TRUE : FALSE,
- 'default_charset' => get_input_value('_default_charset', RCUBE_INPUT_POST),
+ 'default_charset' => rcube_utils::get_input_value('_default_charset', rcube_utils::INPUT_POST),
);
break;
@@ -88,8 +88,8 @@ switch ($CURR_SECTION)
'show_sig' => isset($_POST['_show_sig']) ? intval($_POST['_show_sig']) : 1,
'reply_mode' => isset($_POST['_reply_mode']) ? intval($_POST['_reply_mode']) : 0,
'strip_existing_sig' => isset($_POST['_strip_existing_sig']),
- 'default_font' => get_input_value('_default_font', RCUBE_INPUT_POST),
- 'default_font_size' => get_input_value('_default_font_size', RCUBE_INPUT_POST),
+ 'default_font' => rcube_utils::get_input_value('_default_font', rcube_utils::INPUT_POST),
+ 'default_font_size' => rcube_utils::get_input_value('_default_font_size', rcube_utils::INPUT_POST),
'reply_all_mode' => intval($_POST['_reply_all_mode']),
'forward_attachment' => !empty($_POST['_forward_attachment']),
);
@@ -98,10 +98,10 @@ switch ($CURR_SECTION)
case 'addressbook':
$a_user_prefs = array(
- 'default_addressbook' => get_input_value('_default_addressbook', RCUBE_INPUT_POST, true),
+ 'default_addressbook' => rcube_utils::get_input_value('_default_addressbook', rcube_utils::INPUT_POST, true),
'autocomplete_single' => isset($_POST['_autocomplete_single']) ? TRUE : FALSE,
- 'addressbook_sort_col' => get_input_value('_addressbook_sort_col', RCUBE_INPUT_POST),
- 'addressbook_name_listing' => intval(get_input_value('_addressbook_name_listing', RCUBE_INPUT_POST)),
+ 'addressbook_sort_col' => rcube_utils::get_input_value('_addressbook_sort_col', rcube_utils::INPUT_POST),
+ 'addressbook_name_listing' => intval(rcube_utils::get_input_value('_addressbook_name_listing', rcube_utils::INPUT_POST)),
'addressbook_pagesize' => is_numeric($_POST['_addressbook_pagesize']) ? max(2, intval($_POST['_addressbook_pagesize'])) : $CONFIG['addressbook_pagesize'],
);
@@ -124,10 +124,10 @@ switch ($CURR_SECTION)
$a_user_prefs = array(
'show_real_foldernames' =>
isset($_POST['_show_real_foldernames']) ? TRUE : FALSE,
- 'drafts_mbox' => get_input_value('_drafts_mbox', RCUBE_INPUT_POST, true),
- 'sent_mbox' => get_input_value('_sent_mbox', RCUBE_INPUT_POST, true),
- 'junk_mbox' => get_input_value('_junk_mbox', RCUBE_INPUT_POST, true),
- 'trash_mbox' => get_input_value('_trash_mbox', RCUBE_INPUT_POST, true),
+ 'drafts_mbox' => rcube_utils::get_input_value('_drafts_mbox', rcube_utils::INPUT_POST, true),
+ 'sent_mbox' => rcube_utils::get_input_value('_sent_mbox', rcube_utils::INPUT_POST, true),
+ 'junk_mbox' => rcube_utils::get_input_value('_junk_mbox', rcube_utils::INPUT_POST, true),
+ 'trash_mbox' => rcube_utils::get_input_value('_trash_mbox', rcube_utils::INPUT_POST, true),
);
break;
@@ -221,5 +221,4 @@ else
$OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsaving', 'error');
// display the form again
-rcmail_overwrite_action('edit-prefs');
-
+$RCMAIL->overwrite_action('edit-prefs');
diff --git a/program/steps/utils/html2text.inc b/program/steps/utils/html2text.inc
index c6481b197..c01443b22 100644
--- a/program/steps/utils/html2text.inc
+++ b/program/steps/utils/html2text.inc
@@ -22,7 +22,7 @@
$html = $HTTP_RAW_POST_DATA;
// Replace emoticon images with its text representation
-$html = rcmail_replace_emoticons($html);
+$html = $RCMAIL->replace_emoticons($html);
$converter = new rcube_html2text($html, false, true, 0);
diff --git a/program/steps/utils/modcss.inc b/program/steps/utils/modcss.inc
index 1a28c6598..c8a7cb524 100644
--- a/program/steps/utils/modcss.inc
+++ b/program/steps/utils/modcss.inc
@@ -55,7 +55,7 @@ $ctype = '~Content-Type:\s+text/(css|plain)~i';
if ($source !== false && preg_match($ctype, $headers)) {
header('Content-Type: text/css');
- echo rcmail_mod_css_styles($source, preg_replace('/[^a-z0-9]/i', '', $_GET['_c']));
+ echo rcube_utils::mod_css_styles($source, preg_replace('/[^a-z0-9]/i', '', $_GET['_c']));
exit;
}
diff --git a/program/steps/utils/save_pref.inc b/program/steps/utils/save_pref.inc
index 7c30be71b..183c398d3 100644
--- a/program/steps/utils/save_pref.inc
+++ b/program/steps/utils/save_pref.inc
@@ -19,9 +19,9 @@
+-----------------------------------------------------------------------+
*/
-$name = get_input_value('_name', RCUBE_INPUT_POST);
-$value = get_input_value('_value', RCUBE_INPUT_POST);
-$sessname = get_input_value('_session', RCUBE_INPUT_POST);
+$name = rcube_utils::get_input_value('_name', rcube_utils::INPUT_POST);
+$value = rcube_utils::get_input_value('_value', rcube_utils::INPUT_POST);
+$sessname = rcube_utils::get_input_value('_session', rcube_utils::INPUT_POST);
// Whitelisted preferences and session variables, others
// can be added by plugins
@@ -39,7 +39,7 @@ $whitelist = array_merge($whitelist, $RCMAIL->plugins->allowed_prefs);
$whitelist_sess = array_merge($whitelist_sess, $RCMAIL->plugins->allowed_session_prefs);
if (!in_array($name, $whitelist) || ($sessname && !in_array($sessname, $whitelist_sess))) {
- raise_error(array('code' => 500, 'type' => 'php',
+ rcube::raise_error(array('code' => 500, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => sprintf("Hack attempt detected (user: %s)", $RCMAIL->get_user_name())),
true, false);
diff --git a/program/steps/utils/spell.inc b/program/steps/utils/spell.inc
index 595cfd6f2..c8807e32f 100644
--- a/program/steps/utils/spell.inc
+++ b/program/steps/utils/spell.inc
@@ -20,7 +20,7 @@
*/
// read input
-$lang = get_input_value('lang', RCUBE_INPUT_GET);
+$lang = rcube_utils::get_input_value('lang', rcube_utils::INPUT_GET);
$data = file_get_contents('php://input');
$learn_word = strpos($data, '<learnword>');
@@ -29,13 +29,13 @@ $learn_word = strpos($data, '<learnword>');
$left = strpos($data, '<text>');
$right = strrpos($data, '</text>');
$data = substr($data, $left+6, $right-($left+6));
-$data = html_entity_decode($data, ENT_QUOTES, RCMAIL_CHARSET);
+$data = html_entity_decode($data, ENT_QUOTES, RCUBE_CHARSET);
$spellchecker = new rcube_spellchecker($lang);
if ($learn_word) {
$spellchecker->add_word($data);
- $result = '<?xml version="1.0" encoding="'.RCMAIL_CHARSET.'"?><learnwordresult></learnwordresult>';
+ $result = '<?xml version="1.0" encoding="'.RCUBE_CHARSET.'"?><learnwordresult></learnwordresult>';
}
else {
$spellchecker->check($data);
@@ -56,6 +56,6 @@ if ($err = $spellchecker->error()) {
header("Content-Length: " . strlen($result));
// Don't use server's default Content-Type charset (#1486406)
-header("Content-Type: text/xml; charset=" . RCMAIL_CHARSET);
+header("Content-Type: text/xml; charset=" . RCUBE_CHARSET);
print $result;
exit;
diff --git a/program/steps/utils/spell_html.inc b/program/steps/utils/spell_html.inc
index 96b41e230..27b14acef 100644
--- a/program/steps/utils/spell_html.inc
+++ b/program/steps/utils/spell_html.inc
@@ -56,7 +56,7 @@ if ($error = $spellchecker->error()) {
}
// send output
-header("Content-Type: text/xml; charset=".RCMAIL_CHARSET);
+header("Content-Type: text/xml; charset=".RCUBE_CHARSET);
echo json_encode($result);
exit;