summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
Diffstat (limited to 'program')
-rw-r--r--program/include/bc.php16
-rw-r--r--program/include/iniset.php9
-rw-r--r--program/include/rcmail.php431
-rw-r--r--program/include/rcmail_output_html.php155
-rw-r--r--program/include/rcmail_output_json.php7
-rw-r--r--program/js/app.js7271
-rw-r--r--program/js/common.js732
-rw-r--r--program/js/editor.js17
-rw-r--r--program/js/googiespell.js1136
l---------[-rw-r--r--]program/js/jquery.min.js3
-rw-r--r--program/js/jstz.min.js13
-rw-r--r--program/js/list.js1626
-rw-r--r--program/lib/Roundcube/bootstrap.php30
-rw-r--r--program/lib/Roundcube/html.php85
-rw-r--r--program/lib/Roundcube/rcube.php304
-rw-r--r--program/lib/Roundcube/rcube_addressbook.php57
-rw-r--r--program/lib/Roundcube/rcube_base_replacer.php6
-rw-r--r--program/lib/Roundcube/rcube_browser.php2
-rw-r--r--program/lib/Roundcube/rcube_cache.php45
-rw-r--r--program/lib/Roundcube/rcube_config.php276
-rw-r--r--program/lib/Roundcube/rcube_contacts.php8
-rw-r--r--program/lib/Roundcube/rcube_content_filter.php2
-rw-r--r--program/lib/Roundcube/rcube_csv2vcard.php59
-rw-r--r--program/lib/Roundcube/rcube_db.php216
-rw-r--r--program/lib/Roundcube/rcube_db_mssql.php32
-rw-r--r--program/lib/Roundcube/rcube_db_mysql.php48
-rw-r--r--program/lib/Roundcube/rcube_db_pgsql.php47
-rw-r--r--program/lib/Roundcube/rcube_db_sqlite.php47
-rw-r--r--program/lib/Roundcube/rcube_db_sqlsrv.php29
-rw-r--r--program/lib/Roundcube/rcube_enriched.php2
-rw-r--r--program/lib/Roundcube/rcube_html2text.php13
-rw-r--r--program/lib/Roundcube/rcube_image.php99
-rw-r--r--program/lib/Roundcube/rcube_imap.php290
-rw-r--r--program/lib/Roundcube/rcube_imap_cache.php340
-rw-r--r--program/lib/Roundcube/rcube_imap_generic.php293
-rw-r--r--program/lib/Roundcube/rcube_ldap.php1375
-rw-r--r--program/lib/Roundcube/rcube_message.php128
-rw-r--r--program/lib/Roundcube/rcube_mime.php20
-rw-r--r--program/lib/Roundcube/rcube_plugin.php36
-rw-r--r--program/lib/Roundcube/rcube_plugin_api.php119
-rw-r--r--program/lib/Roundcube/rcube_result_set.php47
-rw-r--r--program/lib/Roundcube/rcube_session.php187
-rw-r--r--program/lib/Roundcube/rcube_smtp.php12
-rw-r--r--program/lib/Roundcube/rcube_spellchecker.php343
-rw-r--r--program/lib/Roundcube/rcube_storage.php22
-rw-r--r--program/lib/Roundcube/rcube_string_replacer.php54
-rw-r--r--program/lib/Roundcube/rcube_user.php21
-rw-r--r--program/lib/Roundcube/rcube_utils.php173
-rw-r--r--program/lib/Roundcube/rcube_vcard.php40
-rw-r--r--program/lib/Roundcube/rcube_washtml.php28
-rw-r--r--program/localization/ar_SA/labels.inc100
-rw-r--r--program/localization/ar_SA/messages.inc19
-rw-r--r--program/localization/ast/labels.inc575
-rw-r--r--program/localization/ast/messages.inc255
-rw-r--r--program/localization/az_AZ/labels.inc75
-rw-r--r--program/localization/az_AZ/messages.inc15
-rw-r--r--program/localization/be_BE/labels.inc945
-rw-r--r--program/localization/be_BE/messages.inc304
-rw-r--r--program/localization/ber/labels.inc1
-rw-r--r--program/localization/bg_BG/labels.inc465
-rw-r--r--program/localization/bg_BG/messages.inc270
-rw-r--r--program/localization/bn_BD/labels.inc285
-rw-r--r--program/localization/bn_BD/messages.inc86
-rw-r--r--program/localization/br/labels.inc334
-rw-r--r--program/localization/br/messages.inc98
-rw-r--r--program/localization/bs_BA/labels.inc77
-rw-r--r--program/localization/bs_BA/messages.inc12
-rw-r--r--program/localization/ca_ES/labels.inc83
-rw-r--r--program/localization/ca_ES/messages.inc18
-rw-r--r--program/localization/cs_CZ/labels.inc85
-rw-r--r--program/localization/cs_CZ/messages.inc20
-rw-r--r--program/localization/cy_GB/labels.inc77
-rw-r--r--program/localization/cy_GB/messages.inc14
-rw-r--r--program/localization/da_DK/labels.inc85
-rw-r--r--program/localization/da_DK/messages.inc20
-rw-r--r--program/localization/de_CH/labels.inc83
-rw-r--r--program/localization/de_CH/messages.inc16
-rw-r--r--program/localization/de_DE/labels.inc75
-rw-r--r--program/localization/de_DE/messages.inc15
-rw-r--r--program/localization/el_GR/labels.inc71
-rw-r--r--program/localization/el_GR/messages.inc15
-rw-r--r--program/localization/en_GB/labels.inc76
-rw-r--r--program/localization/en_GB/messages.inc12
-rw-r--r--program/localization/en_US/csv2vcard.inc19
-rw-r--r--program/localization/en_US/labels.inc32
-rw-r--r--program/localization/en_US/messages.inc15
-rw-r--r--program/localization/eo/labels.inc214
-rw-r--r--program/localization/eo/messages.inc90
-rw-r--r--program/localization/es_AR/labels.inc121
-rw-r--r--program/localization/es_AR/messages.inc10
-rw-r--r--program/localization/es_ES/labels.inc77
-rw-r--r--program/localization/es_ES/messages.inc16
-rw-r--r--program/localization/et_EE/labels.inc71
-rw-r--r--program/localization/et_EE/messages.inc15
-rw-r--r--program/localization/eu_ES/labels.inc530
-rw-r--r--program/localization/eu_ES/messages.inc199
-rw-r--r--program/localization/fa_AF/labels.inc285
-rw-r--r--program/localization/fa_AF/messages.inc119
-rw-r--r--program/localization/fa_IR/labels.inc109
-rw-r--r--program/localization/fa_IR/messages.inc168
-rw-r--r--program/localization/fi_FI/labels.inc79
-rw-r--r--program/localization/fi_FI/messages.inc25
-rw-r--r--program/localization/fr_FR/csv2vcard.inc11
-rw-r--r--program/localization/fr_FR/labels.inc87
-rw-r--r--program/localization/fr_FR/messages.inc18
-rw-r--r--program/localization/fy_NL/labels.inc452
-rw-r--r--program/localization/fy_NL/messages.inc18
-rw-r--r--program/localization/ga_IE/labels.inc346
-rw-r--r--program/localization/ga_IE/messages.inc102
-rw-r--r--program/localization/gl_ES/labels.inc70
-rw-r--r--program/localization/gl_ES/messages.inc10
-rw-r--r--program/localization/he_IL/labels.inc71
-rw-r--r--program/localization/he_IL/messages.inc15
-rw-r--r--program/localization/hi_IN/labels.inc347
-rw-r--r--program/localization/hi_IN/messages.inc105
-rw-r--r--program/localization/hr_HR/labels.inc101
-rw-r--r--program/localization/hr_HR/messages.inc18
-rw-r--r--program/localization/hu_HU/labels.inc83
-rw-r--r--program/localization/hu_HU/messages.inc16
-rw-r--r--program/localization/hy_AM/labels.inc94
-rw-r--r--program/localization/hy_AM/messages.inc16
-rw-r--r--program/localization/ia/labels.inc250
-rw-r--r--program/localization/ia/messages.inc130
-rw-r--r--program/localization/id_ID/labels.inc85
-rw-r--r--program/localization/id_ID/messages.inc17
-rw-r--r--program/localization/index.inc3
-rw-r--r--program/localization/is_IS/labels.inc100
-rw-r--r--program/localization/is_IS/messages.inc113
-rw-r--r--program/localization/it_IT/labels.inc77
-rw-r--r--program/localization/it_IT/messages.inc20
-rw-r--r--program/localization/ja_JP/labels.inc83
-rw-r--r--program/localization/ja_JP/messages.inc16
-rw-r--r--program/localization/ka_GE/labels.inc181
-rw-r--r--program/localization/ka_GE/messages.inc55
-rw-r--r--program/localization/km_KH/labels.inc152
-rw-r--r--program/localization/km_KH/messages.inc44
-rw-r--r--program/localization/ko_KR/labels.inc83
-rw-r--r--program/localization/ko_KR/messages.inc15
-rw-r--r--program/localization/ku/labels.inc358
-rw-r--r--program/localization/ku/messages.inc98
-rw-r--r--program/localization/lt_LT/labels.inc77
-rw-r--r--program/localization/lt_LT/messages.inc15
-rw-r--r--program/localization/lv_LV/labels.inc397
-rw-r--r--program/localization/lv_LV/messages.inc102
-rw-r--r--program/localization/mk_MK/labels.inc265
-rw-r--r--program/localization/mk_MK/messages.inc73
-rw-r--r--program/localization/ml_IN/labels.inc263
-rw-r--r--program/localization/ml_IN/messages.inc144
-rw-r--r--program/localization/mr_IN/labels.inc156
-rw-r--r--program/localization/mr_IN/messages.inc57
-rw-r--r--program/localization/ms_MY/labels.inc257
-rw-r--r--program/localization/ms_MY/messages.inc98
-rw-r--r--program/localization/nb_NO/labels.inc65
-rw-r--r--program/localization/nb_NO/messages.inc10
-rw-r--r--program/localization/ne_NP/labels.inc328
-rw-r--r--program/localization/ne_NP/messages.inc102
-rw-r--r--program/localization/nl_BE/labels.inc167
-rw-r--r--program/localization/nl_BE/messages.inc10
-rw-r--r--program/localization/nl_NL/labels.inc83
-rw-r--r--program/localization/nl_NL/messages.inc14
-rw-r--r--program/localization/nn_NO/labels.inc70
-rw-r--r--program/localization/nn_NO/messages.inc10
-rw-r--r--program/localization/pl_PL/csv2vcard.inc7
-rw-r--r--program/localization/pl_PL/labels.inc79
-rw-r--r--program/localization/pl_PL/messages.inc14
-rw-r--r--program/localization/ps/labels.inc285
-rw-r--r--program/localization/ps/messages.inc86
-rw-r--r--program/localization/pt_BR/labels.inc87
-rw-r--r--program/localization/pt_BR/messages.inc14
-rw-r--r--program/localization/pt_PT/labels.inc87
-rw-r--r--program/localization/pt_PT/messages.inc18
-rw-r--r--program/localization/ro_RO/labels.inc77
-rw-r--r--program/localization/ro_RO/messages.inc15
-rw-r--r--program/localization/ru_RU/labels.inc89
-rw-r--r--program/localization/ru_RU/messages.inc180
-rw-r--r--program/localization/si_LK/labels.inc221
-rw-r--r--program/localization/si_LK/messages.inc83
-rw-r--r--program/localization/sk_SK/labels.inc123
-rw-r--r--program/localization/sk_SK/messages.inc32
-rw-r--r--program/localization/sl_SI/labels.inc91
-rw-r--r--program/localization/sl_SI/messages.inc14
-rw-r--r--program/localization/sq_AL/labels.inc358
-rw-r--r--program/localization/sq_AL/messages.inc98
-rw-r--r--program/localization/sr_CS/labels.inc119
-rw-r--r--program/localization/sr_CS/messages.inc10
-rw-r--r--program/localization/sv_SE/labels.inc83
-rw-r--r--program/localization/sv_SE/messages.inc68
-rw-r--r--program/localization/ta_IN/labels.inc265
-rw-r--r--program/localization/ta_IN/messages.inc73
-rw-r--r--program/localization/th_TH/labels.inc243
-rw-r--r--program/localization/th_TH/messages.inc86
-rw-r--r--program/localization/tr_TR/labels.inc79
-rw-r--r--program/localization/tr_TR/messages.inc20
-rw-r--r--program/localization/uk_UA/labels.inc588
-rw-r--r--program/localization/uk_UA/messages.inc114
-rw-r--r--program/localization/vi_VN/labels.inc76
-rw-r--r--program/localization/vi_VN/messages.inc10
-rw-r--r--program/localization/zh_CN/labels.inc129
-rw-r--r--program/localization/zh_CN/messages.inc21
-rw-r--r--program/localization/zh_TW/csv2vcard.inc9
-rw-r--r--program/localization/zh_TW/labels.inc108
-rw-r--r--program/localization/zh_TW/messages.inc17
-rw-r--r--program/steps/addressbook/copy.inc12
-rw-r--r--program/steps/addressbook/delete.inc38
-rw-r--r--program/steps/addressbook/export.inc113
-rw-r--r--program/steps/addressbook/func.inc187
-rw-r--r--program/steps/addressbook/import.inc71
-rw-r--r--program/steps/addressbook/list.inc49
-rw-r--r--program/steps/addressbook/save.inc29
-rw-r--r--program/steps/addressbook/show.inc63
-rw-r--r--program/steps/addressbook/undo.inc25
-rw-r--r--program/steps/mail/check_recent.inc9
-rw-r--r--program/steps/mail/compose.inc224
-rw-r--r--program/steps/mail/func.inc420
-rw-r--r--program/steps/mail/get.inc109
-rw-r--r--program/steps/mail/list.inc1
-rw-r--r--program/steps/mail/list_contacts.inc29
-rw-r--r--program/steps/mail/move_del.inc11
-rw-r--r--program/steps/mail/sendmail.inc86
-rw-r--r--program/steps/mail/show.inc58
-rw-r--r--program/steps/settings/about.inc67
-rw-r--r--program/steps/settings/edit_folder.inc9
-rw-r--r--program/steps/settings/edit_prefs.inc9
-rw-r--r--program/steps/settings/folders.inc20
-rw-r--r--program/steps/settings/func.inc2063
-rw-r--r--program/steps/settings/save_folder.inc6
-rw-r--r--program/steps/settings/save_prefs.inc6
-rw-r--r--program/steps/utils/spell.inc10
-rw-r--r--program/steps/utils/spell_html.inc5
229 files changed, 18268 insertions, 19486 deletions
diff --git a/program/include/bc.php b/program/include/bc.php
index a7d7b5ac1..af2e51210 100644
--- a/program/include/bc.php
+++ b/program/include/bc.php
@@ -62,7 +62,7 @@ function rcmail_url($action, $p=array(), $task=null)
function rcmail_temp_gc()
{
- rcmail::get_instance()->gc_temp();
+ $rcmail = rcmail::get_instance()->temp_gc();
}
function rcube_charset_convert($str, $from, $to=NULL)
@@ -205,9 +205,9 @@ function rcmail_quota_content($attrib = null)
return rcmail::get_instance()->quota_content($attrib);
}
-function rcmail_display_server_error($fallback=null, $fallback_args=null, $suffix='')
+function rcmail_display_server_error($fallback=null, $fallback_args=null)
{
- rcmail::get_instance()->display_server_error($fallback, $fallback_args, $suffix);
+ rcmail::get_instance()->display_server_error($fallback, $fallback_args);
}
function rcmail_filetype2classname($mimetype, $filename)
@@ -405,16 +405,6 @@ function enriched_to_html($data)
return rcube_enriched::to_html($data);
}
-function strip_quotes($str)
-{
- return str_replace(array("'", '"'), '', $str);
-}
-
-function strip_newlines($str)
-{
- return preg_replace('/[\r\n]/', '', $str);
-}
-
class rcube_html_page extends rcmail_html_page
{
}
diff --git a/program/include/iniset.php b/program/include/iniset.php
index 919cc7682..e4fa956ef 100644
--- a/program/include/iniset.php
+++ b/program/include/iniset.php
@@ -21,11 +21,11 @@
*/
// application constants
-define('RCMAIL_VERSION', '1.0-git');
+define('RCMAIL_VERSION', '0.9.5');
define('RCMAIL_START', microtime(true));
if (!defined('INSTALL_PATH')) {
- define('INSTALL_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
+ define('INSTALL_PATH', '/var/lib/roundcube/');
}
if (!defined('RCMAIL_CONFIG_DIR')) {
@@ -60,11 +60,6 @@ require_once 'Roundcube/bootstrap.php';
// register autoloader for rcmail app classes
spl_autoload_register('rcmail_autoload');
-// include composer autoloader (if available)
-if (file_exists('vendor/autoload.php')) {
- require 'vendor/autoload.php';
-}
-
// backward compatybility (to be removed)
require_once INSTALL_PATH . 'program/include/bc.php';
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 4b3f13760..c9350bdd9 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -51,7 +51,6 @@ class rcmail extends rcube
*/
public $action = '';
public $comm_path = './';
- public $filename = '';
private $address_books = array();
private $action_map = array();
@@ -66,13 +65,12 @@ class rcmail extends rcube
/**
* This implements the 'singleton' design pattern
*
- * @param string Environment name to run (e.g. live, dev, test)
* @return rcmail The one and only instance
*/
- static function get_instance($env = '')
+ static function get_instance()
{
if (!self::$instance || !is_a(self::$instance, 'rcmail')) {
- self::$instance = new rcmail($env);
+ self::$instance = new rcmail();
self::$instance->startup(); // init AFTER object was linked with self::$instance
}
@@ -88,10 +86,6 @@ class rcmail extends rcube
{
$this->init(self::INIT_WITH_DB | self::INIT_WITH_PLUGINS);
- // set filename if not index.php
- if (($basename = basename($_SERVER['SCRIPT_FILENAME'])) && $basename != 'index.php')
- $this->filename = $basename;
-
// start session
$this->session_init();
@@ -132,7 +126,7 @@ class rcmail extends rcube
*/
public function set_task($task)
{
- $task = asciiwords($task, true);
+ $task = asciiwords($task);
if ($this->user && $this->user->ID)
$task = !$task ? 'mail' : $task;
@@ -168,7 +162,7 @@ class rcmail extends rcube
setlocale(LC_ALL, $lang . '.utf8', $lang . '.UTF-8', 'en_US.utf8', 'en_US.UTF-8');
// workaround for http://bugs.php.net/bug.php?id=18556
- if (version_compare(PHP_VERSION, '5.5.0', '<') && in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) {
+ if (in_array($lang, array('tr_TR', 'ku', 'az_AZ'))) {
setlocale(LC_CTYPE, 'en_US.utf8', 'en_US.UTF-8');
}
}
@@ -289,13 +283,13 @@ class rcmail extends rcube
*/
public function get_address_sources($writeable = false, $skip_hidden = false)
{
- $abook_type = (string) $this->config->get('address_book_type');
- $ldap_config = (array) $this->config->get('ldap_public');
+ $abook_type = strtolower($this->config->get('address_book_type'));
+ $ldap_config = $this->config->get('ldap_public');
$autocomplete = (array) $this->config->get('autocomplete_addressbooks');
- $list = array();
+ $list = array();
// We are using the DB address book or a plugin address book
- if (!empty($abook_type) && strtolower($abook_type) != 'ldap') {
+ if ($abook_type != 'ldap' && $abook_type != '') {
if (!isset($this->address_books['0']))
$this->address_books['0'] = new rcube_contacts($this->db, $this->get_user_id());
$list['0'] = array(
@@ -308,7 +302,8 @@ class rcmail extends rcube
);
}
- if (!empty($ldap_config)) {
+ if ($ldap_config) {
+ $ldap_config = (array) $ldap_config;
foreach ($ldap_config as $id => $prop) {
// handle misconfiguration
if (empty($prop) || !is_array($prop)) {
@@ -317,7 +312,7 @@ class rcmail extends rcube
$list[$id] = array(
'id' => $id,
'name' => html::quote($prop['name']),
- 'groups' => !empty($prop['groups']) || !empty($prop['group_filters']),
+ 'groups' => is_array($prop['groups']),
'readonly' => !$prop['writable'],
'hidden' => $prop['hidden'],
'autocomplete' => in_array($id, $autocomplete)
@@ -346,44 +341,6 @@ class rcmail extends rcube
return $list;
}
- /**
- * Getter for compose responses.
- * These are stored in local config and user preferences.
- *
- * @param boolean True to sort the list alphabetically
- * @param boolean True if only this user's responses shall be listed
- * @return array List of the current user's stored responses
- */
- public function get_compose_responses($sorted = false, $user_only = false)
- {
- $responses = array();
-
- if (!$user_only) {
- foreach ($this->config->get('compose_responses_static', array()) as $response) {
- if (empty($response['key']))
- $response['key'] = substr(md5($response['name']), 0, 16);
- $response['static'] = true;
- $response['class'] = 'readonly';
- $k = $sorted ? '0000-' . strtolower($response['name']) : $response['key'];
- $responses[$k] = $response;
- }
- }
-
- foreach ($this->config->get('compose_responses', array()) as $response) {
- if (empty($response['key']))
- $response['key'] = substr(md5($response['name']), 0, 16);
- $k = $sorted ? strtolower($response['name']) : $response['key'];
- $responses[$k] = $response;
- }
-
- // sort list by name
- if ($sorted) {
- ksort($responses, SORT_LOCALE_STRING);
- }
-
- return array_values($responses);
- }
-
/**
* Init output object for GUI and add common scripts.
@@ -519,22 +476,15 @@ class rcmail extends rcube
$port = $config['default_port'];
}
- // Check if we need to add/force domain to username
- if (!empty($config['username_domain'])) {
- $domain = is_array($config['username_domain']) ? $config['username_domain'][$host] : $config['username_domain'];
-
- if ($domain = rcube_utils::parse_host((string)$domain, $host)) {
- $pos = strpos($username, '@');
-
- // force configured domains
- if (!empty($config['username_domain_forced']) && $pos !== false) {
- $username = substr($username, 0, $pos) . '@' . $domain;
- }
- // just add domain if not specified
- else if ($pos === false) {
- $username .= '@' . $domain;
- }
- }
+ /* Modify username with domain if required
+ Inspired by Marco <P0L0_notspam_binware.org>
+ */
+ // Check if we need to add domain
+ if (!empty($config['username_domain']) && strpos($username, '@') === false) {
+ if (is_array($config['username_domain']) && isset($config['username_domain'][$host]))
+ $username .= '@'.rcube_utils::parse_host($config['username_domain'][$host], $host);
+ else if (is_string($config['username_domain']))
+ $username .= '@'.rcube_utils::parse_host($config['username_domain'], $host);
}
if (!isset($config['login_lc'])) {
@@ -669,7 +619,7 @@ class rcmail extends rcube
$post_host = rcube_utils::get_input_value('_host', rcube_utils::INPUT_POST);
$post_user = rcube_utils::get_input_value('_user', rcube_utils::INPUT_POST);
- list(, $domain) = explode('@', $post_user);
+ list($user, $domain) = explode('@', $post_user);
// direct match in default_host array
if ($default_host[$post_host] || in_array($post_host, array_values($default_host))) {
@@ -773,6 +723,28 @@ class rcmail extends rcube
/**
+ * Create unique authorization hash
+ *
+ * @param string Session ID
+ * @param int Timestamp
+ * @return string The generated auth hash
+ */
+ private function get_auth_hash($sess_id, $ts)
+ {
+ $auth_string = sprintf('rcmail*sess%sR%s*Chk:%s;%s',
+ $sess_id,
+ $ts,
+ $this->config->get('ip_check') ? $_SERVER['REMOTE_ADDR'] : '***.***.***.***',
+ $_SERVER['HTTP_USER_AGENT']);
+
+ if (function_exists('sha1'))
+ return sha1($auth_string);
+ else
+ return md5($auth_string);
+ }
+
+
+ /**
* Build a valid URL to this instance of Roundcube
*
* @param mixed Either a string with the action or url parameters as key-value pairs
@@ -792,7 +764,7 @@ class rcmail extends rcube
$p['_task'] = $task;
unset($p['task']);
- $url = './' . $this->filename;
+ $url = './';
$delm = '?';
foreach (array_reverse($p) as $key => $val) {
if ($val !== '' && $val !== null) {
@@ -817,6 +789,11 @@ class rcmail extends rcube
$book->close();
}
+ // before closing the database connection, write session data
+ if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) {
+ session_write_close();
+ }
+
// write performance stats to logs/console
if ($this->config->get('devel_mode')) {
if (function_exists('memory_get_usage'))
@@ -977,6 +954,193 @@ class rcmail extends rcube
/**
+ * Send the given message using the configured method.
+ *
+ * @param object $message Reference to Mail_MIME object
+ * @param string $from Sender address string
+ * @param array $mailto Array of recipient address strings
+ * @param array $error SMTP error array (reference)
+ * @param string $body_file Location of file with saved message body (reference),
+ * used when delay_file_io is enabled
+ * @param array $options SMTP options (e.g. DSN request)
+ *
+ * @return boolean Send status.
+ */
+ public function deliver_message(&$message, $from, $mailto, &$error, &$body_file = null, $options = null)
+ {
+ $plugin = $this->plugins->exec_hook('message_before_send', array(
+ 'message' => $message,
+ 'from' => $from,
+ 'mailto' => $mailto,
+ 'options' => $options,
+ ));
+
+ if ($plugin['abort']) {
+ return isset($plugin['result']) ? $plugin['result'] : false;
+ }
+
+ $from = $plugin['from'];
+ $mailto = $plugin['mailto'];
+ $options = $plugin['options'];
+ $message = $plugin['message'];
+ $headers = $message->headers();
+
+ // send thru SMTP server using custom SMTP library
+ if ($this->config->get('smtp_server')) {
+ // generate list of recipients
+ $a_recipients = array($mailto);
+
+ if (strlen($headers['Cc']))
+ $a_recipients[] = $headers['Cc'];
+ if (strlen($headers['Bcc']))
+ $a_recipients[] = $headers['Bcc'];
+
+ // clean Bcc from header for recipients
+ $send_headers = $headers;
+ unset($send_headers['Bcc']);
+ // here too, it because txtHeaders() below use $message->_headers not only $send_headers
+ unset($message->_headers['Bcc']);
+
+ $smtp_headers = $message->txtHeaders($send_headers, true);
+
+ if ($message->getParam('delay_file_io')) {
+ // use common temp dir
+ $temp_dir = $this->config->get('temp_dir');
+ $body_file = tempnam($temp_dir, 'rcmMsg');
+ if (PEAR::isError($mime_result = $message->saveMessageBody($body_file))) {
+ self::raise_error(array('code' => 650, 'type' => 'php',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Could not create message: ".$mime_result->getMessage()),
+ TRUE, FALSE);
+ return false;
+ }
+ $msg_body = fopen($body_file, 'r');
+ }
+ else {
+ $msg_body = $message->get();
+ }
+
+ // send message
+ if (!is_object($this->smtp)) {
+ $this->smtp_init(true);
+ }
+
+ $sent = $this->smtp->send_mail($from, $a_recipients, $smtp_headers, $msg_body, $options);
+ $response = $this->smtp->get_response();
+ $error = $this->smtp->get_error();
+
+ // log error
+ if (!$sent) {
+ self::raise_error(array('code' => 800, 'type' => 'smtp',
+ 'line' => __LINE__, 'file' => __FILE__,
+ 'message' => "SMTP error: ".join("\n", $response)), TRUE, FALSE);
+ }
+ }
+ // send mail using PHP's mail() function
+ else {
+ // unset some headers because they will be added by the mail() function
+ $headers_enc = $message->headers($headers);
+ $headers_php = $message->_headers;
+ unset($headers_php['To'], $headers_php['Subject']);
+
+ // reset stored headers and overwrite
+ $message->_headers = array();
+ $header_str = $message->txtHeaders($headers_php);
+
+ // #1485779
+ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+ if (preg_match_all('/<([^@]+@[^>]+)>/', $headers_enc['To'], $m)) {
+ $headers_enc['To'] = implode(', ', $m[1]);
+ }
+ }
+
+ $msg_body = $message->get();
+
+ if (PEAR::isError($msg_body)) {
+ self::raise_error(array('code' => 650, 'type' => 'php',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Could not create message: ".$msg_body->getMessage()),
+ TRUE, FALSE);
+ }
+ else {
+ $delim = $this->config->header_delimiter();
+ $to = $headers_enc['To'];
+ $subject = $headers_enc['Subject'];
+ $header_str = rtrim($header_str);
+
+ if ($delim != "\r\n") {
+ $header_str = str_replace("\r\n", $delim, $header_str);
+ $msg_body = str_replace("\r\n", $delim, $msg_body);
+ $to = str_replace("\r\n", $delim, $to);
+ $subject = str_replace("\r\n", $delim, $subject);
+ }
+
+ if (filter_var(ini_get('safe_mode'), FILTER_VALIDATE_BOOLEAN))
+ $sent = mail($to, $subject, $msg_body, $header_str);
+ else
+ $sent = mail($to, $subject, $msg_body, $header_str, "-f$from");
+ }
+ }
+
+ if ($sent) {
+ $this->plugins->exec_hook('message_sent', array('headers' => $headers, 'body' => $msg_body));
+
+ // remove MDN headers after sending
+ unset($headers['Return-Receipt-To'], $headers['Disposition-Notification-To']);
+
+ // get all recipients
+ if ($headers['Cc'])
+ $mailto .= $headers['Cc'];
+ if ($headers['Bcc'])
+ $mailto .= $headers['Bcc'];
+ if (preg_match_all('/<([^@]+@[^>]+)>/', $mailto, $m))
+ $mailto = implode(', ', array_unique($m[1]));
+
+ if ($this->config->get('smtp_log')) {
+ self::write_log('sendmail', sprintf("User %s [%s]; Message for %s; %s",
+ $this->user->get_username(),
+ $_SERVER['REMOTE_ADDR'],
+ $mailto,
+ !empty($response) ? join('; ', $response) : ''));
+ }
+ }
+
+ if (is_resource($msg_body)) {
+ fclose($msg_body);
+ }
+
+ $message->_headers = array();
+ $message->headers($headers);
+
+ return $sent;
+ }
+
+
+ /**
+ * Unique Message-ID generator.
+ *
+ * @return string Message-ID
+ */
+ public function gen_message_id()
+ {
+ $local_part = md5(uniqid('rcmail'.mt_rand(),true));
+ $domain_part = $this->user->get_username('domain');
+
+ // Try to find FQDN, some spamfilters doesn't like 'localhost' (#1486924)
+ if (!preg_match('/\.[a-z]+$/i', $domain_part)) {
+ foreach (array($_SERVER['HTTP_HOST'], $_SERVER['SERVER_NAME']) as $host) {
+ $host = preg_replace('/:[0-9]+$/', '', $host);
+ if ($host && preg_match('/\.[a-z]+$/i', $host)) {
+ $domain_part = $host;
+ }
+ }
+ }
+
+ return sprintf('<%s@%s>', $local_part, $domain_part);
+ }
+
+
+ /**
* Returns RFC2822 formatted current date in user's timezone
*
* @return string Date
@@ -999,32 +1163,22 @@ class rcmail extends rcube
/**
* Write login data (name, ID, IP address) to the 'userlogins' log file.
*/
- public function log_login($user = null, $failed_login = false, $error_code = 0)
+ public function log_login()
{
if (!$this->config->get('log_logins')) {
return;
}
- // failed login
- if ($failed_login) {
- $message = sprintf('Failed login for %s from %s in session %s (error: %d)',
- $user, rcube_utils::remote_ip(), session_id(), $error_code);
- }
- // successful login
- else {
- $user_name = $this->get_user_name();
- $user_id = $this->get_user_id();
-
- if (!$user_id) {
- return;
- }
+ $user_name = $this->get_user_name();
+ $user_id = $this->get_user_id();
- $message = sprintf('Successful login for %s (ID: %d) from %s in session %s',
- $user_name, $user_id, rcube_utils::remote_ip(), session_id());
+ if (!$user_id) {
+ return;
}
- // log login
- self::write_log('userlogins', $message);
+ self::write_log('userlogins',
+ sprintf('Successful login for %s (ID: %d) from %s in session %s',
+ $user_name, $user_id, rcube_utils::remote_ip(), session_id()));
}
@@ -1040,7 +1194,7 @@ class rcmail extends rcube
*/
public function table_output($attrib, $table_data, $a_show_cols, $id_col)
{
- $table = new html_table($attrib);
+ $table = new html_table(/*array('cols' => count($a_show_cols))*/);
// add table header
if (!$attrib['noheader']) {
@@ -1281,7 +1435,6 @@ class rcmail extends rcube
$js_mailboxlist = array();
$out = html::tag('ul', $attrib, $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib);
- $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']);
@@ -1403,10 +1556,9 @@ class rcmail extends rcube
$realnames = (bool)$attrib['realnames'];
$msgcounts = $this->storage->get_cache('messagecount');
$collapsed = $this->config->get('collapsed_folders');
- $realnames = $this->config->get('show_real_foldernames');
$out = '';
- foreach ($arrFolders as $folder) {
+ foreach ($arrFolders as $key => $folder) {
$title = null;
$folder_class = $this->folder_classname($folder['id']);
$is_collapsed = strpos($collapsed, '&'.rawurlencode($folder['id']).'&') !== false;
@@ -1461,13 +1613,14 @@ class rcmail extends rcube
'id' => "rcmli".$folder_id,
'class' => join(' ', $classes),
'noclose' => true),
- html::a($link_attrib, $html_name));
-
- if (!empty($folder['folders'])) {
- $out .= html::div('treetoggle ' . ($is_collapsed ? 'collapsed' : 'expanded'), '&nbsp;');
- }
-
- $jslist[$folder['id']] = array(
+ html::a($link_attrib, $html_name) .
+ (!empty($folder['folders']) ? html::div(array(
+ 'class' => ($is_collapsed ? 'collapsed' : 'expanded'),
+ 'style' => "position:absolute",
+ 'onclick' => sprintf("%s.command('collapse-folder', '%s')", rcmail_output::JS_OBJECT_NAME, $js_name)
+ ), '&nbsp;') : ''));
+
+ $jslist[$folder_id] = array(
'id' => $folder['id'],
'name' => $foldername,
'virtual' => $folder['virtual']
@@ -1492,7 +1645,7 @@ class rcmail extends rcube
{
$out = '';
- foreach ($arrFolders as $folder) {
+ foreach ($arrFolders as $key => $folder) {
// skip exceptions (and its subfolders)
if (!empty($opts['exceptions']) && in_array($folder['id'], $opts['exceptions'])) {
continue;
@@ -1553,38 +1706,18 @@ class rcmail extends rcube
* Try to localize the given IMAP folder name.
* UTF-7 decode it in case no localized text was found
*
- * @param string $name Folder name
- * @param bool $with_path Enable path localization
+ * @param string $name Folder name
*
* @return string Localized folder name in UTF-8 encoding
*/
- public function localize_foldername($name, $with_path = true)
+ public function localize_foldername($name)
{
- $realnames = $this->config->get('show_real_foldernames');
-
- // try to localize path of the folder
- if ($with_path && !$realnames) {
- $storage = $this->get_storage();
- $delimiter = $storage->get_hierarchy_delimiter();
- $path = explode($delimiter, $name);
- $count = count($path);
-
- if ($count > 1) {
- for ($i = 0; $i < $count; $i++) {
- $folder = implode($delimiter, array_slice($path, 0, -$i));
- if ($folder_class = $this->folder_classname($folder)) {
- $name = implode($delimiter, array_slice($path, $count - $i));
- return $this->gettext($folder_class) . $delimiter . rcube_charset::convert($name, 'UTF7-IMAP');
- }
- }
- }
- }
-
- if (!$realnames && ($folder_class = $this->folder_classname($name))) {
+ if ($folder_class = $this->folder_classname($name)) {
return $this->gettext($folder_class);
}
-
- return rcube_charset::convert($name, 'UTF7-IMAP');
+ else {
+ return rcube_charset::convert($name, 'UTF7-IMAP');
+ }
}
@@ -1639,7 +1772,11 @@ class rcmail extends rcube
$quota_result = (array) $quota;
$quota_result['type'] = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : '';
- if ($quota['total'] > 0) {
+ if (!$quota['total'] && $this->config->get('quota_zero_as_unlimited')) {
+ $quota_result['title'] = $this->gettext('unlimited');
+ $quota_result['percent'] = 0;
+ }
+ else if ($quota['total']) {
if (!isset($quota['percent'])) {
$quota_result['percent'] = min(100, round(($quota['used']/max(1,$quota['total']))*100));
}
@@ -1658,8 +1795,7 @@ class rcmail extends rcube
}
}
else {
- $unlimited = $this->config->get('quota_zero_as_unlimited');
- $quota_result['title'] = $this->gettext($unlimited ? 'unlimited' : 'unknown');
+ $quota_result['title'] = $this->gettext('unknown');
$quota_result['percent'] = 0;
}
@@ -1672,51 +1808,32 @@ class rcmail extends rcube
*
* @param string $fallback Fallback message label
* @param array $fallback_args Fallback message label arguments
- * @param string $suffix Message label suffix
*/
- public function display_server_error($fallback = null, $fallback_args = null, $suffix = '')
+ public function display_server_error($fallback = null, $fallback_args = null)
{
$err_code = $this->storage->get_error_code();
$res_code = $this->storage->get_response_code();
- $args = array();
if ($res_code == rcube_storage::NOPERM) {
- $error = 'errornoperm';
+ $this->output->show_message('errornoperm', 'error');
}
else if ($res_code == rcube_storage::READONLY) {
- $error = 'errorreadonly';
- }
- else if ($res_code == rcube_storage::OVERQUOTA) {
- $error = 'errorroverquota';
+ $this->output->show_message('errorreadonly', 'error');
}
else if ($err_code && ($err_str = $this->storage->get_error_str())) {
// try to detect access rights problem and display appropriate message
if (stripos($err_str, 'Permission denied') !== false) {
- $error = 'errornoperm';
- }
- // try to detect full mailbox problem and display appropriate message
- // there can be e.g. "Quota exceeded" or "quotum would exceed"
- else if (stripos($err_str, 'quot') !== false && stripos($err_str, 'exceed') !== false) {
- $error = 'erroroverquota';
+ $this->output->show_message('errornoperm', 'error');
}
else {
- $error = 'servererrormsg';
- $args = array('msg' => $err_str);
+ $this->output->show_message('servererrormsg', 'error', array('msg' => $err_str));
}
}
else if ($err_code < 0) {
- $error = 'storageerror';
+ $this->output->show_message('storageerror', 'error');
}
else if ($fallback) {
- $error = $fallback;
- $args = $fallback_args;
- }
-
- if ($error) {
- if ($suffix && $this->text_exists($error . $suffix)) {
- $error .= $suffix;
- }
- $this->output->show_message($error, 'error', $args);
+ $this->output->show_message($fallback, 'error', $fallback_args);
}
}
diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php
index 8a960673d..465d92f83 100644
--- a/program/include/rcmail_output_html.php
+++ b/program/include/rcmail_output_html.php
@@ -67,7 +67,6 @@ class rcmail_output_html extends rcmail_output
//$this->framed = $framed;
$this->set_env('task', $task);
$this->set_env('x_frame_options', $this->config->get('x_frame_options', 'sameorigin'));
- $this->set_env('standard_windows', (bool) $this->config->get('standard_windows'));
// add cookie info
$this->set_env('cookie_domain', ini_get('session.cookie_domain'));
@@ -106,6 +105,7 @@ class rcmail_output_html extends rcmail_output
));
}
+
/**
* Set environment variable
*
@@ -121,6 +121,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Getter for the current page title
*
@@ -144,17 +145,17 @@ class rcmail_output_html extends rcmail_output
return $title;
}
+
/**
* Set skin
*/
public function set_skin($skin)
{
$valid = false;
- $path = RCUBE_INSTALL_PATH . 'skins/';
- if (!empty($skin) && is_dir($path . $skin) && is_readable($path . $skin)) {
- $skin_path = 'skins/' . $skin;
- $valid = true;
+ if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin)) {
+ $skin_path = 'skins/'.$skin;
+ $valid = true;
}
else {
$skin_path = $this->config->get('skin_path');
@@ -182,16 +183,13 @@ class rcmail_output_html extends rcmail_output
$this->skin_paths[] = $skin_path;
// read meta file and check for dependecies
- $meta = @file_get_contents(RCUBE_INSTALL_PATH . $skin_path . '/meta.json');
- $meta = @json_decode($meta, true);
- if ($meta['extends']) {
- $path = RCUBE_INSTALL_PATH . 'skins/';
- if (is_dir($path . $meta['extends']) && is_readable($path . $meta['extends'])) {
- $this->load_skin('skins/' . $meta['extends']);
- }
+ $meta = @json_decode(@file_get_contents($skin_path.'/meta.json'), true);
+ if ($meta['extends'] && is_dir('skins/' . $meta['extends'])) {
+ $this->load_skin('skins/' . $meta['extends']);
}
}
+
/**
* Check if a specific template exists
*
@@ -200,18 +198,17 @@ class rcmail_output_html extends rcmail_output
*/
public function template_exists($name)
{
+ $found = false;
foreach ($this->skin_paths as $skin_path) {
- $filename = RCUBE_INSTALL_PATH . $skin_path . '/templates/' . $name . '.html';
- if ((is_file($filename) && is_readable($filename))
- || ($this->deprecated_templates[$name] && $this->template_exists($this->deprecated_templates[$name]))
- ) {
- return true;
- }
+ $filename = $skin_path . '/templates/' . $name . '.html';
+ $found = (is_file($filename) && is_readable($filename)) || ($this->deprecated_templates[$name] && $this->template_exists($this->deprecated_templates[$name]));
+ if ($found)
+ break;
}
-
- return false;
+ return $found;
}
+
/**
* Find the given file in the current skin path stack
*
@@ -236,6 +233,7 @@ class rcmail_output_html extends rcmail_output
return false;
}
+
/**
* Register a GUI object to the client script
*
@@ -248,6 +246,7 @@ class rcmail_output_html extends rcmail_output
$this->add_script(self::JS_OBJECT_NAME.".gui_object('$obj', '$id');");
}
+
/**
* Call a client method
*
@@ -263,6 +262,7 @@ class rcmail_output_html extends rcmail_output
$this->js_commands[] = $cmd;
}
+
/**
* Add a localized label to the client environment
*/
@@ -277,6 +277,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Invoke display_message command
*
@@ -303,6 +304,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Delete all stored env variables and commands
*
@@ -325,6 +327,7 @@ class rcmail_output_html extends rcmail_output
$this->body = '';
}
+
/**
* Redirect to a certain url
*
@@ -340,6 +343,7 @@ class rcmail_output_html extends rcmail_output
exit;
}
+
/**
* Send the request output to the client.
* This will either parse a skin tempalte or send an AJAX response
@@ -373,6 +377,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Process template and write to stdOut
*
@@ -408,6 +413,7 @@ class rcmail_output_html extends rcmail_output
$this->_write($template, $this->config->get('skin_path'));
}
+
/**
* Parse a specific skin template and deliver to stdout (or return)
*
@@ -532,6 +538,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Return executable javascript code for all registered commands
*
@@ -563,6 +570,7 @@ class rcmail_output_html extends rcmail_output
return $out;
}
+
/**
* Make URLs starting with a slash point to skin directory
*
@@ -582,6 +590,7 @@ class rcmail_output_html extends rcmail_output
return $str;
}
+
/**
* Show error page and terminate script execution
*
@@ -616,6 +625,7 @@ class rcmail_output_html extends rcmail_output
array($this, 'globals_callback'), $input);
}
+
/**
* Callback funtion for preg_replace_callback() in parse_with_globals()
*/
@@ -624,6 +634,7 @@ class rcmail_output_html extends rcmail_output
return $GLOBALS[$matches[1]];
}
+
/**
* Correct absolute paths in images and other tags
* add timestamp to .js and .css filename
@@ -635,6 +646,7 @@ class rcmail_output_html extends rcmail_output
array($this, 'file_callback'), $output);
}
+
/**
* Callback function for preg_replace_callback in write()
*
@@ -643,7 +655,7 @@ class rcmail_output_html extends rcmail_output
protected function file_callback($matches)
{
$file = $matches[3];
- $file = preg_replace('!^/this/!', '/', $file);
+ $file[0] = preg_replace('!^/this/!', '/', $file[0]);
// correct absolute paths
if ($file[0] == '/') {
@@ -660,6 +672,7 @@ class rcmail_output_html extends rcmail_output
return $matches[1] . '=' . $matches[2] . $file . $matches[4];
}
+
/**
* Public wrapper to dipp into template parsing.
*
@@ -676,6 +689,7 @@ class rcmail_output_html extends rcmail_output
return $input;
}
+
/**
* Parse for conditional tags
*
@@ -713,18 +727,21 @@ class rcmail_output_html extends rcmail_output
return $input;
}
+
/**
* Determines if a given condition is met
*
+ * @todo Get rid off eval() once I understand what this does.
* @todo Extend this to allow real conditions, not just "set"
* @param string Condition statement
* @return boolean True if condition is met, False if not
*/
protected function check_condition($condition)
{
- return $this->eval_expression($condition);
+ return eval("return (".$this->parse_expression($condition).");");
}
+
/**
* Inserts hidden field with CSRF-prevention-token into POST forms
*/
@@ -741,16 +758,16 @@ class rcmail_output_html extends rcmail_output
return $out;
}
+
/**
- * Parse & evaluate a given expression and return its result.
- *
- * @param string Expression statement
+ * Parses expression and replaces variables
*
- * @return mixed Expression result
+ * @param string Expression statement
+ * @return string Expression value
*/
- protected function eval_expression ($expression)
+ protected function parse_expression($expression)
{
- $expression = preg_replace(
+ return preg_replace(
array(
'/session:([a-z0-9_]+)/i',
'/config:([a-z0-9_]+)(:([a-z0-9_]+))?/i',
@@ -762,31 +779,17 @@ class rcmail_output_html extends rcmail_output
),
array(
"\$_SESSION['\\1']",
- "\$app->config->get('\\1',rcube_utils::get_boolean('\\3'))",
- "\$env['\\1']",
+ "\$this->app->config->get('\\1',rcube_utils::get_boolean('\\3'))",
+ "\$this->env['\\1']",
"rcube_utils::get_input_value('\\1', rcube_utils::INPUT_GPC)",
"\$_COOKIE['\\1']",
- "\$browser->{'\\1'}",
+ "\$this->browser->{'\\1'}",
$this->template_name,
),
- $expression
- );
-
- $fn = create_function('$app,$browser,$env', "return ($expression);");
- if (!$fn) {
- rcube::raise_error(array(
- 'code' => 505,
- 'type' => 'php',
- 'file' => __FILE__,
- 'line' => __LINE__,
- 'message' => "Expression parse error on: ($expression)"), true, false);
-
- return null;
- }
-
- return $fn($this->app, $this->browser, $this->env);
+ $expression);
}
+
/**
* Search for special tags in input and replace them
* with the appropriate content
@@ -801,6 +804,7 @@ class rcmail_output_html extends rcmail_output
return preg_replace_callback('/<roundcube:([-_a-z]+)\s+((?:[^>]|\\\\>)+)(?<!\\\\)>/Ui', array($this, 'xml_command'), $input);
}
+
/**
* Callback function for parsing an xml command tag
* and turn it into real html content
@@ -835,7 +839,7 @@ class rcmail_output_html extends rcmail_output
// show a label
case 'label':
if ($attrib['expression'])
- $attrib['name'] = $this->eval_expression($attrib['expression']);
+ $attrib['name'] = eval("return " . $this->parse_expression($attrib['expression']) .";");
if ($attrib['name'] || $attrib['command']) {
// @FIXME: 'noshow' is useless, remove?
@@ -924,21 +928,8 @@ class rcmail_output_html extends rcmail_output
}
else if ($object == 'logo') {
$attrib += array('alt' => $this->xml_command(array('', 'object', 'name="productname"')));
-
- if ($logo = $this->config->get('skin_logo')) {
- if (is_array($logo)) {
- if ($template_logo = $logo[$this->template_name]) {
- $attrib['src'] = $template_logo;
- }
- elseif ($template_logo = $logo['*']) {
- $attrib['src'] = $template_logo;
- }
- }
- else {
- $attrib['src'] = $logo;
- }
- }
-
+ if ($logo = $this->config->get('skin_logo'))
+ $attrib['src'] = $logo;
$content = html::img($attrib);
}
else if ($object == 'productname') {
@@ -980,7 +971,8 @@ class rcmail_output_html extends rcmail_output
// return code for a specified eval expression
case 'exp':
- return html::quote($this->eval_expression($attrib['expression']));
+ $value = $this->parse_expression($attrib['expression']);
+ return eval("return html::quote($value);");
// return variable
case 'var':
@@ -1017,13 +1009,12 @@ class rcmail_output_html extends rcmail_output
}
return html::quote($value);
-
- case 'form':
- return $this->form_tag($attrib);
+ break;
}
return '';
}
+
/**
* Include a specific file and return it's contents
*
@@ -1040,6 +1031,7 @@ class rcmail_output_html extends rcmail_output
return $out;
}
+
/**
* Create and register a button
*
@@ -1055,7 +1047,7 @@ class rcmail_output_html extends rcmail_output
// these commands can be called directly via url
$a_static_commands = array('compose', 'list', 'preferences', 'folders', 'identities');
- if (!($attrib['command'] || $attrib['name'] || $attrib['href'])) {
+ if (!($attrib['command'] || $attrib['name'])) {
return '';
}
@@ -1165,7 +1157,7 @@ class rcmail_output_html extends rcmail_output
}
else if ($attrib['type'] == 'link') {
$btn_content = isset($attrib['content']) ? $attrib['content'] : ($attrib['label'] ? $attrib['label'] : $attrib['command']);
- $link_attrib = array_merge(html::$common_attrib, array('href', 'onclick', 'tabindex', 'target'));
+ $link_attrib = array('href', 'onclick', 'title', 'id', 'class', 'style', 'tabindex', 'target');
if ($attrib['innerclass'])
$btn_content = html::span($attrib['innerclass'], $btn_content);
}
@@ -1188,13 +1180,10 @@ class rcmail_output_html extends rcmail_output
$out = sprintf('<a%s>%s</a>', $attrib_str, $btn_content);
}
- if ($attrib['wrapper']) {
- $out = html::tag($attrib['wrapper'], null, $out);
- }
-
return $out;
}
+
/**
* Link an external script file
*
@@ -1225,6 +1214,7 @@ class rcmail_output_html extends rcmail_output
$this->script_files[$position][] = $file;
}
+
/**
* Add inline javascript code
*
@@ -1241,6 +1231,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Link an external css file
*
@@ -1251,6 +1242,7 @@ class rcmail_output_html extends rcmail_output
$this->css_files[] = $file;
}
+
/**
* Add HTML code to the page header
*
@@ -1261,6 +1253,7 @@ class rcmail_output_html extends rcmail_output
$this->header .= "\n" . $str;
}
+
/**
* Add HTML code to the page footer
* To be added right befor </body>
@@ -1272,6 +1265,7 @@ class rcmail_output_html extends rcmail_output
$this->footer .= "\n" . $str;
}
+
/**
* Process template and write to stdOut
*
@@ -1401,6 +1395,7 @@ class rcmail_output_html extends rcmail_output
}
}
+
/**
* Returns iframe object, registers some related env variables
*
@@ -1431,6 +1426,7 @@ class rcmail_output_html extends rcmail_output
/* ************* common functions delivering gui objects ************** */
+
/**
* Create a form tag with the necessary hidden fields
*
@@ -1452,11 +1448,12 @@ class rcmail_output_html extends rcmail_output
$attrib['noclose'] = true;
return html::tag('form',
- $attrib + array('action' => $this->app->comm_path, 'method' => "get"),
+ $attrib + array('action' => "./", 'method' => "get"),
$hidden . $content,
array('id','class','style','name','method','action','enctype','onsubmit'));
}
+
/**
* Build a form tag with a unique request token
*
@@ -1487,6 +1484,7 @@ class rcmail_output_html extends rcmail_output
return $this->form_tag($attrib, $hidden->show() . $content);
}
+
/**
* GUI object 'username'
* Showing IMAP username of the current session
@@ -1518,6 +1516,7 @@ class rcmail_output_html extends rcmail_output
return rcube_utils::idn_to_utf8($username);
}
+
/**
* GUI object 'loginform'
* Returns code for the webmail login form
@@ -1549,9 +1548,9 @@ class rcmail_output_html extends rcmail_output
$input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login'));
$input_tzone = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_'));
$input_url = new html_hiddenfield(array('name' => '_url', 'id' => 'rcmloginurl', 'value' => $url));
- $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'required' => 'required')
+ $input_user = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser')
+ $attrib + $user_attrib);
- $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'required' => 'required')
+ $input_pass = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd')
+ $attrib + $pass_attrib);
$input_host = null;
@@ -1617,6 +1616,7 @@ class rcmail_output_html extends rcmail_output
return $out;
}
+
/**
* GUI object 'preloader'
* Loads javascript code for images preloading
@@ -1639,6 +1639,7 @@ class rcmail_output_html extends rcmail_output
}', 'docready');
}
+
/**
* GUI object 'searchform'
* Returns code for search function
@@ -1677,6 +1678,7 @@ class rcmail_output_html extends rcmail_output
return $out;
}
+
/**
* Builder for GUI object 'message'
*
@@ -1694,6 +1696,7 @@ class rcmail_output_html extends rcmail_output
return html::div($attrib, '');
}
+
/**
* GUI object 'charsetselector'
*
diff --git a/program/include/rcmail_output_json.php b/program/include/rcmail_output_json.php
index d0e1eec64..def6ee42c 100644
--- a/program/include/rcmail_output_json.php
+++ b/program/include/rcmail_output_json.php
@@ -227,13 +227,6 @@ class rcmail_output_json extends rcmail_output
if (!empty($this->callbacks))
$response['callbacks'] = $this->callbacks;
- // trigger generic hook where plugins can put additional content to the response
- $hook = $this->app->plugins->exec_hook("render_response", array('response' => $response));
-
- // save some memory
- $response = $hook['response'];
- unset($hook['response']);
-
echo self::json_serialize($response);
}
diff --git a/program/js/app.js b/program/js/app.js
index f7fd7cea0..efefd3a64 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1,7270 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube Webmail Client Script |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
- | Copyright (C) 2011-2013, Kolab Systems AG |
- | |
- | 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. |
- | |
- +-----------------------------------------------------------------------+
- | Authors: Thomas Bruederli <roundcube@gmail.com> |
- | Aleksander 'A.L.E.C' Machniak <alec@alec.pl> |
- | Charles McNulty <charles@charlesmcnulty.com> |
- +-----------------------------------------------------------------------+
- | Requires: jquery.js, common.js, list.js |
- +-----------------------------------------------------------------------+
-*/
-
-function rcube_webmail()
-{
- this.labels = {};
- this.buttons = {};
- this.buttons_sel = {};
- this.gui_objects = {};
- this.gui_containers = {};
- this.commands = {};
- this.command_handlers = {};
- this.onloads = [];
- this.messages = {};
- this.group2expand = {};
-
- // webmail client settings
- this.dblclick_time = 500;
- this.message_time = 4000;
- this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi');
-
- // environment defaults
- this.env = {
- request_timeout: 180, // seconds
- draft_autosave: 0, // seconds
- comm_path: './',
- blankpage: 'program/resources/blank.gif',
- recipients_separator: ',',
- recipients_delimiter: ', ',
- popup_width: 1150,
- popup_width_small: 900
- };
-
- // create protected reference to myself
- this.ref = 'rcmail';
- var ref = this;
-
- // set jQuery ajax options
- $.ajaxSetup({
- cache: false,
- timeout: this.env.request_timeout * 1000,
- error: function(request, status, err){ ref.http_error(request, status, err); },
- beforeSend: function(xmlhttp){ xmlhttp.setRequestHeader('X-Roundcube-Request', ref.env.request_token); }
- });
-
- // unload fix
- $(window).bind('beforeunload', function() { rcmail.unload = true; });
-
- // set environment variable(s)
- this.set_env = function(p, value)
- {
- if (p != null && typeof p === 'object' && !value)
- for (var n in p)
- this.env[n] = p[n];
- else
- this.env[p] = value;
- };
-
- // add a localized label to the client environment
- this.add_label = function(p, value)
- {
- if (typeof p == 'string')
- this.labels[p] = value;
- else if (typeof p == 'object')
- $.extend(this.labels, p);
- };
-
- // add a button to the button list
- this.register_button = function(command, id, type, act, sel, over)
- {
- var button_prop = {id:id, type:type};
-
- if (act) button_prop.act = act;
- if (sel) button_prop.sel = sel;
- if (over) button_prop.over = over;
-
- if (!this.buttons[command])
- this.buttons[command] = [];
-
- this.buttons[command].push(button_prop);
-
- if (this.loaded)
- init_button(command, button_prop);
- };
-
- // register a specific gui object
- this.gui_object = function(name, id)
- {
- this.gui_objects[name] = this.loaded ? rcube_find_object(id) : id;
- };
-
- // register a container object
- this.gui_container = function(name, id)
- {
- this.gui_containers[name] = id;
- };
-
- // add a GUI element (html node) to a specified container
- this.add_element = function(elm, container)
- {
- if (this.gui_containers[container] && this.gui_containers[container].jquery)
- this.gui_containers[container].append(elm);
- };
-
- // register an external handler for a certain command
- this.register_command = function(command, callback, enable)
- {
- this.command_handlers[command] = callback;
-
- if (enable)
- this.enable_command(command, true);
- };
-
- // execute the given script on load
- this.add_onload = function(f)
- {
- this.onloads.push(f);
- };
-
- // initialize webmail client
- this.init = function()
- {
- var n, p = this;
- this.task = this.env.task;
-
- // check browser
- if (!bw.dom || !bw.xmlhttp_test() || (bw.mz && bw.vendver < 1.9)) {
- this.goto_url('error', '_code=0x199');
- return;
- }
-
- // find all registered gui containers
- for (n in this.gui_containers)
- this.gui_containers[n] = $('#'+this.gui_containers[n]);
-
- // find all registered gui objects
- for (n in this.gui_objects)
- this.gui_objects[n] = rcube_find_object(this.gui_objects[n]);
-
- // clickjacking protection
- if (this.env.x_frame_options) {
- try {
- // bust frame if not allowed
- if (this.env.x_frame_options == 'deny' && top.location.href != self.location.href)
- top.location.href = self.location.href;
- else if (top.location.hostname != self.location.hostname)
- throw 1;
- } catch (e) {
- // possible clickjacking attack: disable all form elements
- $('form').each(function(){ ref.lock_form(this, true); });
- this.display_message("Blocked: possible clickjacking attack!", 'error');
- return;
- }
- }
-
- // init registered buttons
- this.init_buttons();
-
- // tell parent window that this frame is loaded
- if (this.is_framed()) {
- parent.rcmail.set_busy(false, null, parent.rcmail.env.frame_lock);
- parent.rcmail.env.frame_lock = null;
- }
-
- // enable general commands
- this.enable_command('close', 'logout', 'mail', 'addressbook', 'settings', 'save-pref',
- 'compose', 'undo', 'about', 'switch-task', 'menu-open', 'menu-save', true);
-
- if (this.env.permaurl)
- this.enable_command('permaurl', 'extwin', true);
-
- switch (this.task) {
-
- case 'mail':
- // enable mail commands
- this.enable_command('list', 'checkmail', 'add-contact', 'search', 'reset-search', 'collapse-folder', 'import-messages', true);
-
- if (this.gui_objects.messagelist) {
- this.message_list = new rcube_list_widget(this.gui_objects.messagelist, {
- multiselect:true, multiexpand:true, draggable:true, keyboard:true,
- column_movable:this.env.col_movable, dblclick_time:this.dblclick_time
- });
- this.message_list.row_init = function(o){ p.init_message_row(o); };
- this.message_list.addEventListener('dblclick', function(o){ p.msglist_dbl_click(o); });
- this.message_list.addEventListener('click', function(o){ p.msglist_click(o); });
- this.message_list.addEventListener('keypress', function(o){ p.msglist_keypress(o); });
- this.message_list.addEventListener('select', function(o){ p.msglist_select(o); });
- this.message_list.addEventListener('dragstart', function(o){ p.drag_start(o); });
- this.message_list.addEventListener('dragmove', function(e){ p.drag_move(e); });
- this.message_list.addEventListener('dragend', function(e){ p.drag_end(e); });
- this.message_list.addEventListener('expandcollapse', function(e){ p.msglist_expand(e); });
- this.message_list.addEventListener('column_replace', function(e){ p.msglist_set_coltypes(e); });
- this.message_list.addEventListener('listupdate', function(e){ p.triggerEvent('listupdate', e); });
-
- document.onmouseup = function(e){ return p.doc_mouse_up(e); };
- this.gui_objects.messagelist.parentNode.onmousedown = function(e){ return p.click_on_list(e); };
-
- this.message_list.init();
- this.enable_command('toggle_status', 'toggle_flag', 'sort', true);
-
- // load messages
- this.command('list');
-
- $(this.gui_objects.qsearchbox).val(this.env.search_text).focusin(function() { rcmail.message_list.blur(); });
- }
-
- this.set_button_titles();
-
- this.env.message_commands = ['show', 'reply', 'reply-all', 'reply-list',
- 'move', 'copy', 'delete', 'open', 'mark', 'edit', 'viewsource',
- 'print', 'load-attachment', 'download-attachment', 'show-headers', 'hide-headers', 'download',
- 'forward', 'forward-inline', 'forward-attachment', 'change-format'];
-
- if (this.env.action == 'show' || this.env.action == 'preview') {
- this.enable_command(this.env.message_commands, this.env.uid);
- this.enable_command('reply-list', this.env.list_post);
-
- if (this.env.action == 'show') {
- this.http_request('pagenav', {_uid: this.env.uid, _mbox: this.env.mailbox, _search: this.env.search_request},
- this.display_message('', 'loading'));
- }
-
- if (this.env.blockedobjects) {
- if (this.gui_objects.remoteobjectsmsg)
- this.gui_objects.remoteobjectsmsg.style.display = 'block';
- this.enable_command('load-images', 'always-load', true);
- }
-
- // make preview/message frame visible
- if (this.env.action == 'preview' && this.is_framed()) {
- this.enable_command('compose', 'add-contact', false);
- parent.rcmail.show_contentframe(true);
- }
- }
- else if (this.env.action == 'compose') {
- this.env.address_group_stack = [];
- this.env.compose_commands = ['send-attachment', 'remove-attachment', 'send', 'cancel',
- 'toggle-editor', 'list-adresses', 'pushgroup', 'search', 'reset-search', 'extwin',
- 'insert-response', 'save-response'];
-
- if (this.env.drafts_mailbox)
- this.env.compose_commands.push('savedraft')
-
- this.enable_command(this.env.compose_commands, 'identities', 'responses', true);
-
- // add more commands (not enabled)
- $.merge(this.env.compose_commands, ['add-recipient', 'firstpage', 'previouspage', 'nextpage', 'lastpage']);
-
- if (this.env.spellcheck) {
- this.env.spellcheck.spelling_state_observer = function(s) { ref.spellcheck_state(); };
- this.env.compose_commands.push('spellcheck')
- this.enable_command('spellcheck', true);
- }
-
- // init canned response functions
- if (this.gui_objects.responseslist) {
- $('a.insertresponse', this.gui_objects.responseslist)
- .attr('unselectable', 'on')
- .mousedown(function(e){ return rcube_event.cancel(e); })
- .mouseup(function(e){
- ref.command('insert-response', $(this).attr('rel'));
- $(document.body).trigger('mouseup'); // hides the menu
- return rcube_event.cancel(e);
- });
-
- // avoid textarea loosing focus when hitting the save-response button/link
- for (var i=0; this.buttons['save-response'] && i < this.buttons['save-response'].length; i++) {
- $('#'+this.buttons['save-response'][i].id).mousedown(function(e){ return rcube_event.cancel(e); })
- }
- }
-
- document.onmouseup = function(e){ return p.doc_mouse_up(e); };
-
- // init message compose form
- this.init_messageform();
- }
- else if (this.env.action == 'get')
- this.enable_command('download', 'print', true);
- // show printing dialog
- else if (this.env.action == 'print' && this.env.uid) {
- if (bw.safari)
- setTimeout('window.print()', 10);
- else
- window.print();
- }
-
- // get unread count for each mailbox
- if (this.gui_objects.mailboxlist) {
- this.env.unread_counts = {};
- this.gui_objects.folderlist = this.gui_objects.mailboxlist;
- this.http_request('getunread');
- }
-
- // init address book widget
- 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.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();
- }
-
- if (this.gui_objects.addressbookslist) {
- this.gui_objects.folderlist = this.gui_objects.addressbookslist;
- this.enable_command('list-adresses', true);
- }
-
- // ask user to send MDN
- if (this.env.mdn_request && this.env.uid) {
- var postact = 'sendmdn',
- postdata = {_uid: this.env.uid, _mbox: this.env.mailbox};
- if (!confirm(this.get_label('mdnrequest'))) {
- postdata._flag = 'mdnsent';
- postact = 'mark';
- }
- this.http_post(postact, postdata);
- }
-
- // detect browser capabilities
- if (!this.is_framed() && !this.env.extwin)
- this.browser_capabilities_check();
-
- break;
-
- case 'addressbook':
- this.env.address_group_stack = [];
-
- if (this.gui_objects.folderlist)
- this.env.contactfolders = $.extend($.extend({}, this.env.address_sources), this.env.contactgroups);
-
- this.enable_command('add', 'import', this.env.writable_source);
- this.enable_command('list', 'listgroup', 'pushgroup', 'popgroup', 'listsearch', 'search', 'reset-search', 'advanced-search', true);
-
- if (this.gui_objects.contactslist) {
- this.contact_list = new rcube_list_widget(this.gui_objects.contactslist,
- {multiselect:true, draggable:this.gui_objects.folderlist?true:false, keyboard:true});
- this.contact_list.row_init = function(row){ p.triggerEvent('insertrow', { cid:row.uid, row:row }); };
- this.contact_list.addEventListener('keypress', function(o){ p.contactlist_keypress(o); });
- this.contact_list.addEventListener('select', function(o){ p.contactlist_select(o); });
- this.contact_list.addEventListener('dragstart', function(o){ p.drag_start(o); });
- this.contact_list.addEventListener('dragmove', function(e){ p.drag_move(e); });
- this.contact_list.addEventListener('dragend', function(e){ p.drag_end(e); });
- this.contact_list.init();
-
- if (this.env.cid)
- this.contact_list.highlight_row(this.env.cid);
-
- this.gui_objects.contactslist.parentNode.onmousedown = function(e){ return p.click_on_list(e); };
- document.onmouseup = function(e){ return p.doc_mouse_up(e); };
-
- $(this.gui_objects.qsearchbox).focusin(function() { rcmail.contact_list.blur(); });
-
- this.update_group_commands();
- this.command('list');
- }
-
- this.set_page_buttons();
-
- if (this.env.cid) {
- this.enable_command('show', 'edit', true);
- // register handlers for group assignment via checkboxes
- if (this.gui_objects.editform) {
- $('input.groupmember').change(function() {
- ref.group_member_change(this.checked ? 'add' : 'del', ref.env.cid, ref.env.source, this.value);
- });
- }
- }
-
- if (this.gui_objects.editform) {
- this.enable_command('save', true);
- if (this.env.action == 'add' || this.env.action == 'edit' || this.env.action == 'search')
- this.init_contact_form();
- }
-
- break;
-
- case 'settings':
- this.enable_command('preferences', 'identities', 'responses', 'save', 'folders', true);
-
- if (this.env.action == 'identities') {
- this.enable_command('add', this.env.identities_level < 2);
- }
- else if (this.env.action == 'edit-identity' || this.env.action == 'add-identity') {
- this.enable_command('save', 'edit', 'toggle-editor', true);
- this.enable_command('delete', this.env.identities_level < 2);
- }
- else if (this.env.action == 'folders') {
- this.enable_command('subscribe', 'unsubscribe', 'create-folder', 'rename-folder', true);
- }
- else if (this.env.action == 'edit-folder' && this.gui_objects.editform) {
- this.enable_command('save', 'folder-size', true);
- parent.rcmail.env.exists = this.env.messagecount;
- parent.rcmail.enable_command('purge', this.env.messagecount);
- }
- else if (this.env.action == 'responses') {
- this.enable_command('add', true);
- }
-
- if (this.gui_objects.identitieslist) {
- this.identity_list = new rcube_list_widget(this.gui_objects.identitieslist, {multiselect:false, draggable:false, keyboard:false});
- this.identity_list.addEventListener('select', function(o){ p.identity_select(o); });
- this.identity_list.init();
- this.identity_list.focus();
-
- if (this.env.iid)
- this.identity_list.highlight_row(this.env.iid);
- }
- else if (this.gui_objects.sectionslist) {
- this.sections_list = new rcube_list_widget(this.gui_objects.sectionslist, {multiselect:false, draggable:false, keyboard:false});
- this.sections_list.addEventListener('select', function(o){ p.section_select(o); });
- this.sections_list.init();
- this.sections_list.focus();
- }
- else if (this.gui_objects.subscriptionlist) {
- this.init_subscription_list();
- }
- else if (this.gui_objects.responseslist) {
- this.responses_list = new rcube_list_widget(this.gui_objects.responseslist, {multiselect:false, draggable:false, keyboard:false});
- this.responses_list.addEventListener('select', function(list) {
- var win, id = list.get_single_selection();
- p.enable_command('delete', !!id && $.inArray(id, p.env.readonly_responses) < 0);
- if (id && (win = p.get_frame_window(p.env.contentframe))) {
- p.set_busy(true);
- p.location_href({ _action:'edit-response', _key:id, _framed:1 }, win);
- }
- });
- this.responses_list.init();
- this.responses_list.focus();
- }
-
- break;
-
- case 'login':
- var input_user = $('#rcmloginuser');
- input_user.bind('keyup', function(e){ return rcmail.login_user_keyup(e); });
-
- if (input_user.val() == '')
- input_user.focus();
- else
- $('#rcmloginpwd').focus();
-
- // detect client timezone
- if (window.jstz && !bw.ie6) {
- var timezone = jstz.determine();
- if (timezone.name())
- $('#rcmlogintz').val(timezone.name());
- }
- else {
- $('#rcmlogintz').val(new Date().getStdTimezoneOffset() / -60);
- }
-
- // display 'loading' message on form submit, lock submit button
- $('form').submit(function () {
- $('input[type=submit]', this).prop('disabled', true);
- rcmail.clear_messages();
- rcmail.display_message('', 'loading');
- });
-
- this.enable_command('login', true);
- break;
- }
-
- // select first input field in an edit form
- if (this.gui_objects.editform)
- $("input,select,textarea", this.gui_objects.editform)
- .not(':hidden').not(':disabled').first().select();
-
- // unset contentframe variable if preview_pane is enabled
- if (this.env.contentframe && !$('#' + this.env.contentframe).is(':visible'))
- this.env.contentframe = null;
-
- // prevent from form submit with Enter key in file input fields
- if (bw.ie)
- $('input[type=file]').keydown(function(e) { if (e.keyCode == '13') e.preventDefault(); });
-
- // flag object as complete
- this.loaded = true;
- this.env.lastrefresh = new Date();
-
- // show message
- if (this.pending_message)
- this.display_message(this.pending_message[0], this.pending_message[1], this.pending_message[2]);
-
- // map implicit containers
- if (this.gui_objects.folderlist) {
- this.gui_containers.foldertray = $(this.gui_objects.folderlist);
-
- // init treelist widget
- if (window.rcube_treelist_widget) {
- this.treelist = new rcube_treelist_widget(this.gui_objects.folderlist, {
- id_prefix: 'rcmli',
- id_encode: this.html_identifier_encode,
- id_decode: this.html_identifier_decode,
- check_droptarget: function(node){ return !node.virtual && ref.check_droptarget(node.id) }
- });
- this.treelist.addEventListener('collapse', function(node){ ref.folder_collapsed(node) });
- this.treelist.addEventListener('expand', function(node){ ref.folder_collapsed(node) });
- this.treelist.addEventListener('select', function(node){ ref.triggerEvent('selectfolder', { folder:node.id, prefix:'rcmli' }) });
- }
- }
-
- // activate html5 file drop feature (if browser supports it and if configured)
- if (this.gui_objects.filedrop && this.env.filedrop && ((window.XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.sendAsBinary) || window.FormData)) {
- $(document.body).bind('dragover dragleave drop', function(e){ return ref.document_drag_hover(e, e.type == 'dragover'); });
- $(this.gui_objects.filedrop).addClass('droptarget')
- .bind('dragover dragleave', function(e){ return ref.file_drag_hover(e, e.type == 'dragover'); })
- .get(0).addEventListener('drop', function(e){ return ref.file_dropped(e); }, false);
- }
-
- // trigger init event hook
- this.triggerEvent('init', { task:this.task, action:this.env.action });
-
- // execute all foreign onload scripts
- // @deprecated
- for (var i in this.onloads) {
- if (typeof this.onloads[i] === 'string')
- eval(this.onloads[i]);
- else if (typeof this.onloads[i] === 'function')
- this.onloads[i]();
- }
-
- // start keep-alive and refresh intervals
- this.start_refresh();
- this.start_keepalive();
- };
-
- this.log = function(msg)
- {
- if (window.console && console.log)
- console.log(msg);
- };
-
- /*********************************************************/
- /********* client command interface *********/
- /*********************************************************/
-
- // execute a specific command on the web client
- this.command = function(command, props, obj, event)
- {
- var ret, uid, cid, url, flag;
-
- if (obj && obj.blur)
- obj.blur();
-
- if (this.busy)
- return false;
-
- // let the browser handle this click (shift/ctrl usually opens the link in a new window/tab)
- if ((obj && obj.href && String(obj.href).indexOf('#') < 0) && rcube_event.get_modifier(event)) {
- return true;
- }
-
- // command not supported or allowed
- if (!this.commands[command]) {
- // pass command to parent window
- if (this.is_framed())
- parent.rcmail.command(command, props);
-
- return false;
- }
-
- // check input before leaving compose step
- if (this.task == 'mail' && this.env.action == 'compose' && $.inArray(command, this.env.compose_commands)<0) {
- if (this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning')))
- return false;
- }
-
- // process external commands
- if (typeof this.command_handlers[command] === 'function') {
- ret = this.command_handlers[command](props, obj);
- return ret !== undefined ? ret : (obj ? false : true);
- }
- else if (typeof this.command_handlers[command] === 'string') {
- ret = window[this.command_handlers[command]](props, obj);
- return ret !== undefined ? ret : (obj ? false : true);
- }
-
- // trigger plugin hooks
- this.triggerEvent('actionbefore', {props:props, action:command});
- ret = this.triggerEvent('before'+command, props);
- if (ret !== undefined) {
- // abort if one of the handlers returned false
- if (ret === false)
- return false;
- else
- props = ret;
- }
-
- ret = undefined;
-
- // process internal command
- switch (command) {
-
- case 'login':
- if (this.gui_objects.loginform)
- this.gui_objects.loginform.submit();
- break;
-
- // commands to switch task
- case 'mail':
- case 'addressbook':
- case 'settings':
- case 'logout':
- this.switch_task(command);
- break;
-
- case 'about':
- this.redirect('?_task=settings&_action=about', false);
- break;
-
- case 'permaurl':
- if (obj && obj.href && obj.target)
- return true;
- else if (this.env.permaurl)
- parent.location.href = this.env.permaurl;
- break;
-
- case 'extwin':
- if (this.env.action == 'compose') {
- var form = this.gui_objects.messageform,
- win = this.open_window('');
-
- $("input[name='_action']", form).val('compose');
- form.action = this.url('mail/compose', { _id: this.env.compose_id, _extwin: 1 });
- form.target = win.name;
- form.submit();
- }
- else {
- this.open_window(this.env.permaurl, true);
- }
- break;
-
- case 'change-format':
- url = this.env.permaurl + '&_format=' + props;
-
- if (this.env.action == 'preview')
- url = url.replace(/_action=show/, '_action=preview') + '&_framed=1';
- if (this.env.extwin)
- url += '&_extwin=1';
-
- location.href = url;
- break;
-
- case 'menu-open':
- if (props && props.menu == 'attachmentmenu') {
- var mimetype = this.env.attachments[props.id];
- this.enable_command('open-attachment', mimetype && this.env.mimetypes && $.inArray(mimetype, this.env.mimetypes) >= 0);
- }
-
- case 'menu-save':
- this.triggerEvent(command, {props:props});
- return false;
-
- case 'open':
- if (uid = this.get_single_uid()) {
- obj.href = this.url('show', {_mbox: this.env.mailbox, _uid: uid});
- return true;
- }
- break;
-
- case 'close':
- if (this.env.extwin)
- window.close();
- break;
-
- case 'list':
- if (props && props != '')
- this.reset_qsearch();
- if (this.env.action == 'compose' && this.env.extwin)
- window.close();
- else if (this.task == 'mail') {
- this.list_mailbox(props);
- this.set_button_titles();
- }
- else if (this.task == 'addressbook')
- this.list_contacts(props);
- break;
-
- case 'sort':
- var sort_order = this.env.sort_order,
- sort_col = !this.env.disabled_sort_col ? props : this.env.sort_col;
-
- if (!this.env.disabled_sort_order)
- sort_order = this.env.sort_col == sort_col && sort_order == 'ASC' ? 'DESC' : 'ASC';
-
- // set table header and update env
- this.set_list_sorting(sort_col, sort_order);
-
- // reload message list
- this.list_mailbox('', '', sort_col+'_'+sort_order);
- break;
-
- case 'nextpage':
- this.list_page('next');
- break;
-
- case 'lastpage':
- this.list_page('last');
- break;
-
- case 'previouspage':
- this.list_page('prev');
- break;
-
- case 'firstpage':
- this.list_page('first');
- break;
-
- case 'expunge':
- if (this.env.exists)
- this.expunge_mailbox(this.env.mailbox);
- break;
-
- case 'purge':
- case 'empty-mailbox':
- if (this.env.exists)
- this.purge_mailbox(this.env.mailbox);
- break;
-
- // common commands used in multiple tasks
- case 'show':
- if (this.task == 'mail') {
- uid = this.get_single_uid();
- if (uid && (!this.env.uid || uid != this.env.uid)) {
- if (this.env.mailbox == this.env.drafts_mailbox)
- this.open_compose_step({ _draft_uid: uid, _mbox: this.env.mailbox });
- else
- this.show_message(uid);
- }
- }
- else if (this.task == 'addressbook') {
- cid = props ? props : this.get_single_cid();
- if (cid && !(this.env.action == 'show' && cid == this.env.cid))
- this.load_contact(cid, 'show');
- }
- break;
-
- case 'add':
- if (this.task == 'addressbook')
- this.load_contact(0, 'add');
- else if (this.task == 'settings' && this.env.action == 'responses') {
- var frame;
- if ((frame = this.get_frame_window(this.env.contentframe))) {
- this.set_busy(true);
- this.location_href({ _action:'add-response', _framed:1 }, frame);
- }
- }
- else if (this.task == 'settings') {
- this.identity_list.clear_selection();
- this.load_identity(0, 'add-identity');
- }
- break;
-
- case 'edit':
- if (this.task == 'addressbook' && (cid = this.get_single_cid()))
- this.load_contact(cid, 'edit');
- else if (this.task == 'settings' && props)
- this.load_identity(props, 'edit-identity');
- else if (this.task == 'mail' && (cid = this.get_single_uid())) {
- url = { _mbox: this.env.mailbox };
- url[this.env.mailbox == this.env.drafts_mailbox && props != 'new' ? '_draft_uid' : '_uid'] = cid;
- this.open_compose_step(url);
- }
- break;
-
- case 'save':
- var input, form = this.gui_objects.editform;
- if (form) {
- // adv. search
- if (this.env.action == 'search') {
- }
- // user prefs
- else if ((input = $("input[name='_pagesize']", form)) && input.length && isNaN(parseInt(input.val()))) {
- alert(this.get_label('nopagesizewarning'));
- input.focus();
- break;
- }
- // contacts/identities
- else {
- // reload form
- if (props == 'reload') {
- form.action += '?_reload=1';
- }
- else if (this.task == 'settings' && (this.env.identities_level % 2) == 0 &&
- (input = $("input[name='_email']", form)) && input.length && !rcube_check_email(input.val())
- ) {
- alert(this.get_label('noemailwarning'));
- input.focus();
- break;
- }
-
- // clear empty input fields
- $('input.placeholder').each(function(){ if (this.value == this._placeholder) this.value = ''; });
- }
-
- // add selected source (on the list)
- if (parent.rcmail && parent.rcmail.env.source)
- form.action = this.add_url(form.action, '_orig_source', parent.rcmail.env.source);
-
- form.submit();
- }
- break;
-
- case 'delete':
- // mail task
- if (this.task == 'mail')
- this.delete_messages(event);
- // addressbook task
- else if (this.task == 'addressbook')
- this.delete_contacts();
- // settings: canned response
- else if (this.task == 'settings' && this.env.action == 'responses')
- this.delete_response();
- // settings: user identities
- else if (this.task == 'settings')
- this.delete_identity();
- break;
-
- // mail task commands
- case 'move':
- case 'moveto': // deprecated
- if (this.task == 'mail')
- this.move_messages(props);
- else if (this.task == 'addressbook')
- this.move_contacts(props);
- break;
-
- case 'copy':
- if (this.task == 'mail')
- this.copy_messages(props);
- else if (this.task == 'addressbook')
- this.copy_contacts(props);
- break;
-
- case 'mark':
- if (props)
- this.mark_message(props);
- break;
-
- case 'toggle_status':
- case 'toggle_flag':
- flag = command == 'toggle_flag' ? 'flagged' : 'read';
-
- if (uid = props) {
- // toggle flagged/unflagged
- if (flag == 'flagged') {
- if (this.message_list.rows[uid].flagged)
- flag = 'unflagged';
- }
- // toggle read/unread
- else if (this.message_list.rows[uid].deleted)
- flag = 'undelete';
- else if (!this.message_list.rows[uid].unread)
- flag = 'unread';
-
- this.mark_message(flag, uid);
- }
-
- break;
-
- case 'always-load':
- if (this.env.uid && this.env.sender) {
- this.add_contact(this.env.sender);
- setTimeout(function(){ ref.command('load-images'); }, 300);
- break;
- }
-
- case 'load-images':
- if (this.env.uid)
- this.show_message(this.env.uid, true, this.env.action=='preview');
- break;
-
- case 'load-attachment':
- case 'open-attachment':
- case 'download-attachment':
- var qstring = '_mbox='+urlencode(this.env.mailbox)+'&_uid='+this.env.uid+'&_part='+props,
- mimetype = this.env.attachments[props];
-
- // open attachment in frame if it's of a supported mimetype
- if (command != 'download-attachment' && mimetype && this.env.mimetypes && $.inArray(mimetype, this.env.mimetypes) >= 0) {
- if (this.open_window(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1'))
- break;
- }
-
- this.goto_url('get', qstring+'&_download=1', false);
- break;
-
- case 'select-all':
- this.select_all_mode = props ? false : true;
- this.dummy_select = true; // prevent msg opening if there's only one msg on the list
- if (props == 'invert')
- this.message_list.invert_selection();
- else
- this.message_list.select_all(props == 'page' ? '' : props);
- this.dummy_select = null;
- break;
-
- case 'select-none':
- this.select_all_mode = false;
- this.message_list.clear_selection();
- break;
-
- case 'expand-all':
- this.env.autoexpand_threads = 1;
- this.message_list.expand_all();
- break;
-
- case 'expand-unread':
- this.env.autoexpand_threads = 2;
- this.message_list.collapse_all();
- this.expand_unread();
- break;
-
- case 'collapse-all':
- this.env.autoexpand_threads = 0;
- this.message_list.collapse_all();
- break;
-
- case 'nextmessage':
- if (this.env.next_uid)
- this.show_message(this.env.next_uid, false, this.env.action == 'preview');
- break;
-
- case 'lastmessage':
- if (this.env.last_uid)
- this.show_message(this.env.last_uid);
- break;
-
- case 'previousmessage':
- if (this.env.prev_uid)
- this.show_message(this.env.prev_uid, false, this.env.action == 'preview');
- break;
-
- case 'firstmessage':
- if (this.env.first_uid)
- this.show_message(this.env.first_uid);
- break;
-
- case 'compose':
- url = {};
-
- if (this.task == 'mail') {
- url._mbox = this.env.mailbox;
- if (props)
- url._to = props;
- // also send search request so we can go back to search result after message is sent
- if (this.env.search_request)
- url._search = this.env.search_request;
- }
- // modify url if we're in addressbook
- else if (this.task == 'addressbook') {
- // switch to mail compose step directly
- if (props && props.indexOf('@') > 0) {
- url._to = props;
- }
- else {
- var a_cids = [];
- // use contact id passed as command parameter
- if (props)
- a_cids.push(props);
- // get selected contacts
- else if (this.contact_list)
- a_cids = this.contact_list.get_selection();
-
- if (a_cids.length)
- this.http_post('mailto', { _cid: a_cids.join(','), _source: this.env.source }, true);
- else if (this.env.group)
- this.http_post('mailto', { _gid: this.env.group, _source: this.env.source }, true);
-
- break;
- }
- }
- else if (props)
- url._to = props;
-
- this.open_compose_step(url);
- break;
-
- case 'spellcheck':
- if (this.spellcheck_state()) {
- this.stop_spellchecking();
- }
- else {
- if (window.tinyMCE && tinyMCE.get(this.env.composebody)) {
- tinyMCE.execCommand('mceSpellCheck', true);
- }
- else if (this.env.spellcheck && this.env.spellcheck.spellCheck) {
- this.env.spellcheck.spellCheck();
- }
- }
- this.spellcheck_state();
- break;
-
- case 'savedraft':
- // Reset the auto-save timer
- clearTimeout(this.save_timer);
-
- // compose form did not change (and draft wasn't saved already)
- if (this.env.draft_id && this.cmp_hash == this.compose_field_hash()) {
- this.auto_save_start();
- break;
- }
-
- this.submit_messageform(true);
- break;
-
- case 'send':
- if (!props.nocheck && !this.check_compose_input(command))
- break;
-
- // Reset the auto-save timer
- clearTimeout(this.save_timer);
-
- this.submit_messageform();
- break;
-
- case 'send-attachment':
- // Reset the auto-save timer
- clearTimeout(this.save_timer);
-
- this.upload_file(props || this.gui_objects.uploadform, 'upload');
- break;
-
- case 'insert-sig':
- this.change_identity($("[name='_from']")[0], true);
- break;
-
- case 'list-adresses':
- this.list_contacts(props);
- this.enable_command('add-recipient', false);
- break;
-
- case 'add-recipient':
- this.compose_add_recipient(props);
- break;
-
- case 'reply-all':
- case 'reply-list':
- case 'reply':
- if (uid = this.get_single_uid()) {
- url = {_reply_uid: uid, _mbox: this.env.mailbox};
- if (command == 'reply-all')
- // do reply-list, when list is detected and popup menu wasn't used
- url._all = (!props && this.env.reply_all_mode == 1 && this.commands['reply-list'] ? 'list' : 'all');
- else if (command == 'reply-list')
- url._all = 'list';
-
- this.open_compose_step(url);
- }
- break;
-
- case 'forward-attachment':
- case 'forward-inline':
- case 'forward':
- var uids = this.env.uid ? [this.env.uid] : (this.message_list ? this.message_list.get_selection() : []);
- if (uids.length) {
- url = { _forward_uid: this.uids_to_list(uids), _mbox: this.env.mailbox };
- if (command == 'forward-attachment' || (!props && this.env.forward_attachment) || uids.length > 1)
- url._attachment = 1;
- this.open_compose_step(url);
- }
- break;
-
- case 'print':
- if (this.env.action == 'get') {
- this.gui_objects.messagepartframe.contentWindow.print();
- }
- else if (uid = this.get_single_uid()) {
- ref.printwin = this.open_window(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : ''), true, true);
- if (this.printwin) {
- if (this.env.action != 'show')
- this.mark_message('read', uid);
- }
- }
- break;
-
- case 'viewsource':
- if (uid = this.get_single_uid())
- this.open_window(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true, true);
- break;
-
- case 'download':
- if (this.env.action == 'get') {
- location.href = location.href.replace(/_frame=/, '_download=');
- }
- else if (uid = this.get_single_uid())
- this.goto_url('viewsource', { _uid: uid, _mbox: this.env.mailbox, _save: 1 });
- break;
-
- // quicksearch
- case 'search':
- if (!props && this.gui_objects.qsearchbox)
- props = this.gui_objects.qsearchbox.value;
- if (props) {
- this.qsearch(props);
- break;
- }
-
- // reset quicksearch
- case 'reset-search':
- var n, s = this.env.search_request || this.env.qsearch;
-
- this.reset_qsearch();
- this.select_all_mode = false;
-
- if (s && this.env.action == 'compose') {
- if (this.contact_list)
- this.list_contacts_clear();
- }
- else if (s && this.env.mailbox) {
- this.list_mailbox(this.env.mailbox, 1);
- }
- else if (s && this.task == 'addressbook') {
- if (this.env.source == '') {
- for (n in this.env.address_sources) break;
- this.env.source = n;
- this.env.group = '';
- }
- this.list_contacts(this.env.source, this.env.group, 1);
- }
- break;
-
- case 'pushgroup':
- // add group ID to stack
- this.env.address_group_stack.push(props.id);
- if (obj && event)
- rcube_event.cancel(event);
-
- case 'listgroup':
- this.reset_qsearch();
- this.list_contacts(props.source, props.id);
- break;
-
- case 'popgroup':
- if (this.env.address_group_stack.length > 1) {
- this.env.address_group_stack.pop();
- this.reset_qsearch();
- this.list_contacts(props.source, this.env.address_group_stack[this.env.address_group_stack.length-1]);
- }
- break;
-
- case 'import-messages':
- var form = props || this.gui_objects.importform;
- $('input[name="_unlock"]', form).val(this.set_busy(true, 'importwait'));
- this.upload_file(form, 'import');
- break;
-
- case 'import':
- if (this.env.action == 'import' && this.gui_objects.importform) {
- var file = document.getElementById('rcmimportfile');
- if (file && !file.value) {
- alert(this.get_label('selectimportfile'));
- break;
- }
- this.gui_objects.importform.submit();
- this.set_busy(true, 'importwait');
- this.lock_form(this.gui_objects.importform, true);
- }
- else
- this.goto_url('import', (this.env.source ? '_target='+urlencode(this.env.source)+'&' : ''));
- break;
-
- case 'export':
- if (this.contact_list.rowcount > 0) {
- this.goto_url('export', { _source: this.env.source, _gid: this.env.group, _search: this.env.search_request });
- }
- break;
-
- case 'export-selected':
- if (this.contact_list.rowcount > 0) {
- this.goto_url('export', { _source: this.env.source, _gid: this.env.group, _cid: this.contact_list.get_selection().join(',') });
- }
- break;
-
- case 'upload-photo':
- this.upload_contact_photo(props || this.gui_objects.uploadform);
- break;
-
- case 'delete-photo':
- this.replace_contact_photo('-del-');
- break;
-
- // user settings commands
- case 'preferences':
- case 'identities':
- case 'responses':
- case 'folders':
- this.goto_url('settings/' + command);
- break;
-
- case 'undo':
- this.http_request('undo', '', this.display_message('', 'loading'));
- break;
-
- // unified command call (command name == function name)
- default:
- var func = command.replace(/-/g, '_');
- if (this[func] && typeof this[func] === 'function') {
- ret = this[func](props, obj);
- }
- break;
- }
-
- if (this.triggerEvent('after'+command, props) === false)
- ret = false;
- this.triggerEvent('actionafter', {props:props, action:command});
-
- return ret === false ? false : obj ? false : true;
- };
-
- // set command(s) enabled or disabled
- this.enable_command = function()
- {
- var i, n, args = Array.prototype.slice.call(arguments),
- enable = args.pop(), cmd;
-
- for (n=0; n<args.length; n++) {
- cmd = args[n];
- // argument of type array
- if (typeof cmd === 'string') {
- this.commands[cmd] = enable;
- this.set_button(cmd, (enable ? 'act' : 'pas'));
- this.triggerEvent('enable-command', {command: cmd, status: enable});
- }
- // push array elements into commands array
- else {
- for (i in cmd)
- args.push(cmd[i]);
- }
- }
- };
-
- // lock/unlock interface
- this.set_busy = function(a, message, id)
- {
- if (a && message) {
- var msg = this.get_label(message);
- if (msg == message)
- msg = 'Loading...';
-
- id = this.display_message(msg, 'loading');
- }
- else if (!a && id) {
- this.hide_message(id);
- }
-
- this.busy = a;
- //document.body.style.cursor = a ? 'wait' : 'default';
-
- if (this.gui_objects.editform)
- this.lock_form(this.gui_objects.editform, a);
-
- return id;
- };
-
- // return a localized string
- this.get_label = function(name, domain)
- {
- if (domain && this.labels[domain+'.'+name])
- return this.labels[domain+'.'+name];
- else if (this.labels[name])
- return this.labels[name];
- else
- return name;
- };
-
- // alias for convenience reasons
- this.gettext = this.get_label;
-
- // switch to another application task
- this.switch_task = function(task)
- {
- if (this.task===task && task!='mail')
- return;
-
- var url = this.get_task_url(task);
- if (task=='mail')
- url += '&_mbox=INBOX';
-
- this.redirect(url);
- };
-
- this.get_task_url = function(task, url)
- {
- if (!url)
- url = this.env.comm_path;
-
- return url.replace(/_task=[a-z0-9_-]+/i, '_task='+task);
- };
-
- this.reload = function(delay)
- {
- if (this.is_framed())
- parent.rcmail.reload(delay);
- else if (delay)
- setTimeout(function(){ rcmail.reload(); }, delay);
- else if (window.location)
- location.href = this.env.comm_path + (this.env.action ? '&_action='+this.env.action : '');
- };
-
- // Add variable to GET string, replace old value if exists
- this.add_url = function(url, name, value)
- {
- value = urlencode(value);
-
- if (/(\?.*)$/.test(url)) {
- var urldata = RegExp.$1,
- datax = RegExp('((\\?|&)'+RegExp.escape(name)+'=[^&]*)');
-
- if (datax.test(urldata)) {
- urldata = urldata.replace(datax, RegExp.$2 + name + '=' + value);
- }
- else
- urldata += '&' + name + '=' + value
-
- return url.replace(/(\?.*)$/, urldata);
- }
-
- return url + '?' + name + '=' + value;
- };
-
- this.is_framed = function()
- {
- return (this.env.framed && parent.rcmail && parent.rcmail != this && parent.rcmail.command);
- };
-
- this.save_pref = function(prop)
- {
- var request = {'_name': prop.name, '_value': prop.value};
-
- if (prop.session)
- request['_session'] = prop.session;
- if (prop.env)
- this.env[prop.env] = prop.value;
-
- this.http_post('save-pref', request);
- };
-
- this.html_identifier = function(str, encode)
- {
- return encode ? this.html_identifier_encode(str) : String(str).replace(this.identifier_expr, '_');
- };
-
- this.html_identifier_encode = function(str)
- {
- return Base64.encode(String(str)).replace(/=+$/, '').replace(/\+/g, '-').replace(/\//g, '_');
- };
-
- this.html_identifier_decode = function(str)
- {
- str = String(str).replace(/-/g, '+').replace(/_/g, '/');
-
- while (str.length % 4) str += '=';
-
- return Base64.decode(str);
- };
-
-
- /*********************************************************/
- /********* event handling methods *********/
- /*********************************************************/
-
- this.drag_menu = function(e, target)
- {
- var modkey = rcube_event.get_modifier(e),
- menu = this.gui_objects.dragmenu;
-
- if (menu && modkey == SHIFT_KEY && this.commands['copy']) {
- var pos = rcube_event.get_mouse_pos(e);
- this.env.drag_target = target;
- $(menu).css({top: (pos.y-10)+'px', left: (pos.x-10)+'px'}).show();
- return true;
- }
-
- return false;
- };
-
- this.drag_menu_action = function(action)
- {
- var menu = this.gui_objects.dragmenu;
- if (menu) {
- $(menu).hide();
- }
- this.command(action, this.env.drag_target);
- this.env.drag_target = null;
- };
-
- this.drag_start = function(list)
- {
- var model = this.task == 'mail' ? this.env.mailboxes : this.env.contactfolders;
-
- this.drag_active = true;
-
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
- if (this.preview_read_timer)
- clearTimeout(this.preview_read_timer);
-
- // prepare treelist widget for dragging interactions
- if (this.treelist)
- this.treelist.drag_start();
- };
-
- this.drag_end = function(e)
- {
- this.drag_active = false;
- this.env.last_folder_target = null;
-
- if (this.treelist)
- this.treelist.drag_end();
- };
-
- this.drag_move = function(e)
- {
- if (this.gui_objects.folderlist) {
- var drag_target, oldclass,
- layerclass = 'draglayernormal',
- mouse = rcube_event.get_mouse_pos(e);
-
- if (this.contact_list && this.contact_list.draglayer)
- oldclass = this.contact_list.draglayer.attr('class');
-
- // mouse intersects a valid drop target on the treelist
- if (this.treelist && (drag_target = this.treelist.intersects(mouse, true))) {
- this.env.last_folder_target = drag_target;
- layerclass = 'draglayer' + (this.check_droptarget(drag_target) > 1 ? 'copy' : 'normal');
- }
- else {
- // Clear target, otherwise drag end will trigger move into last valid droptarget
- this.env.last_folder_target = null;
- }
-
- if (layerclass != oldclass && this.contact_list && this.contact_list.draglayer)
- this.contact_list.draglayer.attr('class', layerclass);
- }
- };
-
- this.collapse_folder = function(name)
- {
- if (this.treelist)
- this.treelist.toggle(name);
- };
-
- this.folder_collapsed = function(node)
- {
- var prefname = this.env.task == 'addressbook' ? 'collapsed_abooks' : 'collapsed_folders';
-
- if (node.collapsed) {
- this.env[prefname] = this.env[prefname] + '&'+urlencode(node.id)+'&';
-
- // select the folder if one of its childs is currently selected
- // don't select if it's virtual (#1488346)
- if (this.env.mailbox && this.env.mailbox.startsWith(name + this.env.delimiter) && !node.virtual)
- this.command('list', name);
- }
- else {
- var reg = new RegExp('&'+urlencode(node.id)+'&');
- this.env[prefname] = this.env[prefname].replace(reg, '');
- }
-
- if (!this.drag_active) {
- this.command('save-pref', { name: prefname, value: this.env[prefname] });
-
- if (this.env.unread_counts)
- this.set_unread_count_display(node.id, false);
- }
- };
-
- this.doc_mouse_up = function(e)
- {
- var model, list, id;
-
- // ignore event if jquery UI dialog is open
- if ($(rcube_event.get_target(e)).closest('.ui-dialog, .ui-widget-overlay').length)
- return;
-
- if (list = this.message_list)
- model = this.env.mailboxes;
- else if (list = this.contact_list)
- model = this.env.contactfolders;
- else if (this.ksearch_value)
- this.ksearch_blur();
-
- if (list && !rcube_mouse_is_over(e, list.list.parentNode))
- list.blur();
-
- // handle mouse release when dragging
- if (this.drag_active && model && this.env.last_folder_target) {
- var target = model[this.env.last_folder_target];
-
- this.env.last_folder_target = null;
- list.draglayer.hide();
- this.drag_end(e);
-
- if (this.contact_list) {
- if (!this.contacts_drag_menu(e, target))
- this.command('move', target);
- }
- else if (!this.drag_menu(e, target))
- this.command('move', target);
- }
-
- // reset 'pressed' buttons
- if (this.buttons_sel) {
- for (id in this.buttons_sel)
- if (typeof id !== 'function')
- this.button_out(this.buttons_sel[id], id);
- this.buttons_sel = {};
- }
- };
-
- this.click_on_list = function(e)
- {
- if (this.gui_objects.qsearchbox)
- this.gui_objects.qsearchbox.blur();
-
- if (this.message_list)
- this.message_list.focus();
- else if (this.contact_list)
- this.contact_list.focus();
-
- return true;
- };
-
- this.msglist_select = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
- if (this.preview_read_timer)
- clearTimeout(this.preview_read_timer);
-
- var selected = list.get_single_selection();
-
- this.enable_command(this.env.message_commands, selected != null);
- if (selected) {
- // Hide certain command buttons when Drafts folder is selected
- if (this.env.mailbox == this.env.drafts_mailbox)
- this.enable_command('reply', 'reply-all', 'reply-list', 'forward', 'forward-attachment', 'forward-inline', false);
- // Disable reply-list when List-Post header is not set
- else {
- var msg = this.env.messages[selected];
- if (!msg.ml)
- this.enable_command('reply-list', false);
- }
- }
- // Multi-message commands
- this.enable_command('delete', 'move', 'copy', 'mark', 'forward', 'forward-attachment', list.selection.length > 0);
-
- // reset all-pages-selection
- if (selected || (list.selection.length && list.selection.length != list.rowcount))
- this.select_all_mode = false;
-
- // start timer for message preview (wait for double click)
- if (selected && this.env.contentframe && !list.multi_selecting && !this.dummy_select)
- this.preview_timer = setTimeout(function() { ref.msglist_get_preview(); }, this.dblclick_time);
- else if (this.env.contentframe)
- this.show_contentframe(false);
- };
-
- // This allow as to re-select selected message and display it in preview frame
- this.msglist_click = function(list)
- {
- if (list.multi_selecting || !this.env.contentframe)
- return;
-
- if (list.get_single_selection())
- return;
-
- var win = this.get_frame_window(this.env.contentframe);
-
- if (win && win.location.href.indexOf(this.env.blankpage) >= 0) {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
- if (this.preview_read_timer)
- clearTimeout(this.preview_read_timer);
-
- this.preview_timer = setTimeout(function() { ref.msglist_get_preview(); }, this.dblclick_time);
- }
- };
-
- this.msglist_dbl_click = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
- if (this.preview_read_timer)
- clearTimeout(this.preview_read_timer);
-
- var uid = list.get_single_selection();
-
- if (uid && this.env.mailbox == this.env.drafts_mailbox)
- this.open_compose_step({ _draft_uid: uid, _mbox: this.env.mailbox });
- else if (uid)
- this.show_message(uid, false, false);
- };
-
- this.msglist_keypress = function(list)
- {
- if (list.modkey == CONTROL_KEY)
- return;
-
- if (list.key_pressed == list.ENTER_KEY)
- this.command('show');
- else if (list.key_pressed == list.DELETE_KEY || list.key_pressed == list.BACKSPACE_KEY)
- this.command('delete');
- else if (list.key_pressed == 33)
- this.command('previouspage');
- else if (list.key_pressed == 34)
- this.command('nextpage');
- };
-
- this.msglist_get_preview = function()
- {
- var uid = this.get_single_uid();
- if (uid && this.env.contentframe && !this.drag_active)
- this.show_message(uid, false, true);
- else if (this.env.contentframe)
- this.show_contentframe(false);
- };
-
- this.msglist_expand = function(row)
- {
- if (this.env.messages[row.uid])
- this.env.messages[row.uid].expanded = row.expanded;
- $(row.obj)[row.expanded?'addClass':'removeClass']('expanded');
- };
-
- this.msglist_set_coltypes = function(list)
- {
- var i, found, name, cols = list.thead.rows[0].cells;
-
- this.env.coltypes = [];
-
- for (i=0; i<cols.length; i++)
- if (cols[i].id && cols[i].id.startsWith('rcm')) {
- name = cols[i].id.slice(3);
- this.env.coltypes.push(name);
- }
-
- if ((found = $.inArray('flag', this.env.coltypes)) >= 0)
- this.env.flagged_col = found;
-
- if ((found = $.inArray('subject', this.env.coltypes)) >= 0)
- this.env.subject_col = found;
-
- this.command('save-pref', { name: 'list_cols', value: this.env.coltypes, session: 'list_attrib/columns' });
- };
-
- this.check_droptarget = function(id)
- {
- switch (this.task) {
- case 'mail':
- return (this.env.mailboxes[id] && this.env.mailboxes[id].id != this.env.mailbox && !this.env.mailboxes[id].virtual) ? 1 : 0;
-
- case 'settings':
- return id != this.env.mailbox ? 1 : 0;
-
- case 'addressbook':
- var target;
- if (id != this.env.source && (target = this.env.contactfolders[id])) {
- // droptarget is a group
- if (target.type == 'group') {
- if (target.id != this.env.group && !this.env.contactfolders[target.source].readonly) {
- var is_other = this.env.selection_sources.length > 1 || $.inArray(target.source, this.env.selection_sources) == -1;
- return !is_other || this.commands.move ? 1 : 2;
- }
- }
- // droptarget is a (writable) addressbook and it's not the source
- else if (!target.readonly && (this.env.selection_sources.length > 1 || $.inArray(id, this.env.selection_sources) == -1)) {
- return this.commands.move ? 1 : 2;
- }
- }
- }
-
- return 0;
- };
-
- // open popup window
- this.open_window = function(url, small, toolbar)
- {
- var wname = 'rcmextwin' + new Date().getTime();
-
- url += (url.match(/\?/) ? '&' : '?') + '_extwin=1';
-
- if (this.env.standard_windows)
- extwin = window.open(url, wname);
- else {
- var win = this.is_framed() ? parent.window : window,
- page = $(win),
- page_width = page.width(),
- page_height = bw.mz ? $('body', win).height() : page.height(),
- w = Math.min(small ? this.env.popup_width_small : this.env.popup_width, page_width),
- h = page_height, // always use same height
- l = (win.screenLeft || win.screenX) + 20,
- t = (win.screenTop || win.screenY) + 20,
- extwin = window.open(url, wname,
- 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=yes,location=no,scrollbars=yes'
- +(toolbar ? ',toolbar=yes,menubar=yes,status=yes' : ',toolbar=no,menubar=no,status=no'));
- }
-
- // write loading... message to empty windows
- if (!url && extwin.document) {
- extwin.document.write('<html><body>' + this.get_label('loading') + '</body></html>');
- }
-
- // focus window, delayed to bring to front
- window.setTimeout(function() { extwin.focus(); }, 10);
-
- return extwin;
- };
-
-
- /*********************************************************/
- /********* (message) list functionality *********/
- /*********************************************************/
-
- this.init_message_row = function(row)
- {
- var i, fn = {}, self = this, uid = row.uid,
- status_icon = (this.env.status_col != null ? 'status' : 'msg') + 'icn' + row.uid;
-
- if (uid && this.env.messages[uid])
- $.extend(row, this.env.messages[uid]);
-
- // set eventhandler to status icon
- if (row.icon = document.getElementById(status_icon)) {
- fn.icon = function(e) { self.command('toggle_status', uid); };
- }
-
- // save message icon position too
- if (this.env.status_col != null)
- row.msgicon = document.getElementById('msgicn'+row.uid);
- else
- row.msgicon = row.icon;
-
- // set eventhandler to flag icon
- if (this.env.flagged_col != null && (row.flagicon = document.getElementById('flagicn'+row.uid))) {
- fn.flagicon = function(e) { self.command('toggle_flag', uid); };
- }
-
- // set event handler to thread expand/collapse icon
- if (!row.depth && row.has_children && (row.expando = document.getElementById('rcmexpando'+row.uid))) {
- fn.expando = function(e) { self.expand_message_row(e, uid); };
- }
-
- // attach events
- $.each(fn, function(i, f) {
- row[i].onclick = function(e) { f(e); return rcube_event.cancel(e); };
- if (bw.touch) {
- row[i].addEventListener('touchend', function(e) {
- if (e.changedTouches.length == 1) {
- f(e);
- return rcube_event.cancel(e);
- }
- }, false);
- }
- });
-
- this.triggerEvent('insertrow', { uid:uid, row:row });
- };
-
- // create a table row in the message list
- this.add_message_row = function(uid, cols, flags, attop)
- {
- if (!this.gui_objects.messagelist || !this.message_list)
- return false;
-
- // Prevent from adding messages from different folder (#1487752)
- if (flags.mbox != this.env.mailbox && !flags.skip_mbox_check)
- return false;
-
- if (!this.env.messages[uid])
- this.env.messages[uid] = {};
-
- // merge flags over local message object
- $.extend(this.env.messages[uid], {
- deleted: flags.deleted?1:0,
- replied: flags.answered?1:0,
- unread: !flags.seen?1:0,
- forwarded: flags.forwarded?1:0,
- flagged: flags.flagged?1:0,
- has_children: flags.has_children?1:0,
- depth: flags.depth?flags.depth:0,
- unread_children: flags.unread_children?flags.unread_children:0,
- parent_uid: flags.parent_uid?flags.parent_uid:0,
- selected: this.select_all_mode || this.message_list.in_selection(uid),
- ml: flags.ml?1:0,
- ctype: flags.ctype,
- // flags from plugins
- flags: flags.extra_flags
- });
-
- var c, n, col, html, css_class,
- tree = '', expando = '',
- list = this.message_list,
- rows = list.rows,
- message = this.env.messages[uid],
- row_class = 'message'
- + (!flags.seen ? ' unread' : '')
- + (flags.deleted ? ' deleted' : '')
- + (flags.flagged ? ' flagged' : '')
- + (message.selected ? ' selected' : ''),
- row = { cols:[], style:{}, id:'rcmrow'+uid };
-
- // message status icons
- css_class = 'msgicon';
- if (this.env.status_col === null) {
- css_class += ' status';
- if (flags.deleted)
- css_class += ' deleted';
- else if (!flags.seen)
- css_class += ' unread';
- else if (flags.unread_children > 0)
- css_class += ' unreadchildren';
- }
- if (flags.answered)
- css_class += ' replied';
- if (flags.forwarded)
- css_class += ' forwarded';
-
- // update selection
- if (message.selected && !list.in_selection(uid))
- list.selection.push(uid);
-
- // threads
- if (this.env.threading) {
- if (message.depth) {
- // This assumes that div width is hardcoded to 15px,
- tree += '<span id="rcmtab' + uid + '" class="branch" style="width:' + (message.depth * 15) + 'px;">&nbsp;&nbsp;</span>';
-
- if ((rows[message.parent_uid] && rows[message.parent_uid].expanded === false)
- || ((this.env.autoexpand_threads == 0 || this.env.autoexpand_threads == 2) &&
- (!rows[message.parent_uid] || !rows[message.parent_uid].expanded))
- ) {
- row.style.display = 'none';
- message.expanded = false;
- }
- else
- message.expanded = true;
-
- row_class += ' thread expanded';
- }
- else if (message.has_children) {
- if (message.expanded === undefined && (this.env.autoexpand_threads == 1 || (this.env.autoexpand_threads == 2 && message.unread_children))) {
- message.expanded = true;
- }
-
- expando = '<div id="rcmexpando' + uid + '" class="' + (message.expanded ? 'expanded' : 'collapsed') + '">&nbsp;&nbsp;</div>';
- row_class += ' thread' + (message.expanded? ' expanded' : '');
- }
-
- if (flags.unread_children && flags.seen && !message.expanded)
- row_class += ' unroot';
- }
-
- tree += '<span id="msgicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
- row.className = row_class;
-
- // build subject link
- if (!bw.ie && cols.subject) {
- var action = flags.mbox == this.env.drafts_mailbox ? 'compose' : 'show';
- var uid_param = flags.mbox == this.env.drafts_mailbox ? '_draft_uid' : '_uid';
- cols.subject = '<a href="./?_task=mail&_action='+action+'&_mbox='+urlencode(flags.mbox)+'&'+uid_param+'='+uid+'"'+
- ' onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(message.depth+1)+')">'+cols.subject+'</a>';
- }
-
- // add each submitted col
- for (n in this.env.coltypes) {
- c = this.env.coltypes[n];
- col = { className: String(c).toLowerCase() };
-
- if (c == 'flag') {
- css_class = (flags.flagged ? 'flagged' : 'unflagged');
- html = '<span id="flagicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
- }
- else if (c == 'attachment') {
- if (/application\/|multipart\/(m|signed)/.test(flags.ctype))
- html = '<span class="attachment">&nbsp;</span>';
- else if (/multipart\/report/.test(flags.ctype))
- html = '<span class="report">&nbsp;</span>';
- else
- html = '&nbsp;';
- }
- else if (c == 'status') {
- if (flags.deleted)
- css_class = 'deleted';
- else if (!flags.seen)
- css_class = 'unread';
- else if (flags.unread_children > 0)
- css_class = 'unreadchildren';
- else
- css_class = 'msgicon';
- html = '<span id="statusicn'+uid+'" class="'+css_class+'">&nbsp;</span>';
- }
- else if (c == 'threads')
- html = expando;
- else if (c == 'subject') {
- if (bw.ie) {
- col.onmouseover = function() { rcube_webmail.long_subject_title_ex(this, message.depth+1); };
- if (bw.ie8)
- tree = '<span></span>' + tree; // #1487821
- }
- html = tree + cols[c];
- }
- else if (c == 'priority') {
- if (flags.prio > 0 && flags.prio < 6)
- html = '<span class="prio'+flags.prio+'">&nbsp;</span>';
- else
- html = '&nbsp;';
- }
- else
- html = cols[c];
-
- col.innerHTML = html;
- row.cols.push(col);
- }
-
- list.insert_row(row, attop);
-
- // remove 'old' row
- if (attop && this.env.pagesize && list.rowcount > this.env.pagesize) {
- var uid = list.get_last_row();
- list.remove_row(uid);
- list.clear_selection(uid);
- }
- };
-
- this.set_list_sorting = function(sort_col, sort_order)
- {
- // set table header class
- $('#rcm'+this.env.sort_col).removeClass('sorted'+(this.env.sort_order.toUpperCase()));
- if (sort_col)
- $('#rcm'+sort_col).addClass('sorted'+sort_order);
-
- this.env.sort_col = sort_col;
- this.env.sort_order = sort_order;
- };
-
- this.set_list_options = function(cols, sort_col, sort_order, threads)
- {
- var update, post_data = {};
-
- if (sort_col === undefined)
- sort_col = this.env.sort_col;
- if (!sort_order)
- sort_order = this.env.sort_order;
-
- if (this.env.sort_col != sort_col || this.env.sort_order != sort_order) {
- update = 1;
- this.set_list_sorting(sort_col, sort_order);
- }
-
- if (this.env.threading != threads) {
- update = 1;
- post_data._threads = threads;
- }
-
- if (cols && cols.length) {
- // make sure new columns are added at the end of the list
- var i, idx, name, newcols = [], oldcols = this.env.coltypes;
- for (i=0; i<oldcols.length; i++) {
- name = oldcols[i];
- idx = $.inArray(name, cols);
- if (idx != -1) {
- newcols.push(name);
- delete cols[idx];
- }
- }
- for (i=0; i<cols.length; i++)
- if (cols[i])
- newcols.push(cols[i]);
-
- if (newcols.join() != oldcols.join()) {
- update = 1;
- post_data._cols = newcols.join(',');
- }
- }
-
- if (update)
- this.list_mailbox('', '', sort_col+'_'+sort_order, post_data);
- };
-
- // when user double-clicks on a row
- this.show_message = function(id, safe, preview)
- {
- if (!id)
- return;
-
- var win, target = window,
- action = preview ? 'preview': 'show',
- url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.env.mailbox);
-
- if (preview && (win = this.get_frame_window(this.env.contentframe))) {
- target = win;
- url += '&_framed=1';
- }
-
- if (safe)
- url += '&_safe=1';
-
- // also send search request to get the right messages
- if (this.env.search_request)
- url += '&_search='+this.env.search_request;
-
- // add browser capabilities, so we can properly handle attachments
- url += '&_caps='+urlencode(this.browser_capabilities());
-
- if (this.env.extwin)
- url += '&_extwin=1';
-
- if (preview && String(target.location.href).indexOf(url) >= 0) {
- this.show_contentframe(true);
- }
- else {
- if (!preview && this.env.message_extwin && !this.env.extwin)
- this.open_window(this.env.comm_path+url, true);
- else
- this.location_href(this.env.comm_path+url, target, true);
-
- // mark as read and change mbox unread counter
- if (preview && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read >= 0) {
- this.preview_read_timer = setTimeout(function() {
- ref.set_message(id, 'unread', false);
- ref.update_thread_root(id, 'read');
- if (ref.env.unread_counts[ref.env.mailbox]) {
- ref.env.unread_counts[ref.env.mailbox] -= 1;
- ref.set_unread_count(ref.env.mailbox, ref.env.unread_counts[ref.env.mailbox], ref.env.mailbox == 'INBOX');
- }
- if (ref.env.preview_pane_mark_read > 0)
- ref.http_post('mark', {_uid: id, _flag: 'read', _quiet: 1});
- }, this.env.preview_pane_mark_read * 1000);
- }
- }
- };
-
- this.show_contentframe = function(show)
- {
- var frame, win, name = this.env.contentframe;
-
- if (name && (frame = this.get_frame_element(name))) {
- if (!show && (win = this.get_frame_window(name))) {
- if (win.location.href.indexOf(this.env.blankpage) < 0) {
- if (win.stop)
- win.stop();
- else // IE
- win.document.execCommand('Stop');
-
- win.location.href = this.env.blankpage;
- }
- }
- else if (!bw.safari && !bw.konq)
- $(frame)[show ? 'show' : 'hide']();
- }
-
- if (!show && this.env.frame_lock)
- this.set_busy(false, null, this.env.frame_lock);
- };
-
- this.get_frame_element = function(id)
- {
- var frame;
-
- if (id && (frame = document.getElementById(id)))
- return frame;
- };
-
- this.get_frame_window = function(id)
- {
- var frame = this.get_frame_element(id);
-
- if (frame && frame.name && window.frames)
- return window.frames[frame.name];
- };
-
- this.lock_frame = function()
- {
- if (!this.env.frame_lock)
- (this.is_framed() ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading');
- };
-
- // list a specific page
- this.list_page = function(page)
- {
- if (page == 'next')
- page = this.env.current_page+1;
- else if (page == 'last')
- page = this.env.pagecount;
- else if (page == 'prev' && this.env.current_page > 1)
- page = this.env.current_page-1;
- else if (page == 'first' && this.env.current_page > 1)
- page = 1;
-
- if (page > 0 && page <= this.env.pagecount) {
- this.env.current_page = page;
-
- if (this.task == 'addressbook' || this.contact_list)
- this.list_contacts(this.env.source, this.env.group, page);
- else if (this.task == 'mail')
- this.list_mailbox(this.env.mailbox, page);
- }
- };
-
- // sends request to check for recent messages
- this.checkmail = function()
- {
- var lock = this.set_busy(true, 'checkingmail'),
- params = this.check_recent_params();
-
- this.http_request('check-recent', params, lock);
- };
-
- // list messages of a specific mailbox using filter
- this.filter_mailbox = function(filter)
- {
- var lock = this.set_busy(true, 'searching');
-
- this.clear_message_list();
-
- // reset vars
- this.env.current_page = 1;
- this.http_request('search', this.search_params(false, filter), lock);
- };
-
- // list messages of a specific mailbox
- this.list_mailbox = function(mbox, page, sort, url)
- {
- var win, target = window;
-
- if (typeof url != 'object')
- url = {};
-
- if (!mbox)
- mbox = this.env.mailbox ? this.env.mailbox : 'INBOX';
-
- // add sort to url if set
- if (sort)
- url._sort = sort;
-
- // also send search request to get the right messages
- if (this.env.search_request)
- url._search = this.env.search_request;
-
- // set page=1 if changeing to another mailbox
- if (this.env.mailbox != mbox) {
- page = 1;
- this.env.current_page = page;
- this.select_all_mode = false;
- }
-
- // unselect selected messages and clear the list and message data
- this.clear_message_list();
-
- if (mbox != this.env.mailbox || (mbox == this.env.mailbox && !page && !sort))
- url._refresh = 1;
-
- this.select_folder(mbox, '', true);
- this.unmark_folder(mbox, 'recent', '', true);
- this.env.mailbox = mbox;
-
- // load message list remotely
- if (this.gui_objects.messagelist) {
- this.list_mailbox_remote(mbox, page, url);
- return;
- }
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- target = win;
- url._framed = 1;
- }
-
- // load message list to target frame/window
- if (mbox) {
- this.set_busy(true, 'loading');
- url._mbox = mbox;
- if (page)
- url._page = page;
- this.location_href(url, target);
- }
- };
-
- this.clear_message_list = function()
- {
- this.env.messages = {};
- this.last_selected = 0;
-
- this.show_contentframe(false);
- if (this.message_list)
- this.message_list.clear(true);
- };
-
- // send remote request to load message list
- this.list_mailbox_remote = function(mbox, page, post_data)
- {
- // clear message list first
- this.message_list.clear();
-
- var lock = this.set_busy(true, 'loading');
-
- if (typeof post_data != 'object')
- post_data = {};
- post_data._mbox = mbox;
- if (page)
- post_data._page = page;
-
- this.http_request('list', post_data, lock);
- };
-
- // removes messages that doesn't exists from list selection array
- this.update_selection = function()
- {
- var selected = this.message_list.selection,
- rows = this.message_list.rows,
- i, selection = [];
-
- for (i in selected)
- if (rows[selected[i]])
- selection.push(selected[i]);
-
- this.message_list.selection = selection;
- }
-
- // expand all threads with unread children
- this.expand_unread = function()
- {
- var r, tbody = this.gui_objects.messagelist.tBodies[0],
- new_row = tbody.firstChild;
-
- while (new_row) {
- if (new_row.nodeType == 1 && (r = this.message_list.rows[new_row.uid]) && r.unread_children) {
- this.message_list.expand_all(r);
- this.set_unread_children(r.uid);
- }
- new_row = new_row.nextSibling;
- }
- return false;
- };
-
- // thread expanding/collapsing handler
- this.expand_message_row = function(e, uid)
- {
- var row = this.message_list.rows[uid];
-
- // handle unread_children mark
- row.expanded = !row.expanded;
- this.set_unread_children(uid);
- row.expanded = !row.expanded;
-
- this.message_list.expand_row(e, uid);
- };
-
- // message list expanding
- this.expand_threads = function()
- {
- if (!this.env.threading || !this.env.autoexpand_threads || !this.message_list)
- return;
-
- switch (this.env.autoexpand_threads) {
- case 2: this.expand_unread(); break;
- case 1: this.message_list.expand_all(); break;
- }
- };
-
- // Initializes threads indicators/expanders after list update
- this.init_threads = function(roots, mbox)
- {
- // #1487752
- if (mbox && mbox != this.env.mailbox)
- return false;
-
- for (var n=0, len=roots.length; n<len; n++)
- this.add_tree_icons(roots[n]);
- this.expand_threads();
- };
-
- // adds threads tree icons to the list (or specified thread)
- this.add_tree_icons = function(root)
- {
- var i, l, r, n, len, pos, tmp = [], uid = [],
- row, rows = this.message_list.rows;
-
- if (root)
- row = rows[root] ? rows[root].obj : null;
- else
- row = this.message_list.tbody.firstChild;
-
- while (row) {
- if (row.nodeType == 1 && (r = rows[row.uid])) {
- if (r.depth) {
- for (i=tmp.length-1; i>=0; i--) {
- len = tmp[i].length;
- if (len > r.depth) {
- pos = len - r.depth;
- if (!(tmp[i][pos] & 2))
- tmp[i][pos] = tmp[i][pos] ? tmp[i][pos]+2 : 2;
- }
- else if (len == r.depth) {
- if (!(tmp[i][0] & 2))
- tmp[i][0] += 2;
- }
- if (r.depth > len)
- break;
- }
-
- tmp.push(new Array(r.depth));
- tmp[tmp.length-1][0] = 1;
- uid.push(r.uid);
- }
- else {
- if (tmp.length) {
- for (i in tmp) {
- this.set_tree_icons(uid[i], tmp[i]);
- }
- tmp = [];
- uid = [];
- }
- if (root && row != rows[root].obj)
- break;
- }
- }
- row = row.nextSibling;
- }
-
- if (tmp.length) {
- for (i in tmp) {
- this.set_tree_icons(uid[i], tmp[i]);
- }
- }
- };
-
- // adds tree icons to specified message row
- this.set_tree_icons = function(uid, tree)
- {
- var i, divs = [], html = '', len = tree.length;
-
- for (i=0; i<len; i++) {
- if (tree[i] > 2)
- divs.push({'class': 'l3', width: 15});
- else if (tree[i] > 1)
- divs.push({'class': 'l2', width: 15});
- else if (tree[i] > 0)
- divs.push({'class': 'l1', width: 15});
- // separator div
- else if (divs.length && !divs[divs.length-1]['class'])
- divs[divs.length-1].width += 15;
- else
- divs.push({'class': null, width: 15});
- }
-
- for (i=divs.length-1; i>=0; i--) {
- if (divs[i]['class'])
- html += '<div class="tree '+divs[i]['class']+'" />';
- else
- html += '<div style="width:'+divs[i].width+'px" />';
- }
-
- if (html)
- $('#rcmtab'+uid).html(html);
- };
-
- // update parent in a thread
- this.update_thread_root = function(uid, flag)
- {
- if (!this.env.threading)
- return;
-
- var root = this.message_list.find_root(uid);
-
- if (uid == root)
- return;
-
- var p = this.message_list.rows[root];
-
- if (flag == 'read' && p.unread_children) {
- p.unread_children--;
- }
- else if (flag == 'unread' && p.has_children) {
- // unread_children may be undefined
- p.unread_children = p.unread_children ? p.unread_children + 1 : 1;
- }
- else {
- return;
- }
-
- this.set_message_icon(root);
- this.set_unread_children(root);
- };
-
- // update thread indicators for all messages in a thread below the specified message
- // return number of removed/added root level messages
- this.update_thread = function (uid)
- {
- if (!this.env.threading)
- return 0;
-
- var r, parent, count = 0,
- rows = this.message_list.rows,
- row = rows[uid],
- depth = rows[uid].depth,
- roots = [];
-
- if (!row.depth) // root message: decrease roots count
- count--;
- else if (row.unread) {
- // update unread_children for thread root
- parent = this.message_list.find_root(uid);
- rows[parent].unread_children--;
- this.set_unread_children(parent);
- }
-
- parent = row.parent_uid;
-
- // childrens
- row = row.obj.nextSibling;
- while (row) {
- if (row.nodeType == 1 && (r = rows[row.uid])) {
- if (!r.depth || r.depth <= depth)
- break;
-
- r.depth--; // move left
- // reset width and clear the content of a tab, icons will be added later
- $('#rcmtab'+r.uid).width(r.depth * 15).html('');
- if (!r.depth) { // a new root
- count++; // increase roots count
- r.parent_uid = 0;
- if (r.has_children) {
- // replace 'leaf' with 'collapsed'
- $('#rcmrow'+r.uid+' '+'.leaf:first')
- .attr('id', 'rcmexpando' + r.uid)
- .attr('class', (r.obj.style.display != 'none' ? 'expanded' : 'collapsed'))
- .bind('mousedown', {uid:r.uid, p:this},
- function(e) { return e.data.p.expand_message_row(e, e.data.uid); });
-
- r.unread_children = 0;
- roots.push(r);
- }
- // show if it was hidden
- if (r.obj.style.display == 'none')
- $(r.obj).show();
- }
- else {
- if (r.depth == depth)
- r.parent_uid = parent;
- if (r.unread && roots.length)
- roots[roots.length-1].unread_children++;
- }
- }
- row = row.nextSibling;
- }
-
- // update unread_children for roots
- for (var i=0; i<roots.length; i++)
- this.set_unread_children(roots[i].uid);
-
- return count;
- };
-
- this.delete_excessive_thread_rows = function()
- {
- var rows = this.message_list.rows,
- tbody = this.message_list.tbody,
- row = tbody.firstChild,
- cnt = this.env.pagesize + 1;
-
- while (row) {
- if (row.nodeType == 1 && (r = rows[row.uid])) {
- if (!r.depth && cnt)
- cnt--;
-
- if (!cnt)
- this.message_list.remove_row(row.uid);
- }
- row = row.nextSibling;
- }
- };
-
- // set message icon
- this.set_message_icon = function(uid)
- {
- var css_class,
- row = this.message_list.rows[uid];
-
- if (!row)
- return false;
-
- if (row.icon) {
- css_class = 'msgicon';
- if (row.deleted)
- css_class += ' deleted';
- else if (row.unread)
- css_class += ' unread';
- else if (row.unread_children)
- css_class += ' unreadchildren';
- if (row.msgicon == row.icon) {
- if (row.replied)
- css_class += ' replied';
- if (row.forwarded)
- css_class += ' forwarded';
- css_class += ' status';
- }
-
- row.icon.className = css_class;
- }
-
- if (row.msgicon && row.msgicon != row.icon) {
- css_class = 'msgicon';
- if (!row.unread && row.unread_children)
- css_class += ' unreadchildren';
- if (row.replied)
- css_class += ' replied';
- if (row.forwarded)
- css_class += ' forwarded';
-
- row.msgicon.className = css_class;
- }
-
- if (row.flagicon) {
- css_class = (row.flagged ? 'flagged' : 'unflagged');
- row.flagicon.className = css_class;
- }
- };
-
- // set message status
- this.set_message_status = function(uid, flag, status)
- {
- var row = this.message_list.rows[uid];
-
- if (!row)
- return false;
-
- if (flag == 'unread')
- row.unread = status;
- else if(flag == 'deleted')
- row.deleted = status;
- else if (flag == 'replied')
- row.replied = status;
- else if (flag == 'forwarded')
- row.forwarded = status;
- else if (flag == 'flagged')
- row.flagged = status;
- };
-
- // set message row status, class and icon
- this.set_message = function(uid, flag, status)
- {
- var row = this.message_list && this.message_list.rows[uid];
-
- if (!row)
- return false;
-
- if (flag)
- this.set_message_status(uid, flag, status);
-
- var rowobj = $(row.obj);
-
- if (row.unread && !rowobj.hasClass('unread'))
- rowobj.addClass('unread');
- else if (!row.unread && rowobj.hasClass('unread'))
- rowobj.removeClass('unread');
-
- if (row.deleted && !rowobj.hasClass('deleted'))
- rowobj.addClass('deleted');
- else if (!row.deleted && rowobj.hasClass('deleted'))
- rowobj.removeClass('deleted');
-
- if (row.flagged && !rowobj.hasClass('flagged'))
- rowobj.addClass('flagged');
- else if (!row.flagged && rowobj.hasClass('flagged'))
- rowobj.removeClass('flagged');
-
- this.set_unread_children(uid);
- this.set_message_icon(uid);
- };
-
- // sets unroot (unread_children) class of parent row
- this.set_unread_children = function(uid)
- {
- var row = this.message_list.rows[uid];
-
- if (row.parent_uid)
- return;
-
- if (!row.unread && row.unread_children && !row.expanded)
- $(row.obj).addClass('unroot');
- else
- $(row.obj).removeClass('unroot');
- };
-
- // copy selected messages to the specified mailbox
- this.copy_messages = function(mbox)
- {
- if (mbox && typeof mbox === 'object')
- mbox = mbox.id;
-
- // exit if current or no mailbox specified
- if (!mbox || mbox == this.env.mailbox)
- return;
-
- var post_data = this.selection_post_data({_target_mbox: mbox});
-
- // exit if selection is empty
- if (!post_data._uid)
- return;
-
- // send request to server
- this.http_post('copy', post_data, this.display_message(this.get_label('copyingmessage'), 'loading'));
- };
-
- // move selected messages to the specified mailbox
- this.move_messages = function(mbox)
- {
- if (mbox && typeof mbox === 'object')
- mbox = mbox.id;
-
- // exit if current or no mailbox specified
- if (!mbox || mbox == this.env.mailbox)
- return;
-
- var lock = false, post_data = this.selection_post_data({_target_mbox: mbox});
-
- // exit if selection is empty
- if (!post_data._uid)
- return;
-
- // show wait message
- if (this.env.action == 'show')
- lock = this.set_busy(true, 'movingmessage');
- else
- this.show_contentframe(false);
-
- // Hide message command buttons until a message is selected
- this.enable_command(this.env.message_commands, false);
-
- this._with_selected_messages('move', post_data, lock);
- };
-
- // 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);
- }
-
- // if config is set to flag for deletion
- if (this.env.flag_for_deletion) {
- this.mark_message('delete');
- return false;
- }
- // if there isn't a defined trash mailbox or we are in it
- else if (!trash || this.env.mailbox == trash)
- this.permanently_remove_messages();
- // we're in Junk folder and delete_junk is enabled
- else if (this.env.delete_junk && this.env.junk_mailbox && this.env.mailbox == this.env.junk_mailbox)
- this.permanently_remove_messages();
- // if there is a trash mailbox defined and we're not currently in it
- else {
- // if shift was pressed delete it immediately
- if ((list && list.modkey == SHIFT_KEY) || (event && rcube_event.get_modifier(event) == SHIFT_KEY)) {
- if (confirm(this.get_label('deletemessagesconfirm')))
- this.permanently_remove_messages();
- }
- else
- this.move_messages(trash);
- }
-
- return true;
- };
-
- // delete the selected messages permanently
- this.permanently_remove_messages = function()
- {
- var post_data = this.selection_post_data();
-
- // exit if selection is empty
- if (!post_data._uid)
- return;
-
- this.show_contentframe(false);
- this._with_selected_messages('delete', post_data);
- };
-
- // Send a specifc move/delete request with UIDs of all selected messages
- // @private
- this._with_selected_messages = function(action, post_data, lock)
- {
- var count = 0, msg;
-
- // update the list (remove rows, clear selection)
- if (this.message_list) {
- var n, id, root, roots = [],
- selection = this.message_list.get_selection();
-
- for (n=0, len=selection.length; n<len; n++) {
- id = selection[n];
-
- if (this.env.threading) {
- count += this.update_thread(id);
- root = this.message_list.find_root(id);
- if (root != id && $.inArray(root, roots) < 0) {
- roots.push(root);
- }
- }
- this.message_list.remove_row(id, (this.env.display_next && n == selection.length-1));
- }
- // make sure there are no selected rows
- if (!this.env.display_next)
- this.message_list.clear_selection();
- // update thread tree icons
- for (n=0, len=roots.length; n<len; n++) {
- this.add_tree_icons(roots[n]);
- }
- }
-
- if (count < 0)
- post_data._count = (count*-1);
- // remove threads from the end of the list
- else if (count > 0)
- this.delete_excessive_thread_rows();
-
- if (!lock) {
- msg = action == 'move' ? 'movingmessage' : 'deletingmessage';
- lock = this.display_message(this.get_label(msg), 'loading');
- }
-
- // send request to server
- this.http_post(action, post_data, lock);
- };
-
- // build post data for message delete/move/copy/flag requests
- this.selection_post_data = function(data)
- {
- if (typeof(data) != 'object')
- data = {};
-
- data._mbox = this.env.mailbox;
-
- if (!data._uid) {
- var uids = this.env.uid ? [this.env.uid] : this.message_list.get_selection();
- data._uid = this.uids_to_list(uids);
- }
-
- if (this.env.action)
- data._from = this.env.action;
-
- // also send search request to get the right messages
- if (this.env.search_request)
- data._search = this.env.search_request;
-
- if (this.env.display_next && this.env.next_uid)
- data._next_uid = this.env.next_uid;
-
- return data;
- };
-
- // set a specific flag to one or more messages
- this.mark_message = function(flag, uid)
- {
- var a_uids = [], r_uids = [], len, n, id,
- list = this.message_list;
-
- if (uid)
- a_uids[0] = uid;
- else if (this.env.uid)
- a_uids[0] = this.env.uid;
- else if (list)
- a_uids = list.get_selection();
-
- if (!list)
- r_uids = a_uids;
- else {
- list.focus();
- for (n=0, len=a_uids.length; n<len; n++) {
- id = a_uids[n];
- if ((flag == 'read' && list.rows[id].unread)
- || (flag == 'unread' && !list.rows[id].unread)
- || (flag == 'delete' && !list.rows[id].deleted)
- || (flag == 'undelete' && list.rows[id].deleted)
- || (flag == 'flagged' && !list.rows[id].flagged)
- || (flag == 'unflagged' && list.rows[id].flagged))
- {
- r_uids.push(id);
- }
- }
- }
-
- // nothing to do
- if (!r_uids.length && !this.select_all_mode)
- return;
-
- switch (flag) {
- case 'read':
- case 'unread':
- this.toggle_read_status(flag, r_uids);
- break;
- case 'delete':
- case 'undelete':
- this.toggle_delete_status(r_uids);
- break;
- case 'flagged':
- case 'unflagged':
- this.toggle_flagged_status(flag, a_uids);
- break;
- }
- };
-
- // set class to read/unread
- this.toggle_read_status = function(flag, a_uids)
- {
- var i, len = a_uids.length,
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: flag}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading');
-
- // mark all message rows as read/unread
- for (i=0; i<len; i++)
- this.set_message(a_uids[i], 'unread', (flag == 'unread' ? true : false));
-
- this.http_post('mark', post_data, lock);
-
- for (i=0; i<len; i++)
- this.update_thread_root(a_uids[i], flag);
- };
-
- // set image to flagged or unflagged
- this.toggle_flagged_status = function(flag, a_uids)
- {
- var i, len = a_uids.length,
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: flag}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading');
-
- // mark all message rows as flagged/unflagged
- for (i=0; i<len; i++)
- this.set_message(a_uids[i], 'flagged', (flag == 'flagged' ? true : false));
-
- this.http_post('mark', post_data, lock);
- };
-
- // mark all message rows as deleted/undeleted
- this.toggle_delete_status = function(a_uids)
- {
- var len = a_uids.length,
- i, uid, all_deleted = true,
- rows = this.message_list ? this.message_list.rows : {};
-
- if (len == 1) {
- if (!this.message_list || (rows[a_uids[0]] && !rows[a_uids[0]].deleted))
- this.flag_as_deleted(a_uids);
- else
- this.flag_as_undeleted(a_uids);
-
- return true;
- }
-
- for (i=0; i<len; i++) {
- uid = a_uids[i];
- if (rows[uid] && !rows[uid].deleted) {
- all_deleted = false;
- break;
- }
- }
-
- if (all_deleted)
- this.flag_as_undeleted(a_uids);
- else
- this.flag_as_deleted(a_uids);
-
- return true;
- };
-
- this.flag_as_undeleted = function(a_uids)
- {
- var i, len = a_uids.length,
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: 'undelete'}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading');
-
- for (i=0; i<len; i++)
- this.set_message(a_uids[i], 'deleted', false);
-
- this.http_post('mark', post_data, lock);
- };
-
- this.flag_as_deleted = function(a_uids)
- {
- var r_uids = [],
- post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: 'delete'}),
- lock = this.display_message(this.get_label('markingmessage'), 'loading'),
- rows = this.message_list ? this.message_list.rows : {},
- count = 0;
-
- for (var i=0, len=a_uids.length; i<len; i++) {
- uid = a_uids[i];
- if (rows[uid]) {
- if (rows[uid].unread)
- r_uids[r_uids.length] = uid;
-
- if (this.env.skip_deleted) {
- count += this.update_thread(uid);
- this.message_list.remove_row(uid, (this.env.display_next && i == this.message_list.selection.length-1));
- }
- else
- this.set_message(uid, 'deleted', true);
- }
- }
-
- // make sure there are no selected rows
- if (this.env.skip_deleted && this.message_list) {
- if (!this.env.display_next)
- this.message_list.clear_selection();
- if (count < 0)
- post_data._count = (count*-1);
- else if (count > 0)
- // remove threads from the end of the list
- this.delete_excessive_thread_rows();
- }
-
- // ??
- if (r_uids.length)
- post_data._ruid = this.uids_to_list(r_uids);
-
- if (this.env.skip_deleted && this.env.display_next && this.env.next_uid)
- post_data._next_uid = this.env.next_uid;
-
- this.http_post('mark', post_data, lock);
- };
-
- // flag as read without mark request (called from backend)
- // argument should be a coma-separated list of uids
- this.flag_deleted_as_read = function(uids)
- {
- var icn_src, uid, i, len,
- rows = this.message_list ? this.message_list.rows : {};
-
- uids = String(uids).split(',');
-
- for (i=0, len=uids.length; i<len; i++) {
- uid = uids[i];
- if (rows[uid])
- this.set_message(uid, 'unread', false);
- }
- };
-
- // Converts array of message UIDs to comma-separated list for use in URL
- // with select_all mode checking
- this.uids_to_list = function(uids)
- {
- return this.select_all_mode ? '*' : uids.join(',');
- };
-
- // Sets title of the delete button
- this.set_button_titles = function()
- {
- var label = 'deletemessage';
-
- if (!this.env.flag_for_deletion
- && this.env.trash_mailbox && this.env.mailbox != this.env.trash_mailbox
- && (!this.env.delete_junk || !this.env.junk_mailbox || this.env.mailbox != this.env.junk_mailbox)
- )
- label = 'movemessagetotrash';
-
- this.set_alttext('delete', label);
- };
-
- /*********************************************************/
- /********* mailbox folders methods *********/
- /*********************************************************/
-
- this.expunge_mailbox = function(mbox)
- {
- var lock, post_data = {_mbox: mbox};
-
- // lock interface if it's the active mailbox
- if (mbox == this.env.mailbox) {
- lock = this.set_busy(true, 'loading');
- post_data._reload = 1;
- if (this.env.search_request)
- post_data._search = this.env.search_request;
- }
-
- // send request to server
- this.http_post('expunge', post_data, lock);
- };
-
- this.purge_mailbox = function(mbox)
- {
- var lock, post_data = {_mbox: mbox};
-
- if (!confirm(this.get_label('purgefolderconfirm')))
- return false;
-
- // lock interface if it's the active mailbox
- if (mbox == this.env.mailbox) {
- lock = this.set_busy(true, 'loading');
- post_data._reload = 1;
- }
-
- // send request to server
- this.http_post('purge', post_data, lock);
- };
-
- // test if purge command is allowed
- this.purge_mailbox_test = function()
- {
- return (this.env.exists && (
- this.env.mailbox == this.env.trash_mailbox
- || this.env.mailbox == this.env.junk_mailbox
- || this.env.mailbox.startsWith(this.env.trash_mailbox + this.env.delimiter)
- || this.env.mailbox.startsWith(this.env.junk_mailbox + this.env.delimiter)
- ));
- };
-
-
- /*********************************************************/
- /********* login form methods *********/
- /*********************************************************/
-
- // handler for keyboard events on the _user field
- this.login_user_keyup = function(e)
- {
- var key = rcube_event.get_keycode(e);
- var passwd = $('#rcmloginpwd');
-
- // enter
- if (key == 13 && passwd.length && !passwd.val()) {
- passwd.focus();
- return rcube_event.cancel(e);
- }
-
- return true;
- };
-
-
- /*********************************************************/
- /********* message compose methods *********/
- /*********************************************************/
-
- this.open_compose_step = function(p)
- {
- var url = this.url('mail/compose', p);
-
- // open new compose window
- if (this.env.compose_extwin && !this.env.extwin) {
- this.open_window(url);
- }
- else {
- this.redirect(url);
- if (this.env.extwin)
- window.resizeTo(Math.max(this.env.popup_width, $(window).width()), $(window).height() + 24);
- }
- };
-
- // init message compose form: set focus and eventhandlers
- this.init_messageform = function()
- {
- if (!this.gui_objects.messageform)
- return false;
-
- var input_from = $("[name='_from']"),
- input_to = $("[name='_to']"),
- input_subject = $("input[name='_subject']"),
- input_message = $("[name='_message']").get(0),
- html_mode = $("input[name='_is_html']").val() == '1',
- ac_fields = ['cc', 'bcc', 'replyto', 'followupto'],
- ac_props, opener_rc = this.opener();
-
- // close compose step in opener
- if (opener_rc && opener_rc.env.action == 'compose') {
- setTimeout(function(){ opener.history.back(); }, 100);
- this.env.opened_extwin = true;
- }
-
- // configure parallel autocompletion
- if (this.env.autocomplete_threads > 0) {
- ac_props = {
- threads: this.env.autocomplete_threads,
- sources: this.env.autocomplete_sources
- };
- }
-
- // init live search events
- this.init_address_input_events(input_to, ac_props);
- for (var i in ac_fields) {
- this.init_address_input_events($("[name='_"+ac_fields[i]+"']"), ac_props);
- }
-
- if (!html_mode) {
- this.set_caret_pos(input_message, this.env.top_posting ? 0 : $(input_message).val().length);
- // add signature according to selected identity
- // if we have HTML editor, signature is added in callback
- if (input_from.prop('type') == 'select-one') {
- this.change_identity(input_from[0]);
- }
- }
-
- if (input_to.val() == '')
- input_to.focus();
- else if (input_subject.val() == '')
- input_subject.focus();
- else if (input_message)
- input_message.focus();
-
- this.env.compose_focus_elem = document.activeElement;
-
- // get summary of all field values
- this.compose_field_hash(true);
-
- // start the auto-save timer
- this.auto_save_start();
- };
-
- this.init_address_input_events = function(obj, props)
- {
- this.env.recipients_delimiter = this.env.recipients_separator + ' ';
-
- obj[bw.ie || bw.safari || bw.chrome ? 'keydown' : 'keypress'](function(e) { return ref.ksearch_keydown(e, this, props); })
- .attr('autocomplete', 'off');
- };
-
- this.submit_messageform = function(draft)
- {
- var form = this.gui_objects.messageform;
-
- if (!form)
- return;
-
- // all checks passed, send message
- var msgid = this.set_busy(true, draft ? 'savingmessage' : 'sendingmessage'),
- lang = this.spellcheck_lang(),
- files = [];
-
- // send files list
- $('li', this.gui_objects.attachmentlist).each(function() { files.push(this.id.replace(/^rcmfile/, '')); });
- $('input[name="_attachments"]', form).val(files.join());
-
- form.target = 'savetarget';
- form._draft.value = draft ? '1' : '';
- form.action = this.add_url(form.action, '_unlock', msgid);
- form.action = this.add_url(form.action, '_lang', lang);
-
- // register timer to notify about connection timeout
- this.submit_timer = setTimeout(function(){
- ref.set_busy(false, null, msgid);
- ref.display_message(ref.get_label('requesttimedout'), 'error');
- }, this.env.request_timeout * 1000);
-
- form.submit();
- };
-
- this.compose_recipient_select = function(list)
- {
- var id, n, recipients = 0;
- for (n=0; n < list.selection.length; n++) {
- id = list.selection[n];
- if (this.env.contactdata[id])
- recipients++;
- }
- this.enable_command('add-recipient', recipients);
- };
-
- this.compose_add_recipient = function(field)
- {
- var recipients = [], input = $('#_'+field), delim = this.env.recipients_delimiter;
-
- if (this.contact_list && this.contact_list.selection.length) {
- for (var id, n=0; n < this.contact_list.selection.length; n++) {
- id = this.contact_list.selection[n];
- if (id && this.env.contactdata[id]) {
- recipients.push(this.env.contactdata[id]);
-
- // group is added, expand it
- if (id.charAt(0) == 'E' && this.env.contactdata[id].indexOf('@') < 0 && input.length) {
- var gid = id.substr(1);
- this.group2expand[gid] = { name:this.env.contactdata[id], input:input.get(0) };
- this.http_request('group-expand', {_source: this.env.source, _gid: gid}, false);
- }
- }
- }
- }
-
- if (recipients.length && input.length) {
- var oldval = input.val(), rx = new RegExp(RegExp.escape(delim) + '\\s*$');
- if (oldval && !rx.test(oldval))
- oldval += delim + ' ';
- input.val(oldval + recipients.join(delim + ' ') + delim + ' ');
- this.triggerEvent('add-recipient', { field:field, recipients:recipients });
- }
- };
-
- // checks the input fields before sending a message
- this.check_compose_input = function(cmd)
- {
- // check input fields
- var ed, input_to = $("[name='_to']"),
- input_cc = $("[name='_cc']"),
- input_bcc = $("[name='_bcc']"),
- input_from = $("[name='_from']"),
- input_subject = $("[name='_subject']"),
- input_message = $("[name='_message']");
-
- // check sender (if have no identities)
- if (input_from.prop('type') == 'text' && !rcube_check_email(input_from.val(), true)) {
- alert(this.get_label('nosenderwarning'));
- input_from.focus();
- return false;
- }
-
- // check for empty recipient
- var recipients = input_to.val() ? input_to.val() : (input_cc.val() ? input_cc.val() : input_bcc.val());
- if (!rcube_check_email(recipients.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true)) {
- alert(this.get_label('norecipientwarning'));
- input_to.focus();
- return false;
- }
-
- // check if all files has been uploaded
- for (var key in this.env.attachments) {
- if (typeof this.env.attachments[key] === 'object' && !this.env.attachments[key].complete) {
- alert(this.get_label('notuploadedwarning'));
- return false;
- }
- }
-
- // display localized warning for missing subject
- if (input_subject.val() == '') {
- var myprompt = $('<div class="prompt">').html('<div class="message">' + this.get_label('nosubjectwarning') + '</div>').appendTo(document.body);
- var prompt_value = $('<input>').attr('type', 'text').attr('size', 30).appendTo(myprompt).val(this.get_label('nosubject'));
-
- var buttons = {};
- buttons[this.get_label('cancel')] = function(){
- input_subject.focus();
- $(this).dialog('close');
- };
- buttons[this.get_label('sendmessage')] = function(){
- input_subject.val(prompt_value.val());
- $(this).dialog('close');
- ref.command(cmd, { nocheck:true }); // repeat command which triggered this
- };
-
- myprompt.dialog({
- modal: true,
- resizable: false,
- buttons: buttons,
- close: function(event, ui) { $(this).remove() }
- });
- prompt_value.select();
- return false;
- }
-
- // Apply spellcheck changes if spell checker is active
- this.stop_spellchecking();
-
- if (window.tinyMCE)
- ed = tinyMCE.get(this.env.composebody);
-
- // check for empty body
- if (!ed && input_message.val() == '' && !confirm(this.get_label('nobodywarning'))) {
- input_message.focus();
- return false;
- }
- else if (ed) {
- if (!ed.getContent() && !confirm(this.get_label('nobodywarning'))) {
- ed.focus();
- return false;
- }
- // move body from html editor to textarea (just to be sure, #1485860)
- tinyMCE.triggerSave();
- }
-
- return true;
- };
-
- this.toggle_editor = function(props)
- {
- this.stop_spellchecking();
-
- if (props.mode == 'html') {
- this.plain2html($('#'+props.id).val(), props.id);
- tinyMCE.execCommand('mceAddControl', false, props.id);
-
- if (this.env.default_font)
- setTimeout(function() {
- $(tinyMCE.get(props.id).getBody()).css('font-family', rcmail.env.default_font);
- }, 500);
- }
- else {
- var thisMCE = tinyMCE.get(props.id), existingHtml;
-
- if (existingHtml = thisMCE.getContent()) {
- if (!confirm(this.get_label('editorwarning'))) {
- return false;
- }
- this.html2plain(existingHtml, props.id);
- }
- tinyMCE.execCommand('mceRemoveControl', false, props.id);
- }
-
- return true;
- };
-
- this.insert_response = function(key)
- {
- var insert = this.env.textresponses[key] ? this.env.textresponses[key].text : null;
- if (!insert)
- return false;
-
- // insert into tinyMCE editor
- if ($("input[name='_is_html']").val() == '1') {
- var editor = tinyMCE.get(this.env.composebody);
- editor.getWin().focus(); // correct focus in IE & Chrome
- editor.selection.setContent(insert, { format:'text' });
- }
- // replace selection in compose textarea
- else {
- var textarea = rcube_find_object(this.env.composebody),
- selection = $(textarea).is(':focus') ? this.get_input_selection(textarea) : { start:0, end:0 },
- inp_value = textarea.value;
- pre = inp_value.substring(0, selection.start),
- end = inp_value.substring(selection.end, inp_value.length);
-
- // insert response text
- textarea.value = pre + insert + end;
-
- // set caret after inserted text
- this.set_caret_pos(textarea, selection.start + insert.length);
- textarea.focus();
- }
- };
-
- /**
- * Open the dialog to save a new canned response
- */
- this.save_response = function()
- {
- var sigstart, text = '', strip = false;
-
- // get selected text from tinyMCE editor
- if ($("input[name='_is_html']").val() == '1') {
- var editor = tinyMCE.get(this.env.composebody);
- editor.getWin().focus(); // correct focus in IE & Chrome
- text = editor.selection.getContent({ format:'text' });
-
- if (!text) {
- text = editor.getContent({ format:'text' });
- strip = true;
- }
- }
- // get selected text from compose textarea
- else {
- var textarea = rcube_find_object(this.env.composebody), sigstart;
- if (textarea && $(textarea).is(':focus')) {
- text = this.get_input_selection(textarea).text;
- }
-
- if (!text && textarea) {
- text = textarea.value;
- strip = true;
- }
- }
-
- // strip off signature
- if (strip) {
- sigstart = text.indexOf('-- \n');
- if (sigstart > 0) {
- text = text.substring(0, sigstart);
- }
- }
-
- // show dialog to enter a name and to modify the text to be saved
- var buttons = {},
- html = '<form class="propform">' +
- '<div class="prop block"><label>' + this.get_label('responsename') + '</label>' +
- '<input type="text" name="name" id="ffresponsename" size="40" /></div>' +
- '<div class="prop block"><label>' + this.get_label('responsetext') + '</label>' +
- '<textarea name="text" id="ffresponsetext" cols="40" rows="8"></textarea></div>' +
- '</form>';
-
- buttons[this.gettext('save')] = function(e) {
- var name = $('#ffresponsename').val(),
- text = $('#ffresponsetext').val();
-
- if (!text) {
- $('#ffresponsetext').select();
- return false;
- }
- if (!name)
- name = text.substring(0,40);
-
- var lock = ref.display_message(ref.get_label('savingresponse'), 'loading');
- ref.http_post('settings/responses', { _insert:1, _name:name, _text:text }, lock);
- $(this).dialog('close');
- };
-
- buttons[this.gettext('cancel')] = function() {
- $(this).dialog('close');
- };
-
- this.show_popup_dialog(html, this.gettext('savenewresponse'), buttons);
-
- $('#ffresponsetext').val(text);
- $('#ffresponsename').select();
- };
-
- this.add_response_item = function(response)
- {
- var key = response.key;
- this.env.textresponses[key] = response;
-
- // append to responses list
- if (this.gui_objects.responseslist) {
- var li = $('<li>').appendTo(this.gui_objects.responseslist);
- $('<a>').addClass('insertresponse active')
- .attr('href', '#')
- .attr('rel', key)
- .html(this.quote_html(response.name))
- .appendTo(li)
- .mousedown(function(e){
- return rcube_event.cancel(e);
- })
- .mouseup(function(e){
- ref.command('insert-response', key);
- $(document.body).trigger('mouseup'); // hides the menu
- return rcube_event.cancel(e);
- });
- }
- };
-
- this.edit_responses = function()
- {
- // TODO: implement inline editing of responses
- };
-
- this.delete_response = function(key)
- {
- if (!key && this.responses_list) {
- var selection = this.responses_list.get_selection();
- key = selection[0];
- }
-
- // submit delete request
- if (key && confirm(this.get_label('deleteresponseconfirm'))) {
- this.http_post('settings/delete-response', { _key: key }, false);
- return true;
- }
-
- return false;
- };
-
- this.stop_spellchecking = function()
- {
- var ed;
-
- if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody))) {
- if (ed.plugins && ed.plugins.spellchecker && ed.plugins.spellchecker.active)
- ed.execCommand('mceSpellCheck');
- }
- else if (ed = this.env.spellcheck) {
- if (ed.state && ed.state != 'ready' && ed.state != 'no_error_found')
- $(ed.spell_span).trigger('click');
- }
-
- this.spellcheck_state();
- };
-
- this.spellcheck_state = function()
- {
- var ed, active;
-
- if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins && ed.plugins.spellchecker)
- active = ed.plugins.spellchecker.active;
- else if ((ed = this.env.spellcheck) && ed.state)
- active = ed.state != 'ready' && ed.state != 'no_error_found';
-
- if (rcmail.buttons.spellcheck)
- $('#'+rcmail.buttons.spellcheck[0].id)[active ? 'addClass' : 'removeClass']('selected');
-
- return active;
- };
-
- // get selected language
- this.spellcheck_lang = function()
- {
- var ed;
-
- if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins && ed.plugins.spellchecker)
- return ed.plugins.spellchecker.selectedLang;
- else if (this.env.spellcheck)
- return GOOGIE_CUR_LANG;
- };
-
- this.spellcheck_lang_set = function(lang)
- {
- var ed;
-
- if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)) && ed.plugins)
- ed.plugins.spellchecker.selectedLang = lang;
- else if (this.env.spellcheck)
- this.env.spellcheck.setCurrentLanguage(lang);
- };
-
- // resume spellchecking, highlight provided mispellings without new ajax request
- this.spellcheck_resume = function(ishtml, data)
- {
- if (ishtml) {
- var ed = tinyMCE.get(this.env.composebody);
- sp = ed.plugins.spellchecker;
-
- sp.active = 1;
- sp._markWords(data);
- ed.nodeChanged();
- }
- else {
- var sp = this.env.spellcheck;
- sp.prepare(false, true);
- sp.processData(data);
- }
-
- this.spellcheck_state();
- }
-
- this.set_draft_id = function(id)
- {
- var rc;
-
- if (!this.env.draft_id && id && (rc = this.opener())) {
- // refresh the drafts folder in opener window
- if (rc.env.task == 'mail' && rc.env.action == '' && rc.env.mailbox == this.env.drafts_mailbox)
- rc.command('checkmail');
- }
-
- this.env.draft_id = id;
- $("input[name='_draft_saveid']").val(id);
- };
-
- this.auto_save_start = function()
- {
- if (this.env.draft_autosave)
- this.save_timer = setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000);
-
- // Unlock interface now that saving is complete
- this.busy = false;
- };
-
- this.compose_field_hash = function(save)
- {
- // check input fields
- var ed, i, val, str = '', hash_fields = ['to', 'cc', 'bcc', 'subject'];
-
- for (i=0; i<hash_fields.length; i++)
- if (val = $('[name="_' + hash_fields[i] + '"]').val())
- str += val + ':';
-
- if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody)))
- str += ed.getContent();
- else
- str += $("[name='_message']").val();
-
- if (this.env.attachments)
- for (var upload_id in this.env.attachments)
- str += upload_id;
-
- if (save)
- this.cmp_hash = str;
-
- return str;
- };
-
- this.change_identity = function(obj, show_sig)
- {
- if (!obj || !obj.options)
- return false;
-
- if (!show_sig)
- show_sig = this.env.show_sig;
-
- // first function execution
- if (!this.env.identities_initialized) {
- this.env.identities_initialized = true;
- if (this.env.show_sig_later)
- this.env.show_sig = true;
- if (this.env.opened_extwin)
- return;
- }
-
- var i, rx, cursor_pos, p = -1,
- id = obj.options[obj.selectedIndex].value,
- input_message = $("[name='_message']"),
- message = input_message.val(),
- is_html = ($("input[name='_is_html']").val() == '1'),
- sig = this.env.identity,
- delim = this.env.recipients_separator,
- rx_delim = RegExp.escape(delim),
- headers = ['replyto', 'bcc'];
-
- // update reply-to/bcc fields with addresses defined in identities
- for (i in headers) {
- var key = headers[i],
- old_val = sig && this.env.identities[sig] ? this.env.identities[sig][key] : '',
- new_val = id && this.env.identities[id] ? this.env.identities[id][key] : '',
- input = $('[name="_'+key+'"]'), input_val = input.val();
-
- // remove old address(es)
- if (old_val && input_val) {
- rx = new RegExp('\\s*' + RegExp.escape(old_val) + '\\s*');
- input_val = input_val.replace(rx, '');
- }
-
- // cleanup
- rx = new RegExp(rx_delim + '\\s*' + rx_delim, 'g');
- input_val = input_val.replace(rx, delim);
- rx = new RegExp('^[\\s' + rx_delim + ']+');
- input_val = input_val.replace(rx, '');
-
- // add new address(es)
- if (new_val && input_val.indexOf(new_val) == -1 && input_val.indexOf(new_val.replace(/"/g, '')) == -1) {
- if (input_val) {
- rx = new RegExp('[' + rx_delim + '\\s]+$')
- input_val = input_val.replace(rx, '') + delim + ' ';
- }
-
- input_val += new_val + delim + ' ';
- }
-
- if (old_val || new_val)
- input.val(input_val).change();
- }
-
- // enable manual signature insert
- if (this.env.signatures && this.env.signatures[id]) {
- this.enable_command('insert-sig', true);
- this.env.compose_commands.push('insert-sig');
- }
- else
- this.enable_command('insert-sig', false);
-
- if (!is_html) {
- // remove the 'old' signature
- if (show_sig && sig && this.env.signatures && this.env.signatures[sig]) {
- sig = this.env.signatures[sig].text;
- sig = sig.replace(/\r\n/g, '\n');
-
- p = this.env.top_posting ? message.indexOf(sig) : message.lastIndexOf(sig);
- if (p >= 0)
- message = message.substring(0, p) + message.substring(p+sig.length, message.length);
- }
- // add the new signature string
- if (show_sig && this.env.signatures && this.env.signatures[id]) {
- sig = this.env.signatures[id].text;
- sig = sig.replace(/\r\n/g, '\n');
-
- if (this.env.top_posting) {
- if (p >= 0) { // in place of removed signature
- message = message.substring(0, p) + sig + message.substring(p, message.length);
- cursor_pos = p - 1;
- }
- else if (!message) { // empty message
- cursor_pos = 0;
- message = '\n\n' + sig;
- }
- else if (pos = this.get_caret_pos(input_message.get(0))) { // at cursor position
- message = message.substring(0, pos) + '\n' + sig + '\n\n' + message.substring(pos, message.length);
- cursor_pos = pos;
- }
- else { // on top
- cursor_pos = 0;
- message = '\n\n' + sig + '\n\n' + message.replace(/^[\r\n]+/, '');
- }
- }
- else {
- message = message.replace(/[\r\n]+$/, '');
- cursor_pos = !this.env.top_posting && message.length ? message.length+1 : 0;
- message += '\n\n' + sig;
- }
- }
- else
- cursor_pos = this.env.top_posting ? 0 : message.length;
-
- input_message.val(message);
-
- // move cursor before the signature
- this.set_caret_pos(input_message.get(0), cursor_pos);
- }
- else if (show_sig && this.env.signatures) { // html
- var editor = tinyMCE.get(this.env.composebody),
- sigElem = editor.dom.get('_rc_sig');
-
- // Append the signature as a div within the body
- if (!sigElem) {
- var body = editor.getBody(),
- doc = editor.getDoc();
-
- sigElem = doc.createElement('div');
- sigElem.setAttribute('id', '_rc_sig');
-
- if (this.env.top_posting) {
- // if no existing sig and top posting then insert at caret pos
- editor.getWin().focus(); // correct focus in IE & Chrome
-
- var node = editor.selection.getNode();
- if (node.nodeName == 'BODY') {
- // no real focus, insert at start
- body.insertBefore(sigElem, body.firstChild);
- body.insertBefore(doc.createElement('br'), body.firstChild);
- }
- else {
- body.insertBefore(sigElem, node.nextSibling);
- body.insertBefore(doc.createElement('br'), node.nextSibling);
- }
- }
- else {
- if (bw.ie) // add empty line before signature on IE
- body.appendChild(doc.createElement('br'));
-
- body.appendChild(sigElem);
- }
- }
-
- if (this.env.signatures[id])
- sigElem.innerHTML = this.env.signatures[id].html;
- }
-
- this.env.identity = id;
- this.triggerEvent('change_identity');
- return true;
- };
-
- // upload (attachment) file
- this.upload_file = function(form, action)
- {
- if (!form)
- return false;
-
- // count files and size on capable browser
- var size = 0, numfiles = 0;
-
- $('input[type=file]', form).each(function(i, field) {
- var files = field.files ? field.files.length : (field.value ? 1 : 0);
-
- // check file size
- if (field.files) {
- for (var i=0; i < files; i++)
- size += field.files[i].size;
- }
-
- numfiles += files;
- });
-
- // create hidden iframe and post upload form
- if (numfiles) {
- if (this.env.max_filesize && this.env.filesizeerror && size > this.env.max_filesize) {
- this.display_message(this.env.filesizeerror, 'error');
- return;
- }
-
- var frame_name = this.async_upload_form(form, action || 'upload', function(e) {
- var d, content = '';
- try {
- if (this.contentDocument) {
- d = this.contentDocument;
- } else if (this.contentWindow) {
- d = this.contentWindow.document;
- }
- content = d.childNodes[0].innerHTML;
- } catch (err) {}
-
- if (!content.match(/add2attachment/) && (!bw.opera || (rcmail.env.uploadframe && rcmail.env.uploadframe == e.data.ts))) {
- if (!content.match(/display_message/))
- rcmail.display_message(rcmail.get_label('fileuploaderror'), 'error');
- rcmail.remove_from_attachment_list(e.data.ts);
- }
- // Opera hack: handle double onload
- if (bw.opera)
- rcmail.env.uploadframe = e.data.ts;
- });
-
- // display upload indicator and cancel button
- var content = '<span>' + this.get_label('uploading' + (numfiles > 1 ? 'many' : '')) + '</span>',
- ts = frame_name.replace(/^rcmupload/, '');
-
- this.add2attachment_list(ts, { name:'', html:content, classname:'uploading', frame:frame_name, complete:false });
-
- // upload progress support
- if (this.env.upload_progress_time) {
- this.upload_progress_start('upload', ts);
- }
- }
-
- // set reference to the form object
- this.gui_objects.attachmentform = form;
- return true;
- };
-
- // add file name to attachment list
- // called from upload page
- this.add2attachment_list = function(name, att, upload_id)
- {
- if (!this.gui_objects.attachmentlist)
- return false;
-
- if (!att.complete && ref.env.loadingicon)
- att.html = '<img src="'+ref.env.loadingicon+'" alt="" class="uploading" />' + att.html;
-
- if (!att.complete && att.frame)
- att.html = '<a title="'+this.get_label('cancel')+'" onclick="return rcmail.cancel_attachment_upload(\''+name+'\', \''+att.frame+'\');" href="#cancelupload" class="cancelupload">'
- + (this.env.cancelicon ? '<img src="'+this.env.cancelicon+'" alt="" />' : this.get_label('cancel')) + '</a>' + att.html;
-
- var indicator, li = $('<li>');
-
- li.attr('id', name)
- .addClass(att.classname)
- .html(att.html)
- .on('mouseover', function() { rcube_webmail.long_subject_title_ex(this, 0); });
-
- // replace indicator's li
- if (upload_id && (indicator = document.getElementById(upload_id))) {
- li.replaceAll(indicator);
- }
- else { // add new li
- li.appendTo(this.gui_objects.attachmentlist);
- }
-
- if (upload_id && this.env.attachments[upload_id])
- delete this.env.attachments[upload_id];
-
- this.env.attachments[name] = att;
-
- return true;
- };
-
- this.remove_from_attachment_list = function(name)
- {
- delete this.env.attachments[name];
- $('#'+name).remove();
- };
-
- this.remove_attachment = function(name)
- {
- if (name && this.env.attachments[name])
- this.http_post('remove-attachment', { _id:this.env.compose_id, _file:name });
-
- return true;
- };
-
- this.cancel_attachment_upload = function(name, frame_name)
- {
- if (!name || !frame_name)
- return false;
-
- this.remove_from_attachment_list(name);
- $("iframe[name='"+frame_name+"']").remove();
- return false;
- };
-
- this.upload_progress_start = function(action, name)
- {
- setTimeout(function() { rcmail.http_request(action, {_progress: name}); },
- this.env.upload_progress_time * 1000);
- };
-
- this.upload_progress_update = function(param)
- {
- var elem = $('#'+param.name + '> span');
-
- if (!elem.length || !param.text)
- return;
-
- elem.text(param.text);
-
- if (!param.done)
- this.upload_progress_start(param.action, param.name);
- };
-
- // send remote request to add a new contact
- this.add_contact = function(value)
- {
- if (value)
- this.http_post('addcontact', {_address: value});
-
- return true;
- };
-
- // send remote request to search mail or contacts
- this.qsearch = function(value)
- {
- if (value != '') {
- var r, lock = this.set_busy(true, 'searching'),
- url = this.search_params(value);
-
- if (this.message_list)
- this.clear_message_list();
- else if (this.contact_list)
- this.list_contacts_clear();
-
- if (this.env.source)
- url._source = this.env.source;
- if (this.env.group)
- url._gid = this.env.group;
-
- // reset vars
- this.env.current_page = 1;
-
- var action = this.env.action == 'compose' && this.contact_list ? 'search-contacts' : 'search';
- r = this.http_request(action, url, lock);
-
- this.env.qsearch = {lock: lock, request: r};
- }
- };
-
- // build URL params for search
- this.search_params = function(search, filter)
- {
- var n, url = {}, mods_arr = [],
- mods = this.env.search_mods,
- mbox = this.env.mailbox;
-
- if (!filter && this.gui_objects.search_filter)
- filter = this.gui_objects.search_filter.value;
-
- if (!search && this.gui_objects.qsearchbox)
- search = this.gui_objects.qsearchbox.value;
-
- if (filter)
- url._filter = filter;
-
- if (search) {
- url._q = search;
-
- if (mods && this.message_list)
- mods = mods[mbox] ? mods[mbox] : mods['*'];
-
- if (mods) {
- for (n in mods)
- mods_arr.push(n);
- url._headers = mods_arr.join(',');
- }
- }
-
- if (mbox)
- url._mbox = mbox;
-
- return url;
- };
-
- // reset quick-search form
- this.reset_qsearch = function()
- {
- if (this.gui_objects.qsearchbox)
- this.gui_objects.qsearchbox.value = '';
-
- if (this.env.qsearch)
- this.abort_request(this.env.qsearch);
-
- this.env.qsearch = null;
- this.env.search_request = null;
- this.env.search_id = null;
- };
-
- this.sent_successfully = function(type, msg, folders)
- {
- this.display_message(msg, type);
-
- if (this.env.extwin) {
- var rc = this.opener();
- this.lock_form(this.gui_objects.messageform);
- if (rc) {
- rc.display_message(msg, type);
- // refresh the folder where sent message was saved or replied message comes from
- if (folders && rc.env.task == 'mail' && rc.env.action == '' && $.inArray(rc.env.mailbox, folders) >= 0) {
- // @TODO: try with 'checkmail' here when #1485186 is fixed. See also #1489249.
- rc.command('list');
- }
- }
- setTimeout(function(){ window.close() }, 1000);
- }
- else {
- // before redirect we need to wait some time for Chrome (#1486177)
- setTimeout(function(){ ref.list_mailbox(); }, 500);
- }
- };
-
-
- /*********************************************************/
- /********* keyboard live-search methods *********/
- /*********************************************************/
-
- // handler for keyboard events on address-fields
- this.ksearch_keydown = function(e, obj, props)
- {
- if (this.ksearch_timer)
- clearTimeout(this.ksearch_timer);
-
- var highlight,
- key = rcube_event.get_keycode(e),
- mod = rcube_event.get_modifier(e);
-
- switch (key) {
- case 38: // arrow up
- case 40: // arrow down
- if (!this.ksearch_visible())
- break;
-
- var dir = key==38 ? 1 : 0;
-
- highlight = document.getElementById('rcmksearchSelected');
- if (!highlight)
- highlight = this.ksearch_pane.__ul.firstChild;
-
- if (highlight)
- this.ksearch_select(dir ? highlight.previousSibling : highlight.nextSibling);
-
- return rcube_event.cancel(e);
-
- case 9: // tab
- if (mod == SHIFT_KEY || !this.ksearch_visible()) {
- this.ksearch_hide();
- return;
- }
-
- case 13: // enter
- if (!this.ksearch_visible())
- return false;
-
- // insert selected address and hide ksearch pane
- this.insert_recipient(this.ksearch_selected);
- this.ksearch_hide();
-
- return rcube_event.cancel(e);
-
- case 27: // escape
- this.ksearch_hide();
- return;
-
- case 37: // left
- case 39: // right
- if (mod != SHIFT_KEY)
- return;
- }
-
- // start timer
- this.ksearch_timer = setTimeout(function(){ ref.ksearch_get_results(props); }, 200);
- this.ksearch_input = obj;
-
- return true;
- };
-
- this.ksearch_visible = function()
- {
- return (this.ksearch_selected !== null && this.ksearch_selected !== undefined && this.ksearch_value);
- };
-
- this.ksearch_select = function(node)
- {
- var current = $('#rcmksearchSelected');
- if (current[0] && node) {
- current.removeAttr('id').removeClass('selected');
- }
-
- if (node) {
- $(node).attr('id', 'rcmksearchSelected').addClass('selected');
- this.ksearch_selected = node._rcm_id;
- }
- };
-
- this.insert_recipient = function(id)
- {
- if (id === null || !this.env.contacts[id] || !this.ksearch_input)
- return;
-
- // get cursor pos
- var inp_value = this.ksearch_input.value,
- cpos = this.get_caret_pos(this.ksearch_input),
- p = inp_value.lastIndexOf(this.ksearch_value, cpos),
- trigger = false,
- insert = '',
- // replace search string with full address
- pre = inp_value.substring(0, p),
- end = inp_value.substring(p+this.ksearch_value.length, inp_value.length);
-
- this.ksearch_destroy();
-
- // insert all members of a group
- if (typeof this.env.contacts[id] === 'object' && this.env.contacts[id].id) {
- insert += this.env.contacts[id].name + this.env.recipients_delimiter;
- this.group2expand[this.env.contacts[id].id] = $.extend({ input: this.ksearch_input }, this.env.contacts[id]);
- this.http_request('mail/group-expand', {_source: this.env.contacts[id].source, _gid: this.env.contacts[id].id}, false);
- }
- else if (typeof this.env.contacts[id] === 'string') {
- insert = this.env.contacts[id] + this.env.recipients_delimiter;
- trigger = true;
- }
-
- this.ksearch_input.value = pre + insert + end;
-
- // set caret to insert pos
- cpos = p+insert.length;
- if (this.ksearch_input.setSelectionRange)
- this.ksearch_input.setSelectionRange(cpos, cpos);
-
- if (trigger)
- this.triggerEvent('autocomplete_insert', { field:this.ksearch_input, insert:insert });
- };
-
- this.replace_group_recipients = function(id, recipients)
- {
- if (this.group2expand[id]) {
- this.group2expand[id].input.value = this.group2expand[id].input.value.replace(this.group2expand[id].name, recipients);
- this.triggerEvent('autocomplete_insert', { field:this.group2expand[id].input, insert:recipients });
- this.group2expand[id] = null;
- }
- };
-
- // address search processor
- this.ksearch_get_results = function(props)
- {
- var inp_value = this.ksearch_input ? this.ksearch_input.value : null;
-
- if (inp_value === null)
- return;
-
- if (this.ksearch_pane && this.ksearch_pane.is(":visible"))
- this.ksearch_pane.hide();
-
- // get string from current cursor pos to last comma
- var cpos = this.get_caret_pos(this.ksearch_input),
- p = inp_value.lastIndexOf(this.env.recipients_separator, cpos-1),
- q = inp_value.substring(p+1, cpos),
- min = this.env.autocomplete_min_length,
- ac = this.ksearch_data;
-
- // trim query string
- q = $.trim(q);
-
- // Don't (re-)search if the last results are still active
- if (q == this.ksearch_value)
- return;
-
- this.ksearch_destroy();
-
- if (q.length && q.length < min) {
- if (!this.ksearch_info) {
- this.ksearch_info = this.display_message(
- this.get_label('autocompletechars').replace('$min', min));
- }
- return;
- }
-
- var old_value = this.ksearch_value;
- this.ksearch_value = q;
-
- // ...string is empty
- if (!q.length)
- return;
-
- // ...new search value contains old one and previous search was not finished or its result was empty
- if (old_value && old_value.length && q.startsWith(old_value) && (!ac || ac.num <= 0) && this.env.contacts && !this.env.contacts.length)
- return;
-
- var i, lock, source, xhr, reqid = new Date().getTime(),
- post_data = {_search: q, _id: reqid},
- threads = props && props.threads ? props.threads : 1,
- sources = props && props.sources ? props.sources : [],
- action = props && props.action ? props.action : 'mail/autocomplete';
-
- this.ksearch_data = {id: reqid, sources: sources.slice(), action: action,
- locks: [], requests: [], num: sources.length};
-
- for (i=0; i<threads; i++) {
- source = this.ksearch_data.sources.shift();
- if (threads > 1 && source === undefined)
- break;
-
- post_data._source = source ? source : '';
- lock = this.display_message(this.get_label('searching'), 'loading');
- xhr = this.http_post(action, post_data, lock);
-
- this.ksearch_data.locks.push(lock);
- this.ksearch_data.requests.push(xhr);
- }
- };
-
- this.ksearch_query_results = function(results, search, reqid)
- {
- // search stopped in meantime?
- if (!this.ksearch_value)
- return;
-
- // ignore this outdated search response
- if (this.ksearch_input && search != this.ksearch_value)
- return;
-
- // display search results
- var i, len, ul, li, text, init,
- value = this.ksearch_value,
- data = this.ksearch_data,
- maxlen = this.env.autocomplete_max ? this.env.autocomplete_max : 15;
-
- // create results pane if not present
- if (!this.ksearch_pane) {
- ul = $('<ul>');
- this.ksearch_pane = $('<div>').attr('id', 'rcmKSearchpane')
- .css({ position:'absolute', 'z-index':30000 }).append(ul).appendTo(document.body);
- this.ksearch_pane.__ul = ul[0];
- }
-
- ul = this.ksearch_pane.__ul;
-
- // remove all search results or add to existing list if parallel search
- if (reqid && this.ksearch_pane.data('reqid') == reqid) {
- maxlen -= ul.childNodes.length;
- }
- else {
- this.ksearch_pane.data('reqid', reqid);
- init = 1;
- // reset content
- ul.innerHTML = '';
- this.env.contacts = [];
- // move the results pane right under the input box
- var pos = $(this.ksearch_input).offset();
- this.ksearch_pane.css({ left:pos.left+'px', top:(pos.top + this.ksearch_input.offsetHeight)+'px', display: 'none'});
- }
-
- // add each result line to list
- if (results && (len = results.length)) {
- for (i=0; i < len && maxlen > 0; i++) {
- text = typeof results[i] === 'object' ? results[i].name : results[i];
- li = document.createElement('LI');
- li.innerHTML = text.replace(new RegExp('('+RegExp.escape(value)+')', 'ig'), '##$1%%').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/##([^%]+)%%/g, '<b>$1</b>');
- li.onmouseover = function(){ ref.ksearch_select(this); };
- li.onmouseup = function(){ ref.ksearch_click(this) };
- li._rcm_id = this.env.contacts.length + i;
- ul.appendChild(li);
- maxlen -= 1;
- }
- }
-
- if (ul.childNodes.length) {
- this.ksearch_pane.show();
- // select the first
- if (!this.env.contacts.length) {
- $('li:first', ul).attr('id', 'rcmksearchSelected').addClass('selected');
- this.ksearch_selected = 0;
- }
- }
-
- if (len)
- this.env.contacts = this.env.contacts.concat(results);
-
- // run next parallel search
- if (data.id == reqid) {
- data.num--;
- if (maxlen > 0 && data.sources.length) {
- var lock, xhr, source = data.sources.shift(), post_data;
- if (source) {
- post_data = {_search: value, _id: reqid, _source: source};
- lock = this.display_message(this.get_label('searching'), 'loading');
- xhr = this.http_post(data.action, post_data, lock);
-
- this.ksearch_data.locks.push(lock);
- this.ksearch_data.requests.push(xhr);
- }
- }
- else if (!maxlen) {
- if (!this.ksearch_msg)
- this.ksearch_msg = this.display_message(this.get_label('autocompletemore'));
- // abort pending searches
- this.ksearch_abort();
- }
- }
- };
-
- this.ksearch_click = function(node)
- {
- if (this.ksearch_input)
- this.ksearch_input.focus();
-
- this.insert_recipient(node._rcm_id);
- this.ksearch_hide();
- };
-
- this.ksearch_blur = function()
- {
- if (this.ksearch_timer)
- clearTimeout(this.ksearch_timer);
-
- this.ksearch_input = null;
- this.ksearch_hide();
- };
-
- this.ksearch_hide = function()
- {
- this.ksearch_selected = null;
- this.ksearch_value = '';
-
- if (this.ksearch_pane)
- this.ksearch_pane.hide();
-
- this.ksearch_destroy();
- };
-
- // Clears autocomplete data/requests
- this.ksearch_destroy = function()
- {
- this.ksearch_abort();
-
- if (this.ksearch_info)
- this.hide_message(this.ksearch_info);
-
- if (this.ksearch_msg)
- this.hide_message(this.ksearch_msg);
-
- this.ksearch_data = null;
- this.ksearch_info = null;
- this.ksearch_msg = null;
- }
-
- // Aborts pending autocomplete requests
- this.ksearch_abort = function()
- {
- var i, len, ac = this.ksearch_data;
-
- if (!ac)
- return;
-
- for (i=0, len=ac.locks.length; i<len; i++)
- this.abort_request({request: ac.requests[i], lock: ac.locks[i]});
- };
-
-
- /*********************************************************/
- /********* address book methods *********/
- /*********************************************************/
-
- this.contactlist_keypress = function(list)
- {
- if (list.key_pressed == list.DELETE_KEY)
- this.command('delete');
- };
-
- this.contactlist_select = function(list)
- {
- if (this.preview_timer)
- clearTimeout(this.preview_timer);
-
- var n, id, sid, contact, ref = this, writable = false,
- source = this.env.source ? this.env.address_sources[this.env.source] : null;
-
- // we don't have dblclick handler here, so use 200 instead of this.dblclick_time
- if (id = list.get_single_selection())
- this.preview_timer = setTimeout(function(){ ref.load_contact(id, 'show'); }, 200);
- else if (this.env.contentframe)
- this.show_contentframe(false);
-
- if (list.selection.length) {
- list.draggable = false;
-
- // no source = search result, we'll need to detect if any of
- // selected contacts are in writable addressbook to enable edit/delete
- // we'll also need to know sources used in selection for copy
- // and group-addmember operations (drag&drop)
- this.env.selection_sources = [];
-
- if (source) {
- this.env.selection_sources.push(this.env.source);
- }
-
- for (n in list.selection) {
- contact = list.data[list.selection[n]];
- if (!source) {
- sid = String(list.selection[n]).replace(/^[^-]+-/, '');
- if (sid && this.env.address_sources[sid]) {
- writable = writable || (!this.env.address_sources[sid].readonly && !contact.readonly);
- this.env.selection_sources.push(sid);
- }
- }
- else {
- writable = writable || (!source.readonly && !contact.readonly);
- }
-
- if (contact._type != 'group')
- list.draggable = true;
- }
-
- this.env.selection_sources = $.unique(this.env.selection_sources);
- }
-
- // if a group is currently selected, and there is at least one contact selected
- // thend we can enable the group-remove-selected command
- this.enable_command('group-remove-selected', this.env.group && list.selection.length > 0 && writable);
- this.enable_command('compose', this.env.group || list.selection.length > 0);
- this.enable_command('export-selected', 'copy', list.selection.length > 0);
- this.enable_command('edit', id && writable);
- this.enable_command('delete', 'move', list.selection.length > 0 && writable);
-
- return false;
- };
-
- this.list_contacts = function(src, group, page)
- {
- var win, folder, url = {},
- target = window;
-
- if (!src)
- src = this.env.source;
-
- if (page && this.current_page == page && src == this.env.source && group == this.env.group)
- return false;
-
- if (src != this.env.source) {
- page = this.env.current_page = 1;
- this.reset_qsearch();
- }
- else if (group != this.env.group)
- page = this.env.current_page = 1;
-
- if (this.env.search_id)
- folder = 'S'+this.env.search_id;
- else if (!this.env.search_request)
- folder = group ? 'G'+src+group : src;
-
- this.env.source = src;
- this.env.group = group;
-
- // truncate groups listing stack
- var index = $.inArray(this.env.group, this.env.address_group_stack);
- if (index < 0)
- this.env.address_group_stack = [];
- else
- this.env.address_group_stack = this.env.address_group_stack.slice(0,index);
-
- // make sure the current group is on top of the stack
- if (this.env.group) {
- this.env.address_group_stack.push(this.env.group);
-
- // mark the first group on the stack as selected in the directory list
- folder = 'G'+src+this.env.address_group_stack[0];
- }
- else if (this.gui_objects.addresslist_title) {
- $(this.gui_objects.addresslist_title).html(this.get_label('contacts'));
- }
-
- this.select_folder(folder, '', true);
-
- // load contacts remotely
- if (this.gui_objects.contactslist) {
- this.list_contacts_remote(src, group, page);
- return;
- }
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- target = win;
- url._framed = 1;
- }
-
- if (group)
- url._gid = group;
- if (page)
- url._page = page;
- if (src)
- url._source = src;
-
- // also send search request to get the correct listing
- if (this.env.search_request)
- url._search = this.env.search_request;
-
- this.set_busy(true, 'loading');
- this.location_href(url, target);
- };
-
- // send remote request to load contacts list
- this.list_contacts_remote = function(src, group, page)
- {
- // clear message list first
- this.list_contacts_clear();
-
- // send request to server
- var url = {}, lock = this.set_busy(true, 'loading');
-
- if (src)
- url._source = src;
- if (page)
- url._page = page;
- if (group)
- url._gid = group;
-
- this.env.source = src;
- this.env.group = group;
-
- // also send search request to get the right records
- if (this.env.search_request)
- url._search = this.env.search_request;
-
- this.http_request(this.env.task == 'mail' ? 'list-contacts' : 'list', url, lock);
- };
-
- this.list_contacts_clear = function()
- {
- this.contact_list.data = {};
- this.contact_list.clear(true);
- this.show_contentframe(false);
- this.enable_command('delete', 'move', 'copy', false);
- this.enable_command('compose', this.env.group ? true : false);
- };
-
- this.set_group_prop = function(prop)
- {
- if (this.gui_objects.addresslist_title) {
- var boxtitle = $(this.gui_objects.addresslist_title).html(''); // clear contents
-
- // add link to pop back to parent group
- if (this.env.address_group_stack.length > 1) {
- $('<a href="#list">...</a>')
- .addClass('poplink')
- .appendTo(boxtitle)
- .click(function(e){ return ref.command('popgroup','',this); });
- boxtitle.append('&nbsp;&raquo;&nbsp;');
- }
-
- boxtitle.append($('<span>').text(prop.name));
- }
-
- this.triggerEvent('groupupdate', prop);
- };
-
- // load contact record
- this.load_contact = function(cid, action, framed)
- {
- var win, url = {}, target = window,
- rec = this.contact_list ? this.contact_list.data[cid] : null;
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- this.show_contentframe(true);
-
- // load dummy content, unselect selected row(s)
- if (!cid)
- this.contact_list.clear_selection();
-
- this.enable_command('compose', rec && rec.email);
- this.enable_command('export-selected', rec && rec._type != 'group');
- }
- else if (framed)
- return false;
-
- if (action && (cid || action=='add') && !this.drag_active) {
- if (this.env.group)
- url._gid = this.env.group;
-
- url._action = action;
- url._source = this.env.source;
- url._cid = cid;
-
- this.location_href(url, target, true);
- }
-
- return true;
- };
-
- // add/delete member to/from the group
- this.group_member_change = function(what, cid, source, gid)
- {
- what = what == 'add' ? 'add' : 'del';
- var label = this.get_label(what == 'add' ? 'addingmember' : 'removingmember'),
- lock = this.display_message(label, 'loading'),
- post_data = {_cid: cid, _source: source, _gid: gid};
-
- this.http_post('group-'+what+'members', post_data, lock);
- };
-
- this.contacts_drag_menu = function(e, to)
- {
- var dest = to.type == 'group' ? to.source : to.id,
- source = this.env.source;
-
- if (!this.env.address_sources[dest] || this.env.address_sources[dest].readonly)
- return true;
-
- // search result may contain contacts from many sources, but if there is only one...
- if (source == '' && this.env.selection_sources.length == 1)
- source = this.env.selection_sources[0];
-
- if (to.type == 'group' && dest == source) {
- var cid = this.contact_list.get_selection().join(',');
- this.group_member_change('add', cid, dest, to.id);
- return true;
- }
- // move action is not possible, "redirect" to copy if menu wasn't requested
- else if (!this.commands.move && rcube_event.get_modifier(e) != SHIFT_KEY) {
- this.copy_contacts(to);
- return true;
- }
-
- return this.drag_menu(e, to);
- };
-
- // copy contact(s) to the specified target (group or directory)
- this.copy_contacts = function(to)
- {
- var n, dest = to.type == 'group' ? to.source : to.id,
- source = this.env.source,
- group = this.env.group ? this.env.group : '',
- cid = this.contact_list.get_selection().join(',');
-
- if (!cid || !this.env.address_sources[dest] || this.env.address_sources[dest].readonly)
- return;
-
- // search result may contain contacts from many sources, but if there is only one...
- if (source == '' && this.env.selection_sources.length == 1)
- source = this.env.selection_sources[0];
-
- // tagret is a group
- if (to.type == 'group') {
- if (dest == source)
- return;
-
- var lock = this.display_message(this.get_label('copyingcontact'), 'loading'),
- post_data = {_cid: cid, _source: this.env.source, _to: dest, _togid: to.id, _gid: group};
-
- this.http_post('copy', post_data, lock);
- }
- // target is an addressbook
- else if (to.id != source) {
- var lock = this.display_message(this.get_label('copyingcontact'), 'loading'),
- post_data = {_cid: cid, _source: this.env.source, _to: to.id, _gid: group};
-
- this.http_post('copy', post_data, lock);
- }
- };
-
- // move contact(s) to the specified target (group or directory)
- this.move_contacts = function(to)
- {
- var dest = to.type == 'group' ? to.source : to.id,
- source = this.env.source,
- group = this.env.group ? this.env.group : '';
-
- if (!this.env.address_sources[dest] || this.env.address_sources[dest].readonly)
- return;
-
- // search result may contain contacts from many sources, but if there is only one...
- if (source == '' && this.env.selection_sources.length == 1)
- source = this.env.selection_sources[0];
-
- if (to.type == 'group') {
- if (dest == source)
- return;
-
- this._with_selected_contacts('move', {_to: dest, _togid: to.id});
- }
- // target is an addressbook
- else if (to.id != source)
- this._with_selected_contacts('move', {_to: to.id});
- };
-
- // delete contact(s)
- this.delete_contacts = function()
- {
- var undelete = this.env.source && this.env.address_sources[this.env.source].undelete;
-
- if (!undelete && !confirm(this.get_label('deletecontactconfirm')))
- return;
-
- return this._with_selected_contacts('delete');
- };
-
- this._with_selected_contacts = function(action, post_data)
- {
- var selection = this.contact_list ? this.contact_list.get_selection() : [];
-
- // exit if no mailbox specified or if selection is empty
- if (!selection.length && !this.env.cid)
- return;
-
- var n, a_cids = [],
- label = action == 'delete' ? 'contactdeleting' : 'movingcontact',
- lock = this.display_message(this.get_label(label), 'loading');
- if (this.env.cid)
- a_cids.push(this.env.cid);
- else {
- for (n=0; n<selection.length; n++) {
- id = selection[n];
- a_cids.push(id);
- this.contact_list.remove_row(id, (n == selection.length-1));
- }
-
- // hide content frame if we delete the currently displayed contact
- if (selection.length == 1)
- this.show_contentframe(false);
- }
-
- if (!post_data)
- post_data = {};
-
- post_data._source = this.env.source;
- post_data._from = this.env.action;
- post_data._cid = a_cids.join(',');
-
- if (this.env.group)
- post_data._gid = this.env.group;
-
- // also send search request to get the right records from the next page
- if (this.env.search_request)
- post_data._search = this.env.search_request;
-
- // send request to server
- this.http_post(action, post_data, lock)
-
- return true;
- };
-
- // update a contact record in the list
- this.update_contact_row = function(cid, cols_arr, newcid, source, data)
- {
- var c, row, list = this.contact_list;
-
- cid = this.html_identifier(cid);
-
- // when in searching mode, concat cid with the source name
- if (!list.rows[cid]) {
- cid = cid+'-'+source;
- if (newcid)
- newcid = newcid+'-'+source;
- }
-
- list.update_row(cid, cols_arr, newcid, true);
- list.data[cid] = data;
- };
-
- // add row to contacts list
- this.add_contact_row = function(cid, cols, classes, data)
- {
- if (!this.gui_objects.contactslist)
- return false;
-
- var c, col, list = this.contact_list,
- row = { cols:[] };
-
- row.id = 'rcmrow'+this.html_identifier(cid);
- row.className = 'contact ' + (classes || '');
-
- if (list.in_selection(cid))
- row.className += ' selected';
-
- // add each submitted col
- for (c in cols) {
- col = {};
- col.className = String(c).toLowerCase();
- col.innerHTML = cols[c];
- row.cols.push(col);
- }
-
- // store data in list member
- list.data[cid] = data;
- list.insert_row(row);
-
- this.enable_command('export', list.rowcount > 0);
- };
-
- this.init_contact_form = function()
- {
- var ref = this, col;
-
- if (this.env.coltypes) {
- this.set_photo_actions($('#ff_photo').val());
- for (col in this.env.coltypes)
- this.init_edit_field(col, null);
- }
-
- $('.contactfieldgroup .row a.deletebutton').click(function() {
- ref.delete_edit_field(this);
- return false;
- });
-
- $('select.addfieldmenu').change(function(e) {
- ref.insert_edit_field($(this).val(), $(this).attr('rel'), this);
- this.selectedIndex = 0;
- });
-
- // enable date pickers on date fields
- if ($.datepicker && this.env.date_format) {
- $.datepicker.setDefaults({
- dateFormat: this.env.date_format,
- changeMonth: true,
- changeYear: true,
- yearRange: '-100:+10',
- showOtherMonths: true,
- selectOtherMonths: true,
- onSelect: function(dateText) { $(this).focus().val(dateText) }
- });
- $('input.datepicker').datepicker();
- }
-
- // Submit search form on Enter
- if (this.env.action == 'search')
- $(this.gui_objects.editform).append($('<input type="submit">').hide())
- .submit(function() { $('input.mainaction').click(); return false; });
- };
-
- this.group_create = function()
- {
- this.add_input_row('contactgroup');
- };
-
- this.group_rename = function()
- {
- if (!this.env.group || !this.gui_objects.folderlist)
- return;
-
- if (!this.name_input) {
- this.enable_command('list', 'listgroup', false);
- this.name_input = $('<input>').attr('type', 'text').val(this.env.contactgroups['G'+this.env.source+this.env.group].name);
- this.name_input.bind('keydown', function(e){ return rcmail.add_input_keydown(e); });
- this.env.group_renaming = true;
-
- var link, li = this.get_folder_li('G'+this.env.source+this.env.group,'',true);
- if (li && (link = li.firstChild)) {
- $(link).hide().before(this.name_input);
- }
- }
-
- this.name_input.select().focus();
- };
-
- this.group_delete = function()
- {
- if (this.env.group && confirm(this.get_label('deletegroupconfirm'))) {
- var lock = this.set_busy(true, 'groupdeleting');
- this.http_post('group-delete', {_source: this.env.source, _gid: this.env.group}, lock);
- }
- };
-
- // callback from server upon group-delete command
- this.remove_group_item = function(prop)
- {
- var key = 'G'+prop.source+prop.id;
- if (this.treelist.remove(key)) {
- delete this.env.contactfolders[key];
- delete this.env.contactgroups[key];
- }
-
- this.list_contacts(prop.source, 0);
- };
-
- // @TODO: maybe it would be better to use popup instead of inserting input to the list?
- this.add_input_row = function(type)
- {
- if (!this.gui_objects.folderlist)
- return;
-
- if (!this.name_input) {
- this.name_input = $('<input>').attr('type', 'text').data('tt', type);
- this.name_input.bind('keydown', function(e){ return rcmail.add_input_keydown(e); });
- this.name_input_li = $('<li>').addClass(type).append(this.name_input);
-
- var ul, li;
-
- // find list (UL) element
- if (type == 'contactsearch')
- ul = this.gui_objects.folderlist;
- else
- ul = $('ul.groups', this.get_folder_li(this.env.source,'',true));
-
- // append to the list
- li = $('li:last', ul);
- if (li.length)
- this.name_input_li.insertAfter(li);
- else {
- this.name_input_li.appendTo(ul);
- ul.show(); // make sure the list is visible
- }
- }
-
- this.name_input.select().focus();
- };
-
- //remove selected contacts from current active group
- this.group_remove_selected = function()
- {
- ref.http_post('group-delmembers', {_cid: this.contact_list.selection,
- _source: this.env.source, _gid: this.env.group});
- };
-
- //callback after deleting contact(s) from current group
- this.remove_group_contacts = function(props)
- {
- if('undefined' != typeof this.env.group && (this.env.group === props.gid)){
- var n, selection = this.contact_list.get_selection();
- for (n=0; n<selection.length; n++) {
- id = selection[n];
- this.contact_list.remove_row(id, (n == selection.length-1));
- }
- }
- }
-
- // handler for keyboard events on the input field
- this.add_input_keydown = function(e)
- {
- var key = rcube_event.get_keycode(e),
- input = $(e.target), itype = input.data('tt');
-
- // enter
- if (key == 13) {
- var newname = input.val();
-
- if (newname) {
- var lock = this.set_busy(true, 'loading');
-
- if (itype == 'contactsearch')
- this.http_post('search-create', {_search: this.env.search_request, _name: newname}, lock);
- else if (this.env.group_renaming)
- this.http_post('group-rename', {_source: this.env.source, _gid: this.env.group, _name: newname}, lock);
- else
- this.http_post('group-create', {_source: this.env.source, _name: newname}, lock);
- }
- return false;
- }
- // escape
- else if (key == 27)
- this.reset_add_input();
-
- return true;
- };
-
- this.reset_add_input = function()
- {
- if (this.name_input) {
- var li = this.name_input.parent();
- if (this.env.group_renaming) {
- li.children().last().show();
- this.env.group_renaming = false;
- }
- else if ($('li', li.parent()).length == 1)
- li.parent().hide();
-
- this.name_input.remove();
-
- if (this.name_input_li)
- this.name_input_li.remove();
-
- this.name_input = this.name_input_li = null;
- }
-
- this.enable_command('list', 'listgroup', true);
- };
-
- // callback for creating a new contact group
- this.insert_contact_group = function(prop)
- {
- this.reset_add_input();
-
- prop.type = 'group';
- var key = 'G'+prop.source+prop.id,
- link = $('<a>').attr('href', '#')
- .attr('rel', prop.source+':'+prop.id)
- .click(function() { return rcmail.command('listgroup', prop, this); })
- .html(prop.name);
-
- this.env.contactfolders[key] = this.env.contactgroups[key] = prop;
- this.treelist.insert({ id:key, html:link, classes:['contactgroup'] }, prop.source, true);
-
- this.triggerEvent('group_insert', { id:prop.id, source:prop.source, name:prop.name, li:this.treelist.get_item(key) });
- };
-
- // callback for renaming a contact group
- this.update_contact_group = function(prop)
- {
- this.reset_add_input();
-
- var key = 'G'+prop.source+prop.id,
- newnode = {};
-
- // group ID has changed, replace link node and identifiers
- if (prop.newid) {
- var newkey = 'G'+prop.source+prop.newid,
- newprop = $.extend({}, prop);
-
- this.env.contactfolders[newkey] = this.env.contactfolders[key];
- this.env.contactfolders[newkey].id = prop.newid;
- this.env.group = prop.newid;
-
- delete this.env.contactfolders[key];
- delete this.env.contactgroups[key];
-
- newprop.id = prop.newid;
- newprop.type = 'group';
-
- newnode.id = newkey;
- newnode.html = $('<a>').attr('href', '#')
- .attr('rel', prop.source+':'+prop.newid)
- .click(function() { return rcmail.command('listgroup', newprop, this); })
- .html(prop.name);
- }
- // update displayed group name
- else {
- $(this.treelist.get_item(key)).children().first().html(prop.name);
- this.env.contactfolders[key].name = this.env.contactgroups[key].name = prop.name;
- }
-
- // update list node and re-sort it
- this.treelist.update(key, newnode, true);
-
- this.triggerEvent('group_update', { id:prop.id, source:prop.source, name:prop.name, li:this.treelist.get_item(key), newid:prop.newid });
- };
-
- this.update_group_commands = function()
- {
- var source = this.env.source != '' ? this.env.address_sources[this.env.source] : null;
- this.enable_command('group-create', (source && source.groups && !source.readonly));
- this.enable_command('group-rename', 'group-delete', (source && source.groups && this.env.group && !source.readonly));
- };
-
- this.init_edit_field = function(col, elem)
- {
- var label = this.env.coltypes[col].label;
-
- if (!elem)
- elem = $('.ff_' + col);
-
- if (label)
- elem.placeholder(label);
- };
-
- this.insert_edit_field = function(col, section, menu)
- {
- // just make pre-defined input field visible
- var elem = $('#ff_'+col);
- if (elem.length) {
- elem.show().focus();
- $(menu).children('option[value="'+col+'"]').prop('disabled', true);
- }
- else {
- var lastelem = $('.ff_'+col),
- appendcontainer = $('#contactsection'+section+' .contactcontroller'+col);
-
- if (!appendcontainer.length) {
- var sect = $('#contactsection'+section),
- lastgroup = $('.contactfieldgroup', sect).last();
- appendcontainer = $('<fieldset>').addClass('contactfieldgroup contactcontroller'+col);
- if (lastgroup.length)
- appendcontainer.insertAfter(lastgroup);
- else
- sect.prepend(appendcontainer);
- }
-
- if (appendcontainer.length && appendcontainer.get(0).nodeName == 'FIELDSET') {
- var input, colprop = this.env.coltypes[col],
- row = $('<div>').addClass('row'),
- cell = $('<div>').addClass('contactfieldcontent data'),
- label = $('<div>').addClass('contactfieldlabel label');
-
- if (colprop.subtypes_select)
- label.html(colprop.subtypes_select);
- else
- label.html(colprop.label);
-
- var name_suffix = colprop.limit != 1 ? '[]' : '';
- if (colprop.type == 'text' || colprop.type == 'date') {
- input = $('<input>')
- .addClass('ff_'+col)
- .attr({type: 'text', name: '_'+col+name_suffix, size: colprop.size})
- .appendTo(cell);
-
- this.init_edit_field(col, input);
-
- if (colprop.type == 'date' && $.datepicker)
- input.datepicker();
- }
- else if (colprop.type == 'textarea') {
- input = $('<textarea>')
- .addClass('ff_'+col)
- .attr({ name: '_'+col+name_suffix, cols:colprop.size, rows:colprop.rows })
- .appendTo(cell);
-
- this.init_edit_field(col, input);
- }
- else if (colprop.type == 'composite') {
- var childcol, cp, first, templ, cols = [], suffices = [];
- // read template for composite field order
- if ((templ = this.env[col+'_template'])) {
- for (var j=0; j < templ.length; j++) {
- cols.push(templ[j][1]);
- suffices.push(templ[j][2]);
- }
- }
- else { // list fields according to appearance in colprop
- for (childcol in colprop.childs)
- cols.push(childcol);
- }
-
- for (var i=0; i < cols.length; i++) {
- childcol = cols[i];
- cp = colprop.childs[childcol];
- input = $('<input>')
- .addClass('ff_'+childcol)
- .attr({ type: 'text', name: '_'+childcol+name_suffix, size: cp.size })
- .appendTo(cell);
- cell.append(suffices[i] || " ");
- this.init_edit_field(childcol, input);
- if (!first) first = input;
- }
- input = first; // set focus to the first of this composite fields
- }
- else if (colprop.type == 'select') {
- input = $('<select>')
- .addClass('ff_'+col)
- .attr('name', '_'+col+name_suffix)
- .appendTo(cell);
-
- var options = input.attr('options');
- options[options.length] = new Option('---', '');
- if (colprop.options)
- $.each(colprop.options, function(i, val){ options[options.length] = new Option(val, i); });
- }
-
- if (input) {
- var delbutton = $('<a href="#del"></a>')
- .addClass('contactfieldbutton deletebutton')
- .attr({title: this.get_label('delete'), rel: col})
- .html(this.env.delbutton)
- .click(function(){ ref.delete_edit_field(this); return false })
- .appendTo(cell);
-
- row.append(label).append(cell).appendTo(appendcontainer.show());
- input.first().focus();
-
- // disable option if limit reached
- if (!colprop.count) colprop.count = 0;
- if (++colprop.count == colprop.limit && colprop.limit)
- $(menu).children('option[value="'+col+'"]').prop('disabled', true);
- }
- }
- }
- };
-
- this.delete_edit_field = function(elem)
- {
- var col = $(elem).attr('rel'),
- colprop = this.env.coltypes[col],
- fieldset = $(elem).parents('fieldset.contactfieldgroup'),
- addmenu = fieldset.parent().find('select.addfieldmenu');
-
- // just clear input but don't hide the last field
- if (--colprop.count <= 0 && colprop.visible)
- $(elem).parent().children('input').val('').blur();
- else {
- $(elem).parents('div.row').remove();
- // hide entire fieldset if no more rows
- if (!fieldset.children('div.row').length)
- fieldset.hide();
- }
-
- // enable option in add-field selector or insert it if necessary
- if (addmenu.length) {
- var option = addmenu.children('option[value="'+col+'"]');
- if (option.length)
- option.prop('disabled', false);
- else
- option = $('<option>').attr('value', col).html(colprop.label).appendTo(addmenu);
- addmenu.show();
- }
- };
-
- this.upload_contact_photo = function(form)
- {
- if (form && form.elements._photo.value) {
- this.async_upload_form(form, 'upload-photo', function(e) {
- rcmail.set_busy(false, null, rcmail.file_upload_id);
- });
-
- // display upload indicator
- this.file_upload_id = this.set_busy(true, 'uploading');
- }
- };
-
- this.replace_contact_photo = function(id)
- {
- var img_src = id == '-del-' ? this.env.photo_placeholder :
- this.env.comm_path + '&_action=photo&_source=' + this.env.source + '&_cid=' + (this.env.cid || 0) + '&_photo=' + id;
-
- this.set_photo_actions(id);
- $(this.gui_objects.contactphoto).children('img').attr('src', img_src);
- };
-
- this.photo_upload_end = function()
- {
- this.set_busy(false, null, this.file_upload_id);
- delete this.file_upload_id;
- };
-
- this.set_photo_actions = function(id)
- {
- var n, buttons = this.buttons['upload-photo'];
- for (n=0; buttons && n < buttons.length; n++)
- $('a#'+buttons[n].id).html(this.get_label(id == '-del-' ? 'addphoto' : 'replacephoto'));
-
- $('#ff_photo').val(id);
- this.enable_command('upload-photo', this.env.coltypes.photo ? true : false);
- this.enable_command('delete-photo', this.env.coltypes.photo && id != '-del-');
- };
-
- // load advanced search page
- this.advanced_search = function()
- {
- var win, url = {_form: 1, _action: 'search'}, target = window;
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- this.contact_list.clear_selection();
- }
-
- this.location_href(url, target, true);
-
- return true;
- };
-
- // unselect directory/group
- this.unselect_directory = function()
- {
- this.select_folder('');
- this.enable_command('search-delete', false);
- };
-
- // callback for creating a new saved search record
- this.insert_saved_search = function(name, id)
- {
- this.reset_add_input();
-
- var key = 'S'+id,
- link = $('<a>').attr('href', '#')
- .attr('rel', id)
- .click(function() { return rcmail.command('listsearch', id, this); })
- .html(name),
- prop = { name:name, id:id };
-
- this.treelist.insert({ id:key, html:link, classes:['contactsearch'] }, null, 'contactsearch');
- this.select_folder(key,'',true);
- this.enable_command('search-delete', true);
- this.env.search_id = id;
-
- this.triggerEvent('abook_search_insert', prop);
- };
-
- // creates an input for saved search name
- this.search_create = function()
- {
- this.add_input_row('contactsearch');
- };
-
- this.search_delete = function()
- {
- if (this.env.search_request) {
- var lock = this.set_busy(true, 'savedsearchdeleting');
- this.http_post('search-delete', {_sid: this.env.search_id}, lock);
- }
- };
-
- // callback from server upon search-delete command
- this.remove_search_item = function(id)
- {
- var li, key = 'S'+id;
- if (this.treelist.remove(key)) {
- this.triggerEvent('search_delete', { id:id, li:li });
- }
-
- this.env.search_id = null;
- this.env.search_request = null;
- this.list_contacts_clear();
- this.reset_qsearch();
- this.enable_command('search-delete', 'search-create', false);
- };
-
- this.listsearch = function(id)
- {
- var folder, lock = this.set_busy(true, 'searching');
-
- if (this.contact_list) {
- this.list_contacts_clear();
- }
-
- this.reset_qsearch();
- this.select_folder('S'+id, '', true);
-
- // reset vars
- this.env.current_page = 1;
- this.http_request('search', {_sid: id}, lock);
- };
-
-
- /*********************************************************/
- /********* user settings methods *********/
- /*********************************************************/
-
- // preferences section select and load options frame
- this.section_select = function(list)
- {
- var win, id = list.get_single_selection(), target = window,
- url = {_action: 'edit-prefs', _section: id};
-
- if (id) {
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- }
- this.location_href(url, target, true);
- }
-
- return true;
- };
-
- this.identity_select = function(list)
- {
- var id;
- if (id = list.get_single_selection()) {
- this.enable_command('delete', list.rowcount > 1 && this.env.identities_level < 2);
- this.load_identity(id, 'edit-identity');
- }
- };
-
- // load identity record
- this.load_identity = function(id, action)
- {
- if (action == 'edit-identity' && (!id || id == this.env.iid))
- return false;
-
- var win, target = window,
- url = {_action: action, _iid: id};
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- url._framed = 1;
- target = win;
- }
-
- if (action && (id || action == 'add-identity')) {
- this.set_busy(true);
- this.location_href(url, target);
- }
-
- return true;
- };
-
- this.delete_identity = function(id)
- {
- // exit if no identity is specified or if selection is empty
- var selection = this.identity_list.get_selection();
- if (!(selection.length || this.env.iid))
- return;
-
- if (!id)
- id = this.env.iid ? this.env.iid : selection[0];
-
- // submit request with appended token
- if (confirm(this.get_label('deleteidentityconfirm')))
- this.goto_url('delete-identity', { _iid: id, _token: this.env.request_token }, true);
-
- return true;
- };
-
- this.update_identity_row = function(id, name, add)
- {
- var list = this.identity_list,
- rid = this.html_identifier(id);
-
- if (add) {
- list.insert_row({ id:'rcmrow'+rid, cols:[ { className:'mail', innerHTML:name } ] });
- list.select(rid);
- }
- else {
- list.update_row(rid, [ name ]);
- }
- };
-
- this.update_response_row = function(response, oldkey)
- {
- var list = this.responses_list;
-
- if (list && oldkey) {
- list.update_row(oldkey, [ response.name ], response.key, true);
- }
- else if (list) {
- list.insert_row({ id:'rcmrow'+response.key, cols:[ { className:'name', innerHTML:response.name } ] });
- list.select(response.key);
- }
- };
-
- this.remove_response = function(key)
- {
- var frame;
-
- if (this.env.textresponses) {
- delete this.env.textresponses[key];
- }
-
- if (this.responses_list) {
- this.responses_list.remove_row(key);
- if (this.env.contentframe && (frame = this.get_frame_window(this.env.contentframe))) {
- frame.location.href = this.env.blankpage;
- }
- }
- };
-
-
- /*********************************************************/
- /********* folder manager methods *********/
- /*********************************************************/
-
- this.init_subscription_list = function()
- {
- var p = this, delim = RegExp.escape(this.env.delimiter);
-
- this.last_sub_rx = RegExp('['+delim+']?[^'+delim+']+$');
-
- this.subscription_list = new rcube_list_widget(this.gui_objects.subscriptionlist,
- {multiselect:false, draggable:true, keyboard:false, toggleselect:true});
- this.subscription_list.addEventListener('select', function(o){ p.subscription_select(o); });
- this.subscription_list.addEventListener('dragstart', function(o){ p.drag_active = true; });
- this.subscription_list.addEventListener('dragend', function(o){ p.subscription_move_folder(o); });
- this.subscription_list.row_init = function (row) {
- row.obj.onmouseover = function() { p.focus_subscription(row.id); };
- row.obj.onmouseout = function() { p.unfocus_subscription(row.id); };
- };
- this.subscription_list.init();
-
- $('#mailboxroot')
- .mouseover(function(){ p.focus_subscription(this.id); })
- .mouseout(function(){ p.unfocus_subscription(this.id); })
- };
-
- this.focus_subscription = function(id)
- {
- var row, folder;
-
- if (this.drag_active && this.env.mailbox && (row = document.getElementById(id)))
- if (this.env.subscriptionrows[id] &&
- (folder = this.env.subscriptionrows[id][0]) !== null
- ) {
- if (this.check_droptarget(folder) &&
- !this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2] &&
- folder != this.env.mailbox.replace(this.last_sub_rx, '') &&
- !folder.startsWith(this.env.mailbox + this.env.delimiter)
- ) {
- this.env.dstfolder = folder;
- $(row).addClass('droptarget');
- }
- }
- };
-
- this.unfocus_subscription = function(id)
- {
- var row = $('#'+id);
-
- this.env.dstfolder = null;
-
- if (this.env.subscriptionrows[id] && row.length)
- row.removeClass('droptarget');
- else
- $(this.subscription_list.frame).removeClass('droptarget');
- };
-
- this.subscription_select = function(list)
- {
- var id, folder;
-
- if (list && (id = list.get_single_selection()) &&
- (folder = this.env.subscriptionrows['rcmrow'+id])
- ) {
- this.env.mailbox = folder[0];
- this.show_folder(folder[0]);
- this.enable_command('delete-folder', !folder[2]);
- }
- else {
- this.env.mailbox = null;
- this.show_contentframe(false);
- this.enable_command('delete-folder', 'purge', false);
- }
- };
-
- this.subscription_move_folder = function(list)
- {
- if (this.env.mailbox && this.env.dstfolder !== null &&
- this.env.dstfolder != this.env.mailbox &&
- this.env.dstfolder != this.env.mailbox.replace(this.last_sub_rx, '')
- ) {
- var path = this.env.mailbox.split(this.env.delimiter),
- basename = path.pop(),
- newname = this.env.dstfolder === '' ? basename : this.env.dstfolder + this.env.delimiter + basename;
-
- if (newname != this.env.mailbox) {
- this.http_post('rename-folder', {_folder_oldname: this.env.mailbox, _folder_newname: newname}, this.set_busy(true, 'foldermoving'));
- this.subscription_list.draglayer.hide();
- }
- }
-
- this.drag_active = false;
- this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder));
- };
-
- // tell server to create and subscribe a new mailbox
- this.create_folder = function()
- {
- this.show_folder('', this.env.mailbox);
- };
-
- // delete a specific mailbox with all its messages
- this.delete_folder = function(name)
- {
- var id = this.get_folder_row_id(name ? name : this.env.mailbox),
- folder = this.env.subscriptionrows[id][0];
-
- if (folder && confirm(this.get_label('deletefolderconfirm'))) {
- var lock = this.set_busy(true, 'folderdeleting');
- this.http_post('delete-folder', {_mbox: folder}, lock);
- }
- };
-
- // Add folder row to the table and initialize it
- this.add_folder_row = function (name, display_name, is_protected, subscribed, skip_init, class_name)
- {
- if (!this.gui_objects.subscriptionlist)
- return false;
-
- var row, n, i, tmp, tmp_name, folders, rowid, list = [], slist = [],
- tbody = this.gui_objects.subscriptionlist.tBodies[0],
- refrow = $('tr', tbody).get(1),
- id = 'rcmrow'+((new Date).getTime());
-
- if (!refrow) {
- // Refresh page if we don't have a table row to clone
- this.goto_url('folders');
- return false;
- }
-
- // clone a table row if there are existing rows
- row = $(refrow).clone(true);
-
- // set ID, reset css class
- row.attr('id', id);
- row.attr('class', class_name);
-
- // set folder name
- row.find('td:first').html(display_name);
-
- // update subscription checkbox
- $('input[name="_subscribed[]"]', row).val(name)
- .prop({checked: subscribed ? true : false, disabled: is_protected ? true : false});
-
- // add to folder/row-ID map
- this.env.subscriptionrows[id] = [name, display_name, 0];
-
- // sort folders, to find a place where to insert the row
- folders = [];
- $.each(this.env.subscriptionrows, function(k,v){ folders.push(v) });
- folders.sort(function(a,b){ return a[0] < b[0] ? -1 : (a[0] > b[0] ? 1 : 0) });
-
- for (n in folders) {
- // protected folder
- if (folders[n][2]) {
- tmp_name = folders[n][0] + this.env.delimiter;
- // prefix namespace cannot have subfolders (#1488349)
- if (tmp_name == this.env.prefix_ns)
- continue;
- slist.push(folders[n][0]);
- tmp = tmp_name;
- }
- // protected folder's child
- else if (tmp && folders[n][0].startsWith(tmp))
- slist.push(folders[n][0]);
- // other
- else {
- list.push(folders[n][0]);
- tmp = null;
- }
- }
-
- // check if subfolder of a protected folder
- for (n=0; n<slist.length; n++) {
- if (name.startsWith(slist[n] + this.env.delimiter))
- rowid = this.get_folder_row_id(slist[n]);
- }
-
- // find folder position after sorting
- for (n=0; !rowid && n<list.length; n++) {
- if (n && list[n] == name)
- rowid = this.get_folder_row_id(list[n-1]);
- }
-
- // add row to the table
- if (rowid)
- $('#'+rowid).after(row);
- else
- row.appendTo(tbody);
-
- // update list widget
- this.subscription_list.clear_selection();
- if (!skip_init)
- this.init_subscription_list();
-
- row = row.get(0);
- if (row.scrollIntoView)
- row.scrollIntoView();
-
- return row;
- };
-
- // replace an existing table row with a new folder line (with subfolders)
- this.replace_folder_row = function(oldfolder, newfolder, display_name, is_protected, class_name)
- {
- if (!this.gui_objects.subscriptionlist)
- return false;
-
- var i, n, len, name, dispname, oldrow, tmprow, row, level,
- tbody = this.gui_objects.subscriptionlist.tBodies[0],
- folders = this.env.subscriptionrows,
- id = this.get_folder_row_id(oldfolder),
- prefix_len = oldfolder.length,
- subscribed = $('input[name="_subscribed[]"]', $('#'+id)).prop('checked'),
- // find subfolders of renamed folder
- list = this.get_subfolders(oldfolder);
-
- // replace an existing table row
- this._remove_folder_row(id);
- row = $(this.add_folder_row(newfolder, display_name, is_protected, subscribed, true, class_name));
-
- // detect tree depth change
- if (len = list.length) {
- level = (oldfolder.split(this.env.delimiter)).length - (newfolder.split(this.env.delimiter)).length;
- }
-
- // move subfolders to the new branch
- for (n=0; n<len; n++) {
- id = list[n];
- name = this.env.subscriptionrows[id][0];
- dispname = this.env.subscriptionrows[id][1];
- oldrow = $('#'+id);
- tmprow = oldrow.clone(true);
- oldrow.remove();
- row.after(tmprow);
- row = tmprow;
- // update folder index
- name = newfolder + name.slice(prefix_len);
- $('input[name="_subscribed[]"]', row).val(name);
- this.env.subscriptionrows[id][0] = name;
- // update the name if level is changed
- if (level != 0) {
- if (level > 0) {
- for (i=level; i>0; i--)
- dispname = dispname.replace(/^&nbsp;&nbsp;&nbsp;&nbsp;/, '');
- }
- else {
- for (i=level; i<0; i++)
- dispname = '&nbsp;&nbsp;&nbsp;&nbsp;' + dispname;
- }
- row.find('td:first').html(dispname);
- this.env.subscriptionrows[id][1] = dispname;
- }
- }
-
- // update list widget
- this.init_subscription_list();
- };
-
- // remove the table row of a specific mailbox from the table
- this.remove_folder_row = function(folder, subs)
- {
- var n, len, list = [], id = this.get_folder_row_id(folder);
-
- // get subfolders if any
- if (subs)
- list = this.get_subfolders(folder);
-
- // remove old row
- this._remove_folder_row(id);
-
- // remove subfolders
- for (n=0, len=list.length; n<len; n++)
- this._remove_folder_row(list[n]);
- };
-
- this._remove_folder_row = function(id)
- {
- this.subscription_list.remove_row(id.replace(/^rcmrow/, ''));
- $('#'+id).remove();
- delete this.env.subscriptionrows[id];
- }
-
- this.get_subfolders = function(folder)
- {
- var name, list = [],
- prefix = folder + this.env.delimiter,
- row = $('#'+this.get_folder_row_id(folder)).get(0);
-
- while (row = row.nextSibling) {
- if (row.id) {
- name = this.env.subscriptionrows[row.id][0];
- if (name && name.startsWith(prefix)) {
- list.push(row.id);
- }
- else
- break;
- }
- }
-
- return list;
- }
-
- this.subscribe = function(folder)
- {
- if (folder) {
- var lock = this.display_message(this.get_label('foldersubscribing'), 'loading');
- this.http_post('subscribe', {_mbox: folder}, lock);
- }
- };
-
- this.unsubscribe = function(folder)
- {
- if (folder) {
- var lock = this.display_message(this.get_label('folderunsubscribing'), 'loading');
- this.http_post('unsubscribe', {_mbox: folder}, lock);
- }
- };
-
- // helper method to find a specific mailbox row ID
- this.get_folder_row_id = function(folder)
- {
- var id, folders = this.env.subscriptionrows;
- for (id in folders)
- if (folders[id] && folders[id][0] == folder)
- break;
-
- return id;
- };
-
- // when user select a folder in manager
- this.show_folder = function(folder, path, force)
- {
- var win, target = window,
- url = '&_action=edit-folder&_mbox='+urlencode(folder);
-
- if (path)
- url += '&_path='+urlencode(path);
-
- if (win = this.get_frame_window(this.env.contentframe)) {
- target = win;
- url += '&_framed=1';
- }
-
- if (String(target.location.href).indexOf(url) >= 0 && !force)
- this.show_contentframe(true);
- else
- this.location_href(this.env.comm_path+url, target, true);
- };
-
- // disables subscription checkbox (for protected folder)
- this.disable_subscription = function(folder)
- {
- var id = this.get_folder_row_id(folder);
- if (id)
- $('input[name="_subscribed[]"]', $('#'+id)).prop('disabled', true);
- };
-
- this.folder_size = function(folder)
- {
- var lock = this.set_busy(true, 'loading');
- this.http_post('folder-size', {_mbox: folder}, lock);
- };
-
- this.folder_size_update = function(size)
- {
- $('#folder-size').replaceWith(size);
- };
-
-
- /*********************************************************/
- /********* GUI functionality *********/
- /*********************************************************/
-
- var init_button = function(cmd, prop)
- {
- var elm = document.getElementById(prop.id);
- if (!elm)
- return;
-
- var preload = false;
- if (prop.type == 'image') {
- elm = elm.parentNode;
- preload = true;
- }
-
- elm._command = cmd;
- elm._id = prop.id;
- if (prop.sel) {
- elm.onmousedown = function(e){ return rcmail.button_sel(this._command, this._id); };
- elm.onmouseup = function(e){ return rcmail.button_out(this._command, this._id); };
- if (preload)
- new Image().src = prop.sel;
- }
- if (prop.over) {
- elm.onmouseover = function(e){ return rcmail.button_over(this._command, this._id); };
- elm.onmouseout = function(e){ return rcmail.button_out(this._command, this._id); };
- if (preload)
- new Image().src = prop.over;
- }
- };
-
- // set event handlers on registered buttons
- this.init_buttons = function()
- {
- for (var cmd in this.buttons) {
- if (typeof cmd !== 'string')
- continue;
-
- for (var i=0; i<this.buttons[cmd].length; i++) {
- init_button(cmd, this.buttons[cmd][i]);
- }
- }
-
- // set active task button
- this.set_button(this.task, 'sel');
- };
-
- // set button to a specific state
- this.set_button = function(command, state)
- {
- var n, button, obj, a_buttons = this.buttons[command],
- len = a_buttons ? a_buttons.length : 0;
-
- for (n=0; n<len; n++) {
- button = a_buttons[n];
- obj = document.getElementById(button.id);
-
- if (!obj)
- continue;
-
- // get default/passive setting of the button
- if (button.type == 'image' && !button.status) {
- button.pas = obj._original_src ? obj._original_src : obj.src;
- // respect PNG fix on IE browsers
- if (obj.runtimeStyle && obj.runtimeStyle.filter && obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/))
- button.pas = RegExp.$1;
- }
- else if (!button.status)
- button.pas = String(obj.className);
-
- // set image according to button state
- if (button.type == 'image' && button[state]) {
- button.status = state;
- obj.src = button[state];
- }
- // set class name according to button state
- else if (button[state] !== undefined) {
- button.status = state;
- obj.className = button[state];
- }
- // disable/enable input buttons
- if (button.type == 'input') {
- button.status = state;
- obj.disabled = !state;
- }
- }
- };
-
- // display a specific alttext
- this.set_alttext = function(command, label)
- {
- var n, button, obj, link, a_buttons = this.buttons[command],
- len = a_buttons ? a_buttons.length : 0;
-
- for (n=0; n<len; n++) {
- button = a_buttons[n];
- obj = document.getElementById(button.id);
-
- if (button.type == 'image' && obj) {
- obj.setAttribute('alt', this.get_label(label));
- if ((link = obj.parentNode) && link.tagName.toLowerCase() == 'a')
- link.setAttribute('title', this.get_label(label));
- }
- else if (obj)
- obj.setAttribute('title', this.get_label(label));
- }
- };
-
- // mouse over button
- this.button_over = function(command, id)
- {
- this.button_event(command, id, 'over');
- };
-
- // mouse down on button
- this.button_sel = function(command, id)
- {
- this.button_event(command, id, 'sel');
- };
-
- // mouse out of button
- this.button_out = function(command, id)
- {
- this.button_event(command, id, 'act');
- };
-
- // event of button
- this.button_event = function(command, id, event)
- {
- var n, button, obj, a_buttons = this.buttons[command],
- len = a_buttons ? a_buttons.length : 0;
-
- for (n=0; n<len; n++) {
- button = a_buttons[n];
- if (button.id == id && button.status == 'act') {
- if (button[event] && (obj = document.getElementById(button.id))) {
- obj[button.type == 'image' ? 'src' : 'className'] = button[event];
- }
-
- if (event == 'sel') {
- this.buttons_sel[id] = command;
- }
- }
- }
- };
-
- // write to the document/window title
- this.set_pagetitle = function(title)
- {
- if (title && document.title)
- document.title = title;
- };
-
- // display a system message, list of types in common.css (below #message definition)
- this.display_message = function(msg, type, timeout)
- {
- // pass command to parent window
- if (this.is_framed())
- return parent.rcmail.display_message(msg, type, timeout);
-
- if (!this.gui_objects.message) {
- // save message in order to display after page loaded
- if (type != 'loading')
- this.pending_message = [msg, type, timeout];
- return 1;
- }
-
- type = type ? type : 'notice';
-
- var ref = this,
- key = this.html_identifier(msg),
- date = new Date(),
- id = type + date.getTime();
-
- if (!timeout)
- timeout = this.message_time * (type == 'error' || type == 'warning' ? 2 : 1);
-
- if (type == 'loading') {
- key = 'loading';
- timeout = this.env.request_timeout * 1000;
- if (!msg)
- msg = this.get_label('loading');
- }
-
- // The same message is already displayed
- if (this.messages[key]) {
- // replace label
- if (this.messages[key].obj)
- this.messages[key].obj.html(msg);
- // store label in stack
- if (type == 'loading') {
- this.messages[key].labels.push({'id': id, 'msg': msg});
- }
- // add element and set timeout
- this.messages[key].elements.push(id);
- setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout);
- return id;
- }
-
- // create DOM object and display it
- var obj = $('<div>').addClass(type).html(msg).data('key', key),
- cont = $(this.gui_objects.message).append(obj).show();
-
- this.messages[key] = {'obj': obj, 'elements': [id]};
-
- if (type == 'loading') {
- this.messages[key].labels = [{'id': id, 'msg': msg}];
- }
- else {
- obj.click(function() { return ref.hide_message(obj); });
- }
-
- this.triggerEvent('message', { message:msg, type:type, timeout:timeout, object:obj });
-
- if (timeout > 0)
- setTimeout(function() { ref.hide_message(id, type == 'loading'); }, timeout);
- return id;
- };
-
- // make a message to disapear
- this.hide_message = function(obj, fade)
- {
- // pass command to parent window
- if (this.is_framed())
- return parent.rcmail.hide_message(obj, fade);
-
- if (!this.gui_objects.message)
- return;
-
- var k, n, i, o, m = this.messages;
-
- // Hide message by object, don't use for 'loading'!
- if (typeof obj === 'object') {
- o = $(obj);
- k = o.data('key');
- this.hide_message_object(o, fade);
- if (m[k])
- delete m[k];
- }
- // Hide message by id
- else {
- for (k in m) {
- for (n in m[k].elements) {
- if (m[k] && m[k].elements[n] == obj) {
- m[k].elements.splice(n, 1);
- // hide DOM element if last instance is removed
- if (!m[k].elements.length) {
- this.hide_message_object(m[k].obj, fade);
- delete m[k];
- }
- // set pending action label for 'loading' message
- else if (k == 'loading') {
- for (i in m[k].labels) {
- if (m[k].labels[i].id == obj) {
- delete m[k].labels[i];
- }
- else {
- o = m[k].labels[i].msg;
- m[k].obj.html(o);
- }
- }
- }
- }
- }
- }
- }
- };
-
- // hide message object and remove from the DOM
- this.hide_message_object = function(o, fade)
- {
- if (fade)
- o.fadeOut(600, function() {$(this).remove(); });
- else
- o.hide().remove();
- };
-
- // remove all messages immediately
- this.clear_messages = function()
- {
- // pass command to parent window
- if (this.is_framed())
- return parent.rcmail.clear_messages();
-
- var k, n, m = this.messages;
-
- for (k in m)
- for (n in m[k].elements)
- if (m[k].obj)
- this.hide_message_object(m[k].obj);
-
- this.messages = {};
- };
-
- // open a jquery UI dialog with the given content
- this.show_popup_dialog = function(html, title, buttons, options)
- {
- // forward call to parent window
- if (this.is_framed()) {
- return parent.rcmail.show_popup_dialog(html, title, buttons);
- }
-
- var popup = $('<div class="popup">')
- .html(html)
- .dialog($.extend({
- title: title,
- buttons: buttons,
- modal: true,
- resizable: true,
- width: 500,
- close: function(event, ui) { $(this).remove() }
- }, options || {}));
-
- // resize and center popup
- var win = $(window), w = win.width(), h = win.height(),
- width = popup.width(), height = popup.height();
-
- popup.dialog('option', {
- height: Math.min(h - 40, height + 75 + (buttons ? 50 : 0)),
- width: Math.min(w - 20, width + 20)
- });
-
- return popup;
- };
-
- // enable/disable buttons for page shifting
- this.set_page_buttons = function()
- {
- this.enable_command('nextpage', 'lastpage', this.env.pagecount > this.env.current_page);
- this.enable_command('previouspage', 'firstpage', this.env.current_page > 1);
- };
-
- // mark a mailbox as selected and set environment variable
- this.select_folder = function(name, prefix, encode)
- {
- if (this.treelist) {
- this.treelist.select(name);
- }
- else if (this.gui_objects.folderlist) {
- $('li.selected', this.gui_objects.folderlist)
- .removeClass('selected').addClass('unfocused');
- $(this.get_folder_li(name, prefix, encode))
- .removeClass('unfocused').addClass('selected');
-
- // trigger event hook
- this.triggerEvent('selectfolder', { folder:name, prefix:prefix });
- }
- };
-
- // adds a class to selected folder
- this.mark_folder = function(name, class_name, prefix, encode)
- {
- $(this.get_folder_li(name, prefix, encode)).addClass(class_name);
- };
-
- // adds a class to selected folder
- this.unmark_folder = function(name, class_name, prefix, encode)
- {
- $(this.get_folder_li(name, prefix, encode)).removeClass(class_name);
- };
-
- // helper method to find a folder list item
- this.get_folder_li = function(name, prefix, encode)
- {
- if (!prefix)
- prefix = 'rcmli';
-
- if (this.gui_objects.folderlist) {
- name = this.html_identifier(name, encode);
- return document.getElementById(prefix+name);
- }
- };
-
- // for reordering column array (Konqueror workaround)
- // and for setting some message list global variables
- this.set_message_coltypes = function(coltypes, repl, smart_col)
- {
- var list = this.message_list,
- thead = list ? list.thead : null,
- cell, col, n, len, th, tr;
-
- this.env.coltypes = coltypes;
-
- // replace old column headers
- if (thead) {
- if (repl) {
- th = document.createElement('thead');
- tr = document.createElement('tr');
-
- for (c=0, len=repl.length; c < len; c++) {
- cell = document.createElement('td');
- cell.innerHTML = repl[c].html || '';
- if (repl[c].id) cell.id = repl[c].id;
- if (repl[c].className) cell.className = repl[c].className;
- tr.appendChild(cell);
- }
- th.appendChild(tr);
- thead.parentNode.replaceChild(th, thead);
- list.thead = thead = th;
- }
-
- for (n=0, len=this.env.coltypes.length; n<len; n++) {
- col = this.env.coltypes[n];
- if ((cell = thead.rows[0].cells[n]) && (col == 'from' || col == 'to' || col == 'fromto')) {
- cell.id = 'rcm'+col;
- $('span,a', cell).text(this.get_label(col == 'fromto' ? smart_col : col));
- // if we have links for sorting, it's a bit more complicated...
- $('a', cell).click(function(){
- return rcmail.command('sort', this.id.replace(/^rcm/, ''), this);
- });
- }
- }
- }
-
- this.env.subject_col = null;
- this.env.flagged_col = null;
- this.env.status_col = null;
-
- if ((n = $.inArray('subject', this.env.coltypes)) >= 0) {
- this.env.subject_col = n;
- if (list)
- list.subject_col = n;
- }
- if ((n = $.inArray('flag', this.env.coltypes)) >= 0)
- this.env.flagged_col = n;
- if ((n = $.inArray('status', this.env.coltypes)) >= 0)
- this.env.status_col = n;
-
- if (list)
- list.init_header();
- };
-
- // replace content of row count display
- this.set_rowcount = function(text, mbox)
- {
- // #1487752
- if (mbox && mbox != this.env.mailbox)
- return false;
-
- $(this.gui_objects.countdisplay).html(text);
-
- // update page navigation buttons
- this.set_page_buttons();
- };
-
- // replace content of mailboxname display
- this.set_mailboxname = function(content)
- {
- if (this.gui_objects.mailboxname && content)
- this.gui_objects.mailboxname.innerHTML = content;
- };
-
- // replace content of quota display
- this.set_quota = function(content)
- {
- if (this.gui_objects.quotadisplay && content && content.type == 'text')
- $(this.gui_objects.quotadisplay).html(content.percent+'%').attr('title', content.title);
-
- this.triggerEvent('setquota', content);
- this.env.quota_content = content;
- };
-
- // update the mailboxlist
- this.set_unread_count = function(mbox, count, set_title, mark)
- {
- if (!this.gui_objects.mailboxlist)
- return false;
-
- this.env.unread_counts[mbox] = count;
- this.set_unread_count_display(mbox, set_title);
-
- if (mark)
- this.mark_folder(mbox, mark, '', true);
- else if (!count)
- this.unmark_folder(mbox, 'recent', '', true);
- };
-
- // update the mailbox count display
- this.set_unread_count_display = function(mbox, set_title)
- {
- var reg, link, text_obj, item, mycount, childcount, div;
-
- if (item = this.get_folder_li(mbox, '', true)) {
- mycount = this.env.unread_counts[mbox] ? this.env.unread_counts[mbox] : 0;
- link = $(item).children('a').eq(0);
- text_obj = link.children('span.unreadcount');
- if (!text_obj.length && mycount)
- text_obj = $('<span>').addClass('unreadcount').appendTo(link);
- reg = /\s+\([0-9]+\)$/i;
-
- childcount = 0;
- if ((div = item.getElementsByTagName('div')[0]) &&
- div.className.match(/collapsed/)) {
- // add children's counters
- for (var k in this.env.unread_counts)
- if (k.startsWith(mbox + this.env.delimiter))
- childcount += this.env.unread_counts[k];
- }
-
- if (mycount && text_obj.length)
- text_obj.html(this.env.unreadwrap.replace(/%[sd]/, mycount));
- else if (text_obj.length)
- text_obj.remove();
-
- // set parent's display
- reg = new RegExp(RegExp.escape(this.env.delimiter) + '[^' + RegExp.escape(this.env.delimiter) + ']+$');
- if (mbox.match(reg))
- this.set_unread_count_display(mbox.replace(reg, ''), false);
-
- // set the right classes
- if ((mycount+childcount)>0)
- $(item).addClass('unread');
- else
- $(item).removeClass('unread');
- }
-
- // set unread count to window title
- reg = /^\([0-9]+\)\s+/i;
- if (set_title && document.title) {
- var new_title = '',
- doc_title = String(document.title);
-
- if (mycount && doc_title.match(reg))
- new_title = doc_title.replace(reg, '('+mycount+') ');
- else if (mycount)
- new_title = '('+mycount+') '+doc_title;
- else
- new_title = doc_title.replace(reg, '');
-
- this.set_pagetitle(new_title);
- }
- };
-
- // display fetched raw headers
- this.set_headers = function(content)
- {
- if (this.gui_objects.all_headers_row && this.gui_objects.all_headers_box && content)
- $(this.gui_objects.all_headers_box).html(content).show();
- };
-
- // display all-headers row and fetch raw message headers
- this.show_headers = function(props, elem)
- {
- if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box || !this.env.uid)
- return;
-
- $(elem).removeClass('show-headers').addClass('hide-headers');
- $(this.gui_objects.all_headers_row).show();
- elem.onclick = function() { rcmail.command('hide-headers', '', elem); };
-
- // fetch headers only once
- if (!this.gui_objects.all_headers_box.innerHTML) {
- var lock = this.display_message(this.get_label('loading'), 'loading');
- this.http_post('headers', {_uid: this.env.uid}, lock);
- }
- };
-
- // hide all-headers row
- this.hide_headers = function(props, elem)
- {
- if (!this.gui_objects.all_headers_row || !this.gui_objects.all_headers_box)
- return;
-
- $(elem).removeClass('hide-headers').addClass('show-headers');
- $(this.gui_objects.all_headers_row).hide();
- elem.onclick = function() { rcmail.command('show-headers', '', elem); };
- };
-
-
- /********************************************************/
- /********* html to text conversion functions *********/
- /********************************************************/
-
- this.html2plain = function(htmlText, id)
- {
- var rcmail = this,
- url = '?_task=utils&_action=html2text',
- lock = this.set_busy(true, 'converting');
-
- this.log('HTTP POST: ' + url);
-
- $.ajax({ type: 'POST', url: url, data: htmlText, contentType: 'application/octet-stream',
- error: function(o, status, err) { rcmail.http_error(o, status, err, lock); },
- success: function(data) { rcmail.set_busy(false, null, lock); $('#'+id).val(data); rcmail.log(data); }
- });
- };
-
- this.plain2html = function(plain, id)
- {
- var lock = this.set_busy(true, 'converting');
-
- plain = plain.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
- $('#'+id).val(plain ? '<pre>'+plain+'</pre>' : '');
-
- this.set_busy(false, null, lock);
- };
-
-
- /********************************************************/
- /********* remote request methods *********/
- /********************************************************/
-
- // compose a valid url with the given parameters
- this.url = function(action, query)
- {
- var querystring = typeof query === 'string' ? '&' + query : '';
-
- if (typeof action !== 'string')
- query = action;
- else if (!query || typeof query !== 'object')
- query = {};
-
- if (action)
- query._action = action;
- else
- query._action = this.env.action;
-
- var base = this.env.comm_path, k, param = {};
-
- // overwrite task name
- if (query._action.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)) {
- query._action = RegExp.$2;
- base = base.replace(/\_task=[a-z0-9_-]+/, '_task='+RegExp.$1);
- }
-
- // remove undefined values
- for (k in query) {
- if (query[k] !== undefined && query[k] !== null)
- param[k] = query[k];
- }
-
- return base + '&' + $.param(param) + querystring;
- };
-
- this.redirect = function(url, lock)
- {
- if (lock || lock === null)
- this.set_busy(true);
-
- if (this.is_framed()) {
- parent.rcmail.redirect(url, lock);
- }
- else {
- if (this.env.extwin) {
- if (typeof url == 'string')
- url += (url.indexOf('?') < 0 ? '?' : '&') + '_extwin=1';
- else
- url._extwin = 1;
- }
- this.location_href(url, window);
- }
- };
-
- this.goto_url = function(action, query, lock)
- {
- this.redirect(this.url(action, query));
- };
-
- this.location_href = function(url, target, frame)
- {
- if (frame)
- this.lock_frame();
-
- if (typeof url == 'object')
- url = this.env.comm_path + '&' + $.param(url);
-
- // simulate real link click to force IE to send referer header
- if (bw.ie && target == window)
- $('<a>').attr('href', url).appendTo(document.body).get(0).click();
- else
- target.location.href = url;
-
- // reset keep-alive interval
- this.start_keepalive();
- };
-
- // send a http request to the server
- this.http_request = function(action, query, lock)
- {
- var url = this.url(action, query);
-
- // trigger plugin hook
- var result = this.triggerEvent('request'+action, query);
-
- if (result !== undefined) {
- // abort if one the handlers returned false
- if (result === false)
- return false;
- else
- url = this.url(action, result);
- }
-
- url += '&_remote=1';
-
- // send request
- this.log('HTTP GET: ' + url);
-
- // reset keep-alive interval
- this.start_keepalive();
-
- return $.ajax({
- type: 'GET', url: url, data: { _unlock:(lock?lock:0) }, dataType: 'json',
- success: function(data){ ref.http_response(data); },
- error: function(o, status, err) { ref.http_error(o, status, err, lock, action); }
- });
- };
-
- // send a http POST request to the server
- this.http_post = function(action, postdata, lock)
- {
- var url = this.url(action);
-
- if (postdata && typeof postdata === 'object') {
- postdata._remote = 1;
- postdata._unlock = (lock ? lock : 0);
- }
- else
- postdata += (postdata ? '&' : '') + '_remote=1' + (lock ? '&_unlock='+lock : '');
-
- // trigger plugin hook
- var result = this.triggerEvent('request'+action, postdata);
- if (result !== undefined) {
- // abort if one of the handlers returned false
- if (result === false)
- return false;
- else
- postdata = result;
- }
-
- // send request
- this.log('HTTP POST: ' + url);
-
- // reset keep-alive interval
- this.start_keepalive();
-
- return $.ajax({
- type: 'POST', url: url, data: postdata, dataType: 'json',
- success: function(data){ ref.http_response(data); },
- error: function(o, status, err) { ref.http_error(o, status, err, lock, action); }
- });
- };
-
- // aborts ajax request
- this.abort_request = function(r)
- {
- if (r.request)
- r.request.abort();
- if (r.lock)
- this.set_busy(false, null, r.lock);
- };
-
- // handle HTTP response
- this.http_response = function(response)
- {
- if (!response)
- return;
-
- if (response.unlock)
- this.set_busy(false);
-
- this.triggerEvent('responsebefore', {response: response});
- this.triggerEvent('responsebefore'+response.action, {response: response});
-
- // set env vars
- if (response.env)
- this.set_env(response.env);
-
- // we have labels to add
- if (typeof response.texts === 'object') {
- for (var name in response.texts)
- if (typeof response.texts[name] === 'string')
- this.add_label(name, response.texts[name]);
- }
-
- // if we get javascript code from server -> execute it
- if (response.exec) {
- this.log(response.exec);
- eval(response.exec);
- }
-
- // execute callback functions of plugins
- if (response.callbacks && response.callbacks.length) {
- for (var i=0; i < response.callbacks.length; i++)
- this.triggerEvent(response.callbacks[i][0], response.callbacks[i][1]);
- }
-
- // process the response data according to the sent action
- switch (response.action) {
- case 'delete':
- if (this.task == 'addressbook') {
- var sid, uid = this.contact_list.get_selection(), writable = false;
-
- if (uid && this.contact_list.rows[uid]) {
- // search results, get source ID from record ID
- if (this.env.source == '') {
- sid = String(uid).replace(/^[^-]+-/, '');
- writable = sid && this.env.address_sources[sid] && !this.env.address_sources[sid].readonly;
- }
- else {
- writable = !this.env.address_sources[this.env.source].readonly;
- }
- }
- this.enable_command('compose', (uid && this.contact_list.rows[uid]));
- this.enable_command('delete', 'edit', writable);
- this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0));
- this.enable_command('export-selected', false);
- }
-
- case 'move':
- if (this.env.action == 'show') {
- // re-enable commands on move/delete error
- this.enable_command(this.env.message_commands, true);
- if (!this.env.list_post)
- this.enable_command('reply-list', false);
- }
- else if (this.task == 'addressbook') {
- this.triggerEvent('listupdate', { folder:this.env.source, rowcount:this.contact_list.rowcount });
- }
-
- case 'purge':
- case 'expunge':
- if (this.task == 'mail') {
- if (!this.env.exists) {
- // clear preview pane content
- if (this.env.contentframe)
- this.show_contentframe(false);
- // disable commands useless when mailbox is empty
- this.enable_command(this.env.message_commands, 'purge', 'expunge',
- 'select-all', 'select-none', 'expand-all', 'expand-unread', 'collapse-all', false);
- }
- if (this.message_list)
- this.triggerEvent('listupdate', { folder:this.env.mailbox, rowcount:this.message_list.rowcount });
- }
- break;
-
- case 'refresh':
- case 'check-recent':
- case 'getunread':
- case 'search':
- this.env.qsearch = null;
- case 'list':
- if (this.task == 'mail') {
- this.enable_command('show', 'select-all', 'select-none', this.env.messagecount > 0);
- this.enable_command('expunge', this.env.exists);
- this.enable_command('purge', this.purge_mailbox_test());
- this.enable_command('expand-all', 'expand-unread', 'collapse-all', this.env.threading && this.env.messagecount);
-
- 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 });
- }
- }
- else if (this.task == 'addressbook') {
- this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0));
-
- if (response.action == 'list' || response.action == 'search') {
- 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 });
- }
- }
- break;
- }
-
- if (response.unlock)
- this.hide_message(response.unlock);
-
- this.triggerEvent('responseafter', {response: response});
- this.triggerEvent('responseafter'+response.action, {response: response});
-
- // reset keep-alive interval
- this.start_keepalive();
- };
-
- // handle HTTP request errors
- this.http_error = function(request, status, err, lock, action)
- {
- var errmsg = request.statusText;
-
- this.set_busy(false, null, lock);
- request.abort();
-
- // don't display error message on page unload (#1488547)
- if (this.unload)
- return;
-
- if (request.status && errmsg)
- this.display_message(this.get_label('servererror') + ' (' + errmsg + ')', 'error');
- else if (status == 'timeout')
- this.display_message(this.get_label('requesttimedout'), 'error');
- else if (request.status == 0 && status != 'abort')
- this.display_message(this.get_label('servererror') + ' (No connection)', 'error');
-
- // redirect to url specified in location header if not empty
- var location_url = request.getResponseHeader("Location");
- if (location_url && this.env.action != 'compose') // don't redirect on compose screen, contents might get lost (#1488926)
- this.redirect(location_url);
-
- // 403 Forbidden response (CSRF prevention) - reload the page.
- // In case there's a new valid session it will be used, otherwise
- // login form will be presented (#1488960).
- if (request.status == 403) {
- (this.is_framed() ? parent : window).location.reload();
- return;
- }
-
- // re-send keep-alive requests after 30 seconds
- if (action == 'keep-alive')
- setTimeout(function(){ ref.keep_alive(); ref.start_keepalive(); }, 30000);
- };
-
- // callback when an iframe finished loading
- this.iframe_loaded = function(unlock)
- {
- this.set_busy(false, null, unlock);
-
- if (this.submit_timer)
- clearTimeout(this.submit_timer);
- };
-
- // post the given form to a hidden iframe
- this.async_upload_form = function(form, action, onload)
- {
- var frame, ts = new Date().getTime(),
- frame_name = 'rcmupload'+ts;
-
- // upload progress support
- if (this.env.upload_progress_name) {
- var fname = this.env.upload_progress_name,
- field = $('input[name='+fname+']', form);
-
- if (!field.length) {
- field = $('<input>').attr({type: 'hidden', name: fname});
- field.prependTo(form);
- }
-
- field.val(ts);
- }
-
- // have to do it this way for IE
- // otherwise the form will be posted to a new window
- if (document.all) {
- document.body.insertAdjacentHTML('BeforeEnd', '<iframe name="'+frame_name+'"'
- + ' src="program/resources/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>');
- frame = $('iframe[name="'+frame_name+'"]');
- }
- // for standards-compliant browsers
- else {
- frame = $('<iframe>').attr('name', frame_name)
- .css({border: 'none', width: 0, height: 0, visibility: 'hidden'})
- .appendTo(document.body);
- }
-
- // handle upload errors, parsing iframe content in onload
- frame.bind('load', {ts:ts}, onload);
-
- $(form).attr({
- target: frame_name,
- action: this.url(action, { _id:this.env.compose_id||'', _uploadid:ts }),
- method: 'POST'})
- .attr(form.encoding ? 'encoding' : 'enctype', 'multipart/form-data')
- .submit();
-
- return frame_name;
- };
-
- // html5 file-drop API
- this.document_drag_hover = function(e, over)
- {
- e.preventDefault();
- $(ref.gui_objects.filedrop)[(over?'addClass':'removeClass')]('active');
- };
-
- this.file_drag_hover = function(e, over)
- {
- e.preventDefault();
- e.stopPropagation();
- $(ref.gui_objects.filedrop)[(over?'addClass':'removeClass')]('hover');
- };
-
- // handler when files are dropped to a designated area.
- // compose a multipart form data and submit it to the server
- this.file_dropped = function(e)
- {
- // abort event and reset UI
- this.file_drag_hover(e, false);
-
- // prepare multipart form data composition
- var files = e.target.files || e.dataTransfer.files,
- formdata = window.FormData ? new FormData() : null,
- fieldname = (this.env.filedrop.fieldname || '_file') + (this.env.filedrop.single ? '' : '[]'),
- boundary = '------multipartformboundary' + (new Date).getTime(),
- dashdash = '--', crlf = '\r\n',
- multipart = dashdash + boundary + crlf;
-
- if (!files || !files.length)
- return;
-
- // inline function to submit the files to the server
- var submit_data = function() {
- var multiple = files.length > 1,
- ts = new Date().getTime(),
- content = '<span>' + (multiple ? ref.get_label('uploadingmany') : files[0].name) + '</span>';
-
- // add to attachments list
- if (!ref.add2attachment_list(ts, { name:'', html:content, classname:'uploading', complete:false }))
- ref.file_upload_id = ref.set_busy(true, 'uploading');
-
- // complete multipart content and post request
- multipart += dashdash + boundary + dashdash + crlf;
-
- $.ajax({
- type: 'POST',
- dataType: 'json',
- url: ref.url(ref.env.filedrop.action||'upload', { _id:ref.env.compose_id||ref.env.cid||'', _uploadid:ts, _remote:1 }),
- contentType: formdata ? false : 'multipart/form-data; boundary=' + boundary,
- processData: false,
- timeout: 0, // disable default timeout set in ajaxSetup()
- data: formdata || multipart,
- headers: {'X-Roundcube-Request': ref.env.request_token},
- xhr: function() { var xhr = jQuery.ajaxSettings.xhr(); if (!formdata && xhr.sendAsBinary) xhr.send = xhr.sendAsBinary; return xhr; },
- success: function(data){ ref.http_response(data); },
- error: function(o, status, err) { ref.http_error(o, status, err, null, 'attachment'); }
- });
- };
-
- // get contents of all dropped files
- var last = this.env.filedrop.single ? 0 : files.length - 1;
- for (var j=0, i=0, f; j <= last && (f = files[i]); i++) {
- if (!f.name) f.name = f.fileName;
- if (!f.size) f.size = f.fileSize;
- if (!f.type) f.type = 'application/octet-stream';
-
- // file name contains non-ASCII characters, do UTF8-binary string conversion.
- if (!formdata && /[^\x20-\x7E]/.test(f.name))
- f.name_bin = unescape(encodeURIComponent(f.name));
-
- // filter by file type if requested
- if (this.env.filedrop.filter && !f.type.match(new RegExp(this.env.filedrop.filter))) {
- // TODO: show message to user
- continue;
- }
-
- // do it the easy way with FormData (FF 4+, Chrome 5+, Safari 5+)
- if (formdata) {
- formdata.append(fieldname, f);
- if (j == last)
- return submit_data();
- }
- // use FileReader supporetd by Firefox 3.6
- else if (window.FileReader) {
- var reader = new FileReader();
-
- // closure to pass file properties to async callback function
- reader.onload = (function(file, j) {
- return function(e) {
- multipart += 'Content-Disposition: form-data; name="' + fieldname + '"';
- multipart += '; filename="' + (f.name_bin || file.name) + '"' + crlf;
- multipart += 'Content-Length: ' + file.size + crlf;
- multipart += 'Content-Type: ' + file.type + crlf + crlf;
- multipart += reader.result + crlf;
- multipart += dashdash + boundary + crlf;
-
- if (j == last) // we're done, submit the data
- return submit_data();
- }
- })(f,j);
- reader.readAsBinaryString(f);
- }
- // Firefox 3
- else if (f.getAsBinary) {
- multipart += 'Content-Disposition: form-data; name="' + fieldname + '"';
- multipart += '; filename="' + (f.name_bin || f.name) + '"' + crlf;
- multipart += 'Content-Length: ' + f.size + crlf;
- multipart += 'Content-Type: ' + f.type + crlf + crlf;
- multipart += f.getAsBinary() + crlf;
- multipart += dashdash + boundary +crlf;
-
- if (j == last)
- return submit_data();
- }
-
- j++;
- }
- };
-
- // starts interval for keep-alive signal
- this.start_keepalive = function()
- {
- if (!this.env.session_lifetime || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print')
- return;
-
- if (this._keepalive)
- clearInterval(this._keepalive);
-
- this._keepalive = setInterval(function(){ ref.keep_alive(); }, this.env.session_lifetime * 0.5 * 1000);
- };
-
- // starts interval for refresh signal
- this.start_refresh = function()
- {
- if (!this.env.refresh_interval || this.env.framed || this.env.extwin || this.task == 'login' || this.env.action == 'print')
- return;
-
- if (this._refresh)
- clearInterval(this._refresh);
-
- this._refresh = setInterval(function(){ ref.refresh(); }, this.env.refresh_interval * 1000);
- };
-
- // sends keep-alive signal
- this.keep_alive = function()
- {
- if (!this.busy)
- this.http_request('keep-alive');
- };
-
- // sends refresh signal
- this.refresh = function()
- {
- if (this.busy) {
- // try again after 10 seconds
- setTimeout(function(){ ref.refresh(); ref.start_refresh(); }, 10000);
- return;
- }
-
- var params = {}, lock = this.set_busy(true, 'refreshing');
-
- if (this.task == 'mail' && this.gui_objects.mailboxlist)
- params = this.check_recent_params();
-
- params._last = Math.floor(this.env.lastrefresh.getTime() / 1000);
- this.env.lastrefresh = new Date();
-
- // plugins should bind to 'requestrefresh' event to add own params
- this.http_request('refresh', params, lock);
- };
-
- // returns check-recent request parameters
- this.check_recent_params = function()
- {
- var params = {_mbox: this.env.mailbox};
-
- 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;
-
- return params;
- };
-
-
- /********************************************************/
- /********* helper methods *********/
- /********************************************************/
-
- /**
- * Quote html entities
- */
- this.quote_html = function(str)
- {
- return String(str).replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
- };
-
- // get window.opener.rcmail if available
- this.opener = function()
- {
- // catch Error: Permission denied to access property rcmail
- try {
- if (window.opener && !opener.closed && opener.rcmail)
- return opener.rcmail;
- }
- catch (e) {}
- };
-
- // check if we're in show mode or if we have a unique selection
- // and return the message uid
- this.get_single_uid = function()
- {
- return this.env.uid ? this.env.uid : (this.message_list ? this.message_list.get_single_selection() : null);
- };
-
- // same as above but for contacts
- this.get_single_cid = function()
- {
- return this.env.cid ? this.env.cid : (this.contact_list ? this.contact_list.get_single_selection() : null);
- };
-
- // gets cursor position
- this.get_caret_pos = function(obj)
- {
- if (obj.selectionEnd !== undefined)
- return obj.selectionEnd;
-
- if (document.selection && document.selection.createRange) {
- var range = document.selection.createRange();
- if (range.parentElement() != obj)
- return 0;
-
- var gm = range.duplicate();
- if (obj.tagName == 'TEXTAREA')
- gm.moveToElementText(obj);
- else
- gm.expand('textedit');
-
- gm.setEndPoint('EndToStart', range);
- var p = gm.text.length;
-
- return p <= obj.value.length ? p : -1;
- }
-
- return obj.value.length;
- };
-
- // moves cursor to specified position
- this.set_caret_pos = function(obj, pos)
- {
- if (obj.setSelectionRange)
- obj.setSelectionRange(pos, pos);
- else if (obj.createTextRange) {
- var range = obj.createTextRange();
- range.collapse(true);
- range.moveEnd('character', pos);
- range.moveStart('character', pos);
- range.select();
- }
- };
-
- // get selected text from an input field
- // http://stackoverflow.com/questions/7186586/how-to-get-the-selected-text-in-textarea-using-jquery-in-internet-explorer-7
- this.get_input_selection = function(obj)
- {
- var start = 0, end = 0,
- normalizedValue, range,
- textInputRange, len, endRange;
-
- if (typeof obj.selectionStart == "number" && typeof obj.selectionEnd == "number") {
- normalizedValue = obj.value;
- start = obj.selectionStart;
- end = obj.selectionEnd;
- }
- else {
- range = document.selection.createRange();
-
- if (range && range.parentElement() == obj) {
- len = obj.value.length;
- normalizedValue = obj.value; //.replace(/\r\n/g, "\n");
-
- // create a working TextRange that lives only in the input
- textInputRange = obj.createTextRange();
- textInputRange.moveToBookmark(range.getBookmark());
-
- // Check if the start and end of the selection are at the very end
- // of the input, since moveStart/moveEnd doesn't return what we want
- // in those cases
- endRange = obj.createTextRange();
- endRange.collapse(false);
-
- if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
- start = end = len;
- }
- else {
- start = -textInputRange.moveStart("character", -len);
- start += normalizedValue.slice(0, start).split("\n").length - 1;
-
- if (textInputRange.compareEndPoints("EndToEnd", endRange) > -1) {
- end = len;
- }
- else {
- end = -textInputRange.moveEnd("character", -len);
- end += normalizedValue.slice(0, end).split("\n").length - 1;
- }
- }
- }
- }
-
- return { start:start, end:end, text:normalizedValue.substr(start, end-start) };
- };
-
- // disable/enable all fields of a form
- this.lock_form = function(form, lock)
- {
- if (!form || !form.elements)
- return;
-
- var n, len, elm;
-
- if (lock)
- this.disabled_form_elements = [];
-
- for (n=0, len=form.elements.length; n<len; n++) {
- elm = form.elements[n];
-
- if (elm.type == 'hidden')
- continue;
- // remember which elem was disabled before lock
- if (lock && elm.disabled)
- this.disabled_form_elements.push(elm);
- // check this.disabled_form_elements before inArray() as a workaround for FF5 bug
- // http://bugs.jquery.com/ticket/9873
- else if (lock || (this.disabled_form_elements && $.inArray(elm, this.disabled_form_elements)<0))
- elm.disabled = lock;
- }
- };
-
- this.mailto_handler_uri = function()
- {
- return location.href.split('?')[0] + '?_task=mail&_action=compose&_to=%s';
- };
-
- this.register_protocol_handler = function(name)
- {
- try {
- window.navigator.registerProtocolHandler('mailto', this.mailto_handler_uri(), name);
- }
- catch(e) {};
- };
-
- this.check_protocol_handler = function(name, elem)
- {
- var nav = window.navigator;
- if (!nav
- || (typeof nav.registerProtocolHandler != 'function')
- || ((typeof nav.isProtocolHandlerRegistered == 'function')
- && nav.isProtocolHandlerRegistered('mailto', this.mailto_handler_uri()) == 'registered')
- )
- $(elem).addClass('disabled');
- else
- $(elem).click(function() { rcmail.register_protocol_handler(name); return false; });
- };
-
- // Checks browser capabilities eg. PDF support, TIF support
- this.browser_capabilities_check = function()
- {
- if (!this.env.browser_capabilities)
- this.env.browser_capabilities = {};
-
- if (this.env.browser_capabilities.pdf === undefined)
- this.env.browser_capabilities.pdf = this.pdf_support_check();
-
- if (this.env.browser_capabilities.flash === undefined)
- this.env.browser_capabilities.flash = this.flash_support_check();
-
- if (this.env.browser_capabilities.tif === undefined)
- this.tif_support_check();
- };
-
- // Returns browser capabilities string
- this.browser_capabilities = function()
- {
- if (!this.env.browser_capabilities)
- return '';
-
- var n, ret = [];
-
- for (n in this.env.browser_capabilities)
- ret.push(n + '=' + this.env.browser_capabilities[n]);
-
- return ret.join();
- };
-
- this.tif_support_check = function()
- {
- var img = new Image();
-
- img.onload = function() { rcmail.env.browser_capabilities.tif = 1; };
- img.onerror = function() { rcmail.env.browser_capabilities.tif = 0; };
- img.src = 'program/resources/blank.tif';
- };
-
- this.pdf_support_check = function()
- {
- var plugin = navigator.mimeTypes ? navigator.mimeTypes["application/pdf"] : {},
- plugins = navigator.plugins,
- len = plugins.length,
- regex = /Adobe Reader|PDF|Acrobat/i;
-
- if (plugin && plugin.enabledPlugin)
- return 1;
-
- if (window.ActiveXObject) {
- try {
- if (axObj = new ActiveXObject("AcroPDF.PDF"))
- return 1;
- }
- catch (e) {}
- try {
- if (axObj = new ActiveXObject("PDF.PdfCtrl"))
- return 1;
- }
- catch (e) {}
- }
-
- for (i=0; i<len; i++) {
- plugin = plugins[i];
- if (typeof plugin === 'String') {
- if (regex.test(plugin))
- return 1;
- }
- else if (plugin.name && regex.test(plugin.name))
- return 1;
- }
-
- return 0;
- };
-
- this.flash_support_check = function()
- {
- var plugin = navigator.mimeTypes ? navigator.mimeTypes["application/x-shockwave-flash"] : {};
-
- if (plugin && plugin.enabledPlugin)
- return 1;
-
- if (window.ActiveXObject) {
- try {
- if (axObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))
- return 1;
- }
- catch (e) {}
- }
-
- return 0;
- };
-
- // Cookie setter
- this.set_cookie = function(name, value, expires)
- {
- setCookie(name, value, expires, this.env.cookie_path, this.env.cookie_domain, this.env.cookie_secure);
- }
-
-} // end object rcube_webmail
-
-
-// some static methods
-rcube_webmail.long_subject_title = function(elem, indent)
-{
- if (!elem.title) {
- var $elem = $(elem);
- if ($elem.width() + indent * 15 > $elem.parent().width())
- elem.title = $elem.text();
- }
-};
-
-rcube_webmail.long_subject_title_ex = function(elem, indent)
-{
- if (!elem.title) {
- var $elem = $(elem),
- txt = $.trim($elem.text()),
- tmp = $('<span>').text(txt)
- .css({'position': 'absolute', 'float': 'left', 'visibility': 'hidden',
- 'font-size': $elem.css('font-size'), 'font-weight': $elem.css('font-weight')})
- .appendTo($('body')),
- w = tmp.width();
-
- tmp.remove();
- if (w + indent * 15 > $elem.width())
- elem.title = txt;
- }
-};
-
-rcube_webmail.prototype.get_cookie = getCookie;
-
-// copy event engine prototype
-rcube_webmail.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
-rcube_webmail.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;
-rcube_webmail.prototype.triggerEvent = rcube_event_engine.prototype.triggerEvent;
+function rcube_webmail(){this.labels={};this.buttons={};this.buttons_sel={};this.gui_objects={};this.gui_containers={};this.commands={};this.command_handlers={};this.onloads=[];this.messages={};this.group2expand={};this.dblclick_time=500;this.message_time=4000;this.identifier_expr=new RegExp("[^0-9a-z-_]","gi");this.env={request_timeout:180,draft_autosave:0,comm_path:"./",blankpage:"program/resources/blank.gif",recipients_separator:",",recipients_delimiter:", "};this.ref="rcmail";var ref=this;$.ajaxSetup({cache:false,timeout:this.env.request_timeout*1000,error:function(request,status,err){ref.http_error(request,status,err)},beforeSend:function(xmlhttp){xmlhttp.setRequestHeader("X-Roundcube-Request",ref.env.request_token)}});$(window).bind("beforeunload",function(){rcmail.unload=true});this.set_env=function(p,value){if(p!=null&&typeof p==="object"&&!value){for(var n in p){this.env[n]=p[n]}}else{this.env[p]=value}};this.add_label=function(p,value){if(typeof p=="string"){this.labels[p]=value}else{if(typeof p=="object"){$.extend(this.labels,p)}}};this.register_button=function(command,id,type,act,sel,over){var button_prop={id:id,type:type};if(act){button_prop.act=act}if(sel){button_prop.sel=sel}if(over){button_prop.over=over}if(!this.buttons[command]){this.buttons[command]=[]}this.buttons[command].push(button_prop);if(this.loaded){init_button(command,button_prop)}};this.gui_object=function(name,id){this.gui_objects[name]=this.loaded?rcube_find_object(id):id};this.gui_container=function(name,id){this.gui_containers[name]=id};this.add_element=function(elm,container){if(this.gui_containers[container]&&this.gui_containers[container].jquery){this.gui_containers[container].append(elm)}};this.register_command=function(command,callback,enable){this.command_handlers[command]=callback;if(enable){this.enable_command(command,true)}};this.add_onload=function(f){this.onloads.push(f)};this.init=function(){var n,p=this;this.task=this.env.task;if(!bw.dom||!bw.xmlhttp_test()||(bw.mz&&bw.vendver<1.9)){this.goto_url("error","_code=0x199");return}for(n in this.gui_containers){this.gui_containers[n]=$("#"+this.gui_containers[n])}for(n in this.gui_objects){this.gui_objects[n]=rcube_find_object(this.gui_objects[n])}if(this.env.x_frame_options){try{if(this.env.x_frame_options=="deny"&&top.location.href!=self.location.href){top.location.href=self.location.href}else{if(top.location.hostname!=self.location.hostname){throw 1}}}catch(e){$("form").each(function(){ref.lock_form(this,true)});this.display_message("Blocked: possible clickjacking attack!","error");return}}this.init_buttons();if(this.is_framed()){parent.rcmail.set_busy(false,null,parent.rcmail.env.frame_lock);parent.rcmail.env.frame_lock=null}this.enable_command("close","logout","mail","addressbook","settings","save-pref","compose","undo","about","switch-task",true);if(this.env.permaurl){this.enable_command("permaurl","extwin",true)}switch(this.task){case"mail":this.enable_command("list","checkmail","add-contact","search","reset-search","collapse-folder",true);if(this.gui_objects.messagelist){this.message_list=new rcube_list_widget(this.gui_objects.messagelist,{multiselect:true,multiexpand:true,draggable:true,keyboard:true,column_movable:this.env.col_movable,dblclick_time:this.dblclick_time});this.message_list.row_init=function(o){p.init_message_row(o)};this.message_list.addEventListener("dblclick",function(o){p.msglist_dbl_click(o)});this.message_list.addEventListener("click",function(o){p.msglist_click(o)});this.message_list.addEventListener("keypress",function(o){p.msglist_keypress(o)});this.message_list.addEventListener("select",function(o){p.msglist_select(o)});this.message_list.addEventListener("dragstart",function(o){p.drag_start(o)});this.message_list.addEventListener("dragmove",function(e){p.drag_move(e)});this.message_list.addEventListener("dragend",function(e){p.drag_end(e)});this.message_list.addEventListener("expandcollapse",function(e){p.msglist_expand(e)});this.message_list.addEventListener("column_replace",function(e){p.msglist_set_coltypes(e)});document.onmouseup=function(e){return p.doc_mouse_up(e)};this.gui_objects.messagelist.parentNode.onmousedown=function(e){return p.click_on_list(e)};this.message_list.init();this.enable_command("toggle_status","toggle_flag","menu-open","menu-save","sort",true);this.command("list")}if(this.gui_objects.qsearchbox){if(this.env.search_text!=null){this.gui_objects.qsearchbox.value=this.env.search_text}$(this.gui_objects.qsearchbox).focusin(function(){rcmail.message_list&&rcmail.message_list.blur()})}this.set_button_titles();this.env.message_commands=["show","reply","reply-all","reply-list","moveto","copy","delete","open","mark","edit","viewsource","print","load-attachment","show-headers","hide-headers","download","forward","forward-inline","forward-attachment"];if(this.env.action=="show"||this.env.action=="preview"){this.enable_command(this.env.message_commands,this.env.uid);this.enable_command("reply-list",this.env.list_post);if(this.env.action=="show"){this.http_request("pagenav",{_uid:this.env.uid,_mbox:this.env.mailbox,_search:this.env.search_request},this.display_message("","loading"))}if(this.env.blockedobjects){if(this.gui_objects.remoteobjectsmsg){this.gui_objects.remoteobjectsmsg.style.display="block"}this.enable_command("load-images","always-load",true)}if(this.env.action=="preview"&&this.is_framed()){this.enable_command("compose","add-contact",false);parent.rcmail.show_contentframe(true)}}else{if(this.env.action=="compose"){this.env.compose_commands=["send-attachment","remove-attachment","send","cancel","toggle-editor","list-adresses","search","reset-search","extwin"];if(this.env.drafts_mailbox){this.env.compose_commands.push("savedraft")}this.enable_command(this.env.compose_commands,"identities",true);$.merge(this.env.compose_commands,["add-recipient","firstpage","previouspage","nextpage","lastpage"]);if(this.env.spellcheck){this.env.spellcheck.spelling_state_observer=function(s){ref.spellcheck_state()};this.env.compose_commands.push("spellcheck");this.enable_command("spellcheck",true)}document.onmouseup=function(e){return p.doc_mouse_up(e)};this.init_messageform()}else{if(this.env.action=="print"&&this.env.uid){if(bw.safari){setTimeout("window.print()",10)}else{window.print()}}}}if(this.gui_objects.mailboxlist){this.env.unread_counts={};this.gui_objects.folderlist=this.gui_objects.mailboxlist;this.http_request("getunread")}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.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()}if(this.gui_objects.addressbookslist){this.gui_objects.folderlist=this.gui_objects.addressbookslist;this.enable_command("list-adresses",true)}if(this.env.mdn_request&&this.env.uid){var postact="sendmdn",postdata={_uid:this.env.uid,_mbox:this.env.mailbox};if(!confirm(this.get_label("mdnrequest"))){postdata._flag="mdnsent";postact="mark"}this.http_post(postact,postdata)}if(!this.is_framed()&&!this.env.extwin){this.browser_capabilities_check()}break;case"addressbook":if(this.gui_objects.folderlist){this.env.contactfolders=$.extend($.extend({},this.env.address_sources),this.env.contactgroups)}this.enable_command("add","import",this.env.writable_source);this.enable_command("list","listgroup","listsearch","advanced-search",true);if(this.gui_objects.contactslist){this.contact_list=new rcube_list_widget(this.gui_objects.contactslist,{multiselect:true,draggable:this.gui_objects.folderlist?true:false,keyboard:true});this.contact_list.row_init=function(row){p.triggerEvent("insertrow",{cid:row.uid,row:row})};this.contact_list.addEventListener("keypress",function(o){p.contactlist_keypress(o)});this.contact_list.addEventListener("select",function(o){p.contactlist_select(o)});this.contact_list.addEventListener("dragstart",function(o){p.drag_start(o)});this.contact_list.addEventListener("dragmove",function(e){p.drag_move(e)});this.contact_list.addEventListener("dragend",function(e){p.drag_end(e)});this.contact_list.init();if(this.env.cid){this.contact_list.highlight_row(this.env.cid)}this.gui_objects.contactslist.parentNode.onmousedown=function(e){return p.click_on_list(e)};document.onmouseup=function(e){return p.doc_mouse_up(e)};if(this.gui_objects.qsearchbox){$(this.gui_objects.qsearchbox).focusin(function(){rcmail.contact_list.blur()})}this.update_group_commands();this.command("list")}this.set_page_buttons();if(this.env.cid){this.enable_command("show","edit",true);if(this.gui_objects.editform){$("input.groupmember").change(function(){ref.group_member_change(this.checked?"add":"del",ref.env.cid,ref.env.source,this.value)})}}if(this.gui_objects.editform){this.enable_command("save",true);if(this.env.action=="add"||this.env.action=="edit"||this.env.action=="search"){this.init_contact_form()}}if(this.gui_objects.qsearchbox){this.enable_command("search","reset-search","moveto",true)}break;case"settings":this.enable_command("preferences","identities","save","folders",true);if(this.env.action=="identities"){this.enable_command("add",this.env.identities_level<2)}else{if(this.env.action=="edit-identity"||this.env.action=="add-identity"){this.enable_command("save","edit","toggle-editor",true);this.enable_command("delete",this.env.identities_level<2);if(this.env.action=="add-identity"){$("input[type='text']").first().select()}}else{if(this.env.action=="folders"){this.enable_command("subscribe","unsubscribe","create-folder","rename-folder",true)}else{if(this.env.action=="edit-folder"&&this.gui_objects.editform){this.enable_command("save","folder-size",true);parent.rcmail.env.exists=this.env.messagecount;parent.rcmail.enable_command("purge",this.env.messagecount);$("input[type='text']").first().select()}}}}if(this.gui_objects.identitieslist){this.identity_list=new rcube_list_widget(this.gui_objects.identitieslist,{multiselect:false,draggable:false,keyboard:false});this.identity_list.addEventListener("select",function(o){p.identity_select(o)});this.identity_list.init();this.identity_list.focus();if(this.env.iid){this.identity_list.highlight_row(this.env.iid)}}else{if(this.gui_objects.sectionslist){this.sections_list=new rcube_list_widget(this.gui_objects.sectionslist,{multiselect:false,draggable:false,keyboard:false});this.sections_list.addEventListener("select",function(o){p.section_select(o)});this.sections_list.init();this.sections_list.focus()}else{if(this.gui_objects.subscriptionlist){this.init_subscription_list()}}}break;case"login":var input_user=$("#rcmloginuser");input_user.bind("keyup",function(e){return rcmail.login_user_keyup(e)});if(input_user.val()==""){input_user.focus()}else{$("#rcmloginpwd").focus()}if(window.jstz&&!bw.ie6){var timezone=jstz.determine();if(timezone.name()){$("#rcmlogintz").val(timezone.name())}}else{$("#rcmlogintz").val(new Date().getStdTimezoneOffset()/-60)}$("form").submit(function(){$("input[type=submit]",this).prop("disabled",true);rcmail.clear_messages();rcmail.display_message("","loading")});this.enable_command("login",true);break}if(this.env.contentframe&&!$("#"+this.env.contentframe).is(":visible")){this.env.contentframe=null}if(bw.ie){$("input[type=file]").keydown(function(e){if(e.keyCode=="13"){e.preventDefault()}})}this.loaded=true;if(this.pending_message){this.display_message(this.pending_message[0],this.pending_message[1],this.pending_message[2])}if(this.gui_objects.folderlist){this.gui_containers.foldertray=$(this.gui_objects.folderlist)}if(this.gui_objects.filedrop&&this.env.filedrop&&((window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.sendAsBinary)||window.FormData)){$(document.body).bind("dragover dragleave drop",function(e){return ref.document_drag_hover(e,e.type=="dragover")});$(this.gui_objects.filedrop).addClass("droptarget").bind("dragover dragleave",function(e){return ref.file_drag_hover(e,e.type=="dragover")}).get(0).addEventListener("drop",function(e){return ref.file_dropped(e)},false)}this.triggerEvent("init",{task:this.task,action:this.env.action});for(var i in this.onloads){if(typeof this.onloads[i]==="string"){eval(this.onloads[i])}else{if(typeof this.onloads[i]==="function"){this.onloads[i]()}}}this.start_refresh();this.start_keepalive()};this.log=function(msg){if(window.console&&console.log){console.log(msg)}};this.command=function(command,props,obj,event){var ret,uid,cid,url,flag;if(obj&&obj.blur){obj.blur()}if(this.busy){return false}if((obj&&obj.href&&String(obj.href).indexOf("#")<0)&&rcube_event.get_modifier(event)){return true}if(!this.commands[command]){if(this.is_framed()){parent.rcmail.command(command,props)}return false}if(this.task=="mail"&&this.env.action=="compose"&&$.inArray(command,this.env.compose_commands)<0){if(this.cmp_hash!=this.compose_field_hash()&&!confirm(this.get_label("notsentwarning"))){return false}}if(typeof this.command_handlers[command]==="function"){ret=this.command_handlers[command](props,obj);return ret!==undefined?ret:(obj?false:true)}else{if(typeof this.command_handlers[command]==="string"){ret=window[this.command_handlers[command]](props,obj);return ret!==undefined?ret:(obj?false:true)}}this.triggerEvent("actionbefore",{props:props,action:command});ret=this.triggerEvent("before"+command,props);if(ret!==undefined){if(ret===false){return false}else{props=ret}}ret=undefined;switch(command){case"login":if(this.gui_objects.loginform){this.gui_objects.loginform.submit()}break;case"mail":case"addressbook":case"settings":case"logout":this.switch_task(command);break;case"about":this.redirect("?_task=settings&_action=about",false);break;case"permaurl":if(obj&&obj.href&&obj.target){return true}else{if(this.env.permaurl){parent.location.href=this.env.permaurl}}break;case"extwin":if(this.env.action=="compose"){var prevstate=this.env.compose_extwin;$("input[name='_action']",this.gui_objects.messageform).val("compose");this.gui_objects.messageform.action=this.url("mail/compose",{_id:this.env.compose_id,_extwin:1});this.gui_objects.messageform.target=this.open_window("",1100);this.gui_objects.messageform.submit()}else{this.open_window(this.env.permaurl,900)}break;case"menu-open":case"menu-save":this.triggerEvent(command,{props:props});return false;case"open":if(uid=this.get_single_uid()){obj.href=this.url("show",{_mbox:this.env.mailbox,_uid:uid});return true}break;case"close":if(this.env.extwin){window.close()}break;case"list":if(props&&props!=""){this.reset_qsearch()}if(this.env.action=="compose"&&this.env.extwin){window.close()}else{if(this.task=="mail"){this.list_mailbox(props);this.set_button_titles()}else{if(this.task=="addressbook"){this.list_contacts(props)}}}break;case"sort":var sort_order=this.env.sort_order,sort_col=!this.env.disabled_sort_col?props:this.env.sort_col;if(!this.env.disabled_sort_order){sort_order=this.env.sort_col==sort_col&&sort_order=="ASC"?"DESC":"ASC"}this.set_list_sorting(sort_col,sort_order);this.list_mailbox("","",sort_col+"_"+sort_order);break;case"nextpage":this.list_page("next");break;case"lastpage":this.list_page("last");break;case"previouspage":this.list_page("prev");break;case"firstpage":this.list_page("first");break;case"expunge":if(this.env.exists){this.expunge_mailbox(this.env.mailbox)}break;case"purge":case"empty-mailbox":if(this.env.exists){this.purge_mailbox(this.env.mailbox)}break;case"show":if(this.task=="mail"){uid=this.get_single_uid();if(uid&&(!this.env.uid||uid!=this.env.uid)){if(this.env.mailbox==this.env.drafts_mailbox){this.open_compose_step({_draft_uid:uid,_mbox:this.env.mailbox})}else{this.show_message(uid)}}}else{if(this.task=="addressbook"){cid=props?props:this.get_single_cid();if(cid&&!(this.env.action=="show"&&cid==this.env.cid)){this.load_contact(cid,"show")}}}break;case"add":if(this.task=="addressbook"){this.load_contact(0,"add")}else{if(this.task=="settings"){this.identity_list.clear_selection();this.load_identity(0,"add-identity")}}break;case"edit":if(this.task=="addressbook"&&(cid=this.get_single_cid())){this.load_contact(cid,"edit")}else{if(this.task=="settings"&&props){this.load_identity(props,"edit-identity")}else{if(this.task=="mail"&&(cid=this.get_single_uid())){url={_mbox:this.env.mailbox};url[this.env.mailbox==this.env.drafts_mailbox&&props!="new"?"_draft_uid":"_uid"]=cid;this.open_compose_step(url)}}}break;case"save":var input,form=this.gui_objects.editform;if(form){if(this.env.action=="search"){}else{if((input=$("input[name='_pagesize']",form))&&input.length&&isNaN(parseInt(input.val()))){alert(this.get_label("nopagesizewarning"));input.focus();break}else{if(props=="reload"){form.action+="?_reload=1"}else{if(this.task=="settings"&&(this.env.identities_level%2)==0&&(input=$("input[name='_email']",form))&&input.length&&!rcube_check_email(input.val())){alert(this.get_label("noemailwarning"));input.focus();break}}$("input.placeholder").each(function(){if(this.value==this._placeholder){this.value=""}})}}if(parent.rcmail&&parent.rcmail.env.source){form.action=this.add_url(form.action,"_orig_source",parent.rcmail.env.source)}form.submit()}break;case"delete":if(this.task=="mail"){this.delete_messages(event)}else{if(this.task=="addressbook"){this.delete_contacts()}else{if(this.task=="settings"){this.delete_identity()}}}break;case"move":case"moveto":if(this.task=="mail"){this.move_messages(props)}else{if(this.task=="addressbook"&&this.drag_active){this.copy_contact(null,props)}}break;case"copy":if(this.task=="mail"){this.copy_messages(props)}break;case"mark":if(props){this.mark_message(props)}break;case"toggle_status":if(props&&!props._row){break}flag="read";if(props._row.uid){uid=props._row.uid;if(this.message_list.rows[uid].deleted){flag="undelete"}else{if(!this.message_list.rows[uid].unread){flag="unread"}}}this.mark_message(flag,uid);break;case"toggle_flag":if(props&&!props._row){break}flag="flagged";if(props._row.uid){uid=props._row.uid;if(this.message_list.rows[uid].flagged){flag="unflagged"}}this.mark_message(flag,uid);break;case"always-load":if(this.env.uid&&this.env.sender){this.add_contact(this.env.sender);setTimeout(function(){ref.command("load-images")},300);break}case"load-images":if(this.env.uid){this.show_message(this.env.uid,true,this.env.action=="preview")}break;case"load-attachment":var qstring="_mbox="+urlencode(this.env.mailbox)+"&_uid="+this.env.uid+"&_part="+props.part;if(this.env.uid&&props.mimetype&&this.env.mimetypes&&$.inArray(props.mimetype,this.env.mimetypes)>=0){var attachment_win=window.open(this.env.comm_path+"&_action=get&"+qstring+"&_frame=1",this.html_identifier("rcubemailattachment"+this.env.uid+props.part));if(attachment_win){setTimeout(function(){attachment_win.focus()},10);break}}this.goto_url("get",qstring+"&_download=1",false);break;case"select-all":this.select_all_mode=props?false:true;this.dummy_select=true;if(props=="invert"){this.message_list.invert_selection()}else{this.message_list.select_all(props=="page"?"":props)}this.dummy_select=null;break;case"select-none":this.select_all_mode=false;this.message_list.clear_selection();break;case"expand-all":this.env.autoexpand_threads=1;this.message_list.expand_all();break;case"expand-unread":this.env.autoexpand_threads=2;this.message_list.collapse_all();this.expand_unread();break;case"collapse-all":this.env.autoexpand_threads=0;this.message_list.collapse_all();break;case"nextmessage":if(this.env.next_uid){this.show_message(this.env.next_uid,false,this.env.action=="preview")}break;case"lastmessage":if(this.env.last_uid){this.show_message(this.env.last_uid)}break;case"previousmessage":if(this.env.prev_uid){this.show_message(this.env.prev_uid,false,this.env.action=="preview")}break;case"firstmessage":if(this.env.first_uid){this.show_message(this.env.first_uid)}break;case"compose":url={};if(this.task=="mail"){url._mbox=this.env.mailbox;if(props){url._to=props}if(this.env.search_request){url._search=this.env.search_request}}else{if(this.task=="addressbook"){if(props&&props.indexOf("@")>0){url._to=props}else{var n,len,a_cids=[];if(props){a_cids.push(props)}else{if(this.contact_list){var selection=this.contact_list.get_selection();for(n=0,len=selection.length;n<len;n++){a_cids.push(selection[n])}}}if(a_cids.length){this.http_post("mailto",{_cid:a_cids.join(","),_source:this.env.source},true)}else{if(this.env.group){this.http_post("mailto",{_gid:this.env.group,_source:this.env.source},true)}}break}}else{if(props){url._to=props}}}this.open_compose_step(url);break;case"spellcheck":if(this.spellcheck_state()){this.stop_spellchecking()}else{if(window.tinyMCE&&tinyMCE.get(this.env.composebody)){tinyMCE.execCommand("mceSpellCheck",true)}else{if(this.env.spellcheck&&this.env.spellcheck.spellCheck){this.env.spellcheck.spellCheck()}}}this.spellcheck_state();break;case"savedraft":clearTimeout(this.save_timer);if(this.env.draft_id&&this.cmp_hash==this.compose_field_hash()){this.auto_save_start();break}this.submit_messageform(true);break;case"send":if(!props.nocheck&&!this.check_compose_input(command)){break}clearTimeout(this.save_timer);this.submit_messageform();break;case"send-attachment":clearTimeout(this.save_timer);this.upload_file(props||this.gui_objects.uploadform);break;case"insert-sig":this.change_identity($("[name='_from']")[0],true);break;case"list-adresses":this.list_contacts(props);this.enable_command("add-recipient",false);break;case"add-recipient":this.compose_add_recipient(props);break;case"reply-all":case"reply-list":case"reply":if(uid=this.get_single_uid()){url={_reply_uid:uid,_mbox:this.env.mailbox};if(command=="reply-all"){url._all=(!props&&this.commands["reply-list"]?"list":"all")}else{if(command=="reply-list"){url._all="list"}}this.open_compose_step(url)}break;case"forward-attachment":case"forward-inline":case"forward":var uids=this.env.uid?[this.env.uid]:(this.message_list?this.message_list.get_selection():[]);if(uids.length){url={_forward_uid:this.uids_to_list(uids),_mbox:this.env.mailbox};if(command=="forward-attachment"||(!props&&this.env.forward_attachment)||uids.length>1){url._attachment=1}this.open_compose_step(url)}break;case"print":if(uid=this.get_single_uid()){ref.printwin=window.open(this.env.comm_path+"&_action=print&_uid="+uid+"&_mbox="+urlencode(this.env.mailbox)+(this.env.safemode?"&_safe=1":""));if(this.printwin){setTimeout(function(){ref.printwin.focus()},20);if(this.env.action!="show"){this.mark_message("read",uid)}}}break;case"viewsource":if(uid=this.get_single_uid()){ref.sourcewin=window.open(this.env.comm_path+"&_action=viewsource&_uid="+uid+"&_mbox="+urlencode(this.env.mailbox));if(this.sourcewin){setTimeout(function(){ref.sourcewin.focus()},20)}}break;case"download":if(uid=this.get_single_uid()){this.goto_url("viewsource",{_uid:uid,_mbox:this.env.mailbox,_save:1})}break;case"search":if(!props&&this.gui_objects.qsearchbox){props=this.gui_objects.qsearchbox.value}if(props){this.qsearch(props);break}case"reset-search":var n,s=this.env.search_request||this.env.qsearch;this.reset_qsearch();this.select_all_mode=false;if(s&&this.env.action=="compose"){if(this.contact_list){this.list_contacts_clear()}}else{if(s&&this.env.mailbox){this.list_mailbox(this.env.mailbox,1)}else{if(s&&this.task=="addressbook"){if(this.env.source==""){for(n in this.env.address_sources){break}this.env.source=n;this.env.group=""}this.list_contacts(this.env.source,this.env.group,1)}}}break;case"listgroup":this.reset_qsearch();this.list_contacts(props.source,props.id);break;case"import":if(this.env.action=="import"&&this.gui_objects.importform){var file=document.getElementById("rcmimportfile");if(file&&!file.value){alert(this.get_label("selectimportfile"));break}this.gui_objects.importform.submit();this.set_busy(true,"importwait");this.lock_form(this.gui_objects.importform,true)}else{this.goto_url("import",(this.env.source?"_target="+urlencode(this.env.source)+"&":""))}break;case"export":if(this.contact_list.rowcount>0){this.goto_url("export",{_source:this.env.source,_gid:this.env.group,_search:this.env.search_request})}break;case"upload-photo":this.upload_contact_photo(props||this.gui_objects.uploadform);break;case"delete-photo":this.replace_contact_photo("-del-");break;case"preferences":case"identities":case"folders":this.goto_url("settings/"+command);break;case"undo":this.http_request("undo","",this.display_message("","loading"));break;default:var func=command.replace(/-/g,"_");if(this[func]&&typeof this[func]==="function"){ret=this[func](props,obj)}break}if(this.triggerEvent("after"+command,props)===false){ret=false}this.triggerEvent("actionafter",{props:props,action:command});return ret===false?false:obj?false:true};this.enable_command=function(){var i,n,args=Array.prototype.slice.call(arguments),enable=args.pop(),cmd;for(n=0;n<args.length;n++){cmd=args[n];if(typeof cmd==="string"){this.commands[cmd]=enable;this.set_button(cmd,(enable?"act":"pas"))}else{for(i in cmd){args.push(cmd[i])}}}};this.set_busy=function(a,message,id){if(a&&message){var msg=this.get_label(message);if(msg==message){msg="Loading..."}id=this.display_message(msg,"loading")}else{if(!a&&id){this.hide_message(id)}}this.busy=a;if(this.gui_objects.editform){this.lock_form(this.gui_objects.editform,a)}return id};this.get_label=function(name,domain){if(domain&&this.labels[domain+"."+name]){return this.labels[domain+"."+name]}else{if(this.labels[name]){return this.labels[name]}else{return name}}};this.gettext=this.get_label;this.switch_task=function(task){if(this.task===task&&task!="mail"){return}var url=this.get_task_url(task);if(task=="mail"){url+="&_mbox=INBOX"}this.redirect(url)};this.get_task_url=function(task,url){if(!url){url=this.env.comm_path}return url.replace(/_task=[a-z]+/,"_task="+task)};this.reload=function(delay){if(this.is_framed()){parent.rcmail.reload(delay)}else{if(delay){setTimeout(function(){rcmail.reload()},delay)}else{if(window.location){location.href=this.env.comm_path+(this.env.action?"&_action="+this.env.action:"")}}}};this.add_url=function(url,name,value){value=urlencode(value);if(/(\?.*)$/.test(url)){var urldata=RegExp.$1,datax=RegExp("((\\?|&)"+RegExp.escape(name)+"=[^&]*)");if(datax.test(urldata)){urldata=urldata.replace(datax,RegExp.$2+name+"="+value)}else{urldata+="&"+name+"="+value}return url.replace(/(\?.*)$/,urldata)}return url+"?"+name+"="+value};this.is_framed=function(){return(this.env.framed&&parent.rcmail&&parent.rcmail!=this&&parent.rcmail.command)};this.save_pref=function(prop){var request={_name:prop.name,_value:prop.value};if(prop.session){request._session=prop.session}if(prop.env){this.env[prop.env]=prop.value}this.http_post("save-pref",request)};this.html_identifier=function(str,encode){str=String(str);if(encode){return Base64.encode(str).replace(/=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}else{return str.replace(this.identifier_expr,"_")}};this.html_identifier_decode=function(str){str=String(str).replace(/-/g,"+").replace(/_/g,"/");while(str.length%4){str+="="}return Base64.decode(str)};this.drag_menu=function(e,target){var modkey=rcube_event.get_modifier(e),menu=this.gui_objects.message_dragmenu;if(menu&&modkey==SHIFT_KEY&&this.commands.copy){var pos=rcube_event.get_mouse_pos(e);this.env.drag_target=target;$(menu).css({top:(pos.y-10)+"px",left:(pos.x-10)+"px"}).show();return true}return false};this.drag_menu_action=function(action){var menu=this.gui_objects.message_dragmenu;if(menu){$(menu).hide()}this.command(action,this.env.drag_target);this.env.drag_target=null};this.drag_start=function(list){var model=this.task=="mail"?this.env.mailboxes:this.env.contactfolders;this.drag_active=true;if(this.preview_timer){clearTimeout(this.preview_timer)}if(this.preview_read_timer){clearTimeout(this.preview_read_timer)}if(this.gui_objects.folderlist&&model){this.initialBodyScrollTop=bw.ie?0:window.pageYOffset;this.initialListScrollTop=this.gui_objects.folderlist.parentNode.scrollTop;var k,li,height,list=$(this.gui_objects.folderlist);pos=list.offset();this.env.folderlist_coords={x1:pos.left,y1:pos.top,x2:pos.left+list.width(),y2:pos.top+list.height()};this.env.folder_coords=[];for(k in model){if(li=this.get_folder_li(k)){if(height=li.firstChild.offsetHeight){pos=$(li.firstChild).offset();this.env.folder_coords[k]={x1:pos.left,y1:pos.top,x2:pos.left+li.firstChild.offsetWidth,y2:pos.top+height,on:0}}}}}};this.drag_end=function(e){this.drag_active=false;this.env.last_folder_target=null;if(this.folder_auto_timer){clearTimeout(this.folder_auto_timer);this.folder_auto_timer=null;this.folder_auto_expand=null}if(this.gui_objects.folderlist&&this.env.folder_coords){for(var k in this.env.folder_coords){if(this.env.folder_coords[k].on){$(this.get_folder_li(k)).removeClass("droptarget")}}}};this.drag_move=function(e){if(this.gui_objects.folderlist&&this.env.folder_coords){var k,li,div,check,oldclass,layerclass="draglayernormal",mouse=rcube_event.get_mouse_pos(e),pos=this.env.folderlist_coords,boffset=bw.ie?-document.documentElement.scrollTop:this.initialBodyScrollTop,moffset=this.initialListScrollTop-this.gui_objects.folderlist.parentNode.scrollTop;if(this.contact_list&&this.contact_list.draglayer){oldclass=this.contact_list.draglayer.attr("class")}mouse.y+=-moffset-boffset;if(mouse.x<pos.x1||mouse.x>=pos.x2||mouse.y<pos.y1||mouse.y>=pos.y2){if(this.env.last_folder_target){$(this.get_folder_li(this.env.last_folder_target)).removeClass("droptarget");this.env.folder_coords[this.env.last_folder_target].on=0;this.env.last_folder_target=null}if(layerclass!=oldclass&&this.contact_list&&this.contact_list.draglayer){this.contact_list.draglayer.attr("class",layerclass)}return}for(k in this.env.folder_coords){pos=this.env.folder_coords[k];if(mouse.x>=pos.x1&&mouse.x<pos.x2&&mouse.y>=pos.y1&&mouse.y<pos.y2){if(check=this.check_droptarget(k)){li=this.get_folder_li(k);div=$(li.getElementsByTagName("div")[0]);if(div.hasClass("collapsed")){if(this.folder_auto_timer){clearTimeout(this.folder_auto_timer)}this.folder_auto_expand=this.env.mailboxes[k].id;this.folder_auto_timer=setTimeout(function(){rcmail.command("collapse-folder",rcmail.folder_auto_expand);rcmail.drag_start(null)},1000)}else{if(this.folder_auto_timer){clearTimeout(this.folder_auto_timer);this.folder_auto_timer=null;this.folder_auto_expand=null}}$(li).addClass("droptarget");this.env.folder_coords[k].on=1;this.env.last_folder_target=k;layerclass="draglayer"+(check>1?"copy":"normal")}else{this.env.last_folder_target=null}}else{if(pos.on){$(this.get_folder_li(k)).removeClass("droptarget");this.env.folder_coords[k].on=0}}}if(layerclass!=oldclass&&this.contact_list&&this.contact_list.draglayer){this.contact_list.draglayer.attr("class",layerclass)}}};this.collapse_folder=function(name){var li=this.get_folder_li(name,"",true),div=$("div:first",li),ul=$("ul:first",li);if(div.hasClass("collapsed")){ul.show();div.removeClass("collapsed").addClass("expanded");var reg=new RegExp("&"+urlencode(name)+"&");this.env.collapsed_folders=this.env.collapsed_folders.replace(reg,"")}else{if(div.hasClass("expanded")){ul.hide();div.removeClass("expanded").addClass("collapsed");this.env.collapsed_folders=this.env.collapsed_folders+"&"+urlencode(name)+"&";if(this.env.mailbox.indexOf(name+this.env.delimiter)==0&&!$(li).hasClass("virtual")){this.command("list",name)}}else{return}}if(bw.ie6||bw.ie7){var siblings=li.nextSibling?li.nextSibling.getElementsByTagName("ul"):null;if(siblings&&siblings.length&&(li=siblings[0])&&li.style&&li.style.display!="none"){li.style.display="none";li.style.display=""}}this.command("save-pref",{name:"collapsed_folders",value:this.env.collapsed_folders});this.set_unread_count_display(name,false)};this.doc_mouse_up=function(e){var model,list,id;if($(rcube_event.get_target(e)).closest(".ui-dialog, .ui-widget-overlay").length){return}if(list=this.message_list){model=this.env.mailboxes}else{if(list=this.contact_list){model=this.env.contactfolders}else{if(this.ksearch_value){this.ksearch_blur()}}}if(list&&!rcube_mouse_is_over(e,list.list.parentNode)){list.blur()}if(this.drag_active&&model&&this.env.last_folder_target){var target=model[this.env.last_folder_target];$(this.get_folder_li(this.env.last_folder_target)).removeClass("droptarget");this.env.last_folder_target=null;list.draglayer.hide();if(!this.drag_menu(e,target)){this.command("moveto",target)}}if(this.buttons_sel){for(id in this.buttons_sel){if(typeof id!=="function"){this.button_out(this.buttons_sel[id],id)}}this.buttons_sel={}}};this.click_on_list=function(e){if(this.gui_objects.qsearchbox){this.gui_objects.qsearchbox.blur()}if(this.message_list){this.message_list.focus()}else{if(this.contact_list){this.contact_list.focus()}}return true};this.msglist_select=function(list){if(this.preview_timer){clearTimeout(this.preview_timer)}if(this.preview_read_timer){clearTimeout(this.preview_read_timer)}var selected=list.get_single_selection();this.enable_command(this.env.message_commands,selected!=null);if(selected){if(this.env.mailbox==this.env.drafts_mailbox){this.enable_command("reply","reply-all","reply-list","forward","forward-attachment","forward-inline",false)}else{var msg=this.env.messages[selected];if(!msg.ml){this.enable_command("reply-list",false)}}}this.enable_command("delete","moveto","copy","mark","forward","forward-attachment",list.selection.length>0);if(selected||(list.selection.length&&list.selection.length!=list.rowcount)){this.select_all_mode=false}if(selected&&this.env.contentframe&&!list.multi_selecting&&!this.dummy_select){this.preview_timer=setTimeout(function(){ref.msglist_get_preview()},this.dblclick_time)}else{if(this.env.contentframe){this.show_contentframe(false)}}};this.msglist_click=function(list){if(list.multi_selecting||!this.env.contentframe){return}if(list.get_single_selection()){return}var win=this.get_frame_window(this.env.contentframe);if(win&&win.location.href.indexOf(this.env.blankpage)>=0){if(this.preview_timer){clearTimeout(this.preview_timer)}if(this.preview_read_timer){clearTimeout(this.preview_read_timer)}this.preview_timer=setTimeout(function(){ref.msglist_get_preview()},this.dblclick_time)}};this.msglist_dbl_click=function(list){if(this.preview_timer){clearTimeout(this.preview_timer)}if(this.preview_read_timer){clearTimeout(this.preview_read_timer)}var uid=list.get_single_selection();if(uid&&this.env.mailbox==this.env.drafts_mailbox){this.open_compose_step({_draft_uid:uid,_mbox:this.env.mailbox})}else{if(uid){this.show_message(uid,false,false)}}};this.msglist_keypress=function(list){if(list.modkey==CONTROL_KEY){return}if(list.key_pressed==list.ENTER_KEY){this.command("show")}else{if(list.key_pressed==list.DELETE_KEY||list.key_pressed==list.BACKSPACE_KEY){this.command("delete")}else{if(list.key_pressed==33){this.command("previouspage")}else{if(list.key_pressed==34){this.command("nextpage")}}}}};this.msglist_get_preview=function(){var uid=this.get_single_uid();if(uid&&this.env.contentframe&&!this.drag_active){this.show_message(uid,false,true)}else{if(this.env.contentframe){this.show_contentframe(false)}}};this.msglist_expand=function(row){if(this.env.messages[row.uid]){this.env.messages[row.uid].expanded=row.expanded}$(row.obj)[row.expanded?"addClass":"removeClass"]("expanded")};this.msglist_set_coltypes=function(list){var i,found,name,cols=list.list.tHead.rows[0].cells;this.env.coltypes=[];for(i=0;i<cols.length;i++){if(cols[i].id&&cols[i].id.match(/^rcm/)){name=cols[i].id.replace(/^rcm/,"");this.env.coltypes.push(name)}}if((found=$.inArray("flag",this.env.coltypes))>=0){this.env.flagged_col=found}if((found=$.inArray("subject",this.env.coltypes))>=0){this.env.subject_col=found}this.command("save-pref",{name:"list_cols",value:this.env.coltypes,session:"list_attrib/columns"})};this.check_droptarget=function(id){if(this.task=="mail"){return(this.env.mailboxes[id]&&this.env.mailboxes[id].id!=this.env.mailbox&&!this.env.mailboxes[id].virtual)?1:0}if(this.task=="settings"){return id!=this.env.mailbox?1:0}if(this.task=="addressbook"){if(id!=this.env.source&&this.env.contactfolders[id]){if(this.env.contactfolders[id].type=="group"){var target_abook=this.env.contactfolders[id].source;if(this.env.contactfolders[id].id!=this.env.group&&!this.env.contactfolders[target_abook].readonly){return(this.env.selection_sources.length>1||$.inArray(target_abook,this.env.selection_sources)==-1)?2:1}}else{if(!this.env.contactfolders[id].readonly){return(this.env.selection_sources.length>1||$.inArray(id,this.env.selection_sources)==-1)?2:0}}}}return 0};this.open_window=function(url,width){var win=this.is_framed()?parent.window:window,page=$(win),page_width=page.width(),page_height=bw.mz?$("body",win).height():page.height(),w=Math.min(width,page_width),h=page_height,l=(win.screenLeft||win.screenX)+20,t=(win.screenTop||win.screenY)+20,wname="rcmextwin"+new Date().getTime(),extwin=window.open(url+(url.match(/\?/)?"&":"?")+"_extwin=1",wname,"width="+w+",height="+h+",top="+t+",left="+l+",resizable=yes,toolbar=no,status=no,location=no");if(!url&&extwin.document){extwin.document.write("<html><body>"+this.get_label("loading")+"</body></html>")}window.setTimeout(function(){extwin.focus()},10);return wname};this.init_message_row=function(row){var expando,self=this,uid=row.uid,status_icon=(this.env.status_col!=null?"status":"msg")+"icn"+row.uid;if(uid&&this.env.messages[uid]){$.extend(row,this.env.messages[uid])}if(row.icon=document.getElementById(status_icon)){row.icon._row=row.obj;row.icon.onmousedown=function(e){self.command("toggle_status",this);rcube_event.cancel(e)}}if(this.env.status_col!=null){row.msgicon=document.getElementById("msgicn"+row.uid)}else{row.msgicon=row.icon}if(this.env.flagged_col!=null&&(row.flagicon=document.getElementById("flagicn"+row.uid))){row.flagicon._row=row.obj;row.flagicon.onmousedown=function(e){self.command("toggle_flag",this);rcube_event.cancel(e)}}if(!row.depth&&row.has_children&&(expando=document.getElementById("rcmexpando"+row.uid))){row.expando=expando;expando.onmousedown=function(e){return self.expand_message_row(e,uid)};if(bw.touch){expando.addEventListener("touchend",function(e){if(e.changedTouches.length==1){self.expand_message_row(e,uid);return rcube_event.cancel(e)}},false)}}this.triggerEvent("insertrow",{uid:uid,row:row})};this.add_message_row=function(uid,cols,flags,attop){if(!this.gui_objects.messagelist||!this.message_list){return false}if(flags.mbox!=this.env.mailbox&&!flags.skip_mbox_check){return false}if(!this.env.messages[uid]){this.env.messages[uid]={}}$.extend(this.env.messages[uid],{deleted:flags.deleted?1:0,replied:flags.answered?1:0,unread:!flags.seen?1:0,forwarded:flags.forwarded?1:0,flagged:flags.flagged?1:0,has_children:flags.has_children?1:0,depth:flags.depth?flags.depth:0,unread_children:flags.unread_children?flags.unread_children:0,parent_uid:flags.parent_uid?flags.parent_uid:0,selected:this.select_all_mode||this.message_list.in_selection(uid),ml:flags.ml?1:0,ctype:flags.ctype,flags:flags.extra_flags});var c,n,col,html,css_class,tree="",expando="",list=this.message_list,rows=list.rows,message=this.env.messages[uid],row_class="message"+(!flags.seen?" unread":"")+(flags.deleted?" deleted":"")+(flags.flagged?" flagged":"")+(message.selected?" selected":""),row=document.createElement("tr");row.id="rcmrow"+uid;css_class="msgicon";if(this.env.status_col===null){css_class+=" status";if(flags.deleted){css_class+=" deleted"}else{if(!flags.seen){css_class+=" unread"}else{if(flags.unread_children>0){css_class+=" unreadchildren"}}}}if(flags.answered){css_class+=" replied"}if(flags.forwarded){css_class+=" forwarded"}if(message.selected&&!list.in_selection(uid)){list.selection.push(uid)}if(this.env.threading){if(message.depth){tree+='<span id="rcmtab'+uid+'" class="branch" style="width:'+(message.depth*15)+'px;">&nbsp;&nbsp;</span>';if((rows[message.parent_uid]&&rows[message.parent_uid].expanded===false)||((this.env.autoexpand_threads==0||this.env.autoexpand_threads==2)&&(!rows[message.parent_uid]||!rows[message.parent_uid].expanded))){row.style.display="none";message.expanded=false}else{message.expanded=true}row_class+=" thread expanded"}else{if(message.has_children){if(message.expanded===undefined&&(this.env.autoexpand_threads==1||(this.env.autoexpand_threads==2&&message.unread_children))){message.expanded=true}expando='<div id="rcmexpando'+uid+'" class="'+(message.expanded?"expanded":"collapsed")+'">&nbsp;&nbsp;</div>';row_class+=" thread"+(message.expanded?" expanded":"")}}if(flags.unread_children&&flags.seen&&!message.expanded){row_class+=" unroot"}}tree+='<span id="msgicn'+uid+'" class="'+css_class+'">&nbsp;</span>';row.className=row_class;if(!bw.ie&&cols.subject){var action=flags.mbox==this.env.drafts_mailbox?"compose":"show";var uid_param=flags.mbox==this.env.drafts_mailbox?"_draft_uid":"_uid";cols.subject='<a href="./?_task=mail&_action='+action+"&_mbox="+urlencode(flags.mbox)+"&"+uid_param+"="+uid+'" onclick="return rcube_event.cancel(event)" onmouseover="rcube_webmail.long_subject_title(this,'+(message.depth+1)+')">'+cols.subject+"</a>"}for(n in this.env.coltypes){c=this.env.coltypes[n];col=document.createElement("td");col.className=String(c).toLowerCase();if(c=="flag"){css_class=(flags.flagged?"flagged":"unflagged");html='<span id="flagicn'+uid+'" class="'+css_class+'">&nbsp;</span>'}else{if(c=="attachment"){if(/application\/|multipart\/(m|signed)/.test(flags.ctype)){html='<span class="attachment">&nbsp;</span>'}else{if(/multipart\/report/.test(flags.ctype)){html='<span class="report">&nbsp;</span>'}else{html="&nbsp;"}}}else{if(c=="status"){if(flags.deleted){css_class="deleted"}else{if(!flags.seen){css_class="unread"}else{if(flags.unread_children>0){css_class="unreadchildren"}else{css_class="msgicon"}}}html='<span id="statusicn'+uid+'" class="'+css_class+'">&nbsp;</span>'}else{if(c=="threads"){html=expando}else{if(c=="subject"){if(bw.ie){col.onmouseover=function(){rcube_webmail.long_subject_title_ex(this,message.depth+1)};if(bw.ie8){tree="<span></span>"+tree}}html=tree+cols[c]}else{if(c=="priority"){if(flags.prio>0&&flags.prio<6){html='<span class="prio'+flags.prio+'">&nbsp;</span>'}else{html="&nbsp;"}}else{html=cols[c]}}}}}}if(html){col.innerHTML=html}row.appendChild(col)}list.insert_row(row,attop);if(attop&&this.env.pagesize&&list.rowcount>this.env.pagesize){var uid=list.get_last_row();list.remove_row(uid);list.clear_selection(uid)}};this.set_list_sorting=function(sort_col,sort_order){$("#rcm"+this.env.sort_col).removeClass("sorted"+(this.env.sort_order.toUpperCase()));if(sort_col){$("#rcm"+sort_col).addClass("sorted"+sort_order)}this.env.sort_col=sort_col;this.env.sort_order=sort_order};this.set_list_options=function(cols,sort_col,sort_order,threads){var update,post_data={};if(sort_col===undefined){sort_col=this.env.sort_col}if(!sort_order){sort_order=this.env.sort_order}if(this.env.sort_col!=sort_col||this.env.sort_order!=sort_order){update=1;this.set_list_sorting(sort_col,sort_order)}if(this.env.threading!=threads){update=1;post_data._threads=threads}if(cols&&cols.length){var i,idx,name,newcols=[],oldcols=this.env.coltypes;for(i=0;i<oldcols.length;i++){name=oldcols[i];idx=$.inArray(name,cols);if(idx!=-1){newcols.push(name);delete cols[idx]}}for(i=0;i<cols.length;i++){if(cols[i]){newcols.push(cols[i])}}if(newcols.join()!=oldcols.join()){update=1;post_data._cols=newcols.join(",")}}if(update){this.list_mailbox("","",sort_col+"_"+sort_order,post_data)}};this.show_message=function(id,safe,preview){if(!id){return}var win,target=window,action=preview?"preview":"show",url="&_action="+action+"&_uid="+id+"&_mbox="+urlencode(this.env.mailbox);if(preview&&(win=this.get_frame_window(this.env.contentframe))){target=win;url+="&_framed=1"}if(safe){url+="&_safe=1"}if(this.env.search_request){url+="&_search="+this.env.search_request}url+="&_caps="+urlencode(this.browser_capabilities());if(this.env.extwin){url+="&_extwin=1"}if(preview&&String(target.location.href).indexOf(url)>=0){this.show_contentframe(true)}else{if(!preview&&this.env.message_extwin&&!this.env.extwin){this.open_window(this.env.comm_path+url,1000)}else{this.location_href(this.env.comm_path+url,target,true)}if(preview&&this.message_list&&this.message_list.rows[id]&&this.message_list.rows[id].unread&&this.env.preview_pane_mark_read>=0){this.preview_read_timer=setTimeout(function(){ref.set_message(id,"unread",false);ref.update_thread_root(id,"read");if(ref.env.unread_counts[ref.env.mailbox]){ref.env.unread_counts[ref.env.mailbox]-=1;ref.set_unread_count(ref.env.mailbox,ref.env.unread_counts[ref.env.mailbox],ref.env.mailbox=="INBOX")}if(ref.env.preview_pane_mark_read>0){ref.http_post("mark",{_uid:id,_flag:"read",_quiet:1})}},this.env.preview_pane_mark_read*1000)}}};this.show_contentframe=function(show){var frame,win,name=this.env.contentframe;if(name&&(frame=this.get_frame_element(name))){if(!show&&(win=this.get_frame_window(name))){if(win.location&&win.location.href.indexOf(this.env.blankpage)<0){win.location.href=this.env.blankpage}}else{if(!bw.safari&&!bw.konq){$(frame)[show?"show":"hide"]()}}}if(!show&&this.busy){this.set_busy(false,null,this.env.frame_lock)}};this.get_frame_element=function(id){var frame;if(id&&(frame=document.getElementById(id))){return frame}};this.get_frame_window=function(id){var frame=this.get_frame_element(id);if(frame&&frame.name&&window.frames){return window.frames[frame.name]}};this.lock_frame=function(){if(!this.env.frame_lock){(this.is_framed()?parent.rcmail:this).env.frame_lock=this.set_busy(true,"loading")}};this.list_page=function(page){if(page=="next"){page=this.env.current_page+1}else{if(page=="last"){page=this.env.pagecount}else{if(page=="prev"&&this.env.current_page>1){page=this.env.current_page-1}else{if(page=="first"&&this.env.current_page>1){page=1}}}}if(page>0&&page<=this.env.pagecount){this.env.current_page=page;if(this.task=="addressbook"||this.contact_list){this.list_contacts(this.env.source,this.env.group,page)}else{if(this.task=="mail"){this.list_mailbox(this.env.mailbox,page)}}}};this.checkmail=function(){var lock=this.set_busy(true,"checkingmail"),params=this.check_recent_params();this.http_request("check-recent",params,lock)};this.filter_mailbox=function(filter){var lock=this.set_busy(true,"searching");this.clear_message_list();this.env.current_page=1;this.http_request("search",this.search_params(false,filter),lock)};this.list_mailbox=function(mbox,page,sort,url){var win,target=window;if(typeof url!="object"){url={}}if(!mbox){mbox=this.env.mailbox?this.env.mailbox:"INBOX"}if(sort){url._sort=sort}if(this.env.search_request){url._search=this.env.search_request}if(this.env.mailbox!=mbox){page=1;this.env.current_page=page;this.select_all_mode=false}this.clear_message_list();if(mbox!=this.env.mailbox||(mbox==this.env.mailbox&&!page&&!sort)){url._refresh=1}this.select_folder(mbox,"",true);this.unmark_folder(mbox,"recent","",true);this.env.mailbox=mbox;if(this.gui_objects.messagelist){this.list_mailbox_remote(mbox,page,url);return}if(win=this.get_frame_window(this.env.contentframe)){target=win;url._framed=1}if(mbox){this.set_busy(true,"loading");url._mbox=mbox;if(page){url._page=page}this.location_href(url,target)}};this.clear_message_list=function(){this.env.messages={};this.last_selected=0;this.show_contentframe(false);if(this.message_list){this.message_list.clear(true)}};this.list_mailbox_remote=function(mbox,page,post_data){this.message_list.clear();var lock=this.set_busy(true,"loading");if(typeof post_data!="object"){post_data={}}post_data._mbox=mbox;if(page){post_data._page=page}this.http_request("list",post_data,lock)};this.update_selection=function(){var selected=this.message_list.selection,rows=this.message_list.rows,i,selection=[];for(i in selected){if(rows[selected[i]]){selection.push(selected[i])}}this.message_list.selection=selection};this.expand_unread=function(){var r,tbody=this.gui_objects.messagelist.tBodies[0],new_row=tbody.firstChild;while(new_row){if(new_row.nodeType==1&&(r=this.message_list.rows[new_row.uid])&&r.unread_children){this.message_list.expand_all(r);this.set_unread_children(r.uid)}new_row=new_row.nextSibling}return false};this.expand_message_row=function(e,uid){var row=this.message_list.rows[uid];row.expanded=!row.expanded;this.set_unread_children(uid);row.expanded=!row.expanded;this.message_list.expand_row(e,uid)};this.expand_threads=function(){if(!this.env.threading||!this.env.autoexpand_threads||!this.message_list){return}switch(this.env.autoexpand_threads){case 2:this.expand_unread();break;case 1:this.message_list.expand_all();break}};this.init_threads=function(roots,mbox){if(mbox&&mbox!=this.env.mailbox){return false}for(var n=0,len=roots.length;n<len;n++){this.add_tree_icons(roots[n])}this.expand_threads()};this.add_tree_icons=function(root){var i,l,r,n,len,pos,tmp=[],uid=[],row,rows=this.message_list.rows;if(root){row=rows[root]?rows[root].obj:null}else{row=this.message_list.list.tBodies[0].firstChild}while(row){if(row.nodeType==1&&(r=rows[row.uid])){if(r.depth){for(i=tmp.length-1;i>=0;i--){len=tmp[i].length;if(len>r.depth){pos=len-r.depth;if(!(tmp[i][pos]&2)){tmp[i][pos]=tmp[i][pos]?tmp[i][pos]+2:2}}else{if(len==r.depth){if(!(tmp[i][0]&2)){tmp[i][0]+=2}}}if(r.depth>len){break}}tmp.push(new Array(r.depth));tmp[tmp.length-1][0]=1;uid.push(r.uid)}else{if(tmp.length){for(i in tmp){this.set_tree_icons(uid[i],tmp[i])}tmp=[];uid=[]}if(root&&row!=rows[root].obj){break}}}row=row.nextSibling}if(tmp.length){for(i in tmp){this.set_tree_icons(uid[i],tmp[i])}}};this.set_tree_icons=function(uid,tree){var i,divs=[],html="",len=tree.length;for(i=0;i<len;i++){if(tree[i]>2){divs.push({"class":"l3",width:15})}else{if(tree[i]>1){divs.push({"class":"l2",width:15})}else{if(tree[i]>0){divs.push({"class":"l1",width:15})}else{if(divs.length&&!divs[divs.length-1]["class"]){divs[divs.length-1].width+=15}else{divs.push({"class":null,width:15})}}}}}for(i=divs.length-1;i>=0;i--){if(divs[i]["class"]){html+='<div class="tree '+divs[i]["class"]+'" />'}else{html+='<div style="width:'+divs[i].width+'px" />'}}if(html){$("#rcmtab"+uid).html(html)}};this.update_thread_root=function(uid,flag){if(!this.env.threading){return}var root=this.message_list.find_root(uid);if(uid==root){return}var p=this.message_list.rows[root];if(flag=="read"&&p.unread_children){p.unread_children--}else{if(flag=="unread"&&p.has_children){p.unread_children=p.unread_children?p.unread_children+1:1}else{return}}this.set_message_icon(root);this.set_unread_children(root)};this.update_thread=function(uid){if(!this.env.threading){return 0}var r,parent,count=0,rows=this.message_list.rows,row=rows[uid],depth=rows[uid].depth,roots=[];if(!row.depth){count--}else{if(row.unread){parent=this.message_list.find_root(uid);rows[parent].unread_children--;this.set_unread_children(parent)}}parent=row.parent_uid;row=row.obj.nextSibling;while(row){if(row.nodeType==1&&(r=rows[row.uid])){if(!r.depth||r.depth<=depth){break}r.depth--;$("#rcmtab"+r.uid).width(r.depth*15).html("");if(!r.depth){count++;r.parent_uid=0;if(r.has_children){$("#rcmrow"+r.uid+" .leaf:first").attr("id","rcmexpando"+r.uid).attr("class",(r.obj.style.display!="none"?"expanded":"collapsed")).bind("mousedown",{uid:r.uid,p:this},function(e){return e.data.p.expand_message_row(e,e.data.uid)});r.unread_children=0;roots.push(r)}if(r.obj.style.display=="none"){$(r.obj).show()}}else{if(r.depth==depth){r.parent_uid=parent}if(r.unread&&roots.length){roots[roots.length-1].unread_children++}}}row=row.nextSibling}for(var i=0;i<roots.length;i++){this.set_unread_children(roots[i].uid)}return count};this.delete_excessive_thread_rows=function(){var rows=this.message_list.rows,tbody=this.message_list.list.tBodies[0],row=tbody.firstChild,cnt=this.env.pagesize+1;while(row){if(row.nodeType==1&&(r=rows[row.uid])){if(!r.depth&&cnt){cnt--}if(!cnt){this.message_list.remove_row(row.uid)}}row=row.nextSibling}};this.set_message_icon=function(uid){var css_class,row=this.message_list.rows[uid];if(!row){return false}if(row.icon){css_class="msgicon";if(row.deleted){css_class+=" deleted"}else{if(row.unread){css_class+=" unread"}else{if(row.unread_children){css_class+=" unreadchildren"}}}if(row.msgicon==row.icon){if(row.replied){css_class+=" replied"}if(row.forwarded){css_class+=" forwarded"}css_class+=" status"}row.icon.className=css_class}if(row.msgicon&&row.msgicon!=row.icon){css_class="msgicon";if(!row.unread&&row.unread_children){css_class+=" unreadchildren"}if(row.replied){css_class+=" replied"}if(row.forwarded){css_class+=" forwarded"}row.msgicon.className=css_class}if(row.flagicon){css_class=(row.flagged?"flagged":"unflagged");row.flagicon.className=css_class}};this.set_message_status=function(uid,flag,status){var row=this.message_list.rows[uid];if(!row){return false}if(flag=="unread"){row.unread=status}else{if(flag=="deleted"){row.deleted=status}else{if(flag=="replied"){row.replied=status}else{if(flag=="forwarded"){row.forwarded=status}else{if(flag=="flagged"){row.flagged=status}}}}}};this.set_message=function(uid,flag,status){var row=this.message_list&&this.message_list.rows[uid];if(!row){return false}if(flag){this.set_message_status(uid,flag,status)}var rowobj=$(row.obj);if(row.unread&&!rowobj.hasClass("unread")){rowobj.addClass("unread")}else{if(!row.unread&&rowobj.hasClass("unread")){rowobj.removeClass("unread")}}if(row.deleted&&!rowobj.hasClass("deleted")){rowobj.addClass("deleted")}else{if(!row.deleted&&rowobj.hasClass("deleted")){rowobj.removeClass("deleted")}}if(row.flagged&&!rowobj.hasClass("flagged")){rowobj.addClass("flagged")}else{if(!row.flagged&&rowobj.hasClass("flagged")){rowobj.removeClass("flagged")}}this.set_unread_children(uid);this.set_message_icon(uid)};this.set_unread_children=function(uid){var row=this.message_list.rows[uid];if(row.parent_uid){return}if(!row.unread&&row.unread_children&&!row.expanded){$(row.obj).addClass("unroot")}else{$(row.obj).removeClass("unroot")}};this.copy_messages=function(mbox){if(mbox&&typeof mbox==="object"){mbox=mbox.id}if(!mbox||mbox==this.env.mailbox){return}var post_data=this.selection_post_data({_target_mbox:mbox});if(!post_data._uid){return}this.http_post("copy",post_data,this.display_message(this.get_label("copyingmessage"),"loading"))};this.move_messages=function(mbox){if(mbox&&typeof mbox==="object"){mbox=mbox.id}if(!mbox||mbox==this.env.mailbox){return}var lock=false,post_data=this.selection_post_data({_target_mbox:mbox});if(!post_data._uid){return}if(this.env.action=="show"){lock=this.set_busy(true,"movingmessage")}else{this.show_contentframe(false)}this.enable_command(this.env.message_commands,false);this._with_selected_messages("moveto",post_data,lock)};this.delete_messages=function(event){var uid,i,len,trash=this.env.trash_mailbox,list=this.message_list,selection=list?list.get_selection():[];if(!this.env.uid&&!selection.length){return}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)}}if(this.env.flag_for_deletion){this.mark_message("delete");return false}else{if(!trash||this.env.mailbox==trash){this.permanently_remove_messages()}else{if(this.env.delete_junk&&this.env.junk_mailbox&&this.env.mailbox==this.env.junk_mailbox){this.permanently_remove_messages()}else{if((list&&list.modkey==SHIFT_KEY)||(event&&rcube_event.get_modifier(event)==SHIFT_KEY)){if(confirm(this.get_label("deletemessagesconfirm"))){this.permanently_remove_messages()}}else{this.move_messages(trash)}}}}return true};this.permanently_remove_messages=function(){var post_data=this.selection_post_data();if(!post_data._uid){return}this.show_contentframe(false);this._with_selected_messages("delete",post_data)};this._with_selected_messages=function(action,post_data,lock){var count=0,msg;if(this.message_list){var n,id,root,roots=[],selection=this.message_list.get_selection();for(n=0,len=selection.length;n<len;n++){id=selection[n];if(this.env.threading){count+=this.update_thread(id);root=this.message_list.find_root(id);if(root!=id&&$.inArray(root,roots)<0){roots.push(root)}}this.message_list.remove_row(id,(this.env.display_next&&n==selection.length-1))}if(!this.env.display_next){this.message_list.clear_selection()}for(n=0,len=roots.length;n<len;n++){this.add_tree_icons(roots[n])}}if(this.env.display_next&&this.env.next_uid){post_data._next_uid=this.env.next_uid}if(count<0){post_data._count=(count*-1)}else{if(count>0){this.delete_excessive_thread_rows()}}if(!lock){msg=action=="moveto"?"movingmessage":"deletingmessage";lock=this.display_message(this.get_label(msg),"loading")}this.http_post(action,post_data,lock)};this.selection_post_data=function(data){if(typeof(data)!="object"){data={}}data._mbox=this.env.mailbox;if(!data._uid){var uids=this.env.uid?[this.env.uid]:this.message_list.get_selection();data._uid=this.uids_to_list(uids)}if(this.env.action){data._from=this.env.action}if(this.env.search_request){data._search=this.env.search_request}return data};this.mark_message=function(flag,uid){var a_uids=[],r_uids=[],len,n,id,list=this.message_list;if(uid){a_uids[0]=uid}else{if(this.env.uid){a_uids[0]=this.env.uid}else{if(list){a_uids=list.get_selection()}}}if(!list){r_uids=a_uids}else{list.focus();for(n=0,len=a_uids.length;n<len;n++){id=a_uids[n];if((flag=="read"&&list.rows[id].unread)||(flag=="unread"&&!list.rows[id].unread)||(flag=="delete"&&!list.rows[id].deleted)||(flag=="undelete"&&list.rows[id].deleted)||(flag=="flagged"&&!list.rows[id].flagged)||(flag=="unflagged"&&list.rows[id].flagged)){r_uids.push(id)}}}if(!r_uids.length&&!this.select_all_mode){return}switch(flag){case"read":case"unread":this.toggle_read_status(flag,r_uids);break;case"delete":case"undelete":this.toggle_delete_status(r_uids);break;case"flagged":case"unflagged":this.toggle_flagged_status(flag,a_uids);break}};this.toggle_read_status=function(flag,a_uids){var i,len=a_uids.length,post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:flag}),lock=this.display_message(this.get_label("markingmessage"),"loading");for(i=0;i<len;i++){this.set_message(a_uids[i],"unread",(flag=="unread"?true:false))}this.http_post("mark",post_data,lock);for(i=0;i<len;i++){this.update_thread_root(a_uids[i],flag)}};this.toggle_flagged_status=function(flag,a_uids){var i,len=a_uids.length,post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:flag}),lock=this.display_message(this.get_label("markingmessage"),"loading");for(i=0;i<len;i++){this.set_message(a_uids[i],"flagged",(flag=="flagged"?true:false))}this.http_post("mark",post_data,lock)};this.toggle_delete_status=function(a_uids){var len=a_uids.length,i,uid,all_deleted=true,rows=this.message_list?this.message_list.rows:[];if(len==1){if(!rows.length||(rows[a_uids[0]]&&!rows[a_uids[0]].deleted)){this.flag_as_deleted(a_uids)}else{this.flag_as_undeleted(a_uids)}return true}for(i=0;i<len;i++){uid=a_uids[i];if(rows[uid]&&!rows[uid].deleted){all_deleted=false;break}}if(all_deleted){this.flag_as_undeleted(a_uids)}else{this.flag_as_deleted(a_uids)}return true};this.flag_as_undeleted=function(a_uids){var i,len=a_uids.length,post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:"undelete"}),lock=this.display_message(this.get_label("markingmessage"),"loading");for(i=0;i<len;i++){this.set_message(a_uids[i],"deleted",false)}this.http_post("mark",post_data,lock)};this.flag_as_deleted=function(a_uids){var r_uids=[],post_data=this.selection_post_data({_uid:this.uids_to_list(a_uids),_flag:"delete"}),lock=this.display_message(this.get_label("markingmessage"),"loading"),rows=this.message_list?this.message_list.rows:[],count=0;for(var i=0,len=a_uids.length;i<len;i++){uid=a_uids[i];if(rows[uid]){if(rows[uid].unread){r_uids[r_uids.length]=uid}if(this.env.skip_deleted){count+=this.update_thread(uid);this.message_list.remove_row(uid,(this.env.display_next&&i==this.message_list.selection.length-1))}else{this.set_message(uid,"deleted",true)}}}if(this.env.skip_deleted&&this.message_list){if(!this.env.display_next){this.message_list.clear_selection()}if(count<0){post_data._count=(count*-1)}else{if(count>0){this.delete_excessive_thread_rows()}}}if(r_uids.length){post_data._ruid=this.uids_to_list(r_uids)}if(this.env.skip_deleted&&this.env.display_next&&this.env.next_uid){post_data._next_uid=this.env.next_uid}this.http_post("mark",post_data,lock)};this.flag_deleted_as_read=function(uids){var icn_src,uid,i,len,rows=this.message_list?this.message_list.rows:[];uids=String(uids).split(",");for(i=0,len=uids.length;i<len;i++){uid=uids[i];if(rows[uid]){this.set_message(uid,"unread",false)}}};this.uids_to_list=function(uids){return this.select_all_mode?"*":uids.join(",")};this.set_button_titles=function(){var label="deletemessage";if(!this.env.flag_for_deletion&&this.env.trash_mailbox&&this.env.mailbox!=this.env.trash_mailbox&&(!this.env.delete_junk||!this.env.junk_mailbox||this.env.mailbox!=this.env.junk_mailbox)){label="movemessagetotrash"}this.set_alttext("delete",label)};this.expunge_mailbox=function(mbox){var lock,post_data={_mbox:mbox};if(mbox==this.env.mailbox){lock=this.set_busy(true,"loading");post_data._reload=1;if(this.env.search_request){post_data._search=this.env.search_request}}this.http_post("expunge",post_data,lock)};this.purge_mailbox=function(mbox){var lock,post_data={_mbox:mbox};if(!confirm(this.get_label("purgefolderconfirm"))){return false}if(mbox==this.env.mailbox){lock=this.set_busy(true,"loading");post_data._reload=1}this.http_post("purge",post_data,lock)};this.purge_mailbox_test=function(){return(this.env.exists&&(this.env.mailbox==this.env.trash_mailbox||this.env.mailbox==this.env.junk_mailbox||this.env.mailbox.match("^"+RegExp.escape(this.env.trash_mailbox)+RegExp.escape(this.env.delimiter))||this.env.mailbox.match("^"+RegExp.escape(this.env.junk_mailbox)+RegExp.escape(this.env.delimiter))))};this.login_user_keyup=function(e){var key=rcube_event.get_keycode(e);var passwd=$("#rcmloginpwd");if(key==13&&passwd.length&&!passwd.val()){passwd.focus();return rcube_event.cancel(e)}return true};this.open_compose_step=function(p){var url=this.url("mail/compose",p);if(this.env.compose_extwin&&!this.env.extwin){this.open_window(url,1150)}else{this.redirect(url);if(this.env.extwin){window.resizeTo(Math.max(1150,$(window).width()),$(window).height()+24)}}};this.init_messageform=function(){if(!this.gui_objects.messageform){return false}var input_from=$("[name='_from']"),input_to=$("[name='_to']"),input_subject=$("input[name='_subject']"),input_message=$("[name='_message']").get(0),html_mode=$("input[name='_is_html']").val()=="1",ac_fields=["cc","bcc","replyto","followupto"],ac_props,opener_rc=this.opener();if(opener_rc&&opener_rc.env.action=="compose"){setTimeout(function(){opener.history.back()},100);this.env.opened_extwin=true}if(this.env.autocomplete_threads>0){ac_props={threads:this.env.autocomplete_threads,sources:this.env.autocomplete_sources}}this.init_address_input_events(input_to,ac_props);for(var i in ac_fields){this.init_address_input_events($("[name='_"+ac_fields[i]+"']"),ac_props)}if(!html_mode){this.set_caret_pos(input_message,this.env.top_posting?0:$(input_message).val().length);if(input_from.prop("type")=="select-one"){this.change_identity(input_from[0])}}if(input_to.val()==""){input_to.focus()}else{if(input_subject.val()==""){input_subject.focus()}else{if(input_message){input_message.focus()}}}this.env.compose_focus_elem=document.activeElement;this.compose_field_hash(true);this.auto_save_start()};this.init_address_input_events=function(obj,props){this.env.recipients_delimiter=this.env.recipients_separator+" ";obj[bw.ie||bw.safari||bw.chrome?"keydown":"keypress"](function(e){return ref.ksearch_keydown(e,this,props)}).attr("autocomplete","off")};this.submit_messageform=function(draft){var form=this.gui_objects.messageform;if(!form){return}var msgid=this.set_busy(true,draft?"savingmessage":"sendingmessage"),lang=this.spellcheck_lang(),files=[];$("li",this.gui_objects.attachmentlist).each(function(){files.push(this.id.replace(/^rcmfile/,""))});$('input[name="_attachments"]',form).val(files.join());form.target="savetarget";form._draft.value=draft?"1":"";form.action=this.add_url(form.action,"_unlock",msgid);form.action=this.add_url(form.action,"_lang",lang);this.submit_timer=setTimeout(function(){ref.set_busy(false,null,msgid);ref.display_message(ref.get_label("requesttimedout"),"error")},this.env.request_timeout*1000);form.submit()};this.compose_recipient_select=function(list){this.enable_command("add-recipient",list.selection.length>0)};this.compose_add_recipient=function(field){var recipients=[],input=$("#_"+field),delim=this.env.recipients_delimiter;if(this.contact_list&&this.contact_list.selection.length){for(var id,n=0;n<this.contact_list.selection.length;n++){id=this.contact_list.selection[n];if(id&&this.env.contactdata[id]){recipients.push(this.env.contactdata[id]);if(id.charAt(0)=="E"&&this.env.contactdata[id].indexOf("@")<0&&input.length){var gid=id.substr(1);this.group2expand[gid]={name:this.env.contactdata[id],input:input.get(0)};this.http_request("group-expand",{_source:this.env.source,_gid:gid},false)}}}}if(recipients.length&&input.length){var oldval=input.val(),rx=new RegExp(RegExp.escape(delim)+"\\s*$");if(oldval&&!rx.test(oldval)){oldval+=delim+" "}input.val(oldval+recipients.join(delim+" ")+delim+" ");this.triggerEvent("add-recipient",{field:field,recipients:recipients})}};this.check_compose_input=function(cmd){var ed,input_to=$("[name='_to']"),input_cc=$("[name='_cc']"),input_bcc=$("[name='_bcc']"),input_from=$("[name='_from']"),input_subject=$("[name='_subject']"),input_message=$("[name='_message']");if(input_from.prop("type")=="text"&&!rcube_check_email(input_from.val(),true)){alert(this.get_label("nosenderwarning"));input_from.focus();return false}var recipients=input_to.val()?input_to.val():(input_cc.val()?input_cc.val():input_bcc.val());if(!rcube_check_email(recipients.replace(/^\s+/,"").replace(/[\s,;]+$/,""),true)){alert(this.get_label("norecipientwarning"));input_to.focus();return false}for(var key in this.env.attachments){if(typeof this.env.attachments[key]==="object"&&!this.env.attachments[key].complete){alert(this.get_label("notuploadedwarning"));return false}}if(input_subject.val()==""){var myprompt=$('<div class="prompt">').html('<div class="message">'+this.get_label("nosubjectwarning")+"</div>").appendTo(document.body);var prompt_value=$("<input>").attr("type","text").attr("size",30).appendTo(myprompt).val(this.get_label("nosubject"));var buttons={};buttons[this.get_label("cancel")]=function(){input_subject.focus();$(this).dialog("close")};buttons[this.get_label("sendmessage")]=function(){input_subject.val(prompt_value.val());$(this).dialog("close");ref.command(cmd,{nocheck:true})};myprompt.dialog({modal:true,resizable:false,buttons:buttons,close:function(event,ui){$(this).remove()}});prompt_value.select();return false}this.stop_spellchecking();if(window.tinyMCE){ed=tinyMCE.get(this.env.composebody)}if(!ed&&input_message.val()==""&&!confirm(this.get_label("nobodywarning"))){input_message.focus();return false}else{if(ed){if(!ed.getContent()&&!confirm(this.get_label("nobodywarning"))){ed.focus();return false}tinyMCE.triggerSave()}}return true};this.toggle_editor=function(props){this.stop_spellchecking();if(props.mode=="html"){this.plain2html($("#"+props.id).val(),props.id);tinyMCE.execCommand("mceAddControl",false,props.id);if(this.env.default_font){setTimeout(function(){$(tinyMCE.get(props.id).getBody()).css("font-family",rcmail.env.default_font)},500)}}else{var thisMCE=tinyMCE.get(props.id),existingHtml;if(existingHtml=thisMCE.getContent()){if(!confirm(this.get_label("editorwarning"))){return false}this.html2plain(existingHtml,props.id)}tinyMCE.execCommand("mceRemoveControl",false,props.id)}return true};this.stop_spellchecking=function(){var ed;if(window.tinyMCE&&(ed=tinyMCE.get(this.env.composebody))){if(ed.plugins&&ed.plugins.spellchecker&&ed.plugins.spellchecker.active){ed.execCommand("mceSpellCheck")}}else{if(ed=this.env.spellcheck){if(ed.state&&ed.state!="ready"&&ed.state!="no_error_found"){$(ed.spell_span).trigger("click")}}}this.spellcheck_state()};this.spellcheck_state=function(){var ed,active;if(window.tinyMCE&&(ed=tinyMCE.get(this.env.composebody))&&ed.plugins&&ed.plugins.spellchecker){active=ed.plugins.spellchecker.active}else{if((ed=this.env.spellcheck)&&ed.state){active=ed.state!="ready"&&ed.state!="no_error_found"}}if(rcmail.buttons.spellcheck){$("#"+rcmail.buttons.spellcheck[0].id)[active?"addClass":"removeClass"]("selected")}return active};this.spellcheck_lang=function(){var ed;if(window.tinyMCE&&(ed=tinyMCE.get(this.env.composebody))&&ed.plugins&&ed.plugins.spellchecker){return ed.plugins.spellchecker.selectedLang}else{if(this.env.spellcheck){return GOOGIE_CUR_LANG}}};this.spellcheck_lang_set=function(lang){var ed;if(window.tinyMCE&&(ed=tinyMCE.get(this.env.composebody))&&ed.plugins){ed.plugins.spellchecker.selectedLang=lang}else{if(this.env.spellcheck){this.env.spellcheck.setCurrentLanguage(lang)}}};this.spellcheck_resume=function(ishtml,data){if(ishtml){var ed=tinyMCE.get(this.env.composebody);sp=ed.plugins.spellchecker;sp.active=1;sp._markWords(data);ed.nodeChanged()}else{var sp=this.env.spellcheck;sp.prepare(false,true);sp.processData(data)}this.spellcheck_state()};this.set_draft_id=function(id){var rc;if(!this.env.draft_id&&id&&(rc=this.opener())){if(rc.env.task=="mail"&&rc.env.action==""&&rc.env.mailbox==this.env.drafts_mailbox){rc.command("checkmail")}}this.env.draft_id=id;$("input[name='_draft_saveid']").val(id)};this.auto_save_start=function(){if(this.env.draft_autosave){this.save_timer=setTimeout(function(){ref.command("savedraft")},this.env.draft_autosave*1000)}this.busy=false};this.compose_field_hash=function(save){var ed,i,val,str="",hash_fields=["to","cc","bcc","subject"];for(i=0;i<hash_fields.length;i++){if(val=$('[name="_'+hash_fields[i]+'"]').val()){str+=val+":"}}if(window.tinyMCE&&(ed=tinyMCE.get(this.env.composebody))){str+=ed.getContent()}else{str+=$("[name='_message']").val()}if(this.env.attachments){for(var upload_id in this.env.attachments){str+=upload_id}}if(save){this.cmp_hash=str}return str};this.change_identity=function(obj,show_sig){if(!obj||!obj.options){return false}if(!show_sig){show_sig=this.env.show_sig}if(!this.env.identities_initialized){this.env.identities_initialized=true;if(this.env.show_sig_later){this.env.show_sig=true}if(this.env.opened_extwin){return}}var cursor_pos,p=-1,id=obj.options[obj.selectedIndex].value,input_message=$("[name='_message']"),message=input_message.val(),is_html=($("input[name='_is_html']").val()=="1"),sig=this.env.identity;if(this.env.signatures&&this.env.signatures[id]){this.enable_command("insert-sig",true);this.env.compose_commands.push("insert-sig")}else{this.enable_command("insert-sig",false)}if(!is_html){if(show_sig&&sig&&this.env.signatures&&this.env.signatures[sig]){sig=this.env.signatures[sig].text;sig=sig.replace(/\r\n/g,"\n");p=this.env.top_posting?message.indexOf(sig):message.lastIndexOf(sig);if(p>=0){message=message.substring(0,p)+message.substring(p+sig.length,message.length)}}if(show_sig&&this.env.signatures&&this.env.signatures[id]){sig=this.env.signatures[id].text;sig=sig.replace(/\r\n/g,"\n");if(this.env.top_posting){if(p>=0){message=message.substring(0,p)+sig+message.substring(p,message.length);cursor_pos=p-1}else{if(!message){cursor_pos=0;message="\n\n"+sig}else{if(pos=this.get_caret_pos(input_message.get(0))){message=message.substring(0,pos)+"\n"+sig+"\n\n"+message.substring(pos,message.length);cursor_pos=pos}else{cursor_pos=0;message="\n\n"+sig+"\n\n"+message.replace(/^[\r\n]+/,"")}}}}else{message=message.replace(/[\r\n]+$/,"");cursor_pos=!this.env.top_posting&&message.length?message.length+1:0;message+="\n\n"+sig}}else{cursor_pos=this.env.top_posting?0:message.length}input_message.val(message);this.set_caret_pos(input_message.get(0),cursor_pos)}else{if(show_sig&&this.env.signatures){var editor=tinyMCE.get(this.env.composebody),sigElem=editor.dom.get("_rc_sig");if(!sigElem){var body=editor.getBody(),doc=editor.getDoc();sigElem=doc.createElement("div");sigElem.setAttribute("id","_rc_sig");if(this.env.top_posting){editor.getWin().focus();var node=editor.selection.getNode();if(node.nodeName=="BODY"){body.insertBefore(sigElem,body.firstChild);body.insertBefore(doc.createElement("br"),body.firstChild)}else{body.insertBefore(sigElem,node.nextSibling);body.insertBefore(doc.createElement("br"),node.nextSibling)}}else{if(bw.ie){body.appendChild(doc.createElement("br"))}body.appendChild(sigElem)}}if(this.env.signatures[id]){sigElem.innerHTML=this.env.signatures[id].html}}}this.env.identity=id;return true};this.upload_file=function(form){if(!form){return false}var size=0,numfiles=0;$("input[type=file]",form).each(function(i,field){var files=field.files?field.files.length:(field.value?1:0);if(field.files){for(var i=0;i<files;i++){size+=field.files[i].size}}numfiles+=files});if(numfiles){if(this.env.max_filesize&&this.env.filesizeerror&&size>this.env.max_filesize){this.display_message(this.env.filesizeerror,"error");return}var frame_name=this.async_upload_form(form,"upload",function(e){var d,content="";try{if(this.contentDocument){d=this.contentDocument}else{if(this.contentWindow){d=this.contentWindow.document}}content=d.childNodes[0].innerHTML}catch(err){}if(!content.match(/add2attachment/)&&(!bw.opera||(rcmail.env.uploadframe&&rcmail.env.uploadframe==e.data.ts))){if(!content.match(/display_message/)){rcmail.display_message(rcmail.get_label("fileuploaderror"),"error")}rcmail.remove_from_attachment_list(e.data.ts)}if(bw.opera){rcmail.env.uploadframe=e.data.ts}});var content="<span>"+this.get_label("uploading"+(numfiles>1?"many":""))+"</span>",ts=frame_name.replace(/^rcmupload/,"");this.add2attachment_list(ts,{name:"",html:content,classname:"uploading",frame:frame_name,complete:false});if(this.env.upload_progress_time){this.upload_progress_start("upload",ts)}}this.gui_objects.attachmentform=form;return true};this.add2attachment_list=function(name,att,upload_id){if(!this.gui_objects.attachmentlist){return false}if(!att.complete&&ref.env.loadingicon){att.html='<img src="'+ref.env.loadingicon+'" alt="" class="uploading" />'+att.html}if(!att.complete&&att.frame){att.html='<a title="'+this.get_label("cancel")+'" onclick="return rcmail.cancel_attachment_upload(\''+name+"', '"+att.frame+'\');" href="#cancelupload" class="cancelupload">'+(this.env.cancelicon?'<img src="'+this.env.cancelicon+'" alt="" />':this.get_label("cancel"))+"</a>"+att.html}var indicator,li=$("<li>");li.attr("id",name).addClass(att.classname).html(att.html).on("mouseover",function(){rcube_webmail.long_subject_title_ex(this,0)});if(upload_id&&(indicator=document.getElementById(upload_id))){li.replaceAll(indicator)}else{li.appendTo(this.gui_objects.attachmentlist)}if(upload_id&&this.env.attachments[upload_id]){delete this.env.attachments[upload_id]}this.env.attachments[name]=att;return true};this.remove_from_attachment_list=function(name){delete this.env.attachments[name];$("#"+name).remove()};this.remove_attachment=function(name){if(name&&this.env.attachments[name]){this.http_post("remove-attachment",{_id:this.env.compose_id,_file:name})}return true};this.cancel_attachment_upload=function(name,frame_name){if(!name||!frame_name){return false}this.remove_from_attachment_list(name);$("iframe[name='"+frame_name+"']").remove();return false};this.upload_progress_start=function(action,name){setTimeout(function(){rcmail.http_request(action,{_progress:name})},this.env.upload_progress_time*1000)};this.upload_progress_update=function(param){var elem=$("#"+param.name+"> span");if(!elem.length||!param.text){return}elem.text(param.text);if(!param.done){this.upload_progress_start(param.action,param.name)}};this.add_contact=function(value){if(value){this.http_post("addcontact",{_address:value})}return true};this.qsearch=function(value){if(value!=""){var r,lock=this.set_busy(true,"searching"),url=this.search_params(value);if(this.message_list){this.clear_message_list()}else{if(this.contact_list){this.list_contacts_clear()}}if(this.env.source){url._source=this.env.source}if(this.env.group){url._gid=this.env.group}this.env.current_page=1;var action=this.env.action=="compose"&&this.contact_list?"search-contacts":"search";r=this.http_request(action,url,lock);this.env.qsearch={lock:lock,request:r}}};this.search_params=function(search,filter){var n,url={},mods_arr=[],mods=this.env.search_mods,mbox=this.env.mailbox;if(!filter&&this.gui_objects.search_filter){filter=this.gui_objects.search_filter.value}if(!search&&this.gui_objects.qsearchbox){search=this.gui_objects.qsearchbox.value}if(filter){url._filter=filter}if(search){url._q=search;if(mods&&this.message_list){mods=mods[mbox]?mods[mbox]:mods["*"]}if(mods){for(n in mods){mods_arr.push(n)}url._headers=mods_arr.join(",")}}if(mbox){url._mbox=mbox}return url};this.reset_qsearch=function(){if(this.gui_objects.qsearchbox){this.gui_objects.qsearchbox.value=""}if(this.env.qsearch){this.abort_request(this.env.qsearch)}this.env.qsearch=null;this.env.search_request=null;this.env.search_id=null};this.sent_successfully=function(type,msg,target){this.display_message(msg,type);if(this.env.extwin){var rc=this.opener();this.lock_form(this.gui_objects.messageform);if(rc){rc.display_message(msg,type);if(target&&rc.env.task=="mail"&&rc.env.action==""&&rc.env.mailbox==target){rc.command("checkmail")}}setTimeout(function(){window.close()},1000)}else{setTimeout(function(){ref.list_mailbox()},500)}};this.ksearch_keydown=function(e,obj,props){if(this.ksearch_timer){clearTimeout(this.ksearch_timer)}var highlight,key=rcube_event.get_keycode(e),mod=rcube_event.get_modifier(e);switch(key){case 38:case 40:if(!this.ksearch_visible()){break}var dir=key==38?1:0;highlight=document.getElementById("rcmksearchSelected");if(!highlight){highlight=this.ksearch_pane.__ul.firstChild}if(highlight){this.ksearch_select(dir?highlight.previousSibling:highlight.nextSibling)}return rcube_event.cancel(e);case 9:if(mod==SHIFT_KEY||!this.ksearch_visible()){this.ksearch_hide();return}case 13:if(!this.ksearch_visible()){return false}this.insert_recipient(this.ksearch_selected);this.ksearch_hide();return rcube_event.cancel(e);case 27:this.ksearch_hide();return;case 37:case 39:if(mod!=SHIFT_KEY){return}}this.ksearch_timer=setTimeout(function(){ref.ksearch_get_results(props)},200);this.ksearch_input=obj;return true};this.ksearch_visible=function(){return(this.ksearch_selected!==null&&this.ksearch_selected!==undefined&&this.ksearch_value)};this.ksearch_select=function(node){var current=$("#rcmksearchSelected");if(current[0]&&node){current.removeAttr("id").removeClass("selected")}if(node){$(node).attr("id","rcmksearchSelected").addClass("selected");this.ksearch_selected=node._rcm_id}};this.insert_recipient=function(id){if(id===null||!this.env.contacts[id]||!this.ksearch_input){return}var inp_value=this.ksearch_input.value,cpos=this.get_caret_pos(this.ksearch_input),p=inp_value.lastIndexOf(this.ksearch_value,cpos),trigger=false,insert="",pre=inp_value.substring(0,p),end=inp_value.substring(p+this.ksearch_value.length,inp_value.length);this.ksearch_destroy();if(typeof this.env.contacts[id]==="object"&&this.env.contacts[id].id){insert+=this.env.contacts[id].name+this.env.recipients_delimiter;this.group2expand[this.env.contacts[id].id]=$.extend({input:this.ksearch_input},this.env.contacts[id]);this.http_request("mail/group-expand",{_source:this.env.contacts[id].source,_gid:this.env.contacts[id].id},false)}else{if(typeof this.env.contacts[id]==="string"){insert=this.env.contacts[id]+this.env.recipients_delimiter;trigger=true}}this.ksearch_input.value=pre+insert+end;cpos=p+insert.length;if(this.ksearch_input.setSelectionRange){this.ksearch_input.setSelectionRange(cpos,cpos)}if(trigger){this.triggerEvent("autocomplete_insert",{field:this.ksearch_input,insert:insert})}};this.replace_group_recipients=function(id,recipients){if(this.group2expand[id]){this.group2expand[id].input.value=this.group2expand[id].input.value.replace(this.group2expand[id].name,recipients);this.triggerEvent("autocomplete_insert",{field:this.group2expand[id].input,insert:recipients});this.group2expand[id]=null}};this.ksearch_get_results=function(props){var inp_value=this.ksearch_input?this.ksearch_input.value:null;if(inp_value===null){return}if(this.ksearch_pane&&this.ksearch_pane.is(":visible")){this.ksearch_pane.hide()}var cpos=this.get_caret_pos(this.ksearch_input),p=inp_value.lastIndexOf(this.env.recipients_separator,cpos-1),q=inp_value.substring(p+1,cpos),min=this.env.autocomplete_min_length,ac=this.ksearch_data;q=$.trim(q);if(q==this.ksearch_value){return}this.ksearch_destroy();if(q.length&&q.length<min){if(!this.ksearch_info){this.ksearch_info=this.display_message(this.get_label("autocompletechars").replace("$min",min))}return}var old_value=this.ksearch_value;this.ksearch_value=q;if(!q.length){return}if(old_value&&old_value.length&&q.indexOf(old_value)==0&&(!ac||ac.num<=0)&&this.env.contacts&&!this.env.contacts.length){return}var i,lock,source,xhr,reqid=new Date().getTime(),post_data={_search:q,_id:reqid},threads=props&&props.threads?props.threads:1,sources=props&&props.sources?props.sources:[],action=props&&props.action?props.action:"mail/autocomplete";this.ksearch_data={id:reqid,sources:sources.slice(),action:action,locks:[],requests:[],num:sources.length};for(i=0;i<threads;i++){source=this.ksearch_data.sources.shift();if(threads>1&&source===undefined){break}post_data._source=source?source:"";lock=this.display_message(this.get_label("searching"),"loading");xhr=this.http_post(action,post_data,lock);this.ksearch_data.locks.push(lock);this.ksearch_data.requests.push(xhr)}};this.ksearch_query_results=function(results,search,reqid){if(!this.ksearch_value){return}if(this.ksearch_input&&search!=this.ksearch_value){return}var i,len,ul,li,text,init,value=this.ksearch_value,data=this.ksearch_data,maxlen=this.env.autocomplete_max?this.env.autocomplete_max:15;if(!this.ksearch_pane){ul=$("<ul>");this.ksearch_pane=$("<div>").attr("id","rcmKSearchpane").css({position:"absolute","z-index":30000}).append(ul).appendTo(document.body);this.ksearch_pane.__ul=ul[0]}ul=this.ksearch_pane.__ul;if(reqid&&this.ksearch_pane.data("reqid")==reqid){maxlen-=ul.childNodes.length}else{this.ksearch_pane.data("reqid",reqid);init=1;ul.innerHTML="";this.env.contacts=[];var pos=$(this.ksearch_input).offset();this.ksearch_pane.css({left:pos.left+"px",top:(pos.top+this.ksearch_input.offsetHeight)+"px",display:"none"})}if(results&&(len=results.length)){for(i=0;i<len&&maxlen>0;i++){text=typeof results[i]==="object"?results[i].name:results[i];li=document.createElement("LI");li.innerHTML=text.replace(new RegExp("("+RegExp.escape(value)+")","ig"),"##$1%%").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/##([^%]+)%%/g,"<b>$1</b>");li.onmouseover=function(){ref.ksearch_select(this)};li.onmouseup=function(){ref.ksearch_click(this)};li._rcm_id=this.env.contacts.length+i;ul.appendChild(li);maxlen-=1}}if(ul.childNodes.length){this.ksearch_pane.show();if(!this.env.contacts.length){$("li:first",ul).attr("id","rcmksearchSelected").addClass("selected");this.ksearch_selected=0}}if(len){this.env.contacts=this.env.contacts.concat(results)}if(data.id==reqid){data.num--;if(maxlen>0&&data.sources.length){var lock,xhr,source=data.sources.shift(),post_data;if(source){post_data={_search:value,_id:reqid,_source:source};lock=this.display_message(this.get_label("searching"),"loading");xhr=this.http_post(data.action,post_data,lock);this.ksearch_data.locks.push(lock);this.ksearch_data.requests.push(xhr)}}else{if(!maxlen){if(!this.ksearch_msg){this.ksearch_msg=this.display_message(this.get_label("autocompletemore"))}this.ksearch_abort()}}}};this.ksearch_click=function(node){if(this.ksearch_input){this.ksearch_input.focus()}this.insert_recipient(node._rcm_id);this.ksearch_hide()};this.ksearch_blur=function(){if(this.ksearch_timer){clearTimeout(this.ksearch_timer)}this.ksearch_input=null;this.ksearch_hide()};this.ksearch_hide=function(){this.ksearch_selected=null;this.ksearch_value="";if(this.ksearch_pane){this.ksearch_pane.hide()}this.ksearch_destroy()};this.ksearch_destroy=function(){this.ksearch_abort();if(this.ksearch_info){this.hide_message(this.ksearch_info)}if(this.ksearch_msg){this.hide_message(this.ksearch_msg)}this.ksearch_data=null;this.ksearch_info=null;this.ksearch_msg=null};this.ksearch_abort=function(){var i,len,ac=this.ksearch_data;if(!ac){return}for(i=0,len=ac.locks.length;i<len;i++){this.abort_request({request:ac.requests[i],lock:ac.locks[i]})}};this.contactlist_keypress=function(list){if(list.key_pressed==list.DELETE_KEY){this.command("delete")}};this.contactlist_select=function(list){if(this.preview_timer){clearTimeout(this.preview_timer)}var n,id,sid,ref=this,writable=false,source=this.env.source?this.env.address_sources[this.env.source]:null;if(id=list.get_single_selection()){this.preview_timer=setTimeout(function(){ref.load_contact(id,"show")},200)}else{if(this.env.contentframe){this.show_contentframe(false)}}if(list.selection.length){this.env.selection_sources=[];if(!source){for(n in list.selection){sid=String(list.selection[n]).replace(/^[^-]+-/,"");if(sid&&this.env.address_sources[sid]){writable=writable||!this.env.address_sources[sid].readonly;this.env.selection_sources.push(sid)}}this.env.selection_sources=$.unique(this.env.selection_sources)}else{this.env.selection_sources.push(this.env.source);writable=!source.readonly}}this.enable_command("group-remove-selected",this.env.group&&list.selection.length>0);this.enable_command("compose",this.env.group||list.selection.length>0);this.enable_command("edit",id&&writable);this.enable_command("delete",list.selection.length&&writable);return false};this.list_contacts=function(src,group,page){var win,folder,url={},target=window;if(!src){src=this.env.source}if(page&&this.current_page==page&&src==this.env.source&&group==this.env.group){return false}if(src!=this.env.source){page=this.env.current_page=1;this.reset_qsearch()}else{if(group!=this.env.group){page=this.env.current_page=1}}if(this.env.search_id){folder="S"+this.env.search_id}else{if(!this.env.search_request){folder=group?"G"+src+group:src}}this.select_folder(folder);this.env.source=src;this.env.group=group;if(this.gui_objects.contactslist){this.list_contacts_remote(src,group,page);return}if(win=this.get_frame_window(this.env.contentframe)){target=win;url._framed=1}if(group){url._gid=group}if(page){url._page=page}if(src){url._source=src}if(this.env.search_request){url._search=this.env.search_request}this.set_busy(true,"loading");this.location_href(url,target)};this.list_contacts_remote=function(src,group,page){this.list_contacts_clear();var url={},lock=this.set_busy(true,"loading");if(src){url._source=src}if(page){url._page=page}if(group){url._gid=group}this.env.source=src;this.env.group=group;if(this.env.search_request){url._search=this.env.search_request}this.http_request(this.env.task=="mail"?"list-contacts":"list",url,lock)};this.list_contacts_clear=function(){this.contact_list.clear(true);this.show_contentframe(false);this.enable_command("delete",false);this.enable_command("compose",this.env.group?true:false)};this.load_contact=function(cid,action,framed){var win,url={},target=window;if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win;this.show_contentframe(true);if(!cid){this.contact_list.clear_selection();this.enable_command("delete","compose",false)}}else{if(framed){return false}}if(action&&(cid||action=="add")&&!this.drag_active){if(this.env.group){url._gid=this.env.group}url._action=action;url._source=this.env.source;url._cid=cid;this.location_href(url,target,true)}return true};this.group_member_change=function(what,cid,source,gid){what=what=="add"?"add":"del";var label=this.get_label(what=="add"?"addingmember":"removingmember"),lock=this.display_message(label,"loading"),post_data={_cid:cid,_source:source,_gid:gid};this.http_post("group-"+what+"members",post_data,lock)};this.copy_contact=function(cid,to){var n,dest=to.type=="group"?to.source:to.id,source=this.env.source,group=this.env.group?this.env.group:"";if(!cid){cid=this.contact_list.get_selection().join(",")}if(!cid||!this.env.address_sources[dest]||this.env.address_sources[dest].readonly){return}if(source==""&&this.env.selection_sources.length==1){source=this.env.selection_sources[0]}if(to.type=="group"){if(dest==source){this.group_member_change("add",cid,dest,to.id)}else{var lock=this.display_message(this.get_label("copyingcontact"),"loading"),post_data={_cid:cid,_source:this.env.source,_to:dest,_togid:to.id,_gid:group};this.http_post("copy",post_data,lock)}}else{if(to.id!=source){var lock=this.display_message(this.get_label("copyingcontact"),"loading"),post_data={_cid:cid,_source:this.env.source,_to:to.id,_gid:group};this.http_post("copy",post_data,lock)}}};this.delete_contacts=function(){var selection=this.contact_list.get_selection(),undelete=this.env.source&&this.env.address_sources[this.env.source].undelete;if(!(selection.length||this.env.cid)||(!undelete&&!confirm(this.get_label("deletecontactconfirm")))){return}var id,n,a_cids=[],post_data={_source:this.env.source,_from:(this.env.action?this.env.action:"")},lock=this.display_message(this.get_label("contactdeleting"),"loading");if(this.env.cid){a_cids.push(this.env.cid)}else{for(n=0;n<selection.length;n++){id=selection[n];a_cids.push(id);this.contact_list.remove_row(id,(n==selection.length-1))}if(selection.length==1){this.show_contentframe(false)}}post_data._cid=a_cids.join(",");if(this.env.group){post_data._gid=this.env.group}if(this.env.search_request){post_data._search=this.env.search_request}this.http_post("delete",post_data,lock);return true};this.update_contact_row=function(cid,cols_arr,newcid,source){var c,row,list=this.contact_list;cid=this.html_identifier(cid);if(!list.rows[cid]){cid=cid+"-"+source;if(newcid){newcid=newcid+"-"+source}}if(list.rows[cid]&&(row=list.rows[cid].obj)){for(c=0;c<cols_arr.length;c++){if(row.cells[c]){$(row.cells[c]).html(cols_arr[c])}}if(newcid){newcid=this.html_identifier(newcid);row.id="rcmrow"+newcid;list.remove_row(cid);list.init_row(row);list.selection[0]=newcid;row.style.display=""}}};this.add_contact_row=function(cid,cols,classes){if(!this.gui_objects.contactslist){return false}var c,col,list=this.contact_list,row=document.createElement("tr");row.id="rcmrow"+this.html_identifier(cid);row.className="contact "+(classes||"");if(list.in_selection(cid)){row.className+=" selected"}for(c in cols){col=document.createElement("td");col.className=String(c).toLowerCase();if(cols[c]){col.innerHTML=cols[c]}row.appendChild(col)}list.insert_row(row);this.enable_command("export",list.rowcount>0)};this.init_contact_form=function(){var ref=this,col;if(this.env.coltypes){this.set_photo_actions($("#ff_photo").val());for(col in this.env.coltypes){this.init_edit_field(col,null)}}$(".contactfieldgroup .row a.deletebutton").click(function(){ref.delete_edit_field(this);return false});$("select.addfieldmenu").change(function(e){ref.insert_edit_field($(this).val(),$(this).attr("rel"),this);this.selectedIndex=0});if($.datepicker&&this.env.date_format){$.datepicker.setDefaults({dateFormat:this.env.date_format,changeMonth:true,changeYear:true,yearRange:"-100:+10",showOtherMonths:true,selectOtherMonths:true,onSelect:function(dateText){$(this).focus().val(dateText)}});$("input.datepicker").datepicker()}$("input[type='text']:visible").first().focus();if(this.env.action=="search"){$(this.gui_objects.editform).append($('<input type="submit">').hide()).submit(function(){$("input.mainaction").click();return false})}};this.group_create=function(){this.add_input_row("contactgroup")};this.group_rename=function(){if(!this.env.group||!this.gui_objects.folderlist){return}if(!this.name_input){this.enable_command("list","listgroup",false);this.name_input=$("<input>").attr("type","text").val(this.env.contactgroups["G"+this.env.source+this.env.group].name);this.name_input.bind("keydown",function(e){return rcmail.add_input_keydown(e)});this.env.group_renaming=true;var link,li=this.get_folder_li(this.env.source+this.env.group,"rcmliG");if(li&&(link=li.firstChild)){$(link).hide().before(this.name_input)}}this.name_input.select().focus()};this.group_delete=function(){if(this.env.group&&confirm(this.get_label("deletegroupconfirm"))){var lock=this.set_busy(true,"groupdeleting");this.http_post("group-delete",{_source:this.env.source,_gid:this.env.group},lock)}};this.remove_group_item=function(prop){var li,key="G"+prop.source+prop.id;if((li=this.get_folder_li(key))){this.triggerEvent("group_delete",{source:prop.source,id:prop.id,li:li});li.parentNode.removeChild(li);delete this.env.contactfolders[key];delete this.env.contactgroups[key]}this.list_contacts(prop.source,0)};this.add_input_row=function(type){if(!this.gui_objects.folderlist){return}if(!this.name_input){this.name_input=$("<input>").attr("type","text").data("tt",type);this.name_input.bind("keydown",function(e){return rcmail.add_input_keydown(e)});this.name_input_li=$("<li>").addClass(type).append(this.name_input);var li=type=="contactsearch"?$("li:last",this.gui_objects.folderlist):this.get_folder_li(this.env.source);this.name_input_li.insertAfter(li)}this.name_input.select().focus()};this.group_remove_selected=function(){ref.http_post("group-delmembers",{_cid:this.contact_list.selection,_source:this.env.source,_gid:this.env.group})};this.remove_group_contacts=function(props){if("undefined"!=typeof this.env.group&&(this.env.group===props.gid)){var n,selection=this.contact_list.get_selection();for(n=0;n<selection.length;n++){id=selection[n];this.contact_list.remove_row(id,(n==selection.length-1))}}};this.add_input_keydown=function(e){var key=rcube_event.get_keycode(e),input=$(e.target),itype=input.data("tt");if(key==13){var newname=input.val();if(newname){var lock=this.set_busy(true,"loading");if(itype=="contactsearch"){this.http_post("search-create",{_search:this.env.search_request,_name:newname},lock)}else{if(this.env.group_renaming){this.http_post("group-rename",{_source:this.env.source,_gid:this.env.group,_name:newname},lock)}else{this.http_post("group-create",{_source:this.env.source,_name:newname},lock)}}}return false}else{if(key==27){this.reset_add_input()}}return true};this.reset_add_input=function(){if(this.name_input){if(this.env.group_renaming){var li=this.name_input.parent();li.children().last().show();this.env.group_renaming=false}this.name_input.remove();if(this.name_input_li){this.name_input_li.remove()}this.name_input=this.name_input_li=null}this.enable_command("list","listgroup",true)};this.insert_contact_group=function(prop){this.reset_add_input();prop.type="group";var key="G"+prop.source+prop.id,link=$("<a>").attr("href","#").attr("rel",prop.source+":"+prop.id).click(function(){return rcmail.command("listgroup",prop,this)}).html(prop.name),li=$("<li>").attr({id:"rcmli"+this.html_identifier(key),"class":"contactgroup"}).append(link);this.env.contactfolders[key]=this.env.contactgroups[key]=prop;this.add_contact_group_row(prop,li);this.triggerEvent("group_insert",{id:prop.id,source:prop.source,name:prop.name,li:li[0]})};this.update_contact_group=function(prop){this.reset_add_input();var key="G"+prop.source+prop.id,li=this.get_folder_li(key),link;if(li&&prop.newid){var newkey="G"+prop.source+prop.newid,newprop=$.extend({},prop);li.id="rcmli"+this.html_identifier(newkey);this.env.contactfolders[newkey]=this.env.contactfolders[key];this.env.contactfolders[newkey].id=prop.newid;this.env.group=prop.newid;delete this.env.contactfolders[key];delete this.env.contactgroups[key];newprop.id=prop.newid;newprop.type="group";link=$("<a>").attr("href","#").attr("rel",prop.source+":"+prop.newid).click(function(){return rcmail.command("listgroup",newprop,this)}).html(prop.name);$(li).children().replaceWith(link)}else{if(li&&(link=li.firstChild)&&link.tagName.toLowerCase()=="a"){link.innerHTML=prop.name}}this.env.contactfolders[key].name=this.env.contactgroups[key].name=prop.name;this.add_contact_group_row(prop,$(li),true);this.triggerEvent("group_update",{id:prop.id,source:prop.source,name:prop.name,li:li[0],newid:prop.newid})};this.add_contact_group_row=function(prop,li,reloc){var row,name=prop.name.toUpperCase(),sibling=this.get_folder_li(prop.source),prefix="rcmliG"+this.html_identifier(prop.source);if(reloc){row=li.clone(true);li.remove()}else{row=li}$('li[id^="'+prefix+'"]',this.gui_objects.folderlist).each(function(i,elem){if(name>=$(this).text().toUpperCase()){sibling=elem}else{return false}});row.insertAfter(sibling)};this.update_group_commands=function(){var source=this.env.source!=""?this.env.address_sources[this.env.source]:null;this.enable_command("group-create",(source&&source.groups&&!source.readonly));this.enable_command("group-rename","group-delete",(source&&source.groups&&this.env.group&&!source.readonly))};this.init_edit_field=function(col,elem){var label=this.env.coltypes[col].label;if(!elem){elem=$(".ff_"+col)}if(label){elem.placeholder(label)}};this.insert_edit_field=function(col,section,menu){var elem=$("#ff_"+col);if(elem.length){elem.show().focus();$(menu).children('option[value="'+col+'"]').prop("disabled",true)}else{var lastelem=$(".ff_"+col),appendcontainer=$("#contactsection"+section+" .contactcontroller"+col);if(!appendcontainer.length){var sect=$("#contactsection"+section),lastgroup=$(".contactfieldgroup",sect).last();appendcontainer=$("<fieldset>").addClass("contactfieldgroup contactcontroller"+col);if(lastgroup.length){appendcontainer.insertAfter(lastgroup)}else{sect.prepend(appendcontainer)}}if(appendcontainer.length&&appendcontainer.get(0).nodeName=="FIELDSET"){var input,colprop=this.env.coltypes[col],row=$("<div>").addClass("row"),cell=$("<div>").addClass("contactfieldcontent data"),label=$("<div>").addClass("contactfieldlabel label");if(colprop.subtypes_select){label.html(colprop.subtypes_select)}else{label.html(colprop.label)}var name_suffix=colprop.limit!=1?"[]":"";if(colprop.type=="text"||colprop.type=="date"){input=$("<input>").addClass("ff_"+col).attr({type:"text",name:"_"+col+name_suffix,size:colprop.size}).appendTo(cell);this.init_edit_field(col,input);if(colprop.type=="date"&&$.datepicker){input.datepicker()}}else{if(colprop.type=="textarea"){input=$("<textarea>").addClass("ff_"+col).attr({name:"_"+col+name_suffix,cols:colprop.size,rows:colprop.rows}).appendTo(cell);this.init_edit_field(col,input)}else{if(colprop.type=="composite"){var childcol,cp,first,templ,cols=[],suffices=[];if((templ=this.env[col+"_template"])){for(var j=0;j<templ.length;j++){cols.push(templ[j][1]);suffices.push(templ[j][2])}}else{for(childcol in colprop.childs){cols.push(childcol)}}for(var i=0;i<cols.length;i++){childcol=cols[i];cp=colprop.childs[childcol];input=$("<input>").addClass("ff_"+childcol).attr({type:"text",name:"_"+childcol+name_suffix,size:cp.size}).appendTo(cell);cell.append(suffices[i]||" ");this.init_edit_field(childcol,input);if(!first){first=input}}input=first}else{if(colprop.type=="select"){input=$("<select>").addClass("ff_"+col).attr("name","_"+col+name_suffix).appendTo(cell);var options=input.attr("options");options[options.length]=new Option("---","");if(colprop.options){$.each(colprop.options,function(i,val){options[options.length]=new Option(val,i)})}}}}}if(input){var delbutton=$('<a href="#del"></a>').addClass("contactfieldbutton deletebutton").attr({title:this.get_label("delete"),rel:col}).html(this.env.delbutton).click(function(){ref.delete_edit_field(this);return false}).appendTo(cell);row.append(label).append(cell).appendTo(appendcontainer.show());input.first().focus();if(!colprop.count){colprop.count=0}if(++colprop.count==colprop.limit&&colprop.limit){$(menu).children('option[value="'+col+'"]').prop("disabled",true)}}}}};this.delete_edit_field=function(elem){var col=$(elem).attr("rel"),colprop=this.env.coltypes[col],fieldset=$(elem).parents("fieldset.contactfieldgroup"),addmenu=fieldset.parent().find("select.addfieldmenu");if(--colprop.count<=0&&colprop.visible){$(elem).parent().children("input").val("").blur()}else{$(elem).parents("div.row").remove();if(!fieldset.children("div.row").length){fieldset.hide()}}if(addmenu.length){var option=addmenu.children('option[value="'+col+'"]');if(option.length){option.prop("disabled",false)}else{option=$("<option>").attr("value",col).html(colprop.label).appendTo(addmenu)}addmenu.show()}};this.upload_contact_photo=function(form){if(form&&form.elements._photo.value){this.async_upload_form(form,"upload-photo",function(e){rcmail.set_busy(false,null,rcmail.file_upload_id)});this.file_upload_id=this.set_busy(true,"uploading")}};this.replace_contact_photo=function(id){var img_src=id=="-del-"?this.env.photo_placeholder:this.env.comm_path+"&_action=photo&_source="+this.env.source+"&_cid="+this.env.cid+"&_photo="+id;this.set_photo_actions(id);$(this.gui_objects.contactphoto).children("img").attr("src",img_src)};this.photo_upload_end=function(){this.set_busy(false,null,this.file_upload_id);delete this.file_upload_id};this.set_photo_actions=function(id){var n,buttons=this.buttons["upload-photo"];for(n=0;buttons&&n<buttons.length;n++){$("a#"+buttons[n].id).html(this.get_label(id=="-del-"?"addphoto":"replacephoto"))}$("#ff_photo").val(id);this.enable_command("upload-photo",this.env.coltypes.photo?true:false);this.enable_command("delete-photo",this.env.coltypes.photo&&id!="-del-")};this.advanced_search=function(){var win,url={_form:1,_action:"search"},target=window;if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win;this.contact_list.clear_selection()}this.location_href(url,target,true);return true};this.unselect_directory=function(){this.select_folder("");this.enable_command("search-delete",false)};this.insert_saved_search=function(name,id){this.reset_add_input();var key="S"+id,link=$("<a>").attr("href","#").attr("rel",id).click(function(){return rcmail.command("listsearch",id,this)}).html(name),li=$("<li>").attr({id:"rcmli"+this.html_identifier(key),"class":"contactsearch"}).append(link),prop={name:name,id:id,li:li[0]};this.add_saved_search_row(prop,li);this.select_folder("S"+id);this.enable_command("search-delete",true);this.env.search_id=id;this.triggerEvent("abook_search_insert",prop)};this.add_saved_search_row=function(prop,li,reloc){var row,sibling,name=prop.name.toUpperCase();if(reloc){row=li.clone(true);li.remove()}else{row=li}$('li[class~="contactsearch"]',this.gui_objects.folderlist).each(function(i,elem){if(!sibling){sibling=this.previousSibling}if(name>=$(this).text().toUpperCase()){sibling=elem}else{return false}});if(sibling){row.insertAfter(sibling)}else{row.appendTo(this.gui_objects.folderlist)}};this.search_create=function(){this.add_input_row("contactsearch")};this.search_delete=function(){if(this.env.search_request){var lock=this.set_busy(true,"savedsearchdeleting");this.http_post("search-delete",{_sid:this.env.search_id},lock)}};this.remove_search_item=function(id){var li,key="S"+id;if((li=this.get_folder_li(key))){this.triggerEvent("search_delete",{id:id,li:li});li.parentNode.removeChild(li)}this.env.search_id=null;this.env.search_request=null;this.list_contacts_clear();this.reset_qsearch();this.enable_command("search-delete","search-create",false)};this.listsearch=function(id){var folder,lock=this.set_busy(true,"searching");if(this.contact_list){this.list_contacts_clear()}this.reset_qsearch();this.select_folder("S"+id);this.env.current_page=1;this.http_request("search",{_sid:id},lock)};this.section_select=function(list){var win,id=list.get_single_selection(),target=window,url={_action:"edit-prefs",_section:id};if(id){if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win}this.location_href(url,target,true)}return true};this.identity_select=function(list){var id;if(id=list.get_single_selection()){this.enable_command("delete",list.rowcount>1&&this.env.identities_level<2);this.load_identity(id,"edit-identity")}};this.load_identity=function(id,action){if(action=="edit-identity"&&(!id||id==this.env.iid)){return false}var win,target=window,url={_action:action,_iid:id};if(win=this.get_frame_window(this.env.contentframe)){url._framed=1;target=win}if(action&&(id||action=="add-identity")){this.set_busy(true);this.location_href(url,target)}return true};this.delete_identity=function(id){var selection=this.identity_list.get_selection();if(!(selection.length||this.env.iid)){return}if(!id){id=this.env.iid?this.env.iid:selection[0]}if(confirm(this.get_label("deleteidentityconfirm"))){this.goto_url("delete-identity",{_iid:id,_token:this.env.request_token},true)}return true};this.update_identity_row=function(id,name,add){var row,col,list=this.identity_list,rid=this.html_identifier(id);if(list.rows[rid]&&(row=list.rows[rid].obj)){$(row.cells[0]).html(name)}else{if(add){row=$("<tr>").attr("id","rcmrow"+rid).get(0);col=$("<td>").addClass("mail").html(name).appendTo(row);list.insert_row(row);list.select(rid)}}};this.init_subscription_list=function(){var p=this;this.subscription_list=new rcube_list_widget(this.gui_objects.subscriptionlist,{multiselect:false,draggable:true,keyboard:false,toggleselect:true});this.subscription_list.addEventListener("select",function(o){p.subscription_select(o)});this.subscription_list.addEventListener("dragstart",function(o){p.drag_active=true});this.subscription_list.addEventListener("dragend",function(o){p.subscription_move_folder(o)});this.subscription_list.row_init=function(row){row.obj.onmouseover=function(){p.focus_subscription(row.id)};row.obj.onmouseout=function(){p.unfocus_subscription(row.id)}};this.subscription_list.init();$("#mailboxroot").mouseover(function(){p.focus_subscription(this.id)}).mouseout(function(){p.unfocus_subscription(this.id)})};this.focus_subscription=function(id){var row,folder,delim=RegExp.escape(this.env.delimiter),reg=RegExp("["+delim+"]?[^"+delim+"]+$");if(this.drag_active&&this.env.mailbox&&(row=document.getElementById(id))){if(this.env.subscriptionrows[id]&&(folder=this.env.subscriptionrows[id][0])!==null){if(this.check_droptarget(folder)&&!this.env.subscriptionrows[this.get_folder_row_id(this.env.mailbox)][2]&&(folder!=this.env.mailbox.replace(reg,""))&&(!folder.match(new RegExp("^"+RegExp.escape(this.env.mailbox+this.env.delimiter))))){this.env.dstfolder=folder;$(row).addClass("droptarget")}}}};this.unfocus_subscription=function(id){var row=$("#"+id);this.env.dstfolder=null;if(this.env.subscriptionrows[id]&&row[0]){row.removeClass("droptarget")}else{$(this.subscription_list.frame).removeClass("droptarget")}};this.subscription_select=function(list){var id,folder;if(list&&(id=list.get_single_selection())&&(folder=this.env.subscriptionrows["rcmrow"+id])){this.env.mailbox=folder[0];this.show_folder(folder[0]);this.enable_command("delete-folder",!folder[2])}else{this.env.mailbox=null;this.show_contentframe(false);this.enable_command("delete-folder","purge",false)}};this.subscription_move_folder=function(list){var delim=RegExp.escape(this.env.delimiter),reg=RegExp("["+delim+"]?[^"+delim+"]+$");if(this.env.mailbox&&this.env.dstfolder!==null&&(this.env.dstfolder!=this.env.mailbox)&&(this.env.dstfolder!=this.env.mailbox.replace(reg,""))){reg=new RegExp("[^"+delim+"]*["+delim+"]","g");var basename=this.env.mailbox.replace(reg,""),newname=this.env.dstfolder===""?basename:this.env.dstfolder+this.env.delimiter+basename;if(newname!=this.env.mailbox){this.http_post("rename-folder",{_folder_oldname:this.env.mailbox,_folder_newname:newname},this.set_busy(true,"foldermoving"));this.subscription_list.draglayer.hide()}}this.drag_active=false;this.unfocus_subscription(this.get_folder_row_id(this.env.dstfolder))};this.create_folder=function(){this.show_folder("",this.env.mailbox)};this.delete_folder=function(name){var id=this.get_folder_row_id(name?name:this.env.mailbox),folder=this.env.subscriptionrows[id][0];if(folder&&confirm(this.get_label("deletefolderconfirm"))){var lock=this.set_busy(true,"folderdeleting");this.http_post("delete-folder",{_mbox:folder},lock)}};this.add_folder_row=function(name,display_name,is_protected,subscribed,skip_init,class_name){if(!this.gui_objects.subscriptionlist){return false}var row,n,i,tmp,tmp_name,folders,rowid,list=[],slist=[],tbody=this.gui_objects.subscriptionlist.tBodies[0],refrow=$("tr",tbody).get(1),id="rcmrow"+((new Date).getTime());if(!refrow){this.goto_url("folders");return false}row=$(refrow).clone(true);row.attr("id",id);row.attr("class",class_name);row.find("td:first").html(display_name);$('input[name="_subscribed[]"]',row).val(name).prop({checked:subscribed?true:false,disabled:is_protected?true:false});this.env.subscriptionrows[id]=[name,display_name,0];folders=[];$.each(this.env.subscriptionrows,function(k,v){folders.push(v)});folders.sort(function(a,b){return a[0]<b[0]?-1:(a[0]>b[0]?1:0)});for(n in folders){if(folders[n][2]){tmp_name=folders[n][0]+this.env.delimiter;if(tmp_name==this.env.prefix_ns){continue}slist.push(folders[n][0]);tmp=tmp_name}else{if(tmp&&folders[n][0].indexOf(tmp)==0){slist.push(folders[n][0])}else{list.push(folders[n][0]);tmp=null}}}for(n=0;n<slist.length;n++){if(name.indexOf(slist[n]+this.env.delimiter)==0){rowid=this.get_folder_row_id(slist[n])}}for(n=0;!rowid&&n<list.length;n++){if(n&&list[n]==name){rowid=this.get_folder_row_id(list[n-1])}}if(rowid){$("#"+rowid).after(row)}else{row.appendTo(tbody)}this.subscription_list.clear_selection();if(!skip_init){this.init_subscription_list()}row=row.get(0);if(row.scrollIntoView){row.scrollIntoView()}return row};this.replace_folder_row=function(oldfolder,newfolder,display_name,is_protected,class_name){if(!this.gui_objects.subscriptionlist){return false}var i,n,len,name,dispname,oldrow,tmprow,row,level,tbody=this.gui_objects.subscriptionlist.tBodies[0],folders=this.env.subscriptionrows,id=this.get_folder_row_id(oldfolder),regex=new RegExp("^"+RegExp.escape(oldfolder)),subscribed=$('input[name="_subscribed[]"]',$("#"+id)).prop("checked"),list=this.get_subfolders(oldfolder);this._remove_folder_row(id);row=$(this.add_folder_row(newfolder,display_name,is_protected,subscribed,true,class_name));if(len=list.length){level=(oldfolder.split(this.env.delimiter)).length-(newfolder.split(this.env.delimiter)).length}for(n=0;n<len;n++){id=list[n];name=this.env.subscriptionrows[id][0];dispname=this.env.subscriptionrows[id][1];oldrow=$("#"+id);tmprow=oldrow.clone(true);oldrow.remove();row.after(tmprow);row=tmprow;name=name.replace(regex,newfolder);$('input[name="_subscribed[]"]',row).val(name);this.env.subscriptionrows[id][0]=name;if(level!=0){if(level>0){for(i=level;i>0;i--){dispname=dispname.replace(/^&nbsp;&nbsp;&nbsp;&nbsp;/,"")}}else{for(i=level;i<0;i++){dispname="&nbsp;&nbsp;&nbsp;&nbsp;"+dispname}}row.find("td:first").html(dispname);this.env.subscriptionrows[id][1]=dispname}}this.init_subscription_list()};this.remove_folder_row=function(folder,subs){var n,len,list=[],id=this.get_folder_row_id(folder);if(subs){list=this.get_subfolders(folder)}this._remove_folder_row(id);for(n=0,len=list.length;n<len;n++){this._remove_folder_row(list[n])}};this._remove_folder_row=function(id){this.subscription_list.remove_row(id.replace(/^rcmrow/,""));$("#"+id).remove();delete this.env.subscriptionrows[id]};this.get_subfolders=function(folder){var name,list=[],regex=new RegExp("^"+RegExp.escape(folder)+RegExp.escape(this.env.delimiter)),row=$("#"+this.get_folder_row_id(folder)).get(0);while(row=row.nextSibling){if(row.id){name=this.env.subscriptionrows[row.id][0];if(regex.test(name)){list.push(row.id)}else{break}}}return list};this.subscribe=function(folder){if(folder){var lock=this.display_message(this.get_label("foldersubscribing"),"loading");this.http_post("subscribe",{_mbox:folder},lock)}};this.unsubscribe=function(folder){if(folder){var lock=this.display_message(this.get_label("folderunsubscribing"),"loading");this.http_post("unsubscribe",{_mbox:folder},lock)}};this.get_folder_row_id=function(folder){var id,folders=this.env.subscriptionrows;for(id in folders){if(folders[id]&&folders[id][0]==folder){break}}return id};this.show_folder=function(folder,path,force){var win,target=window,url="&_action=edit-folder&_mbox="+urlencode(folder);if(path){url+="&_path="+urlencode(path)}if(win=this.get_frame_window(this.env.contentframe)){target=win;url+="&_framed=1"}if(String(target.location.href).indexOf(url)>=0&&!force){this.show_contentframe(true)}else{this.location_href(this.env.comm_path+url,target,true)}};this.disable_subscription=function(folder){var id=this.get_folder_row_id(folder);if(id){$('input[name="_subscribed[]"]',$("#"+id)).prop("disabled",true)}};this.folder_size=function(folder){var lock=this.set_busy(true,"loading");this.http_post("folder-size",{_mbox:folder},lock)};this.folder_size_update=function(size){$("#folder-size").replaceWith(size)};var init_button=function(cmd,prop){var elm=document.getElementById(prop.id);if(!elm){return}var preload=false;if(prop.type=="image"){elm=elm.parentNode;preload=true}elm._command=cmd;elm._id=prop.id;if(prop.sel){elm.onmousedown=function(e){return rcmail.button_sel(this._command,this._id)};elm.onmouseup=function(e){return rcmail.button_out(this._command,this._id)};if(preload){new Image().src=prop.sel}}if(prop.over){elm.onmouseover=function(e){return rcmail.button_over(this._command,this._id)};elm.onmouseout=function(e){return rcmail.button_out(this._command,this._id)};if(preload){new Image().src=prop.over}}};this.init_buttons=function(){for(var cmd in this.buttons){if(typeof cmd!=="string"){continue}for(var i=0;i<this.buttons[cmd].length;i++){init_button(cmd,this.buttons[cmd][i])}}this.set_button(this.task,"sel")};this.set_button=function(command,state){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];obj=document.getElementById(button.id);if(!obj){continue}if(button.type=="image"&&!button.status){button.pas=obj._original_src?obj._original_src:obj.src;if(obj.runtimeStyle&&obj.runtimeStyle.filter&&obj.runtimeStyle.filter.match(/src=['"]([^'"]+)['"]/)){button.pas=RegExp.$1}}else{if(!button.status){button.pas=String(obj.className)}}if(button.type=="image"&&button[state]){button.status=state;obj.src=button[state]}else{if(button[state]!==undefined){button.status=state;obj.className=button[state]}}if(button.type=="input"){button.status=state;obj.disabled=!state}}};this.set_alttext=function(command,label){var n,button,obj,link,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];obj=document.getElementById(button.id);if(button.type=="image"&&obj){obj.setAttribute("alt",this.get_label(label));if((link=obj.parentNode)&&link.tagName.toLowerCase()=="a"){link.setAttribute("title",this.get_label(label))}}else{if(obj){obj.setAttribute("title",this.get_label(label))}}}};this.button_over=function(command,id){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];if(button.id==id&&button.status=="act"){obj=document.getElementById(button.id);if(obj&&button.over){if(button.type=="image"){obj.src=button.over}else{obj.className=button.over}}}}};this.button_sel=function(command,id){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];if(button.id==id&&button.status=="act"){obj=document.getElementById(button.id);if(obj&&button.sel){if(button.type=="image"){obj.src=button.sel}else{obj.className=button.sel}}this.buttons_sel[id]=command}}};this.button_out=function(command,id){var n,button,obj,a_buttons=this.buttons[command],len=a_buttons?a_buttons.length:0;for(n=0;n<len;n++){button=a_buttons[n];if(button.id==id&&button.status=="act"){obj=document.getElementById(button.id);if(obj&&button.act){if(button.type=="image"){obj.src=button.act}else{obj.className=button.act}}}}};this.set_pagetitle=function(title){if(title&&document.title){document.title=title}};this.display_message=function(msg,type,timeout){if(this.is_framed()){return parent.rcmail.display_message(msg,type,timeout)}if(!this.gui_objects.message){if(type!="loading"){this.pending_message=[msg,type,timeout]}return 1}type=type?type:"notice";var ref=this,key=this.html_identifier(msg),date=new Date(),id=type+date.getTime();if(!timeout){timeout=this.message_time*(type=="error"||type=="warning"?2:1)}if(type=="loading"){key="loading";timeout=this.env.request_timeout*1000;if(!msg){msg=this.get_label("loading")}}if(this.messages[key]){if(this.messages[key].obj){this.messages[key].obj.html(msg)}if(type=="loading"){this.messages[key].labels.push({id:id,msg:msg})}this.messages[key].elements.push(id);setTimeout(function(){ref.hide_message(id,type=="loading")},timeout);return id}var obj=$("<div>").addClass(type).html(msg).data("key",key),cont=$(this.gui_objects.message).append(obj).show();this.messages[key]={obj:obj,elements:[id]};if(type=="loading"){this.messages[key].labels=[{id:id,msg:msg}]}else{obj.click(function(){return ref.hide_message(obj)})}this.triggerEvent("message",{message:msg,type:type,timeout:timeout,object:obj});if(timeout>0){setTimeout(function(){ref.hide_message(id,type=="loading")},timeout)}return id};this.hide_message=function(obj,fade){if(this.is_framed()){return parent.rcmail.hide_message(obj,fade)}if(!this.gui_objects.message){return}var k,n,i,msg,m=this.messages;if(typeof obj==="object"){$(obj)[fade?"fadeOut":"hide"]();msg=$(obj).data("key");if(this.messages[msg]){delete this.messages[msg]}}else{for(k in m){for(n in m[k].elements){if(m[k]&&m[k].elements[n]==obj){m[k].elements.splice(n,1);if(!m[k].elements.length){m[k].obj[fade?"fadeOut":"hide"]();delete m[k]}else{if(k=="loading"){for(i in m[k].labels){if(m[k].labels[i].id==obj){delete m[k].labels[i]}else{msg=m[k].labels[i].msg}m[k].obj.html(msg)}}}}}}}};this.clear_messages=function(){if(this.is_framed()){return parent.rcmail.clear_messages()}var k,n,m=this.messages;for(k in m){for(n in m[k].elements){if(m[k].obj){m[k].obj.hide()}}}this.messages={}};this.show_popup_dialog=function(html,title){if(this.is_framed()){parent.rcmail.show_popup_dialog(html,title);return}var popup=$('<div class="popup">').html(html).dialog({title:title,modal:true,resizable:true,width:580,close:function(event,ui){$(this).remove()}});var win=$(window),w=win.width(),h=win.height(),width=popup.width(),height=popup.height();popup.dialog("option",{height:Math.min(h-40,height+50),width:Math.min(w-20,width+50)}).dialog("option","position",["center","center"])};this.set_page_buttons=function(){this.enable_command("nextpage","lastpage",(this.env.pagecount>this.env.current_page));this.enable_command("previouspage","firstpage",(this.env.current_page>1))};this.select_folder=function(name,prefix,encode){if(this.gui_objects.folderlist){var current_li,target_li;if((current_li=$("li.selected",this.gui_objects.folderlist))){current_li.removeClass("selected").addClass("unfocused")}if((target_li=this.get_folder_li(name,prefix,encode))){$(target_li).removeClass("unfocused").addClass("selected")}this.triggerEvent("selectfolder",{folder:name,prefix:prefix})}};this.mark_folder=function(name,class_name,prefix,encode){$(this.get_folder_li(name,prefix,encode)).addClass(class_name)};this.unmark_folder=function(name,class_name,prefix,encode){$(this.get_folder_li(name,prefix,encode)).removeClass(class_name)};this.get_folder_li=function(name,prefix,encode){if(!prefix){prefix="rcmli"}if(this.gui_objects.folderlist){name=this.html_identifier(name,encode);return document.getElementById(prefix+name)}return null};this.set_message_coltypes=function(coltypes,repl,smart_col){var list=this.message_list,thead=list?list.list.tHead:null,cell,col,n,len,th,tr;this.env.coltypes=coltypes;if(thead){if(repl){th=document.createElement("thead");tr=document.createElement("tr");for(c=0,len=repl.length;c<len;c++){cell=document.createElement("td");cell.innerHTML=repl[c].html||"";if(repl[c].id){cell.id=repl[c].id}if(repl[c].className){cell.className=repl[c].className}tr.appendChild(cell)}th.appendChild(tr);thead.parentNode.replaceChild(th,thead);list.thead=thead=th}for(n=0,len=this.env.coltypes.length;n<len;n++){col=this.env.coltypes[n];if((cell=thead.rows[0].cells[n])&&(col=="from"||col=="to"||col=="fromto")){cell.id="rcm"+col;$("span,a",cell).text(this.get_label(col=="fromto"?smart_col:col));$("a",cell).click(function(){return rcmail.command("sort",this.id.replace(/^rcm/,""),this)})}}}this.env.subject_col=null;this.env.flagged_col=null;this.env.status_col=null;if((n=$.inArray("subject",this.env.coltypes))>=0){this.env.subject_col=n;if(list){list.subject_col=n}}if((n=$.inArray("flag",this.env.coltypes))>=0){this.env.flagged_col=n}if((n=$.inArray("status",this.env.coltypes))>=0){this.env.status_col=n}if(list){list.init_header()}};this.set_rowcount=function(text,mbox){if(mbox&&mbox!=this.env.mailbox){return false}$(this.gui_objects.countdisplay).html(text);this.set_page_buttons()};this.set_mailboxname=function(content){if(this.gui_objects.mailboxname&&content){this.gui_objects.mailboxname.innerHTML=content}};this.set_quota=function(content){if(this.gui_objects.quotadisplay&&content&&content.type=="text"){$(this.gui_objects.quotadisplay).html(content.percent+"%").attr("title",content.title)}this.triggerEvent("setquota",content);this.env.quota_content=content};this.set_unread_count=function(mbox,count,set_title,mark){if(!this.gui_objects.mailboxlist){return false}this.env.unread_counts[mbox]=count;this.set_unread_count_display(mbox,set_title);if(mark){this.mark_folder(mbox,mark,"",true)}else{if(!count){this.unmark_folder(mbox,"recent","",true)}}};this.set_unread_count_display=function(mbox,set_title){var reg,link,text_obj,item,mycount,childcount,div;if(item=this.get_folder_li(mbox,"",true)){mycount=this.env.unread_counts[mbox]?this.env.unread_counts[mbox]:0;link=$(item).children("a").eq(0);text_obj=link.children("span.unreadcount");if(!text_obj.length&&mycount){text_obj=$("<span>").addClass("unreadcount").appendTo(link)}reg=/\s+\([0-9]+\)$/i;childcount=0;if((div=item.getElementsByTagName("div")[0])&&div.className.match(/collapsed/)){for(var k in this.env.unread_counts){if(k.indexOf(mbox+this.env.delimiter)==0){childcount+=this.env.unread_counts[k]}}}if(mycount&&text_obj.length){text_obj.html(this.env.unreadwrap.replace(/%[sd]/,mycount))}else{if(text_obj.length){text_obj.remove()}}reg=new RegExp(RegExp.escape(this.env.delimiter)+"[^"+RegExp.escape(this.env.delimiter)+"]+$");if(mbox.match(reg)){this.set_unread_count_display(mbox.replace(reg,""),false)}if((mycount+childcount)>0){$(item).addClass("unread")}else{$(item).removeClass("unread")}}reg=/^\([0-9]+\)\s+/i;if(set_title&&document.title){var new_title="",doc_title=String(document.title);if(mycount&&doc_title.match(reg)){new_title=doc_title.replace(reg,"("+mycount+") ")}else{if(mycount){new_title="("+mycount+") "+doc_title}else{new_title=doc_title.replace(reg,"")}}this.set_pagetitle(new_title)}};this.set_headers=function(content){if(this.gui_objects.all_headers_row&&this.gui_objects.all_headers_box&&content){$(this.gui_objects.all_headers_box).html(content).show()}};this.show_headers=function(props,elem){if(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box||!this.env.uid){return}$(elem).removeClass("show-headers").addClass("hide-headers");$(this.gui_objects.all_headers_row).show();elem.onclick=function(){rcmail.command("hide-headers","",elem)};if(!this.gui_objects.all_headers_box.innerHTML){var lock=this.display_message(this.get_label("loading"),"loading");this.http_post("headers",{_uid:this.env.uid},lock)}};this.hide_headers=function(props,elem){if(!this.gui_objects.all_headers_row||!this.gui_objects.all_headers_box){return}$(elem).removeClass("hide-headers").addClass("show-headers");$(this.gui_objects.all_headers_row).hide();elem.onclick=function(){rcmail.command("show-headers","",elem)}};this.html2plain=function(htmlText,id){var rcmail=this,url="?_task=utils&_action=html2text",lock=this.set_busy(true,"converting");this.log("HTTP POST: "+url);$.ajax({type:"POST",url:url,data:htmlText,contentType:"application/octet-stream",error:function(o,status,err){rcmail.http_error(o,status,err,lock)},success:function(data){rcmail.set_busy(false,null,lock);$("#"+id).val(data);rcmail.log(data)}})};this.plain2html=function(plain,id){var lock=this.set_busy(true,"converting");plain=plain.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");$("#"+id).val(plain?"<pre>"+plain+"</pre>":"");this.set_busy(false,null,lock)};this.url=function(action,query){var querystring=typeof query==="string"?"&"+query:"";if(typeof action!=="string"){query=action}else{if(!query||typeof query!=="object"){query={}}}if(action){query._action=action}else{query._action=this.env.action}var base=this.env.comm_path,k,param={};if(query._action.match(/([a-z]+)\/([a-z0-9-_.]+)/)){query._action=RegExp.$2;base=base.replace(/\_task=[a-z]+/,"_task="+RegExp.$1)}for(k in query){if(query[k]!==undefined&&query[k]!==null){param[k]=query[k]}}return base+"&"+$.param(param)+querystring};this.redirect=function(url,lock){if(lock||lock===null){this.set_busy(true)}if(this.is_framed()){parent.rcmail.redirect(url,lock)}else{if(this.env.extwin){if(typeof url=="string"){url+=(url.indexOf("?")<0?"?":"&")+"_extwin=1"}else{url._extwin=1}}this.location_href(url,window)}};this.goto_url=function(action,query,lock){this.redirect(this.url(action,query))};this.location_href=function(url,target,frame){if(frame){this.lock_frame()}if(typeof url=="object"){url=this.env.comm_path+"&"+$.param(url)}if(bw.ie&&target==window){$("<a>").attr("href",url).appendTo(document.body).get(0).click()}else{target.location.href=url}this.start_keepalive()};this.http_request=function(action,query,lock){var url=this.url(action,query);var result=this.triggerEvent("request"+action,query);if(result!==undefined){if(result===false){return false}else{query=result}}url+="&_remote=1";this.log("HTTP GET: "+url);this.start_keepalive();return $.ajax({type:"GET",url:url,data:{_unlock:(lock?lock:0)},dataType:"json",success:function(data){ref.http_response(data)},error:function(o,status,err){ref.http_error(o,status,err,lock,action)}})};this.http_post=function(action,postdata,lock){var url=this.url(action);if(postdata&&typeof postdata==="object"){postdata._remote=1;postdata._unlock=(lock?lock:0)}else{postdata+=(postdata?"&":"")+"_remote=1"+(lock?"&_unlock="+lock:"")}var result=this.triggerEvent("request"+action,postdata);if(result!==undefined){if(result===false){return false}else{postdata=result}}this.log("HTTP POST: "+url);this.start_keepalive();return $.ajax({type:"POST",url:url,data:postdata,dataType:"json",success:function(data){ref.http_response(data)},error:function(o,status,err){ref.http_error(o,status,err,lock,action)}})};this.abort_request=function(r){if(r.request){r.request.abort()}if(r.lock){this.set_busy(false,null,r.lock)}};this.http_response=function(response){if(!response){return}if(response.unlock){this.set_busy(false)}this.triggerEvent("responsebefore",{response:response});this.triggerEvent("responsebefore"+response.action,{response:response});if(response.env){this.set_env(response.env)}if(typeof response.texts==="object"){for(var name in response.texts){if(typeof response.texts[name]==="string"){this.add_label(name,response.texts[name])}}}if(response.exec){this.log(response.exec);eval(response.exec)}if(response.callbacks&&response.callbacks.length){for(var i=0;i<response.callbacks.length;i++){this.triggerEvent(response.callbacks[i][0],response.callbacks[i][1])}}switch(response.action){case"delete":if(this.task=="addressbook"){var sid,uid=this.contact_list.get_selection(),writable=false;if(uid&&this.contact_list.rows[uid]){if(this.env.source==""){sid=String(uid).replace(/^[^-]+-/,"");writable=sid&&this.env.address_sources[sid]&&!this.env.address_sources[sid].readonly}else{writable=!this.env.address_sources[this.env.source].readonly}}this.enable_command("compose",(uid&&this.contact_list.rows[uid]));this.enable_command("delete","edit",writable);this.enable_command("export",(this.contact_list&&this.contact_list.rowcount>0))}case"moveto":if(this.env.action=="show"){this.enable_command(this.env.message_commands,true);if(!this.env.list_post){this.enable_command("reply-list",false)}}else{if(this.task=="addressbook"){this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount})}}case"purge":case"expunge":if(this.task=="mail"){if(!this.env.exists){if(this.env.contentframe){this.show_contentframe(false)}this.enable_command(this.env.message_commands,"purge","expunge","select-all","select-none","expand-all","expand-unread","collapse-all",false)}if(this.message_list){this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}}break;case"refresh":case"check-recent":case"getunread":case"search":this.env.qsearch=null;case"list":if(this.task=="mail"){this.enable_command("show","select-all","select-none",this.env.messagecount>0);this.enable_command("expunge",this.env.exists);this.enable_command("purge",this.purge_mailbox_test());this.enable_command("expand-all","expand-unread","collapse-all",this.env.threading&&this.env.messagecount);if((response.action=="list"||response.action=="search")&&this.message_list){this.msglist_select(this.message_list);this.triggerEvent("listupdate",{folder:this.env.mailbox,rowcount:this.message_list.rowcount})}}else{if(this.task=="addressbook"){this.enable_command("export",(this.contact_list&&this.contact_list.rowcount>0));if(response.action=="list"||response.action=="search"){this.enable_command("search-create",this.env.source=="");this.enable_command("search-delete",this.env.search_id);this.update_group_commands();this.triggerEvent("listupdate",{folder:this.env.source,rowcount:this.contact_list.rowcount})}}}break}if(response.unlock){this.hide_message(response.unlock)}this.triggerEvent("responseafter",{response:response});this.triggerEvent("responseafter"+response.action,{response:response});this.start_keepalive()};this.http_error=function(request,status,err,lock,action){var errmsg=request.statusText;this.set_busy(false,null,lock);request.abort();if(this.unload){return}if(request.status&&errmsg){this.display_message(this.get_label("servererror")+" ("+errmsg+")","error")}else{if(status=="timeout"){this.display_message(this.get_label("requesttimedout"),"error")}else{if(request.status==0&&status!="abort"){this.display_message(this.get_label("servererror")+" (No connection)","error")}}}var location_url=request.getResponseHeader("Location");if(location_url&&this.env.action!="compose"){this.redirect(location_url)}if(request.status==403){(this.is_framed()?parent:window).location.reload();return}if(action=="keep-alive"){setTimeout(function(){ref.keep_alive();ref.start_keepalive()},30000)}};this.iframe_loaded=function(unlock){this.set_busy(false,null,unlock);if(this.submit_timer){clearTimeout(this.submit_timer)}};this.async_upload_form=function(form,action,onload){var frame,ts=new Date().getTime(),frame_name="rcmupload"+ts;if(this.env.upload_progress_name){var fname=this.env.upload_progress_name,field=$("input[name="+fname+"]",form);if(!field.length){field=$("<input>").attr({type:"hidden",name:fname});field.prependTo(form)}field.val(ts)}if(document.all){document.body.insertAdjacentHTML("BeforeEnd",'<iframe name="'+frame_name+'" src="program/resources/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>');frame=$('iframe[name="'+frame_name+'"]')}else{frame=$("<iframe>").attr("name",frame_name).css({border:"none",width:0,height:0,visibility:"hidden"}).appendTo(document.body)}frame.bind("load",{ts:ts},onload);$(form).attr({target:frame_name,action:this.url(action,{_id:this.env.compose_id||"",_uploadid:ts}),method:"POST"}).attr(form.encoding?"encoding":"enctype","multipart/form-data").submit();return frame_name};this.document_drag_hover=function(e,over){e.preventDefault();$(ref.gui_objects.filedrop)[(over?"addClass":"removeClass")]("active")};this.file_drag_hover=function(e,over){e.preventDefault();e.stopPropagation();$(ref.gui_objects.filedrop)[(over?"addClass":"removeClass")]("hover")};this.file_dropped=function(e){this.file_drag_hover(e,false);var files=e.target.files||e.dataTransfer.files,formdata=window.FormData?new FormData():null,fieldname=(this.env.filedrop.fieldname||"_file")+(this.env.filedrop.single?"":"[]"),boundary="------multipartformboundary"+(new Date).getTime(),dashdash="--",crlf="\r\n",multipart=dashdash+boundary+crlf;if(!files||!files.length){return}var submit_data=function(){var multiple=files.length>1,ts=new Date().getTime(),content="<span>"+(multiple?ref.get_label("uploadingmany"):files[0].name)+"</span>";if(!ref.add2attachment_list(ts,{name:"",html:content,classname:"uploading",complete:false})){ref.file_upload_id=ref.set_busy(true,"uploading")}multipart+=dashdash+boundary+dashdash+crlf;$.ajax({type:"POST",dataType:"json",url:ref.url(ref.env.filedrop.action||"upload",{_id:ref.env.compose_id||ref.env.cid||"",_uploadid:ts,_remote:1}),contentType:formdata?false:"multipart/form-data; boundary="+boundary,processData:false,timeout:0,data:formdata||multipart,headers:{"X-Roundcube-Request":ref.env.request_token},xhr:function(){var xhr=jQuery.ajaxSettings.xhr();if(!formdata&&xhr.sendAsBinary){xhr.send=xhr.sendAsBinary}return xhr},success:function(data){ref.http_response(data)},error:function(o,status,err){ref.http_error(o,status,err,null,"attachment")}})};var last=this.env.filedrop.single?0:files.length-1;for(var j=0,i=0,f;j<=last&&(f=files[i]);i++){if(!f.name){f.name=f.fileName}if(!f.size){f.size=f.fileSize}if(!f.type){f.type="application/octet-stream"}if(!formdata&&/[^\x20-\x7E]/.test(f.name)){f.name_bin=unescape(encodeURIComponent(f.name))}if(this.env.filedrop.filter&&!f.type.match(new RegExp(this.env.filedrop.filter))){continue}if(formdata){formdata.append(fieldname,f);if(j==last){return submit_data()}}else{if(window.FileReader){var reader=new FileReader();reader.onload=(function(file,j){return function(e){multipart+='Content-Disposition: form-data; name="'+fieldname+'"';multipart+='; filename="'+(f.name_bin||file.name)+'"'+crlf;multipart+="Content-Length: "+file.size+crlf;multipart+="Content-Type: "+file.type+crlf+crlf;multipart+=reader.result+crlf;multipart+=dashdash+boundary+crlf;if(j==last){return submit_data()}}})(f,j);reader.readAsBinaryString(f)}else{if(f.getAsBinary){multipart+='Content-Disposition: form-data; name="'+fieldname+'"';multipart+='; filename="'+(f.name_bin||f.name)+'"'+crlf;multipart+="Content-Length: "+f.size+crlf;multipart+="Content-Type: "+f.type+crlf+crlf;multipart+=f.getAsBinary()+crlf;multipart+=dashdash+boundary+crlf;if(j==last){return submit_data()}}}}j++}};this.start_keepalive=function(){if(!this.env.session_lifetime||this.env.framed||this.env.extwin||this.task=="login"||this.env.action=="print"){return}if(this._keepalive){clearInterval(this._keepalive)}this._keepalive=setInterval(function(){ref.keep_alive()},this.env.session_lifetime*0.5*1000)};this.start_refresh=function(){if(!this.env.refresh_interval||this.env.framed||this.env.extwin||this.task=="login"||this.env.action=="print"){return}if(this._refresh){clearInterval(this._refresh)}this._refresh=setInterval(function(){ref.refresh()},this.env.refresh_interval*1000)};this.keep_alive=function(){if(!this.busy){this.http_request("keep-alive")}};this.refresh=function(){if(this.busy){setTimeout(function(){ref.refresh();ref.start_refresh()},10000);return}var params={},lock=this.set_busy(true,"refreshing");if(this.task=="mail"&&this.gui_objects.mailboxlist){params=this.check_recent_params()}this.http_request("refresh",params,lock)};this.check_recent_params=function(){var params={_mbox:this.env.mailbox};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}return params};this.opener=function(){try{if(window.opener&&!opener.closed&&opener.rcmail){return opener.rcmail}}catch(e){}};this.get_single_uid=function(){return this.env.uid?this.env.uid:(this.message_list?this.message_list.get_single_selection():null)};this.get_single_cid=function(){return this.env.cid?this.env.cid:(this.contact_list?this.contact_list.get_single_selection():null)};this.get_caret_pos=function(obj){if(obj.selectionEnd!==undefined){return obj.selectionEnd}if(document.selection&&document.selection.createRange){var range=document.selection.createRange();if(range.parentElement()!=obj){return 0}var gm=range.duplicate();if(obj.tagName=="TEXTAREA"){gm.moveToElementText(obj)}else{gm.expand("textedit")}gm.setEndPoint("EndToStart",range);var p=gm.text.length;return p<=obj.value.length?p:-1}return obj.value.length};this.set_caret_pos=function(obj,pos){if(obj.setSelectionRange){obj.setSelectionRange(pos,pos)}else{if(obj.createTextRange){var range=obj.createTextRange();range.collapse(true);range.moveEnd("character",pos);range.moveStart("character",pos);range.select()}}};this.lock_form=function(form,lock){if(!form||!form.elements){return}var n,len,elm;if(lock){this.disabled_form_elements=[]}for(n=0,len=form.elements.length;n<len;n++){elm=form.elements[n];if(elm.type=="hidden"){continue}if(lock&&elm.disabled){this.disabled_form_elements.push(elm)}else{if(lock||(this.disabled_form_elements&&$.inArray(elm,this.disabled_form_elements)<0)){elm.disabled=lock}}}};this.mailto_handler_uri=function(){return location.href.split("?")[0]+"?_task=mail&_action=compose&_to=%s"};this.register_protocol_handler=function(name){try{window.navigator.registerProtocolHandler("mailto",this.mailto_handler_uri(),name)}catch(e){}};this.check_protocol_handler=function(name,elem){var nav=window.navigator;if(!nav||(typeof nav.registerProtocolHandler!="function")||((typeof nav.isProtocolHandlerRegistered=="function")&&nav.isProtocolHandlerRegistered("mailto",this.mailto_handler_uri())=="registered")){$(elem).addClass("disabled")}else{$(elem).click(function(){rcmail.register_protocol_handler(name);return false})}};this.browser_capabilities_check=function(){if(!this.env.browser_capabilities){this.env.browser_capabilities={}}if(this.env.browser_capabilities.pdf===undefined){this.env.browser_capabilities.pdf=this.pdf_support_check()}if(this.env.browser_capabilities.flash===undefined){this.env.browser_capabilities.flash=this.flash_support_check()}if(this.env.browser_capabilities.tif===undefined){this.tif_support_check()}};this.browser_capabilities=function(){if(!this.env.browser_capabilities){return""}var n,ret=[];for(n in this.env.browser_capabilities){ret.push(n+"="+this.env.browser_capabilities[n])}return ret.join()};this.tif_support_check=function(){var img=new Image();img.onload=function(){rcmail.env.browser_capabilities.tif=1};img.onerror=function(){rcmail.env.browser_capabilities.tif=0};img.src="program/resources/blank.tif"};this.pdf_support_check=function(){var plugin=navigator.mimeTypes?navigator.mimeTypes["application/pdf"]:{},plugins=navigator.plugins,len=plugins.length,regex=/Adobe Reader|PDF|Acrobat/i;if(plugin&&plugin.enabledPlugin){return 1}if(window.ActiveXObject){try{if(axObj=new ActiveXObject("AcroPDF.PDF")){return 1}}catch(e){}try{if(axObj=new ActiveXObject("PDF.PdfCtrl")){return 1}}catch(e){}}for(i=0;i<len;i++){plugin=plugins[i];if(typeof plugin==="String"){if(regex.test(plugin)){return 1}}else{if(plugin.name&&regex.test(plugin.name)){return 1}}}return 0};this.flash_support_check=function(){var plugin=navigator.mimeTypes?navigator.mimeTypes["application/x-shockwave-flash"]:{};if(plugin&&plugin.enabledPlugin){return 1}if(window.ActiveXObject){try{if(axObj=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")){return 1}}catch(e){}}return 0};this.set_cookie=function(name,value,expires){setCookie(name,value,expires,this.env.cookie_path,this.env.cookie_domain,this.env.cookie_secure)}}rcube_webmail.long_subject_title=function(d,a){if(!d.title){var b=$(d);if(b.width()+a*15>b.parent().width()){d.title=b.text()}}};rcube_webmail.long_subject_title_ex=function(g,b){if(!g.title){var e=$(g),a=$.trim(e.text()),f=$("<span>").text(a).css({position:"absolute","float":"left",visibility:"hidden","font-size":e.css("font-size"),"font-weight":e.css("font-weight")}).appendTo($("body")),d=f.width();f.remove();if(d+b*15>e.width()){g.title=a}}};rcube_webmail.prototype.get_cookie=getCookie;rcube_webmail.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_webmail.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;rcube_webmail.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent; \ No newline at end of file
diff --git a/program/js/common.js b/program/js/common.js
index 02934f734..f6fa154ef 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -1,731 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube common js library |
- | |
- | This file is part of the Roundcube web development suite |
- | Copyright (C) 2005-2012, 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: Thomas Bruederli <roundcube@gmail.com> |
- +-----------------------------------------------------------------------+
-*/
-
-// Constants
-var CONTROL_KEY = 1;
-var SHIFT_KEY = 2;
-var CONTROL_SHIFT_KEY = 3;
-
-
-/**
- * Default browser check class
- * @constructor
- */
-function roundcube_browser()
-{
- var n = navigator;
-
- this.ver = parseFloat(n.appVersion);
- this.appver = n.appVersion;
- this.agent = n.userAgent;
- this.agent_lc = n.userAgent.toLowerCase();
- this.name = n.appName;
- this.vendor = n.vendor ? n.vendor : '';
- this.vendver = n.vendorSub ? parseFloat(n.vendorSub) : 0;
- this.product = n.product ? n.product : '';
- this.platform = String(n.platform).toLowerCase();
- this.lang = (n.language) ? n.language.substring(0,2) :
- (n.browserLanguage) ? n.browserLanguage.substring(0,2) :
- (n.systemLanguage) ? n.systemLanguage.substring(0,2) : 'en';
-
- this.win = (this.platform.indexOf('win') >= 0);
- this.mac = (this.platform.indexOf('mac') >= 0);
- this.linux = (this.platform.indexOf('linux') >= 0);
- this.unix = (this.platform.indexOf('unix') >= 0);
-
- this.dom = document.getElementById ? true : false;
- this.dom2 = (document.addEventListener && document.removeEventListener);
-
- this.ie = (document.all && !window.opera);
- this.ie4 = (this.ie && !this.dom);
- this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0);
- this.ie8 = (this.dom && this.appver.indexOf('MSIE 8')>0);
- this.ie9 = (this.dom && this.appver.indexOf('MSIE 9')>0);
- this.ie7 = (this.dom && this.appver.indexOf('MSIE 7')>0);
- this.ie6 = (this.dom && !this.ie8 && !this.ie7 && this.appver.indexOf('MSIE 6')>0);
-
- this.ns = ((this.ver < 5 && this.name == 'Netscape') || (this.ver >= 5 && this.vendor.indexOf('Netscape') >= 0));
- this.chrome = (this.agent_lc.indexOf('chrome') > 0);
- this.safari = (!this.chrome && (this.agent_lc.indexOf('safari') > 0 || this.agent_lc.indexOf('applewebkit') > 0));
- this.konq = (this.agent_lc.indexOf('konqueror') > 0);
- this.mz = (this.dom && !this.ie && !this.ns && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 0);
- this.iphone = (this.safari && (this.agent_lc.indexOf('iphone') > 0 || this.agent_lc.indexOf('ipod') > 0));
- this.ipad = (this.safari && this.agent_lc.indexOf('ipad') > 0);
- this.opera = window.opera ? true : false;
-
- if (this.opera && window.RegExp)
- this.vendver = (/opera(\s|\/)([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$2) : -1;
- else if (this.chrome && window.RegExp)
- this.vendver = (/chrome\/([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0;
- else if (!this.vendver && this.safari)
- this.vendver = (/(safari|applewebkit)\/([0-9]+)/.test(this.agent_lc)) ? parseInt(RegExp.$2) : 0;
- else if ((!this.vendver && this.mz) || this.agent.indexOf('Camino')>0)
- this.vendver = (/rv:([0-9\.]+)/.test(this.agent)) ? parseFloat(RegExp.$1) : 0;
- else if (this.ie && window.RegExp)
- this.vendver = (/msie\s+([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0;
- else if (this.konq && window.RegExp)
- this.vendver = (/khtml\/([0-9\.]+)/.test(this.agent_lc)) ? parseFloat(RegExp.$1) : 0;
-
- // get real language out of safari's user agent
- if (this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc)))
- this.lang = RegExp.$1;
-
- this.tablet = /ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc);
- this.mobile = /iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc);
- this.touch = this.mobile || this.tablet;
- this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz);
- this.vml = (this.win && this.ie && this.dom && !this.opera);
- this.pngalpha = (this.mz || (this.opera && this.vendver >= 6) || (this.ie && this.mac && this.vendver >= 5) ||
- (this.ie && this.win && this.vendver >= 5.5) || this.safari);
- this.opacity = (this.mz || (this.ie && this.vendver >= 5.5 && !this.opera) || (this.safari && this.vendver >= 100));
- this.cookies = n.cookieEnabled;
-
- // test for XMLHTTP support
- this.xmlhttp_test = function()
- {
- var activeX_test = new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");
- this.xmlhttp = (window.XMLHttpRequest || (window.ActiveXObject && activeX_test()));
- return this.xmlhttp;
- };
-
- // set class names to html tag according to the current user agent detection
- // this allows browser-specific css selectors like "html.chrome .someclass"
- this.set_html_class = function()
- {
- var classname = ' js';
-
- if (this.ie)
- classname += ' ie ie'+parseInt(this.vendver);
- else if (this.opera)
- classname += ' opera';
- else if (this.konq)
- classname += ' konqueror';
- else if (this.safari)
- classname += ' chrome';
- else if (this.chrome)
- classname += ' chrome';
- else if (this.mz)
- classname += ' mozilla';
-
- if (this.iphone)
- classname += ' iphone';
- else if (this.ipad)
- classname += ' ipad';
- else if (this.safari || this.chrome)
- classname += ' webkit';
-
- if (this.mobile)
- classname += ' mobile';
- if (this.tablet)
- classname += ' tablet';
-
- if (document.documentElement)
- document.documentElement.className += classname;
- };
-};
-
-
-// static functions for DOM event handling
-var rcube_event = {
-
-/**
- * returns the event target element
- */
-get_target: function(e)
-{
- e = e || window.event;
- return e && e.target ? e.target : e.srcElement;
-},
-
-/**
- * returns the event key code
- */
-get_keycode: function(e)
-{
- e = e || window.event;
- return e && e.keyCode ? e.keyCode : (e && e.which ? e.which : 0);
-},
-
-/**
- * returns the event key code
- */
-get_button: function(e)
-{
- e = e || window.event;
- return e && e.button !== undefined ? e.button : (e && e.which ? e.which : 0);
-},
-
-/**
- * returns modifier key (constants defined at top of file)
- */
-get_modifier: function(e)
-{
- var opcode = 0;
- e = e || window.event;
-
- if (bw.mac && e)
- opcode += (e.metaKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
- else if (e)
- opcode += (e.ctrlKey && CONTROL_KEY) + (e.shiftKey && SHIFT_KEY);
-
- return opcode;
-},
-
-/**
- * Return absolute mouse position of an event
- */
-get_mouse_pos: function(e)
-{
- if (!e) e = window.event;
- var mX = (e.pageX) ? e.pageX : e.clientX,
- mY = (e.pageY) ? e.pageY : e.clientY;
-
- if (document.body && document.all) {
- mX += document.body.scrollLeft;
- mY += document.body.scrollTop;
- }
-
- if (e._offset) {
- mX += e._offset.left;
- mY += e._offset.top;
- }
-
- return { x:mX, y:mY };
-},
-
-/**
- * Add an object method as event listener to a certain element
- */
-add_listener: function(p)
-{
- if (!p.object || !p.method) // not enough arguments
- return;
- if (!p.element)
- p.element = document;
-
- if (!p.object._rc_events)
- p.object._rc_events = [];
-
- var key = p.event + '*' + p.method;
- if (!p.object._rc_events[key])
- p.object._rc_events[key] = function(e){ return p.object[p.method](e); };
-
- if (p.element.addEventListener)
- p.element.addEventListener(p.event, p.object._rc_events[key], false);
- else if (p.element.attachEvent) {
- // IE allows multiple events with the same function to be applied to the same object
- // forcibly detach the event, then attach
- p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
- p.element.attachEvent('on'+p.event, p.object._rc_events[key]);
- }
- else
- p.element['on'+p.event] = p.object._rc_events[key];
-},
-
-/**
- * Remove event listener
- */
-remove_listener: function(p)
-{
- if (!p.element)
- p.element = document;
-
- var key = p.event + '*' + p.method;
- if (p.object && p.object._rc_events && p.object._rc_events[key]) {
- if (p.element.removeEventListener)
- p.element.removeEventListener(p.event, p.object._rc_events[key], false);
- else if (p.element.detachEvent)
- p.element.detachEvent('on'+p.event, p.object._rc_events[key]);
- else
- p.element['on'+p.event] = null;
- }
-},
-
-/**
- * Prevent event propagation and bubbling
- */
-cancel: function(evt)
-{
- var e = evt ? evt : window.event;
- if (e.preventDefault)
- e.preventDefault();
- if (e.stopPropagation)
- e.stopPropagation();
-
- e.cancelBubble = true;
- e.returnValue = false;
- return false;
-},
-
-touchevent: function(e)
-{
- return { pageX:e.pageX, pageY:e.pageY, offsetX:e.pageX - e.target.offsetLeft, offsetY:e.pageY - e.target.offsetTop, target:e.target, istouch:true };
-}
-
-};
-
-
-/**
- * rcmail objects event interface
- */
-function rcube_event_engine()
-{
- this._events = {};
-};
-
-rcube_event_engine.prototype = {
-
-/**
- * Setter for object event handlers
- *
- * @param {String} Event name
- * @param {Function} Handler function
- * @return Listener ID (used to remove this handler later on)
- */
-addEventListener: function(evt, func, obj)
-{
- if (!this._events)
- this._events = {};
- if (!this._events[evt])
- this._events[evt] = [];
-
- this._events[evt].push({func:func, obj:obj ? obj : window});
-},
-
-/**
- * Removes a specific event listener
- *
- * @param {String} Event name
- * @param {Int} Listener ID to remove
- */
-removeEventListener: function(evt, func, obj)
-{
- if (obj === undefined)
- obj = window;
-
- for (var h,i=0; this._events && this._events[evt] && i < this._events[evt].length; i++)
- if ((h = this._events[evt][i]) && h.func == func && h.obj == obj)
- this._events[evt][i] = null;
-},
-
-/**
- * This will execute all registered event handlers
- *
- * @param {String} Event to trigger
- * @param {Object} Event object/arguments
- */
-triggerEvent: function(evt, e)
-{
- var ret, h;
- if (e === undefined)
- e = this;
- else if (typeof e === 'object')
- e.event = evt;
-
- if (this._events && this._events[evt] && !this._event_exec) {
- this._event_exec = true;
- for (var i=0; i < this._events[evt].length; i++) {
- if ((h = this._events[evt][i])) {
- if (typeof h.func === 'function')
- ret = h.func.call ? h.func.call(h.obj, e) : h.func(e);
- else if (typeof h.obj[h.func] === 'function')
- ret = h.obj[h.func](e);
-
- // cancel event execution
- if (ret !== undefined && !ret)
- break;
- }
- }
- if (ret && ret.event) {
- try {
- delete ret.event;
- } catch (err) {
- // IE6-7 doesn't support deleting HTMLFormElement attributes (#1488017)
- $(ret).removeAttr('event');
- }
- }
- }
-
- this._event_exec = false;
- if (e.event) {
- try {
- delete e.event;
- } catch (err) {
- // IE6-7 doesn't support deleting HTMLFormElement attributes (#1488017)
- $(e).removeAttr('event');
- }
- }
-
- return ret;
-}
-
-}; // end rcube_event_engine.prototype
-
-
-// check if input is a valid email address
-// By Cal Henderson <cal@iamcal.com>
-// http://code.iamcal.com/php/rfc822/
-function rcube_check_email(input, inline)
-{
- if (input && window.RegExp) {
- var qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]',
- dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]',
- atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+',
- quoted_pair = '\\x5c[\\x00-\\x7f]',
- quoted_string = '\\x22('+qtext+'|'+quoted_pair+')*\\x22',
- ipv4 = '\\[(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}\\]',
- ipv6 = '\\[IPv6:[0-9a-f:.]+\\]',
- ip_addr = '(' + ipv4 + ')|(' + ipv6 + ')',
- // Use simplified domain matching, because we need to allow Unicode characters here
- // So, e-mail address should be validated also on server side after idn_to_ascii() use
- //domain_literal = '\\x5b('+dtext+'|'+quoted_pair+')*\\x5d',
- //sub_domain = '('+atom+'|'+domain_literal+')',
- // allow punycode/unicode top-level domain
- domain = '(('+ip_addr+')|(([^@\\x2e]+\\x2e)+([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})))',
- // ICANN e-mail test (http://idn.icann.org/E-mail_test)
- icann_domains = [
- '\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631',
- '\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5',
- '\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66',
- '\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae',
- '\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e',
- '\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8',
- '\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8',
- '\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc',
- '\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435',
- '\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8',
- '\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8'
- ],
- icann_addr = 'mailtest\\x40('+icann_domains.join('|')+')',
- word = '('+atom+'|'+quoted_string+')',
- delim = '[,;\s\n]',
- local_part = word+'(\\x2e'+word+')*',
- addr_spec = '(('+local_part+'\\x40'+domain+')|('+icann_addr+'))',
- reg1 = inline ? new RegExp('(^|<|'+delim+')'+addr_spec+'($|>|'+delim+')', 'i') : new RegExp('^'+addr_spec+'$', 'i');
-
- return reg1.test(input) ? true : false;
- }
-
- return false;
-};
-
-// recursively copy an object
-function rcube_clone_object(obj)
-{
- var out = {};
-
- for (var key in obj) {
- if (obj[key] && typeof obj[key] === 'object')
- out[key] = rcube_clone_object(obj[key]);
- else
- out[key] = obj[key];
- }
-
- return out;
-};
-
-// make a string URL safe (and compatible with PHP's rawurlencode())
-function urlencode(str)
-{
- if (window.encodeURIComponent)
- return encodeURIComponent(str).replace('*', '%2A');
-
- return escape(str)
- .replace('+', '%2B')
- .replace('*', '%2A')
- .replace('/', '%2F')
- .replace('@', '%40');
-};
-
-
-// get any type of html objects by id/name
-function rcube_find_object(id, d)
-{
- var n, f, obj, e;
- if(!d) d = document;
-
- if(d.getElementsByName && (e = d.getElementsByName(id)))
- obj = e[0];
- if(!obj && d.getElementById)
- obj = d.getElementById(id);
- if(!obj && d.all)
- obj = d.all[id];
-
- if(!obj && d.images.length)
- obj = d.images[id];
-
- if (!obj && d.forms.length) {
- for (f=0; f<d.forms.length; f++) {
- if(d.forms[f].name == id)
- obj = d.forms[f];
- else if(d.forms[f].elements[id])
- obj = d.forms[f].elements[id];
- }
- }
-
- if (!obj && d.layers) {
- if (d.layers[id]) obj = d.layers[id];
- for (n=0; !obj && n<d.layers.length; n++)
- obj = rcube_find_object(id, d.layers[n].document);
- }
-
- return obj;
-};
-
-// determine whether the mouse is over the given object or not
-function rcube_mouse_is_over(ev, obj)
-{
- var mouse = rcube_event.get_mouse_pos(ev),
- pos = $(obj).offset();
-
- return ((mouse.x >= pos.left) && (mouse.x < (pos.left + obj.offsetWidth)) &&
- (mouse.y >= pos.top) && (mouse.y < (pos.top + obj.offsetHeight)));
-};
-
-
-// cookie functions by GoogieSpell
-function setCookie(name, value, expires, path, domain, secure)
-{
- var curCookie = name + "=" + escape(value) +
- (expires ? "; expires=" + expires.toGMTString() : "") +
- (path ? "; path=" + path : "") +
- (domain ? "; domain=" + domain : "") +
- (secure ? "; secure" : "");
- document.cookie = curCookie;
-};
-
-function getCookie(name)
-{
- var dc = document.cookie,
- prefix = name + "=",
- begin = dc.indexOf("; " + prefix);
-
- if (begin == -1) {
- begin = dc.indexOf(prefix);
- if (begin != 0)
- return null;
- }
- else {
- begin += 2;
- }
-
- var end = dc.indexOf(";", begin);
- if (end == -1)
- end = dc.length;
-
- return unescape(dc.substring(begin + prefix.length, end));
-};
-
-// deprecated aliases, to be removed, use rcmail.set_cookie/rcmail.get_cookie
-roundcube_browser.prototype.set_cookie = setCookie;
-roundcube_browser.prototype.get_cookie = getCookie;
-
-// tiny replacement for Firebox functionality
-function rcube_console()
-{
- this.log = function(msg)
- {
- var box = rcube_find_object('dbgconsole');
-
- if (box) {
- if (msg.charAt(msg.length-1)=='\n')
- msg += '--------------------------------------\n';
- else
- msg += '\n--------------------------------------\n';
-
- // Konqueror doesn't allow to just change the value of hidden element
- if (bw.konq) {
- box.innerText += msg;
- box.value = box.innerText;
- } else
- box.value += msg;
- }
- };
-
- this.reset = function()
- {
- var box = rcube_find_object('dbgconsole');
- if (box)
- box.innerText = box.value = '';
- };
-};
-
-var bw = new roundcube_browser();
-bw.set_html_class();
-
-
-// Add escape() method to RegExp object
-// http://dev.rubyonrails.org/changeset/7271
-RegExp.escape = function(str)
-{
- return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
-};
-
-// Extend Date prototype to detect Standard timezone without DST
-// from http://www.michaelapproved.com/articles/timezone-detect-and-ignore-daylight-saving-time-dst/
-Date.prototype.getStdTimezoneOffset = function()
-{
- var m = 12,
- d = new Date(null, m, 1),
- tzo = d.getTimezoneOffset();
-
- while (--m) {
- d.setUTCMonth(m);
- if (tzo != d.getTimezoneOffset()) {
- return Math.max(tzo, d.getTimezoneOffset());
- }
- }
-
- return tzo;
-}
-
-// define String's startsWith() method for old browsers
-if (!String.prototype.startsWith) {
- String.prototype.startsWith = function(search, position) {
- position = position || 0;
- return this.slice(position, search.length) === search;
- };
-}
-
-// Make getElementById() case-sensitive on IE
-if (bw.ie) {
- document._getElementById = document.getElementById;
- document.getElementById = function(id) {
- var i = 0, obj = document._getElementById(id);
-
- if (obj && obj.id != id)
- while ((obj = document.all[i]) && obj.id != id)
- i++;
-
- return obj;
- }
-}
-
-// jQuery plugin to emulate HTML5 placeholder attributes on input elements
-jQuery.fn.placeholder = function(text) {
- return this.each(function() {
- var active = false, elem = $(this);
- this.title = text;
-
- // Try HTML5 placeholder attribute first
- if ('placeholder' in this) {
- elem.attr('placeholder', text);
- }
- // Fallback to Javascript emulation of placeholder
- else {
- this._placeholder = text;
- elem.blur(function(e) {
- if ($.trim(elem.val()) == "")
- elem.val(text);
- elem.triggerHandler('change');
- })
- .focus(function(e) {
- if ($.trim(elem.val()) == text)
- elem.val("");
- elem.triggerHandler('change');
- })
- .change(function(e) {
- var active = elem.val() == text;
- elem[(active ? 'addClass' : 'removeClass')]('placeholder').attr('spellcheck', active);
- });
-
- // Do not blur currently focused element (catch exception: #1489008)
- try { active = this == document.activeElement; } catch(e) {}
- if (!active)
- elem.blur();
- }
- });
-};
-
-
-// This code was written by Tyler Akins and has been placed in the
-// public domain. It would be nice if you left this header intact.
-// Base64 code from Tyler Akins -- http://rumkin.com
-var Base64 = (function () {
- var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-
- var obj = {
- /**
- * Encodes a string in base64
- * @param {String} input The string to encode in base64.
- */
- encode: function (input) {
- if (typeof(window.btoa) === 'function')
- return btoa(input);
-
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4, i = 0, output = '', len = input.length;
-
- do {
- chr1 = input.charCodeAt(i++);
- chr2 = input.charCodeAt(i++);
- chr3 = input.charCodeAt(i++);
-
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- enc4 = chr3 & 63;
-
- if (isNaN(chr2))
- enc3 = enc4 = 64;
- else if (isNaN(chr3))
- enc4 = 64;
-
- output = output
- + keyStr.charAt(enc1) + keyStr.charAt(enc2)
- + keyStr.charAt(enc3) + keyStr.charAt(enc4);
- } while (i < len);
-
- return output;
- },
-
- /**
- * Decodes a base64 string.
- * @param {String} input The string to decode.
- */
- decode: function (input) {
- if (typeof(window.atob) === 'function')
- return atob(input);
-
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4, len, i = 0, output = '';
-
- // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
- len = input.length;
-
- do {
- enc1 = keyStr.indexOf(input.charAt(i++));
- enc2 = keyStr.indexOf(input.charAt(i++));
- enc3 = keyStr.indexOf(input.charAt(i++));
- enc4 = keyStr.indexOf(input.charAt(i++));
-
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
-
- output = output + String.fromCharCode(chr1);
-
- if (enc3 != 64)
- output = output + String.fromCharCode(chr2);
- if (enc4 != 64)
- output = output + String.fromCharCode(chr3);
- } while (i < len);
-
- return output;
- }
- };
-
- return obj;
-})();
+var CONTROL_KEY=1;var SHIFT_KEY=2;var CONTROL_SHIFT_KEY=3;function roundcube_browser(){var a=navigator;this.ver=parseFloat(a.appVersion);this.appver=a.appVersion;this.agent=a.userAgent;this.agent_lc=a.userAgent.toLowerCase();this.name=a.appName;this.vendor=a.vendor?a.vendor:"";this.vendver=a.vendorSub?parseFloat(a.vendorSub):0;this.product=a.product?a.product:"";this.platform=String(a.platform).toLowerCase();this.lang=(a.language)?a.language.substring(0,2):(a.browserLanguage)?a.browserLanguage.substring(0,2):(a.systemLanguage)?a.systemLanguage.substring(0,2):"en";this.win=(this.platform.indexOf("win")>=0);this.mac=(this.platform.indexOf("mac")>=0);this.linux=(this.platform.indexOf("linux")>=0);this.unix=(this.platform.indexOf("unix")>=0);this.dom=document.getElementById?true:false;this.dom2=(document.addEventListener&&document.removeEventListener);this.ie=(document.all&&!window.opera);this.ie4=(this.ie&&!this.dom);this.ie5=(this.dom&&this.appver.indexOf("MSIE 5")>0);this.ie8=(this.dom&&this.appver.indexOf("MSIE 8")>0);this.ie9=(this.dom&&this.appver.indexOf("MSIE 9")>0);this.ie7=(this.dom&&this.appver.indexOf("MSIE 7")>0);this.ie6=(this.dom&&!this.ie8&&!this.ie7&&this.appver.indexOf("MSIE 6")>0);this.ns=((this.ver<5&&this.name=="Netscape")||(this.ver>=5&&this.vendor.indexOf("Netscape")>=0));this.chrome=(this.agent_lc.indexOf("chrome")>0);this.safari=(!this.chrome&&(this.agent_lc.indexOf("safari")>0||this.agent_lc.indexOf("applewebkit")>0));this.konq=(this.agent_lc.indexOf("konqueror")>0);this.mz=(this.dom&&!this.ie&&!this.ns&&!this.chrome&&!this.safari&&!this.konq&&this.agent.indexOf("Mozilla")>=0);this.iphone=(this.safari&&(this.agent_lc.indexOf("iphone")>0||this.agent_lc.indexOf("ipod")>0));this.ipad=(this.safari&&this.agent_lc.indexOf("ipad")>0);this.opera=window.opera?true:false;if(this.opera&&window.RegExp){this.vendver=(/opera(\s|\/)([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$2):-1}else{if(this.chrome&&window.RegExp){this.vendver=(/chrome\/([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$1):0}else{if(!this.vendver&&this.safari){this.vendver=(/(safari|applewebkit)\/([0-9]+)/.test(this.agent_lc))?parseInt(RegExp.$2):0}else{if((!this.vendver&&this.mz)||this.agent.indexOf("Camino")>0){this.vendver=(/rv:([0-9\.]+)/.test(this.agent))?parseFloat(RegExp.$1):0}else{if(this.ie&&window.RegExp){this.vendver=(/msie\s+([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$1):0}else{if(this.konq&&window.RegExp){this.vendver=(/khtml\/([0-9\.]+)/.test(this.agent_lc))?parseFloat(RegExp.$1):0}}}}}}if(this.safari&&(/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc))){this.lang=RegExp.$1}this.tablet=/ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc);this.mobile=/iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc);this.touch=this.mobile||this.tablet;this.dhtml=((this.ie4&&this.win)||this.ie5||this.ie6||this.ns4||this.mz);this.vml=(this.win&&this.ie&&this.dom&&!this.opera);this.pngalpha=(this.mz||(this.opera&&this.vendver>=6)||(this.ie&&this.mac&&this.vendver>=5)||(this.ie&&this.win&&this.vendver>=5.5)||this.safari);this.opacity=(this.mz||(this.ie&&this.vendver>=5.5&&!this.opera)||(this.safari&&this.vendver>=100));this.cookies=a.cookieEnabled;this.xmlhttp_test=function(){var b=new Function("try{var o=new ActiveXObject('Microsoft.XMLHTTP');return true;}catch(err){return false;}");this.xmlhttp=(window.XMLHttpRequest||(window.ActiveXObject&&b()));return this.xmlhttp};this.set_html_class=function(){var b=" js";if(this.ie){b+=" ie ie"+parseInt(this.vendver)}else{if(this.opera){b+=" opera"}else{if(this.konq){b+=" konqueror"}else{if(this.safari){b+=" chrome"}else{if(this.chrome){b+=" chrome"}else{if(this.mz){b+=" mozilla"}}}}}}if(this.iphone){b+=" iphone"}else{if(this.ipad){b+=" ipad"}else{if(this.safari||this.chrome){b+=" webkit"}}}if(this.mobile){b+=" mobile"}if(this.tablet){b+=" tablet"}if(document.documentElement){document.documentElement.className+=b}}}var rcube_event={get_target:function(a){a=a||window.event;return a&&a.target?a.target:a.srcElement},get_keycode:function(a){a=a||window.event;return a&&a.keyCode?a.keyCode:(a&&a.which?a.which:0)},get_button:function(a){a=a||window.event;return a&&a.button!==undefined?a.button:(a&&a.which?a.which:0)},get_modifier:function(b){var a=0;b=b||window.event;if(bw.mac&&b){a+=(b.metaKey&&CONTROL_KEY)+(b.shiftKey&&SHIFT_KEY)}else{if(b){a+=(b.ctrlKey&&CONTROL_KEY)+(b.shiftKey&&SHIFT_KEY)}}return a},get_mouse_pos:function(c){if(!c){c=window.event}var b=(c.pageX)?c.pageX:c.clientX,a=(c.pageY)?c.pageY:c.clientY;if(document.body&&document.all){b+=document.body.scrollLeft;a+=document.body.scrollTop}if(c._offset){b+=c._offset.left;a+=c._offset.top}return{x:b,y:a}},add_listener:function(b){if(!b.object||!b.method){return}if(!b.element){b.element=document}if(!b.object._rc_events){b.object._rc_events=[]}var a=b.event+"*"+b.method;if(!b.object._rc_events[a]){b.object._rc_events[a]=function(c){return b.object[b.method](c)}}if(b.element.addEventListener){b.element.addEventListener(b.event,b.object._rc_events[a],false)}else{if(b.element.attachEvent){b.element.detachEvent("on"+b.event,b.object._rc_events[a]);b.element.attachEvent("on"+b.event,b.object._rc_events[a])}else{b.element["on"+b.event]=b.object._rc_events[a]}}},remove_listener:function(b){if(!b.element){b.element=document}var a=b.event+"*"+b.method;if(b.object&&b.object._rc_events&&b.object._rc_events[a]){if(b.element.removeEventListener){b.element.removeEventListener(b.event,b.object._rc_events[a],false)}else{if(b.element.detachEvent){b.element.detachEvent("on"+b.event,b.object._rc_events[a])}else{b.element["on"+b.event]=null}}}},cancel:function(a){var b=a?a:window.event;if(b.preventDefault){b.preventDefault()}if(b.stopPropagation){b.stopPropagation()}b.cancelBubble=true;b.returnValue=false;return false},touchevent:function(a){return{pageX:a.pageX,pageY:a.pageY,offsetX:a.pageX-a.target.offsetLeft,offsetY:a.pageY-a.target.offsetTop,target:a.target,istouch:true}}};function rcube_event_engine(){this._events={}}rcube_event_engine.prototype={addEventListener:function(a,b,d){if(!this._events){this._events={}}if(!this._events[a]){this._events[a]=[]}var c={func:b,obj:d?d:window};this._events[a][this._events[a].length]=c},removeEventListener:function(a,d,e){if(e===undefined){e=window}for(var c,b=0;this._events&&this._events[a]&&b<this._events[a].length;b++){if((c=this._events[a][b])&&c.func==d&&c.obj==e){this._events[a][b]=null}}},triggerEvent:function(a,g){var b,d;if(g===undefined){g=this}else{if(typeof g==="object"){g.event=a}}if(this._events&&this._events[a]&&!this._event_exec){this._event_exec=true;for(var c=0;c<this._events[a].length;c++){if((d=this._events[a][c])){if(typeof d.func==="function"){b=d.func.call?d.func.call(d.obj,g):d.func(g)}else{if(typeof d.obj[d.func]==="function"){b=d.obj[d.func](g)}}if(b!==undefined&&!b){break}}}if(b&&b.event){try{delete b.event}catch(f){$(b).removeAttr("event")}}}this._event_exec=false;if(g.event){try{delete g.event}catch(f){$(g).removeAttr("event")}}return b}};function rcube_layer(b,a){this.name=b;this.create=function(m){var d=(m.x)?m.x:0,k=(m.y)?m.y:0,j=m.width,f=m.height,g=m.zindex,c=m.vis,i=m.parent,e=document.createElement("DIV");e.id=this.name;e.style.position="absolute";e.style.visibility=(c)?(c==2)?"inherit":"visible":"hidden";e.style.left=d+"px";e.style.top=k+"px";if(j){e.style.width=j.toString().match(/\%$/)?j:j+"px"}if(f){e.style.height=f.toString().match(/\%$/)?f:f+"px"}if(g){e.style.zIndex=g}if(i){i.appendChild(e)}else{document.body.appendChild(e)}this.elm=e};if(a!=null){this.create(a);this.name=this.elm.id}else{this.elm=document.getElementById(b)}if(!this.elm){return false}this.css=this.elm.style;this.event=this.elm;this.width=this.elm.offsetWidth;this.height=this.elm.offsetHeight;this.x=parseInt(this.elm.offsetLeft);this.y=parseInt(this.elm.offsetTop);this.visible=(this.css.visibility=="visible"||this.css.visibility=="show"||this.css.visibility=="inherit")?true:false;this.move=function(c,d){this.x=c;this.y=d;this.css.left=Math.round(this.x)+"px";this.css.top=Math.round(this.y)+"px"};this.resize=function(c,d){this.css.width=c+"px";this.css.height=d+"px";this.width=c;this.height=d};this.show=function(c){if(c==1){this.css.visibility="visible";this.visible=true}else{if(c==2){this.css.visibility="inherit";this.visible=true}else{this.css.visibility="hidden";this.visible=false}}};this.write=function(c){this.elm.innerHTML=c}}function rcube_check_email(h,c){if(h&&window.RegExp){var f="[^\\x0d\\x22\\x5c\\x80-\\xff]",e="[^\\x0d\\x5b-\\x5d\\x80-\\xff]",a="[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+",g="\\x5c[\\x00-\\x7f]",l="\\x22("+f+"|"+g+")*\\x22",k="\\[(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])){3}\\]",j="\\[IPv6:[0-9a-f:.]+\\]",i="("+k+")|("+j+")",r="(("+i+")|(([^@\\x2e]+\\x2e)+([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,})))",d=["\\u0645\\u062b\\u0627\\u0644\\x2e\\u0625\\u062e\\u062a\\u0628\\u0627\\u0631","\\u4f8b\\u5b50\\x2e\\u6d4b\\u8bd5","\\u4f8b\\u5b50\\x2e\\u6e2c\\u8a66","\\u03c0\\u03b1\\u03c1\\u03ac\\u03b4\\u03b5\\u03b9\\u03b3\\u03bc\\u03b1\\x2e\\u03b4\\u03bf\\u03ba\\u03b9\\u03bc\\u03ae","\\u0909\\u0926\\u093e\\u0939\\u0930\\u0923\\x2e\\u092a\\u0930\\u0940\\u0915\\u094d\\u0937\\u093e","\\u4f8b\\u3048\\x2e\\u30c6\\u30b9\\u30c8","\\uc2e4\\ub840\\x2e\\ud14c\\uc2a4\\ud2b8","\\u0645\\u062b\\u0627\\u0644\\x2e\\u0622\\u0632\\u0645\\u0627\\u06cc\\u0634\u06cc","\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\\x2e\\u0438\\u0441\\u043f\\u044b\\u0442\\u0430\\u043d\\u0438\\u0435","\\u0b89\\u0ba4\\u0bbe\\u0bb0\\u0ba3\\u0bae\\u0bcd\\x2e\\u0baa\\u0bb0\\u0bbf\\u0b9f\\u0bcd\\u0b9a\\u0bc8","\\u05d1\\u05f2\\u05b7\\u05e9\\u05e4\\u05bc\\u05d9\\u05dc\\x2e\\u05d8\\u05e2\\u05e1\\u05d8"],p="mailtest\\x40("+d.join("|")+")",n="("+a+"|"+l+")",q="[,;s\n]",m=n+"(\\x2e"+n+")*",b="(("+m+"\\x40"+r+")|("+p+"))",o=c?new RegExp("(^|<|"+q+")"+b+"($|>|"+q+")","i"):new RegExp("^"+b+"$","i");return o.test(h)?true:false}return false}function rcube_clone_object(c){var a={};for(var b in c){if(c[b]&&typeof c[b]==="object"){a[b]=clone_object(c[b])}else{a[b]=c[b]}}return a}function urlencode(a){if(window.encodeURIComponent){return encodeURIComponent(a).replace("*","%2A")}return escape(a).replace("+","%2B").replace("*","%2A").replace("/","%2F").replace("@","%40")}function rcube_find_object(i,g){var h,a,c,b;if(!g){g=document}if(g.getElementsByName&&(b=g.getElementsByName(i))){c=b[0]}if(!c&&g.getElementById){c=g.getElementById(i)}if(!c&&g.all){c=g.all[i]}if(!c&&g.images.length){c=g.images[i]}if(!c&&g.forms.length){for(a=0;a<g.forms.length;a++){if(g.forms[a].name==i){c=g.forms[a]}else{if(g.forms[a].elements[i]){c=g.forms[a].elements[i]}}}}if(!c&&g.layers){if(g.layers[i]){c=g.layers[i]}for(h=0;!c&&h<g.layers.length;h++){c=rcube_find_object(i,g.layers[h].document)}}return c}function rcube_mouse_is_over(b,c){var a=rcube_event.get_mouse_pos(b),d=$(c).offset();return((a.x>=d.left)&&(a.x<(d.left+c.offsetWidth))&&(a.y>=d.top)&&(a.y<(d.top+c.offsetHeight)))}function setCookie(c,e,a,g,d,f){var b=c+"="+escape(e)+(a?"; expires="+a.toGMTString():"")+(g?"; path="+g:"")+(d?"; domain="+d:"")+(f?"; secure":"");document.cookie=b}function getCookie(c){var b=document.cookie,e=c+"=",d=b.indexOf("; "+e);if(d==-1){d=b.indexOf(e);if(d!=0){return null}}else{d+=2}var a=b.indexOf(";",d);if(a==-1){a=b.length}return unescape(b.substring(d+e.length,a))}roundcube_browser.prototype.set_cookie=setCookie;roundcube_browser.prototype.get_cookie=getCookie;function rcube_console(){this.log=function(b){var a=rcube_find_object("dbgconsole");if(a){if(b.charAt(b.length-1)=="\n"){b+="--------------------------------------\n"}else{b+="\n--------------------------------------\n"}if(bw.konq){a.innerText+=b;a.value=a.innerText}else{a.value+=b}}};this.reset=function(){var a=rcube_find_object("dbgconsole");if(a){a.innerText=a.value=""}}}var bw=new roundcube_browser();bw.set_html_class();RegExp.escape=function(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};Date.prototype.getStdTimezoneOffset=function(){var a=12,c=new Date(null,a,1),b=c.getTimezoneOffset();while(--a){c.setUTCMonth(a);if(b!=c.getTimezoneOffset()){return Math.max(b,c.getTimezoneOffset())}}return b};if(bw.ie){document._getElementById=document.getElementById;document.getElementById=function(c){var a=0,b=document._getElementById(c);if(b&&b.id!=c){while((b=document.all[a])&&b.id!=c){a++}}return b}}jQuery.fn.placeholder=function(a){return this.each(function(){var d=false,b=$(this);this.title=a;if("placeholder" in this){b.attr("placeholder",a)}else{this._placeholder=a;b.blur(function(f){if($.trim(b.val())==""){b.val(a)}b.triggerHandler("change")}).focus(function(f){if($.trim(b.val())==a){b.val("")}b.triggerHandler("change")}).change(function(g){var f=b.val()==a;b[(f?"addClass":"removeClass")]("placeholder").attr("spellcheck",f)});try{d=this==document.activeElement}catch(c){}if(!d){b.blur()}}})};var Base64=(function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var b={encode:function(f){if(typeof(window.btoa)==="function"){return btoa(f)}var n,l,j,m,k,h,g,d=0,c="",e=f.length;do{n=f.charCodeAt(d++);l=f.charCodeAt(d++);j=f.charCodeAt(d++);m=n>>2;k=((n&3)<<4)|(l>>4);h=((l&15)<<2)|(j>>6);g=j&63;if(isNaN(l)){h=g=64}else{if(isNaN(j)){g=64}}c=c+a.charAt(m)+a.charAt(k)+a.charAt(h)+a.charAt(g)}while(d<e);return c},decode:function(f){if(typeof(window.atob)==="function"){return atob(f)}var n,l,j,m,k,h,g,e,d=0,c="";f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");e=f.length;do{m=a.indexOf(f.charAt(d++));k=a.indexOf(f.charAt(d++));h=a.indexOf(f.charAt(d++));g=a.indexOf(f.charAt(d++));n=(m<<2)|(k>>4);l=((k&15)<<4)|(h>>2);j=((h&3)<<6)|g;c=c+String.fromCharCode(n);if(h!=64){c=c+String.fromCharCode(l)}if(g!=64){c=c+String.fromCharCode(j)}}while(d<e);return c}};return b})(); \ No newline at end of file
diff --git a/program/js/editor.js b/program/js/editor.js
index 020971d6e..bc36e9a39 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -41,7 +41,7 @@ function rcmail_editor_init(config)
$.extend(conf, {
plugins: 'paste,tabfocus',
theme_advanced_buttons1: 'bold,italic,underline,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,separator,outdent,indent,charmap,hr,link,unlink,code,forecolor',
- theme_advanced_buttons2: 'fontselect,fontsizeselect'
+ theme_advanced_buttons2: ',fontselect,fontsizeselect'
});
else { // mail compose
$.extend(conf, {
@@ -74,18 +74,11 @@ function rcmail_editor_init(config)
// react to real individual tinyMCE editor init
function rcmail_editor_callback()
{
- var css = {},
- elem = rcube_find_object('_from'),
+ var elem = rcube_find_object('_from'),
fe = rcmail.env.compose_focus_elem;
if (rcmail.env.default_font)
- css['font-family'] = rcmail.env.default_font;
-
- if (rcmail.env.default_font_size)
- css['font-size'] = rcmail.env.default_font_size;
-
- if (css['font-family'] || css['font-size'])
- $(tinyMCE.get(rcmail.env.composebody).getBody()).css(css);
+ $(tinyMCE.get(rcmail.env.composebody).getBody()).css('font-family', rcmail.env.default_font);
if (elem && elem.type == 'select-one') {
rcmail.change_identity(elem);
@@ -161,8 +154,8 @@ function rcmail_editor_images()
for (i in files) {
att = files[i];
- if (att.complete && att.mimetype.startsWith('image/')) {
- list.push([att.name, rcmail.env.comm_path+'&_id='+rcmail.env.compose_id+'&_action=display-attachment&_file='+i]);
+ if (att.complete && att.mimetype.indexOf('image/') == 0) {
+ list.push([att.name, rcmail.env.comm_path+'&_action=display-attachment&_file='+i+'&_id='+rcmail.env.compose_id]);
}
}
diff --git a/program/js/googiespell.js b/program/js/googiespell.js
index 9832116dd..6d0a19c06 100644
--- a/program/js/googiespell.js
+++ b/program/js/googiespell.js
@@ -1,1135 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube SpellCheck script |
- | jQuery'fied spell checker based on GoogieSpell 4.0 |
- | (which was published under GPL "version 2 or any later version") |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006 Amir Salihefendic |
- | Copyright (C) 2009 The Roundcube Dev Team |
- | Copyright (C) 2011 Kolab Systems AG |
- | |
- | 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. |
- | |
- +-----------------------------------------------------------------------+
- | Authors: 4mir Salihefendic <amix@amix.dk> |
- | Aleksander Machniak - <alec [at] alec.pl> |
- +-----------------------------------------------------------------------+
-*/
-
-var GOOGIE_CUR_LANG,
- GOOGIE_DEFAULT_LANG = 'en';
-
-function GoogieSpell(img_dir, server_url, has_dict)
-{
- var ref = this,
- cookie_value = rcmail.get_cookie('language');
-
- GOOGIE_CUR_LANG = cookie_value != null ? cookie_value : GOOGIE_DEFAULT_LANG;
-
- this.array_keys = function(arr) {
- var res = [];
- for (var key in arr) { res.push([key]); }
- return res;
- }
-
- this.img_dir = img_dir;
- this.server_url = server_url;
-
- this.org_lang_to_word = {
- "da": "Dansk", "de": "Deutsch", "en": "English",
- "es": "Español", "fr": "Français", "it": "Italiano",
- "nl": "Nederlands", "pl": "Polski", "pt": "Português",
- "ru": "РуÑÑкий", "fi": "Suomi", "sv": "Svenska"
- };
- this.lang_to_word = this.org_lang_to_word;
- this.langlist_codes = this.array_keys(this.lang_to_word);
- this.show_change_lang_pic = true;
- this.change_lang_pic_placement = 'right';
- this.report_state_change = true;
-
- this.ta_scroll_top = 0;
- this.el_scroll_top = 0;
-
- this.lang_chck_spell = "Check spelling";
- this.lang_revert = "Revert to";
- this.lang_close = "Close";
- this.lang_rsm_edt = "Resume editing";
- this.lang_no_error_found = "No spelling errors found";
- this.lang_no_suggestions = "No suggestions";
- this.lang_learn_word = "Add to dictionary";
-
- this.show_spell_img = false; // roundcube mod.
- this.decoration = true;
- this.use_close_btn = false;
- this.edit_layer_dbl_click = true;
- this.report_ta_not_found = true;
-
- // Extensions
- this.custom_ajax_error = null;
- this.custom_no_spelling_error = null;
- this.custom_menu_builder = []; // Should take an eval function and a build menu function
- this.custom_item_evaulator = null; // Should take an eval function and a build menu function
- this.extra_menu_items = [];
- this.custom_spellcheck_starter = null;
- this.main_controller = true;
- this.has_dictionary = has_dict;
-
- // Observers
- this.lang_state_observer = null;
- this.spelling_state_observer = null;
- this.show_menu_observer = null;
- this.all_errors_fixed_observer = null;
-
- // Focus links - used to give the text box focus
- this.use_focus = false;
- this.focus_link_t = null;
- this.focus_link_b = null;
-
- // Counters
- this.cnt_errors = 0;
- this.cnt_errors_fixed = 0;
-
- // Set document's onclick to hide the language and error menu
- $(document).bind('click', function(e) {
- var target = $(e.target);
- if(target.attr('googie_action_btn') != '1' && ref.isLangWindowShown())
- ref.hideLangWindow();
- if(target.attr('googie_action_btn') != '1' && ref.isErrorWindowShown())
- ref.hideErrorWindow();
- });
-
-
-this.decorateTextarea = function(id)
-{
- this.text_area = typeof id === 'string' ? document.getElementById(id) : id;
-
- if (this.text_area) {
- if (!this.spell_container && this.decoration) {
- var table = document.createElement('table'),
- tbody = document.createElement('tbody'),
- tr = document.createElement('tr'),
- spell_container = document.createElement('td'),
- r_width = this.isDefined(this.force_width) ? this.force_width : this.text_area.offsetWidth,
- r_height = this.isDefined(this.force_height) ? this.force_height : 16;
-
- tr.appendChild(spell_container);
- tbody.appendChild(tr);
- $(table).append(tbody).insertBefore(this.text_area).width('100%').height(r_height);
- $(spell_container).height(r_height).width(r_width).css('text-align', 'right');
-
- this.spell_container = spell_container;
- }
-
- this.checkSpellingState();
- }
- else if (this.report_ta_not_found)
- alert('Text area not found');
-};
-
-//////
-// API Functions (the ones that you can call)
-/////
-this.setSpellContainer = function(id)
-{
- this.spell_container = typeof id === 'string' ? document.getElementById(id) : id;
-};
-
-this.setLanguages = function(lang_dict)
-{
- this.lang_to_word = lang_dict;
- this.langlist_codes = this.array_keys(lang_dict);
-};
-
-this.setCurrentLanguage = function(lan_code)
-{
- GOOGIE_CUR_LANG = lan_code;
-
- //Set cookie
- var now = new Date();
- now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
- rcmail.set_cookie('language', lan_code, now);
-};
-
-this.setForceWidthHeight = function(width, height)
-{
- // Set to null if you want to use one of them
- this.force_width = width;
- this.force_height = height;
-};
-
-this.setDecoration = function(bool)
-{
- this.decoration = bool;
-};
-
-this.dontUseCloseButtons = function()
-{
- this.use_close_btn = false;
-};
-
-this.appendNewMenuItem = function(name, call_back_fn, checker)
-{
- this.extra_menu_items.push([name, call_back_fn, checker]);
-};
-
-this.appendCustomMenuBuilder = function(eval_fn, builder)
-{
- this.custom_menu_builder.push([eval_fn, builder]);
-};
-
-this.setFocus = function()
-{
- try {
- this.focus_link_b.focus();
- this.focus_link_t.focus();
- return true;
- }
- catch(e) {
- return false;
- }
-};
-
-
-//////
-// Set functions (internal)
-/////
-this.setStateChanged = function(current_state)
-{
- this.state = current_state;
- if (this.spelling_state_observer != null && this.report_state_change)
- this.spelling_state_observer(current_state, this);
-};
-
-this.setReportStateChange = function(bool)
-{
- this.report_state_change = bool;
-};
-
-
-//////
-// Request functions
-/////
-this.getUrl = function()
-{
- return this.server_url + GOOGIE_CUR_LANG;
-};
-
-this.escapeSpecial = function(val)
-{
- return val ? val.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;") : '';
-};
-
-this.createXMLReq = function (text)
-{
- return '<?xml version="1.0" encoding="utf-8" ?>'
- + '<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">'
- + '<text>' + text + '</text></spellrequest>';
-};
-
-this.spellCheck = function(ignore)
-{
- this.prepare(ignore);
-
- var req_text = this.escapeSpecial(this.orginal_text),
- ref = this;
-
- $.ajax({ type: 'POST', url: this.getUrl(), data: this.createXMLReq(req_text), dataType: 'text',
- error: function(o) {
- if (ref.custom_ajax_error)
- ref.custom_ajax_error(ref);
- else
- alert('An error was encountered on the server. Please try again later.');
- if (ref.main_controller) {
- $(ref.spell_span).remove();
- ref.removeIndicator();
- }
- ref.checkSpellingState();
- },
- success: function(data) {
- ref.processData(data);
- if (!ref.results.length) {
- if (!ref.custom_no_spelling_error)
- ref.flashNoSpellingErrorState();
- else
- ref.custom_no_spelling_error(ref);
- }
- ref.removeIndicator();
- }
- });
-};
-
-this.learnWord = function(word, id)
-{
- word = this.escapeSpecial(word.innerHTML);
-
- var ref = this,
- req_text = '<?xml version="1.0" encoding="utf-8" ?><learnword><text>' + word + '</text></learnword>';
-
- $.ajax({ type: 'POST', url: this.getUrl(), data: req_text, dataType: 'text',
- error: function(o) {
- if (ref.custom_ajax_error)
- ref.custom_ajax_error(ref);
- else
- alert('An error was encountered on the server. Please try again later.');
- },
- success: function(data) {
- }
- });
-};
-
-
-//////
-// Spell checking functions
-/////
-this.prepare = function(ignore, no_indicator)
-{
- this.cnt_errors_fixed = 0;
- this.cnt_errors = 0;
- this.setStateChanged('checking_spell');
-
- if (!no_indicator && this.main_controller)
- this.appendIndicator(this.spell_span);
-
- this.error_links = [];
- this.ta_scroll_top = this.text_area.scrollTop;
- this.ignore = ignore;
- this.hideLangWindow();
-
- if ($(this.text_area).val() == '' || ignore) {
- if (!this.custom_no_spelling_error)
- this.flashNoSpellingErrorState();
- else
- this.custom_no_spelling_error(this);
- this.removeIndicator();
- return;
- }
-
- this.createEditLayer(this.text_area.offsetWidth, this.text_area.offsetHeight);
- this.createErrorWindow();
- $('body').append(this.error_window);
-
- try { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); }
- catch (e) { }
-
- if (this.main_controller)
- $(this.spell_span).unbind('click');
-
- this.orginal_text = $(this.text_area).val();
-};
-
-this.parseResult = function(r_text)
-{
- // Returns an array: result[item] -> ['attrs'], ['suggestions']
- var re_split_attr_c = /\w+="(\d+|true)"/g,
- re_split_text = /\t/g,
- matched_c = r_text.match(/<c[^>]*>[^<]*<\/c>/g),
- results = [];
-
- if (matched_c == null)
- return results;
-
- for (var i=0, len=matched_c.length; i < len; i++) {
- var item = [];
- this.errorFound();
-
- // Get attributes
- item['attrs'] = [];
- var c_attr, val,
- split_c = matched_c[i].match(re_split_attr_c);
- for (var j=0; j < split_c.length; j++) {
- c_attr = split_c[j].split(/=/);
- val = c_attr[1].replace(/"/g, '');
- item['attrs'][c_attr[0]] = val != 'true' ? parseInt(val) : val;
- }
-
- // Get suggestions
- item['suggestions'] = [];
- var only_text = matched_c[i].replace(/<[^>]*>/g, ''),
- split_t = only_text.split(re_split_text);
- for (var k=0; k < split_t.length; k++) {
- if(split_t[k] != '')
- item['suggestions'].push(split_t[k]);
- }
- results.push(item);
- }
-
- return results;
-};
-
-this.processData = function(data)
-{
- this.results = this.parseResult(data);
- if (this.results.length) {
- this.showErrorsInIframe();
- this.resumeEditingState();
- }
-};
-
-//////
-// Error menu functions
-/////
-this.createErrorWindow = function()
-{
- this.error_window = document.createElement('div');
- $(this.error_window).addClass('googie_window popupmenu').attr('googie_action_btn', '1');
-};
-
-this.isErrorWindowShown = function()
-{
- return $(this.error_window).is(':visible');
-};
-
-this.hideErrorWindow = function()
-{
- $(this.error_window).hide();
- $(this.error_window_iframe).hide();
-};
-
-this.updateOrginalText = function(offset, old_value, new_value, id)
-{
- var part_1 = this.orginal_text.substring(0, offset),
- part_2 = this.orginal_text.substring(offset+old_value.length),
- add_2_offset = new_value.length - old_value.length;
-
- this.orginal_text = part_1 + new_value + part_2;
- $(this.text_area).val(this.orginal_text);
- for (var j=0, len=this.results.length; j<len; j++) {
- // Don't edit the offset of the current item
- if (j != id && j > id)
- this.results[j]['attrs']['o'] += add_2_offset;
- }
-};
-
-this.saveOldValue = function(elm, old_value) {
- elm.is_changed = true;
- elm.old_value = old_value;
-};
-
-this.createListSeparator = function()
-{
- var td = document.createElement('td'),
- tr = document.createElement('tr');
-
- $(td).html(' ').attr('googie_action_btn', '1')
- .css({'cursor': 'default', 'font-size': '3px', 'border-top': '1px solid #ccc', 'padding-top': '3px'});
- tr.appendChild(td);
-
- return tr;
-};
-
-this.correctError = function(id, elm, l_elm, rm_pre_space)
-{
- var old_value = elm.innerHTML,
- new_value = l_elm.nodeType == 3 ? l_elm.nodeValue : l_elm.innerHTML,
- offset = this.results[id]['attrs']['o'];
-
- if (rm_pre_space) {
- var pre_length = elm.previousSibling.innerHTML;
- elm.previousSibling.innerHTML = pre_length.slice(0, pre_length.length-1);
- old_value = " " + old_value;
- offset--;
- }
-
- this.hideErrorWindow();
- this.updateOrginalText(offset, old_value, new_value, id);
-
- $(elm).html(new_value).css('color', 'green').attr('is_corrected', true);
-
- this.results[id]['attrs']['l'] = new_value.length;
-
- if (!this.isDefined(elm.old_value))
- this.saveOldValue(elm, old_value);
-
- this.errorFixed();
-};
-
-this.ignoreError = function(elm, id)
-{
- // @TODO: ignore all same words
- $(elm).removeAttr('class').css('color', '').unbind();
- this.hideErrorWindow();
-};
-
-this.showErrorWindow = function(elm, id)
-{
- if (this.show_menu_observer)
- this.show_menu_observer(this);
-
- var ref = this,
- pos = $(elm).offset(),
- table = document.createElement('table'),
- list = document.createElement('tbody');
-
- $(this.error_window).html('');
- $(table).addClass('googie_list').attr('googie_action_btn', '1');
-
- // Check if we should use custom menu builder, if not we use the default
- var changed = false;
- for (var k=0; k<this.custom_menu_builder.length; k++) {
- var eb = this.custom_menu_builder[k];
- if (eb[0](this.results[id])) {
- changed = eb[1](this, list, elm);
- break;
- }
- }
-
- if (!changed) {
- // Build up the result list
- var suggestions = this.results[id]['suggestions'],
- offset = this.results[id]['attrs']['o'],
- len = this.results[id]['attrs']['l'],
- row, item, dummy;
-
- // [Add to dictionary] button
- if (this.has_dictionary && !$(elm).attr('is_corrected')) {
- row = document.createElement('tr'),
- item = document.createElement('td'),
- dummy = document.createElement('span');
-
- $(dummy).text(this.lang_learn_word);
- $(item).attr('googie_action_btn', '1').css('cursor', 'default')
- .mouseover(ref.item_onmouseover)
- .mouseout(ref.item_onmouseout)
- .click(function(e) {
- ref.learnWord(elm, id);
- ref.ignoreError(elm, id);
- });
-
- item.appendChild(dummy);
- row.appendChild(item);
- list.appendChild(row);
- }
-/*
- if (suggestions.length == 0) {
- row = document.createElement('tr'),
- item = document.createElement('td'),
- dummy = document.createElement('span');
-
- $(dummy).text(this.lang_no_suggestions);
- $(item).attr('googie_action_btn', '1').css('cursor', 'default');
-
- item.appendChild(dummy);
- row.appendChild(item);
- list.appendChild(row);
- }
-*/
- for (var i=0, len=suggestions.length; i < len; i++) {
- row = document.createElement('tr'),
- item = document.createElement('td'),
- dummy = document.createElement('span');
-
- $(dummy).html(suggestions[i]);
-
- $(item).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout)
- .click(function(e) { ref.correctError(id, elm, e.target.firstChild) });
-
- item.appendChild(dummy);
- row.appendChild(item);
- list.appendChild(row);
- }
-
- // The element is changed, append the revert
- if (elm.is_changed && elm.innerHTML != elm.old_value) {
- var old_value = elm.old_value,
- revert_row = document.createElement('tr'),
- revert = document.createElement('td'),
- rev_span = document.createElement('span');
-
- $(rev_span).addClass('googie_list_revert').html(this.lang_revert + ' ' + old_value);
-
- $(revert).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout)
- .click(function(e) {
- ref.updateOrginalText(offset, elm.innerHTML, old_value, id);
- $(elm).removeAttr('is_corrected').css('color', '#b91414').html(old_value);
- ref.hideErrorWindow();
- });
-
- revert.appendChild(rev_span);
- revert_row.appendChild(revert);
- list.appendChild(revert_row);
- }
-
- // Append the edit box
- var edit_row = document.createElement('tr'),
- edit = document.createElement('td'),
- edit_input = document.createElement('input'),
- ok_pic = document.createElement('img'),
- edit_form = document.createElement('form');
-
- var onsub = function () {
- if (edit_input.value != '') {
- if (!ref.isDefined(elm.old_value))
- ref.saveOldValue(elm, elm.innerHTML);
-
- ref.updateOrginalText(offset, elm.innerHTML, edit_input.value, id);
- $(elm).attr('is_corrected', true).css('color', 'green').html(edit_input.value);
- ref.hideErrorWindow();
- }
- return false;
- };
-
- $(edit_input).width(120).css({'margin': 0, 'padding': 0});
- $(edit_input).val(elm.innerHTML).attr('googie_action_btn', '1');
- $(edit).css('cursor', 'default').attr('googie_action_btn', '1');
-
- $(ok_pic).attr('src', this.img_dir + 'ok.gif')
- .width(32).height(16)
- .css({'cursor': 'pointer', 'margin-left': '2px', 'margin-right': '2px'})
- .click(onsub);
-
- $(edit_form).attr('googie_action_btn', '1')
- .css({'margin': 0, 'padding': 0, 'cursor': 'default', 'white-space': 'nowrap'})
- .submit(onsub);
-
- edit_form.appendChild(edit_input);
- edit_form.appendChild(ok_pic);
- edit.appendChild(edit_form);
- edit_row.appendChild(edit);
- list.appendChild(edit_row);
-
- // Append extra menu items
- if (this.extra_menu_items.length > 0)
- list.appendChild(this.createListSeparator());
-
- var loop = function(i) {
- if (i < ref.extra_menu_items.length) {
- var e_elm = ref.extra_menu_items[i];
-
- if (!e_elm[2] || e_elm[2](elm, ref)) {
- var e_row = document.createElement('tr'),
- e_col = document.createElement('td');
-
- $(e_col).html(e_elm[0])
- .mouseover(ref.item_onmouseover)
- .mouseout(ref.item_onmouseout)
- .click(function() { return e_elm[1](elm, ref) });
-
- e_row.appendChild(e_col);
- list.appendChild(e_row);
- }
- loop(i+1);
- }
- };
-
- loop(0);
- loop = null;
-
- //Close button
- if (this.use_close_btn) {
- list.appendChild(this.createCloseButton(this.hideErrorWindow));
- }
- }
-
- table.appendChild(list);
- this.error_window.appendChild(table);
-
- // calculate and set position
- var height = $(this.error_window).height(),
- width = $(this.error_window).width(),
- pageheight = $(document).height(),
- pagewidth = $(document).width(),
- top = pos.top + height + 20 < pageheight ? pos.top + 20 : pos.top - height,
- left = pos.left + width < pagewidth ? pos.left : pos.left - width;
-
- $(this.error_window).css({'top': top+'px', 'left': left+'px'}).show();
-
- // Dummy for IE - dropdown bug fix
- if (document.all && !window.opera) {
- if (!this.error_window_iframe) {
- var iframe = $('<iframe>').css({'position': 'absolute', 'z-index': -1});
- $('body').append(iframe);
- this.error_window_iframe = iframe;
- }
-
- $(this.error_window_iframe)
- .css({'top': this.error_window.offsetTop, 'left': this.error_window.offsetLeft,
- 'width': this.error_window.offsetWidth, 'height': this.error_window.offsetHeight})
- .show();
- }
-};
-
-
-//////
-// Edit layer (the layer where the suggestions are stored)
-//////
-this.createEditLayer = function(width, height)
-{
- this.edit_layer = document.createElement('div');
- $(this.edit_layer).addClass('googie_edit_layer').attr('id', 'googie_edit_layer')
- .width('auto').height(height);
-
- if (this.text_area.nodeName.toLowerCase() != 'input' || $(this.text_area).val() == '') {
- $(this.edit_layer).css('overflow', 'auto').height(height-4);
- } else {
- $(this.edit_layer).css('overflow', 'hidden');
- }
-
- var ref = this;
-
- if (this.edit_layer_dbl_click) {
- $(this.edit_layer).dblclick(function(e) {
- if (e.target.className != 'googie_link' && !ref.isErrorWindowShown()) {
- ref.resumeEditing();
- var fn1 = function() {
- $(ref.text_area).focus();
- fn1 = null;
- };
- window.setTimeout(fn1, 10);
- }
- return false;
- });
- }
-};
-
-this.resumeEditing = function()
-{
- this.setStateChanged('ready');
-
- if (this.edit_layer)
- this.el_scroll_top = this.edit_layer.scrollTop;
-
- this.hideErrorWindow();
-
- if (this.main_controller)
- $(this.spell_span).removeClass().addClass('googie_no_style');
-
- if (!this.ignore) {
- if (this.use_focus) {
- $(this.focus_link_t).remove();
- $(this.focus_link_b).remove();
- }
-
- $(this.edit_layer).remove();
- $(this.text_area).show();
-
- if (this.el_scroll_top != undefined)
- this.text_area.scrollTop = this.el_scroll_top;
- }
- this.checkSpellingState(false);
-};
-
-this.createErrorLink = function(text, id)
-{
- var elm = document.createElement('span'),
- ref = this,
- d = function (e) {
- ref.showErrorWindow(elm, id);
- d = null;
- return false;
- };
-
- $(elm).html(text).addClass('googie_link').click(d).removeAttr('is_corrected')
- .attr({'googie_action_btn' : '1', 'g_id' : id});
-
- return elm;
-};
-
-this.createPart = function(txt_part)
-{
- if (txt_part == " ")
- return document.createTextNode(" ");
-
- txt_part = this.escapeSpecial(txt_part);
- txt_part = txt_part.replace(/\n/g, "<br>");
- txt_part = txt_part.replace(/ /g, " &nbsp;");
- txt_part = txt_part.replace(/^ /g, "&nbsp;");
- txt_part = txt_part.replace(/ $/g, "&nbsp;");
-
- var span = document.createElement('span');
- $(span).html(txt_part);
- return span;
-};
-
-this.showErrorsInIframe = function()
-{
- var output = document.createElement('div'),
- pointer = 0,
- results = this.results;
-
- if (results.length > 0) {
- for (var i=0, length=results.length; i < length; i++) {
- var offset = results[i]['attrs']['o'],
- len = results[i]['attrs']['l'],
- part_1_text = this.orginal_text.substring(pointer, offset),
- part_1 = this.createPart(part_1_text);
-
- output.appendChild(part_1);
- pointer += offset - pointer;
-
- // If the last child was an error, then insert some space
- var err_link = this.createErrorLink(this.orginal_text.substr(offset, len), i);
- this.error_links.push(err_link);
- output.appendChild(err_link);
- pointer += len;
- }
-
- // Insert the rest of the orginal text
- var part_2_text = this.orginal_text.substr(pointer, this.orginal_text.length),
- part_2 = this.createPart(part_2_text);
-
- output.appendChild(part_2);
- }
- else
- output.innerHTML = this.orginal_text;
-
- $(output).css('text-align', 'left');
-
- var me = this;
- if (this.custom_item_evaulator)
- $.map(this.error_links, function(elm){me.custom_item_evaulator(me, elm)});
-
- $(this.edit_layer).append(output);
-
- // Hide text area and show edit layer
- $(this.text_area).hide();
- $(this.edit_layer).insertBefore(this.text_area);
-
- if (this.use_focus) {
- this.focus_link_t = this.createFocusLink('focus_t');
- this.focus_link_b = this.createFocusLink('focus_b');
-
- $(this.focus_link_t).insertBefore(this.edit_layer);
- $(this.focus_link_b).insertAfter(this.edit_layer);
- }
-
-// this.edit_layer.scrollTop = this.ta_scroll_top;
-};
-
-
-//////
-// Choose language menu
-//////
-this.createLangWindow = function()
-{
- this.language_window = document.createElement('div');
- $(this.language_window).addClass('googie_window popupmenu')
- .width(100).attr('googie_action_btn', '1');
-
- // Build up the result list
- var table = document.createElement('table'),
- list = document.createElement('tbody'),
- ref = this,
- row, item, span;
-
- $(table).addClass('googie_list').width('100%');
- this.lang_elms = [];
-
- for (i=0; i < this.langlist_codes.length; i++) {
- row = document.createElement('tr');
- item = document.createElement('td');
- span = document.createElement('span');
-
- $(span).text(this.lang_to_word[this.langlist_codes[i]]);
- this.lang_elms.push(item);
-
- $(item).attr('googieId', this.langlist_codes[i])
- .bind('click', function(e) {
- ref.deHighlightCurSel();
- ref.setCurrentLanguage($(this).attr('googieId'));
-
- if (ref.lang_state_observer != null) {
- ref.lang_state_observer();
- }
-
- ref.highlightCurSel();
- ref.hideLangWindow();
- })
- .bind('mouseover', function(e) {
- if (this.className != "googie_list_selected")
- this.className = "googie_list_onhover";
- })
- .bind('mouseout', function(e) {
- if (this.className != "googie_list_selected")
- this.className = "googie_list_onout";
- });
-
- item.appendChild(span);
- row.appendChild(item);
- list.appendChild(row);
- }
-
- // Close button
- if (this.use_close_btn) {
- list.appendChild(this.createCloseButton(function () { ref.hideLangWindow.apply(ref) }));
- }
-
- this.highlightCurSel();
-
- table.appendChild(list);
- this.language_window.appendChild(table);
-};
-
-this.isLangWindowShown = function()
-{
- return $(this.language_window).is(':visible');
-};
-
-this.hideLangWindow = function()
-{
- $(this.language_window).hide();
- $(this.switch_lan_pic).removeClass().addClass('googie_lang_3d_on');
-};
-
-this.showLangWindow = function(elm)
-{
- if (this.show_menu_observer)
- this.show_menu_observer(this);
-
- this.createLangWindow();
- $('body').append(this.language_window);
-
- var pos = $(elm).offset(),
- height = $(elm).height(),
- width = $(elm).width(),
- h = $(this.language_window).height(),
- pageheight = $(document).height(),
- left = this.change_lang_pic_placement == 'right' ?
- pos.left - 100 + width : pos.left + width,
- top = pos.top + h < pageheight ? pos.top + height : pos.top - h - 4;
-
- $(this.language_window).css({'top' : top+'px','left' : left+'px'}).show();
-
- this.highlightCurSel();
-};
-
-this.deHighlightCurSel = function()
-{
- $(this.lang_cur_elm).removeClass().addClass('googie_list_onout');
-};
-
-this.highlightCurSel = function()
-{
- if (GOOGIE_CUR_LANG == null)
- GOOGIE_CUR_LANG = GOOGIE_DEFAULT_LANG;
- for (var i=0; i < this.lang_elms.length; i++) {
- if ($(this.lang_elms[i]).attr('googieId') == GOOGIE_CUR_LANG) {
- this.lang_elms[i].className = 'googie_list_selected';
- this.lang_cur_elm = this.lang_elms[i];
- }
- else {
- this.lang_elms[i].className = 'googie_list_onout';
- }
- }
-};
-
-this.createChangeLangPic = function()
-{
- var img = $('<img>')
- .attr({src: this.img_dir + 'change_lang.gif', 'alt': 'Change language', 'googie_action_btn': '1'}),
- switch_lan = document.createElement('span');
- ref = this;
-
- $(switch_lan).addClass('googie_lang_3d_on')
- .append(img)
- .bind('click', function(e) {
- var elm = this.tagName.toLowerCase() == 'img' ? this.parentNode : this;
- if($(elm).hasClass('googie_lang_3d_click')) {
- elm.className = 'googie_lang_3d_on';
- ref.hideLangWindow();
- }
- else {
- elm.className = 'googie_lang_3d_click';
- ref.showLangWindow(elm);
- }
- });
-
- return switch_lan;
-};
-
-this.createSpellDiv = function()
-{
- var span = document.createElement('span');
-
- $(span).addClass('googie_check_spelling_link').text(this.lang_chck_spell);
-
- if (this.show_spell_img) {
- $(span).append(' ').append($('<img>').attr('src', this.img_dir + 'spellc.gif'));
- }
- return span;
-};
-
-
-//////
-// State functions
-/////
-this.flashNoSpellingErrorState = function(on_finish)
-{
- this.setStateChanged('no_error_found');
-
- var ref = this;
- if (this.main_controller) {
- var no_spell_errors;
- if (on_finish) {
- var fn = function() {
- on_finish();
- ref.checkSpellingState();
- };
- no_spell_errors = fn;
- }
- else
- no_spell_errors = function () { ref.checkSpellingState() };
-
- var rsm = $('<span>').text(this.lang_no_error_found);
-
- $(this.switch_lan_pic).hide();
- $(this.spell_span).empty().append(rsm)
- .removeClass().addClass('googie_check_spelling_ok');
-
- window.setTimeout(no_spell_errors, 1000);
- }
-};
-
-this.resumeEditingState = function()
-{
- this.setStateChanged('resume_editing');
-
- //Change link text to resume
- if (this.main_controller) {
- var rsm = $('<span>').text(this.lang_rsm_edt);
- var ref = this;
-
- $(this.switch_lan_pic).hide();
- $(this.spell_span).empty().unbind().append(rsm)
- .bind('click', function() { ref.resumeEditing() })
- .removeClass().addClass('googie_resume_editing');
- }
-
- try { this.edit_layer.scrollTop = this.ta_scroll_top; }
- catch (e) {};
-};
-
-this.checkSpellingState = function(fire)
-{
- if (fire)
- this.setStateChanged('ready');
-
- if (this.show_change_lang_pic)
- this.switch_lan_pic = this.createChangeLangPic();
- else
- this.switch_lan_pic = document.createElement('span');
-
- var span_chck = this.createSpellDiv(),
- ref = this;
-
- if (this.custom_spellcheck_starter)
- $(span_chck).bind('click', function(e) { ref.custom_spellcheck_starter() });
- else {
- $(span_chck).bind('click', function(e) { ref.spellCheck() });
- }
-
- if (this.main_controller) {
- if (this.change_lang_pic_placement == 'left') {
- $(this.spell_container).empty().append(this.switch_lan_pic).append(' ').append(span_chck);
- } else {
- $(this.spell_container).empty().append(span_chck).append(' ').append(this.switch_lan_pic);
- }
- }
-
- this.spell_span = span_chck;
-};
-
-
-//////
-// Misc. functions
-/////
-this.isDefined = function(o)
-{
- return (o !== undefined && o !== null)
-};
-
-this.errorFixed = function()
-{
- this.cnt_errors_fixed++;
- if (this.all_errors_fixed_observer)
- if (this.cnt_errors_fixed == this.cnt_errors) {
- this.hideErrorWindow();
- this.all_errors_fixed_observer();
- }
-};
-
-this.errorFound = function()
-{
- this.cnt_errors++;
-};
-
-this.createCloseButton = function(c_fn)
-{
- return this.createButton(this.lang_close, 'googie_list_close', c_fn);
-};
-
-this.createButton = function(name, css_class, c_fn)
-{
- var btn_row = document.createElement('tr'),
- btn = document.createElement('td'),
- spn_btn;
-
- if (css_class) {
- spn_btn = document.createElement('span');
- $(spn_btn).addClass(css_class).html(name);
- } else {
- spn_btn = document.createTextNode(name);
- }
-
- $(btn).bind('click', c_fn)
- .bind('mouseover', this.item_onmouseover)
- .bind('mouseout', this.item_onmouseout);
-
- btn.appendChild(spn_btn);
- btn_row.appendChild(btn);
-
- return btn_row;
-};
-
-this.removeIndicator = function(elm)
-{
- //$(this.indicator).remove();
- // roundcube mod.
- if (window.rcmail)
- rcmail.set_busy(false, null, this.rc_msg_id);
-};
-
-this.appendIndicator = function(elm)
-{
- // modified by roundcube
- if (window.rcmail)
- this.rc_msg_id = rcmail.set_busy(true, 'checking');
-/*
- this.indicator = document.createElement('img');
- $(this.indicator).attr('src', this.img_dir + 'indicator.gif')
- .css({'margin-right': '5px', 'text-decoration': 'none'}).width(16).height(16);
-
- if (elm)
- $(this.indicator).insertBefore(elm);
- else
- $('body').append(this.indicator);
-*/
-}
-
-this.createFocusLink = function(name)
-{
- var link = document.createElement('a');
- $(link).attr({'href': 'javascript:;', 'name': name});
- return link;
-};
-
-this.item_onmouseover = function(e)
-{
- if (this.className != 'googie_list_revert' && this.className != 'googie_list_close')
- this.className = 'googie_list_onhover';
- else
- this.parentNode.className = 'googie_list_onhover';
-};
-
-this.item_onmouseout = function(e)
-{
- if (this.className != 'googie_list_revert' && this.className != 'googie_list_close')
- this.className = 'googie_list_onout';
- else
- this.parentNode.className = 'googie_list_onout';
-};
-
-
-};
+var GOOGIE_CUR_LANG,GOOGIE_DEFAULT_LANG="en";function GoogieSpell(c,a,e){var b=this,d=rcmail.get_cookie("language");GOOGIE_CUR_LANG=d!=null?d:GOOGIE_DEFAULT_LANG;this.array_keys=function(f){var h=[];for(var g in f){h.push([g])}return h};this.img_dir=c;this.server_url=a;this.org_lang_to_word={da:"Dansk",de:"Deutsch",en:"English",es:"Español",fr:"Français",it:"Italiano",nl:"Nederlands",pl:"Polski",pt:"Português",ru:"РуÑÑкий",fi:"Suomi",sv:"Svenska"};this.lang_to_word=this.org_lang_to_word;this.langlist_codes=this.array_keys(this.lang_to_word);this.show_change_lang_pic=true;this.change_lang_pic_placement="right";this.report_state_change=true;this.ta_scroll_top=0;this.el_scroll_top=0;this.lang_chck_spell="Check spelling";this.lang_revert="Revert to";this.lang_close="Close";this.lang_rsm_edt="Resume editing";this.lang_no_error_found="No spelling errors found";this.lang_no_suggestions="No suggestions";this.lang_learn_word="Add to dictionary";this.show_spell_img=false;this.decoration=true;this.use_close_btn=false;this.edit_layer_dbl_click=true;this.report_ta_not_found=true;this.custom_ajax_error=null;this.custom_no_spelling_error=null;this.custom_menu_builder=[];this.custom_item_evaulator=null;this.extra_menu_items=[];this.custom_spellcheck_starter=null;this.main_controller=true;this.has_dictionary=e;this.lang_state_observer=null;this.spelling_state_observer=null;this.show_menu_observer=null;this.all_errors_fixed_observer=null;this.use_focus=false;this.focus_link_t=null;this.focus_link_b=null;this.cnt_errors=0;this.cnt_errors_fixed=0;$(document).bind("click",function(g){var f=$(g.target);if(f.attr("googie_action_btn")!="1"&&b.isLangWindowShown()){b.hideLangWindow()}if(f.attr("googie_action_btn")!="1"&&b.isErrorWindowShown()){b.hideErrorWindow()}});this.decorateTextarea=function(m){this.text_area=typeof m==="string"?document.getElementById(m):m;if(this.text_area){if(!this.spell_container&&this.decoration){var j=document.createElement("table"),g=document.createElement("tbody"),l=document.createElement("tr"),k=document.createElement("td"),f=this.isDefined(this.force_width)?this.force_width:this.text_area.offsetWidth,h=this.isDefined(this.force_height)?this.force_height:16;l.appendChild(k);g.appendChild(l);$(j).append(g).insertBefore(this.text_area).width("100%").height(h);$(k).height(h).width(f).css("text-align","right");this.spell_container=k}this.checkSpellingState()}else{if(this.report_ta_not_found){alert("Text area not found")}}};this.setSpellContainer=function(f){this.spell_container=typeof f==="string"?document.getElementById(f):f};this.setLanguages=function(f){this.lang_to_word=f;this.langlist_codes=this.array_keys(f)};this.setCurrentLanguage=function(g){GOOGIE_CUR_LANG=g;var f=new Date();f.setTime(f.getTime()+365*24*60*60*1000);rcmail.set_cookie("language",g,f)};this.setForceWidthHeight=function(g,f){this.force_width=g;this.force_height=f};this.setDecoration=function(f){this.decoration=f};this.dontUseCloseButtons=function(){this.use_close_btn=false};this.appendNewMenuItem=function(g,h,f){this.extra_menu_items.push([g,h,f])};this.appendCustomMenuBuilder=function(g,f){this.custom_menu_builder.push([g,f])};this.setFocus=function(){try{this.focus_link_b.focus();this.focus_link_t.focus();return true}catch(f){return false}};this.setStateChanged=function(f){this.state=f;if(this.spelling_state_observer!=null&&this.report_state_change){this.spelling_state_observer(f,this)}};this.setReportStateChange=function(f){this.report_state_change=f};this.getUrl=function(){return this.server_url+GOOGIE_CUR_LANG};this.escapeSpecial=function(f){return f?f.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):""};this.createXMLReq=function(f){return'<?xml version="1.0" encoding="utf-8" ?><spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><text>'+f+"</text></spellrequest>"};this.spellCheck=function(h){this.prepare(h);var g=this.escapeSpecial(this.orginal_text),f=this;$.ajax({type:"POST",url:this.getUrl(),data:this.createXMLReq(g),dataType:"text",error:function(j){if(f.custom_ajax_error){f.custom_ajax_error(f)}else{alert("An error was encountered on the server. Please try again later.")}if(f.main_controller){$(f.spell_span).remove();f.removeIndicator()}f.checkSpellingState()},success:function(j){f.processData(j);if(!f.results.length){if(!f.custom_no_spelling_error){f.flashNoSpellingErrorState()}else{f.custom_no_spelling_error(f)}}f.removeIndicator()}})};this.learnWord=function(h,j){h=this.escapeSpecial(h.innerHTML);var g=this,f='<?xml version="1.0" encoding="utf-8" ?><learnword><text>'+h+"</text></learnword>";$.ajax({type:"POST",url:this.getUrl(),data:f,dataType:"text",error:function(k){if(g.custom_ajax_error){g.custom_ajax_error(g)}else{alert("An error was encountered on the server. Please try again later.")}},success:function(k){}})};this.prepare=function(h,g){this.cnt_errors_fixed=0;this.cnt_errors=0;this.setStateChanged("checking_spell");if(!g&&this.main_controller){this.appendIndicator(this.spell_span)}this.error_links=[];this.ta_scroll_top=this.text_area.scrollTop;this.ignore=h;this.hideLangWindow();if($(this.text_area).val()==""||h){if(!this.custom_no_spelling_error){this.flashNoSpellingErrorState()}else{this.custom_no_spelling_error(this)}this.removeIndicator();return}this.createEditLayer(this.text_area.offsetWidth,this.text_area.offsetHeight);this.createErrorWindow();$("body").append(this.error_window);try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(f){}if(this.main_controller){$(this.spell_span).unbind("click")}this.orginal_text=$(this.text_area).val()};this.parseResult=function(s){var l=/\w+="(\d+|true)"/g,o=/\t/g,f=s.match(/<c[^>]*>[^<]*<\/c>/g),p=[];if(f==null){return p}for(var q=0,r=f.length;q<r;q++){var w=[];this.errorFound();w.attrs=[];var u,h,v=f[q].match(l);for(var n=0;n<v.length;n++){u=v[n].split(/=/);h=u[1].replace(/"/g,"");w.attrs[u[0]]=h!="true"?parseInt(h):h}w.suggestions=[];var t=f[q].replace(/<[^>]*>/g,""),g=t.split(o);for(var m=0;m<g.length;m++){if(g[m]!=""){w.suggestions.push(g[m])}}p.push(w)}return p};this.processData=function(f){this.results=this.parseResult(f);if(this.results.length){this.showErrorsInIframe();this.resumeEditingState()}};this.createErrorWindow=function(){this.error_window=document.createElement("div");$(this.error_window).addClass("googie_window popupmenu").attr("googie_action_btn","1")};this.isErrorWindowShown=function(){return $(this.error_window).is(":visible")};this.hideErrorWindow=function(){$(this.error_window).hide();$(this.error_window_iframe).hide()};this.updateOrginalText=function(k,n,p,f){var h=this.orginal_text.substring(0,k),g=this.orginal_text.substring(k+n.length),o=p.length-n.length;this.orginal_text=h+p+g;$(this.text_area).val(this.orginal_text);for(var l=0,m=this.results.length;l<m;l++){if(l!=f&&l>f){this.results[l]["attrs"]["o"]+=o}}};this.saveOldValue=function(g,f){g.is_changed=true;g.old_value=f};this.createListSeparator=function(){var g=document.createElement("td"),f=document.createElement("tr");$(g).html(" ").attr("googie_action_btn","1").css({cursor:"default","font-size":"3px","border-top":"1px solid #ccc","padding-top":"3px"});f.appendChild(g);return f};this.correctError=function(n,m,l,f){var g=m.innerHTML,h=l.nodeType==3?l.nodeValue:l.innerHTML,k=this.results[n]["attrs"]["o"];if(f){var j=m.previousSibling.innerHTML;m.previousSibling.innerHTML=j.slice(0,j.length-1);g=" "+g;k--}this.hideErrorWindow();this.updateOrginalText(k,g,h,n);$(m).html(h).css("color","green").attr("is_corrected",true);this.results[n]["attrs"]["l"]=h.length;if(!this.isDefined(m.old_value)){this.saveOldValue(m,g)}this.errorFixed()};this.ignoreError=function(g,f){$(g).removeAttr("class").css("color","").unbind();this.hideErrorWindow()};this.showErrorWindow=function(u,B){if(this.show_menu_observer){this.show_menu_observer(this)}var o=this,p=$(u).offset(),I=document.createElement("table"),J=document.createElement("tbody");$(this.error_window).html("");$(I).addClass("googie_list").attr("googie_action_btn","1");var r=false;for(var F=0;F<this.custom_menu_builder.length;F++){var q=this.custom_menu_builder[F];if(q[0](this.results[B])){r=q[1](this,J,u);break}}if(!r){var z=this.results[B]["suggestions"],n=this.results[B]["attrs"]["o"],H=this.results[B]["attrs"]["l"],t,K,O;if(this.has_dictionary&&!$(u).attr("is_corrected")){t=document.createElement("tr"),K=document.createElement("td"),O=document.createElement("span");$(O).text(this.lang_learn_word);$(K).attr("googie_action_btn","1").css("cursor","default").mouseover(o.item_onmouseover).mouseout(o.item_onmouseout).click(function(k){o.learnWord(u,B);o.ignoreError(u,B)});K.appendChild(O);t.appendChild(K);J.appendChild(t)}for(var G=0,H=z.length;G<H;G++){t=document.createElement("tr"),K=document.createElement("td"),O=document.createElement("span");$(O).html(z[G]);$(K).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout).click(function(k){o.correctError(B,u,k.target.firstChild)});K.appendChild(O);t.appendChild(K);J.appendChild(t)}if(u.is_changed&&u.innerHTML!=u.old_value){var g=u.old_value,j=document.createElement("tr"),f=document.createElement("td"),s=document.createElement("span");$(s).addClass("googie_list_revert").html(this.lang_revert+" "+g);$(f).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout).click(function(k){o.updateOrginalText(n,u.innerHTML,g,B);$(u).removeAttr("is_corrected").css("color","#b91414").html(g);o.hideErrorWindow()});f.appendChild(s);j.appendChild(f);J.appendChild(j)}var M=document.createElement("tr"),C=document.createElement("td"),N=document.createElement("input"),w=document.createElement("img"),h=document.createElement("form");var m=function(){if(N.value!=""){if(!o.isDefined(u.old_value)){o.saveOldValue(u,u.innerHTML)}o.updateOrginalText(n,u.innerHTML,N.value,B);$(u).attr("is_corrected",true).css("color","green").html(N.value);o.hideErrorWindow()}return false};$(N).width(120).css({margin:0,padding:0});$(N).val(u.innerHTML).attr("googie_action_btn","1");$(C).css("cursor","default").attr("googie_action_btn","1");$(w).attr("src",this.img_dir+"ok.gif").width(32).height(16).css({cursor:"pointer","margin-left":"2px","margin-right":"2px"}).click(m);$(h).attr("googie_action_btn","1").css({margin:0,padding:0,cursor:"default","white-space":"nowrap"}).submit(m);h.appendChild(N);h.appendChild(w);C.appendChild(h);M.appendChild(C);J.appendChild(M);if(this.extra_menu_items.length>0){J.appendChild(this.createListSeparator())}var L=function(Q){if(Q<o.extra_menu_items.length){var P=o.extra_menu_items[Q];if(!P[2]||P[2](u,o)){var k=document.createElement("tr"),R=document.createElement("td");$(R).html(P[0]).mouseover(o.item_onmouseover).mouseout(o.item_onmouseout).click(function(){return P[1](u,o)});k.appendChild(R);J.appendChild(k)}L(Q+1)}};L(0);L=null;if(this.use_close_btn){J.appendChild(this.createCloseButton(this.hideErrorWindow))}}I.appendChild(J);this.error_window.appendChild(I);var A=$(this.error_window).height(),E=$(this.error_window).width(),x=$(document).height(),D=$(document).width(),y=p.top+A+20<x?p.top+20:p.top-A,l=p.left+E<D?p.left:p.left-E;$(this.error_window).css({top:y+"px",left:l+"px"}).show();if($.browser.msie){if(!this.error_window_iframe){var v=$("<iframe>").css({position:"absolute","z-index":-1});$("body").append(v);this.error_window_iframe=v}$(this.error_window_iframe).css({top:this.error_window.offsetTop,left:this.error_window.offsetLeft,width:this.error_window.offsetWidth,height:this.error_window.offsetHeight}).show()}};this.createEditLayer=function(g,f){this.edit_layer=document.createElement("div");$(this.edit_layer).addClass("googie_edit_layer").attr("id","googie_edit_layer").width("auto").height(f);if(this.text_area.nodeName.toLowerCase()!="input"||$(this.text_area).val()==""){$(this.edit_layer).css("overflow","auto").height(f-4)}else{$(this.edit_layer).css("overflow","hidden")}var h=this;if(this.edit_layer_dbl_click){$(this.edit_layer).dblclick(function(k){if(k.target.className!="googie_link"&&!h.isErrorWindowShown()){h.resumeEditing();var j=function(){$(h.text_area).focus();j=null};window.setTimeout(j,10)}return false})}};this.resumeEditing=function(){this.setStateChanged("ready");if(this.edit_layer){this.el_scroll_top=this.edit_layer.scrollTop}this.hideErrorWindow();if(this.main_controller){$(this.spell_span).removeClass().addClass("googie_no_style")}if(!this.ignore){if(this.use_focus){$(this.focus_link_t).remove();$(this.focus_link_b).remove()}$(this.edit_layer).remove();$(this.text_area).show();if(this.el_scroll_top!=undefined){this.text_area.scrollTop=this.el_scroll_top}}this.checkSpellingState(false)};this.createErrorLink=function(h,k){var j=document.createElement("span"),f=this,g=function(l){f.showErrorWindow(j,k);g=null;return false};$(j).html(h).addClass("googie_link").click(g).removeAttr("is_corrected").attr({googie_action_btn:"1",g_id:k});return j};this.createPart=function(g){if(g==" "){return document.createTextNode(" ")}g=this.escapeSpecial(g);g=g.replace(/\n/g,"<br>");g=g.replace(/ /g," &nbsp;");g=g.replace(/^ /g,"&nbsp;");g=g.replace(/ $/g,"&nbsp;");var f=document.createElement("span");$(f).html(g);return f};this.showErrorsInIframe=function(){var m=document.createElement("div"),f=0,o=this.results;if(o.length>0){for(var p=0,k=o.length;p<k;p++){var n=o[p]["attrs"]["o"],r=o[p]["attrs"]["l"],j=this.orginal_text.substring(f,n),l=this.createPart(j);m.appendChild(l);f+=n-f;var g=this.createErrorLink(this.orginal_text.substr(n,r),p);this.error_links.push(g);m.appendChild(g);f+=r}var q=this.orginal_text.substr(f,this.orginal_text.length),h=this.createPart(q);m.appendChild(h)}else{m.innerHTML=this.orginal_text}$(m).css("text-align","left");var s=this;if(this.custom_item_evaulator){$.map(this.error_links,function(t){s.custom_item_evaulator(s,t)})}$(this.edit_layer).append(m);$(this.text_area).hide();$(this.edit_layer).insertBefore(this.text_area);if(this.use_focus){this.focus_link_t=this.createFocusLink("focus_t");this.focus_link_b=this.createFocusLink("focus_b");$(this.focus_link_t).insertBefore(this.edit_layer);$(this.focus_link_b).insertAfter(this.edit_layer)}};this.createLangWindow=function(){this.language_window=document.createElement("div");$(this.language_window).addClass("googie_window popupmenu").width(100).attr("googie_action_btn","1");var j=document.createElement("table"),k=document.createElement("tbody"),h=this,l,g,f;$(j).addClass("googie_list").width("100%");this.lang_elms=[];for(i=0;i<this.langlist_codes.length;i++){l=document.createElement("tr");g=document.createElement("td");f=document.createElement("span");$(f).text(this.lang_to_word[this.langlist_codes[i]]);this.lang_elms.push(g);$(g).attr("googieId",this.langlist_codes[i]).bind("click",function(m){h.deHighlightCurSel();h.setCurrentLanguage($(this).attr("googieId"));if(h.lang_state_observer!=null){h.lang_state_observer()}h.highlightCurSel();h.hideLangWindow()}).bind("mouseover",function(m){if(this.className!="googie_list_selected"){this.className="googie_list_onhover"}}).bind("mouseout",function(m){if(this.className!="googie_list_selected"){this.className="googie_list_onout"}});g.appendChild(f);l.appendChild(g);k.appendChild(l)}if(this.use_close_btn){k.appendChild(this.createCloseButton(function(){h.hideLangWindow.apply(h)}))}this.highlightCurSel();j.appendChild(k);this.language_window.appendChild(j)};this.isLangWindowShown=function(){return $(this.language_window).is(":visible")};this.hideLangWindow=function(){$(this.language_window).hide();$(this.switch_lan_pic).removeClass().addClass("googie_lang_3d_on")};this.showLangWindow=function(o){if(this.show_menu_observer){this.show_menu_observer(this)}this.createLangWindow();$("body").append(this.language_window);var n=$(o).offset(),f=$(o).height(),j=$(o).width(),g=$(this.language_window).height(),k=$(document).height(),m=this.change_lang_pic_placement=="right"?n.left-100+j:n.left+j,l=n.top+g<k?n.top+f:n.top-g-4;$(this.language_window).css({top:l+"px",left:m+"px"}).show();this.highlightCurSel()};this.deHighlightCurSel=function(){$(this.lang_cur_elm).removeClass().addClass("googie_list_onout")};this.highlightCurSel=function(){if(GOOGIE_CUR_LANG==null){GOOGIE_CUR_LANG=GOOGIE_DEFAULT_LANG}for(var f=0;f<this.lang_elms.length;f++){if($(this.lang_elms[f]).attr("googieId")==GOOGIE_CUR_LANG){this.lang_elms[f].className="googie_list_selected";this.lang_cur_elm=this.lang_elms[f]}else{this.lang_elms[f].className="googie_list_onout"}}};this.createChangeLangPic=function(){var f=$("<img>").attr({src:this.img_dir+"change_lang.gif",alt:"Change language",googie_action_btn:"1"}),g=document.createElement("span");b=this;$(g).addClass("googie_lang_3d_on").append(f).bind("click",function(h){var j=this.tagName.toLowerCase()=="img"?this.parentNode:this;if($(j).hasClass("googie_lang_3d_click")){j.className="googie_lang_3d_on";b.hideLangWindow()}else{j.className="googie_lang_3d_click";b.showLangWindow(j)}});return g};this.createSpellDiv=function(){var f=document.createElement("span");$(f).addClass("googie_check_spelling_link").text(this.lang_chck_spell);if(this.show_spell_img){$(f).append(" ").append($("<img>").attr("src",this.img_dir+"spellc.gif"))}return f};this.flashNoSpellingErrorState=function(f){this.setStateChanged("no_error_found");var j=this;if(this.main_controller){var k;if(f){var h=function(){f();j.checkSpellingState()};k=h}else{k=function(){j.checkSpellingState()}}var g=$("<span>").text(this.lang_no_error_found);$(this.switch_lan_pic).hide();$(this.spell_span).empty().append(g).removeClass().addClass("googie_check_spelling_ok");window.setTimeout(k,1000)}};this.resumeEditingState=function(){this.setStateChanged("resume_editing");if(this.main_controller){var f=$("<span>").text(this.lang_rsm_edt);var g=this;$(this.switch_lan_pic).hide();$(this.spell_span).empty().unbind().append(f).bind("click",function(){g.resumeEditing()}).removeClass().addClass("googie_resume_editing")}try{this.edit_layer.scrollTop=this.ta_scroll_top}catch(h){}};this.checkSpellingState=function(g){if(g){this.setStateChanged("ready")}if(this.show_change_lang_pic){this.switch_lan_pic=this.createChangeLangPic()}else{this.switch_lan_pic=document.createElement("span")}var f=this.createSpellDiv(),h=this;if(this.custom_spellcheck_starter){$(f).bind("click",function(j){h.custom_spellcheck_starter()})}else{$(f).bind("click",function(j){h.spellCheck()})}if(this.main_controller){if(this.change_lang_pic_placement=="left"){$(this.spell_container).empty().append(this.switch_lan_pic).append(" ").append(f)}else{$(this.spell_container).empty().append(f).append(" ").append(this.switch_lan_pic)}}this.spell_span=f};this.isDefined=function(f){return(f!==undefined&&f!==null)};this.errorFixed=function(){this.cnt_errors_fixed++;if(this.all_errors_fixed_observer){if(this.cnt_errors_fixed==this.cnt_errors){this.hideErrorWindow();this.all_errors_fixed_observer()}}};this.errorFound=function(){this.cnt_errors++};this.createCloseButton=function(f){return this.createButton(this.lang_close,"googie_list_close",f)};this.createButton=function(g,j,l){var k=document.createElement("tr"),h=document.createElement("td"),f;if(j){f=document.createElement("span");$(f).addClass(j).html(g)}else{f=document.createTextNode(g)}$(h).bind("click",l).bind("mouseover",this.item_onmouseover).bind("mouseout",this.item_onmouseout);h.appendChild(f);k.appendChild(h);return k};this.removeIndicator=function(f){if(window.rcmail){rcmail.set_busy(false,null,this.rc_msg_id)}};this.appendIndicator=function(f){if(window.rcmail){this.rc_msg_id=rcmail.set_busy(true,"checking")}};this.createFocusLink=function(f){var g=document.createElement("a");$(g).attr({href:"javascript:;",name:f});return g};this.item_onmouseover=function(f){if(this.className!="googie_list_revert"&&this.className!="googie_list_close"){this.className="googie_list_onhover"}else{this.parentNode.className="googie_list_onhover"}};this.item_onmouseout=function(f){if(this.className!="googie_list_revert"&&this.className!="googie_list_close"){this.className="googie_list_onout"}else{this.parentNode.className="googie_list_onout"}}}; \ No newline at end of file
diff --git a/program/js/jquery.min.js b/program/js/jquery.min.js
index 83589daa7..5cb76ea03 100644..120000
--- a/program/js/jquery.min.js
+++ b/program/js/jquery.min.js
@@ -1,2 +1 @@
-/*! jQuery v1.8.3 jquery.com | jquery.org/license */
-(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); \ No newline at end of file
+../../../javascript/jquery/jquery.min.js \ No newline at end of file
diff --git a/program/js/jstz.min.js b/program/js/jstz.min.js
index d5f888cac..81c5057fd 100644
--- a/program/js/jstz.min.js
+++ b/program/js/jstz.min.js
@@ -1,2 +1,11 @@
-/*! jsTimezoneDetect - v1.0.5 - 2013-04-01 */
-(function(e){var t=function(){"use strict";var e="s",n=2011,r=function(e){var t=-e.getTimezoneOffset();return t!==null?t:0},i=function(e,t,n){var r=new Date;return e!==undefined&&r.setFullYear(e),r.setDate(n),r.setMonth(t),r},s=function(e){return r(i(e,0,2))},o=function(e){return r(i(e,5,2))},u=function(e){var t=e.getMonth()>7?o(e.getFullYear()):s(e.getFullYear()),n=r(e);return t-n!==0},a=function(){var t=s(n),r=o(n),i=t-r;return i<0?t+",1":i>0?r+",1,"+e:t+",0"},f=function(){var e=a();return new t.TimeZone(t.olson.timezones[e])},l=function(e){var t=new Date(2010,6,15,1,0,0,0),n={"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"America/Asuncion":new Date(2012,9,7,3,0,0,0),"America/Santiago":new Date(2012,9,3,3,0,0,0),"America/Campo_Grande":new Date(2012,9,21,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2012,2,10,2,0,0,0),"America/New_York":new Date(2012,2,10,7,0,0,0),"Asia/Beirut":new Date(2011,2,27,1,0,0,0),"Europe/Helsinki":new Date(2011,2,27,4,0,0,0),"Europe/Istanbul":new Date(2011,2,28,5,0,0,0),"Asia/Damascus":new Date(2011,3,1,2,0,0,0),"Asia/Jerusalem":new Date(2011,3,1,6,0,0,0),"Asia/Gaza":new Date(2009,2,28,0,30,0,0),"Africa/Cairo":new Date(2009,3,25,0,30,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"Pacific/Fiji":new Date(2010,10,29,23,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011,2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0),"Europe/Moscow":t,"Asia/Yekaterinburg":t,"Asia/Omsk":t,"Asia/Krasnoyarsk":t,"Asia/Irkutsk":t,"Asia/Yakutsk":t,"Asia/Vladivostok":t,"Asia/Kamchatka":t,"Europe/Minsk":t,"Pacific/Apia":new Date(2010,10,1,1,0,0,0),"Australia/Perth":new Date(2008,10,1,1,0,0,0)};return n[e]};return{determine:f,date_is_dst:u,dst_start_for:l}}();t.TimeZone=function(e){"use strict";var n={"America/Denver":["America/Denver","America/Mazatlan"],"America/Chicago":["America/Chicago","America/Mexico_City"],"America/Santiago":["America/Santiago","America/Asuncion","America/Campo_Grande"],"America/Montevideo":["America/Montevideo","America/Sao_Paulo"],"Asia/Beirut":["Asia/Beirut","Europe/Helsinki","Europe/Istanbul","Asia/Damascus","Asia/Jerusalem","Asia/Gaza"],"Pacific/Auckland":["Pacific/Auckland","Pacific/Fiji"],"America/Los_Angeles":["America/Los_Angeles","America/Santa_Isabel"],"America/New_York":["America/Havana","America/New_York"],"America/Halifax":["America/Goose_Bay","America/Halifax"],"America/Godthab":["America/Miquelon","America/Godthab"],"Asia/Dubai":["Europe/Moscow"],"Asia/Dhaka":["Asia/Yekaterinburg"],"Asia/Jakarta":["Asia/Omsk"],"Asia/Shanghai":["Asia/Krasnoyarsk","Australia/Perth"],"Asia/Tokyo":["Asia/Irkutsk"],"Australia/Brisbane":["Asia/Yakutsk"],"Pacific/Noumea":["Asia/Vladivostok"],"Pacific/Tarawa":["Asia/Kamchatka"],"Pacific/Tongatapu":["Pacific/Apia"],"Africa/Johannesburg":["Asia/Gaza","Africa/Cairo"],"Asia/Baghdad":["Europe/Minsk"]},r=e,i=function(){var e=n[r],i=e.length,s=0,o=e[0];for(;s<i;s+=1){o=e[s];if(t.date_is_dst(t.dst_start_for(o))){r=o;return}}},s=function(){return typeof n[r]!="undefined"};return s()&&i(),{name:function(){return r}}},t.olson={},t.olson.timezones={"-720,0":"Pacific/Majuro","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax","-240,0":"America/Santo_Domingo","-240,1,s":"America/Santiago","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"America/Noronha","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,0":"Asia/Baghdad","180,1":"Europe/Moscow","210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Baku","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide","600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"},typeof exports!="undefined"?exports.jstz=t:e.jstz=t})(this); \ No newline at end of file
+var jstz=function(){var b=function(a){a=-a.getTimezoneOffset();return null!==a?a:0},c=function(){return b(new Date(2010,0,1,0,0,0,0))},f=function(){return b(new Date(2010,5,1,0,0,0,0))},e=function(){var a=c(),d=f(),b=c()-f();return new jstz.TimeZone(jstz.olson.timezones[0>b?a+",1":0<b?d+",1,s":a+",0"])};return{determine_timezone:function(){"undefined"!==typeof console&&console.log("jstz.determine_timezone() is deprecated and will be removed in an upcoming version. Please use jstz.determine() instead.");
+return e()},determine:e,date_is_dst:function(a){var d=5<a.getMonth()?f():c(),a=b(a);return 0!==d-a}}}();jstz.TimeZone=function(b){var c=null,c=b;"undefined"!==typeof jstz.olson.ambiguity_list[c]&&function(){for(var b=jstz.olson.ambiguity_list[c],e=b.length,a=0,d=b[0];a<e;a+=1)if(d=b[a],jstz.date_is_dst(jstz.olson.dst_start_dates[d])){c=d;break}}();return{name:function(){return c}}};jstz.olson={};
+jstz.olson.timezones={"-720,0":"Etc/GMT+12","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax",
+"-240,0":"America/Santo_Domingo","-240,1,s":"America/Asuncion","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"Etc/GMT+2","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"Etc/UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,1":"Europe/Moscow","180,0":"Asia/Baghdad",
+"210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Yerevan","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide",
+"600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"};
+jstz.olson.dst_start_dates={"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"Atlantic/Stanley":new Date(2011,8,4,7,0,0,0),"America/Asuncion":new Date(2011,9,2,3,0,0,0),"America/Santiago":new Date(2011,9,9,3,0,0,0),"America/Campo_Grande":new Date(2011,9,16,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,
+2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2011,2,13,2,0,0,0),"America/New_York":new Date(2011,2,13,7,0,0,0),"Asia/Gaza":new Date(2011,2,26,23,0,0,0),"Asia/Beirut":new Date(2011,2,27,1,0,0,0),"Europe/Minsk":new Date(2011,2,27,2,0,0,0),"Europe/Helsinki":new Date(2011,2,27,4,0,0,0),"Europe/Istanbul":new Date(2011,2,28,5,0,0,0),"Asia/Damascus":new Date(2011,3,1,2,0,0,0),"Asia/Jerusalem":new Date(2011,3,1,6,0,0,0),"Africa/Cairo":new Date(2010,3,30,4,0,0,
+0),"Asia/Yerevan":new Date(2011,2,27,4,0,0,0),"Asia/Baku":new Date(2011,2,27,8,0,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"Pacific/Fiji":new Date(2010,11,29,23,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011,2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0)};
+jstz.olson.ambiguity_list={"America/Denver":["America/Denver","America/Mazatlan"],"America/Chicago":["America/Chicago","America/Mexico_City"],"America/Asuncion":["Atlantic/Stanley","America/Asuncion","America/Santiago","America/Campo_Grande"],"America/Montevideo":["America/Montevideo","America/Sao_Paulo"],"Asia/Beirut":"Asia/Gaza Asia/Beirut Europe/Minsk Europe/Helsinki Europe/Istanbul Asia/Damascus Asia/Jerusalem Africa/Cairo".split(" "),"Asia/Yerevan":["Asia/Yerevan","Asia/Baku"],"Pacific/Auckland":["Pacific/Auckland",
+"Pacific/Fiji"],"America/Los_Angeles":["America/Los_Angeles","America/Santa_Isabel"],"America/New_York":["America/Havana","America/New_York"],"America/Halifax":["America/Goose_Bay","America/Halifax"],"America/Godthab":["America/Miquelon","America/Godthab"]}; \ No newline at end of file
diff --git a/program/js/list.js b/program/js/list.js
index 4ae6c0c66..fbb478db7 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -1,1625 +1 @@
-/*
- +-----------------------------------------------------------------------+
- | Roundcube List Widget |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-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. |
- | |
- +-----------------------------------------------------------------------+
- | Authors: Thomas Bruederli <roundcube@gmail.com> |
- | Charles McNulty <charles@charlesmcnulty.com> |
- +-----------------------------------------------------------------------+
- | Requires: common.js |
- +-----------------------------------------------------------------------+
-*/
-
-
-/**
- * Roundcube List Widget class
- * @contructor
- */
-function rcube_list_widget(list, p)
-{
- // static contants
- this.ENTER_KEY = 13;
- this.DELETE_KEY = 46;
- this.BACKSPACE_KEY = 8;
-
- 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;
- this.colcount = 0;
-
- this.subject_col = -1;
- this.modkey = 0;
- this.multiselect = false;
- this.multiexpand = false;
- this.multi_selecting = false;
- this.draggable = false;
- this.column_movable = false;
- this.keyboard = false;
- this.toggleselect = false;
-
- this.drag_active = false;
- this.col_drag_active = false;
- this.column_fixed = null;
- this.last_selected = 0;
- this.shift_start = 0;
- this.focused = false;
- this.drag_mouse_start = null;
- this.dblclick_time = 500; // default value on MS Windows is 500
- this.row_init = function(){}; // @deprecated; use list.addEventListener('initrow') instead
-
- // overwrite default paramaters
- if (p && typeof p === 'object')
- for (var n in p)
- this[n] = p[n];
-};
-
-
-rcube_list_widget.prototype = {
-
-
-/**
- * get all message rows from HTML table and init each row
- */
-init: function()
-{
- if (this.tagname == 'table' && this.list && this.list.tBodies[0]) {
- this.thead = this.list.tHead;
- this.tbody = this.list.tBodies[0];
- }
- else if (this.tagname != 'table' && this.list) {
- this.tbody = this.list;
- }
-
- if (this.tbody) {
- this.rows = {};
- this.rowcount = 0;
-
- var r, len, rows = this.tbody.childNodes;
-
- for (r=0, len=rows.length; r<len; r++) {
- this.init_row(rows[r]);
- this.rowcount++;
- }
-
- this.init_header();
- this.frame = this.list.parentNode;
-
- // set body events
- if (this.keyboard)
- rcube_event.add_listener({event:'keydown', object:this, method:'key_press'});
- }
-},
-
-
-/**
- * Init list row and set mouse events on it
- */
-init_row: function(row)
-{
- // make references in internal array and set event handlers
- if (row && String(row.id).match(this.id_regexp)) {
- var self = this,
- uid = RegExp.$1;
- row.uid = uid;
- this.rows[uid] = {uid:uid, id:row.id, obj:row};
-
- // set eventhandlers to table row
- row.onmousedown = function(e){ return self.drag_row(e, this.uid); };
- row.onmouseup = function(e){ return self.click_row(e, this.uid); };
-
- if (bw.touch) {
- row.addEventListener('touchstart', function(e) {
- if (e.touches.length == 1) {
- self.touchmoved = false;
- self.drag_row(rcube_event.touchevent(e.touches[0]), this.uid)
- }
- }, false);
- row.addEventListener('touchend', function(e) {
- if (e.changedTouches.length == 1) {
- if (!self.touchmoved && !self.click_row(rcube_event.touchevent(e.changedTouches[0]), this.uid))
- e.preventDefault();
- }
- }, false);
- row.addEventListener('touchmove', function(e) {
- if (e.changedTouches.length == 1) {
- self.touchmoved = true;
- if (self.drag_active)
- e.preventDefault();
- }
- }, false);
- }
-
- if (document.all)
- row.onselectstart = function() { return false; };
-
- this.row_init(this.rows[uid]); // legacy support
- this.triggerEvent('initrow', this.rows[uid]);
- }
-},
-
-
-/**
- * Init list column headers and set mouse events on them
- */
-init_header: function()
-{
- if (this.thead) {
- this.colcount = 0;
-
- if (this.fixed_header) { // copy (modified) fixed header back to the actual table
- $(this.list.tHead).replaceWith($(this.fixed_header).find('thead').clone());
- $(this.list.tHead).find('tr td').attr('style', ''); // remove fixed widths
- }
- else if (!bw.touch && this.list.className.indexOf('fixedheader') >= 0) {
- this.init_fixed_header();
- }
-
- var col, r, p = this;
- // add events for list columns moving
- if (this.column_movable && this.thead && this.thead.rows) {
- for (r=0; r<this.thead.rows[0].cells.length; r++) {
- if (this.column_fixed == r)
- continue;
- col = this.thead.rows[0].cells[r];
- col.onmousedown = function(e){ return p.drag_column(e, this); };
- this.colcount++;
- }
- }
- }
-},
-
-init_fixed_header: function()
-{
- var clone = $(this.list.tHead).clone();
-
- if (!this.fixed_header) {
- this.fixed_header = $('<table>')
- .attr('class', this.list.className + ' fixedcopy')
- .css({ position:'fixed' })
- .append(clone)
- .append('<tbody></tbody>');
- $(this.list).before(this.fixed_header);
-
- var me = this;
- $(window).resize(function(){ me.resize() });
- }
- else {
- $(this.fixed_header).find('thead').replaceWith(clone);
- }
-
- this.thead = clone.get(0);
- this.resize();
-},
-
-resize: function()
-{
- if (!this.fixed_header)
- return;
-
- var column_widths = [];
-
- // get column widths from original thead
- $(this.tbody).parent().find('thead tr td').each(function(index) {
- column_widths[index] = $(this).width();
- });
-
- // apply fixed widths to fixed table header
- $(this.thead).parent().width($(this.tbody).parent().width());
- $(this.thead).find('tr td').each(function(index) {
- $(this).css('width', column_widths[index]);
- });
-},
-
-/**
- * Remove all list rows
- */
-clear: function(sel)
-{
- if (this.tagname == 'table') {
- var tbody = document.createElement('tbody');
- this.list.insertBefore(tbody, this.tbody);
- this.list.removeChild(this.list.tBodies[1]);
- this.tbody = tbody;
- }
- else {
- $(this.row_tagname() + ':not(.thead)', this.tbody).remove();
- }
-
- this.rows = {};
- this.rowcount = 0;
-
- if (sel)
- this.clear_selection();
-
- // reset scroll position (in Opera)
- if (this.frame)
- this.frame.scrollTop = 0;
-},
-
-
-/**
- * 'remove' message row from list (just hide it)
- */
-remove_row: function(uid, sel_next)
-{
- var node = this.rows[uid] ? this.rows[uid].obj : null;
-
- if (!node)
- return;
-
- node.style.display = 'none';
-
- if (sel_next)
- this.select_next();
-
- delete this.rows[uid];
- this.rowcount--;
-},
-
-
-/**
- * Add row to the list and initialize it
- */
-insert_row: function(row, before)
-{
- var tbody = this.tbody;
-
- // create a real dom node first
- if (row.nodeName === undefined) {
- // for performance reasons use DOM instead of jQuery here
- var domrow = document.createElement(this.row_tagname());
- if (row.id) domrow.id = row.id;
- if (row.className) domrow.className = row.className;
- if (row.style) $.extend(domrow.style, row.style);
-
- for (var domcell, col, i=0; row.cols && i < row.cols.length; i++) {
- col = row.cols[i];
- domcell = document.createElement(this.col_tagname());
- if (col.className) domcell.className = col.className;
- if (col.innerHTML) domcell.innerHTML = col.innerHTML;
- domrow.appendChild(domcell);
- }
-
- row = domrow;
- }
-
- if (before && tbody.childNodes.length)
- tbody.insertBefore(row, (typeof before == 'object' && before.parentNode == tbody) ? before : tbody.firstChild);
- else
- tbody.appendChild(row);
-
- this.init_row(row);
- this.rowcount++;
-},
-
-/**
- *
- */
-update_row: function(id, cols, newid, select)
-{
- var row = this.rows[id];
- if (!row) return false;
-
- var domrow = row.obj;
- for (var domcell, col, i=0; cols && i < cols.length; i++) {
- this.get_cell(domrow, i).html(cols[i]);
- }
-
- if (newid) {
- delete this.rows[id];
- domrow.id = 'rcmrow' + newid;
- this.init_row(domrow);
-
- if (select)
- this.selection[0] = newid;
- }
-},
-
-
-/**
- * Set focus to the list
- */
-focus: function(e)
-{
- var n, id;
- this.focused = true;
-
- for (n in this.selection) {
- id = this.selection[n];
- if (this.rows[id] && this.rows[id].obj) {
- $(this.rows[id].obj).addClass('selected').removeClass('unfocused');
- }
- }
-
- // Un-focus already focused elements (#1487123, #1487316, #1488600, #1488620)
- // It looks that window.focus() does the job for all browsers, but not Firefox (#1489058)
- $(':focus:not(body)').blur();
- window.focus();
-
- if (e || (e = window.event))
- rcube_event.cancel(e);
-},
-
-
-/**
- * remove focus from the list
- */
-blur: function()
-{
- var n, id;
- this.focused = false;
- for (n in this.selection) {
- id = this.selection[n];
- if (this.rows[id] && this.rows[id].obj) {
- $(this.rows[id].obj).removeClass('selected focused').addClass('unfocused');
- }
- }
-},
-
-
-/**
- * onmousedown-handler of message list column
- */
-drag_column: function(e, col)
-{
- if (this.colcount > 1) {
- this.drag_start = true;
- this.drag_mouse_start = rcube_event.get_mouse_pos(e);
-
- rcube_event.add_listener({event:'mousemove', object:this, method:'column_drag_mouse_move'});
- rcube_event.add_listener({event:'mouseup', object:this, method:'column_drag_mouse_up'});
-
- // enable dragging over iframes
- this.add_dragfix();
-
- // find selected column number
- for (var i=0; i<this.thead.rows[0].cells.length; i++) {
- if (col == this.thead.rows[0].cells[i]) {
- this.selected_column = i;
- break;
- }
- }
- }
-
- return false;
-},
-
-
-/**
- * onmousedown-handler of message list row
- */
-drag_row: function(e, id)
-{
- // don't do anything (another action processed before)
- if (!this.is_event_target(e))
- return true;
-
- // accept right-clicks
- if (rcube_event.get_button(e) == 2)
- return true;
-
- this.in_selection_before = e && e.istouch || this.in_selection(id) ? id : false;
-
- // selects currently unselected row
- if (!this.in_selection_before) {
- var mod_key = rcube_event.get_modifier(e);
- this.select_row(id, mod_key, true);
- }
-
- if (this.draggable && this.selection.length && this.in_selection(id)) {
- this.drag_start = true;
- this.drag_mouse_start = rcube_event.get_mouse_pos(e);
-
- rcube_event.add_listener({event:'mousemove', object:this, method:'drag_mouse_move'});
- rcube_event.add_listener({event:'mouseup', object:this, method:'drag_mouse_up'});
- if (bw.touch) {
- rcube_event.add_listener({event:'touchmove', object:this, method:'drag_mouse_move'});
- rcube_event.add_listener({event:'touchend', object:this, method:'drag_mouse_up'});
- }
-
- // enable dragging over iframes
- this.add_dragfix();
- }
-
- return false;
-},
-
-
-/**
- * onmouseup-handler of message list row
- */
-click_row: function(e, id)
-{
- // don't do anything (another action processed before)
- if (!this.is_event_target(e))
- return true;
-
- var now = new Date().getTime(),
- dblclicked = now - this.rows[id].clicked < this.dblclick_time;
-
- // unselects currently selected row
- if (!this.drag_active && !dblclicked && this.in_selection_before == id)
- this.select_row(id, rcube_event.get_modifier(e), true);
-
- this.drag_start = false;
- this.in_selection_before = false;
-
- // row was double clicked
- if (this.rowcount && dblclicked && this.in_selection(id)) {
- this.triggerEvent('dblclick');
- now = 0;
- }
- else
- this.triggerEvent('click');
-
- if (!this.drag_active) {
- // remove temp divs
- this.del_dragfix();
- rcube_event.cancel(e);
- }
-
- this.rows[id].clicked = now;
- return false;
-},
-
-
-/**
- * Check target of the current event
- */
-is_event_target: function(e)
-{
- var target = rcube_event.get_target(e),
- tagname = target.tagName.toLowerCase();
-
- return !(target && (tagname == 'input' || tagname == 'img' || (tagname != 'a' && target.onclick)));
-},
-
-
-/*
- * Returns thread root ID for specified row ID
- */
-find_root: function(uid)
-{
- var r = this.rows[uid];
-
- if (r && r.parent_uid)
- return this.find_root(r.parent_uid);
- else
- return uid;
-},
-
-
-expand_row: function(e, id)
-{
- var row = this.rows[id],
- evtarget = rcube_event.get_target(e),
- mod_key = rcube_event.get_modifier(e);
-
- // Don't treat double click on the expando as double click on the message.
- row.clicked = 0;
-
- if (row.expanded) {
- evtarget.className = 'collapsed';
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.collapse_all(row);
- else
- this.collapse(row);
- }
- else {
- evtarget.className = 'expanded';
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.expand_all(row);
- else
- this.expand(row);
- }
-},
-
-collapse: function(row)
-{
- 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];
- if (r && r.depth <= depth)
- break;
- $(new_row).css('display', 'none');
- if (r.expanded) {
- r.expanded = false;
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-expand: function(row)
-{
- var r, p, depth, new_row, last_expanded_parent_depth;
-
- if (row) {
- row.expanded = true;
- depth = row.depth;
- new_row = row.obj.nextSibling;
- this.update_expando(row.uid, true);
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
- }
- else {
- var tbody = this.tbody;
- new_row = tbody.firstChild;
- depth = 0;
- last_expanded_parent_depth = 0;
- }
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- r = this.rows[new_row.uid];
- if (r) {
- if (row && (!r.depth || r.depth <= depth))
- break;
-
- if (r.parent_uid) {
- p = this.rows[r.parent_uid];
- if (p && p.expanded) {
- if ((row && p == row) || last_expanded_parent_depth >= p.depth - 1) {
- last_expanded_parent_depth = p.depth;
- $(new_row).css('display', '');
- r.expanded = true;
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- else
- if (row && (! p || p.depth <= depth))
- break;
- }
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-
-collapse_all: function(row)
-{
- var depth, new_row, r;
-
- if (row) {
- row.expanded = false;
- depth = row.depth;
- new_row = row.obj.nextSibling;
- this.update_expando(row.uid);
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
-
- // don't collapse sub-root tree in multiexpand mode
- if (depth && this.multiexpand)
- return false;
- }
- else {
- new_row = this.tbody.firstChild;
- depth = 0;
- }
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- if (r = this.rows[new_row.uid]) {
- if (row && (!r.depth || r.depth <= depth))
- break;
-
- if (row || r.depth)
- $(new_row).css('display', 'none');
- if (r.has_children && r.expanded) {
- r.expanded = false;
- this.update_expando(r.uid, false);
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-
-expand_all: function(row)
-{
- var depth, new_row, r;
-
- if (row) {
- row.expanded = true;
- depth = row.depth;
- new_row = row.obj.nextSibling;
- this.update_expando(row.uid, true);
- this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj });
- }
- else {
- new_row = this.tbody.firstChild;
- depth = 0;
- }
-
- while (new_row) {
- if (new_row.nodeType == 1) {
- if (r = this.rows[new_row.uid]) {
- if (row && r.depth <= depth)
- break;
-
- $(new_row).css('display', '');
- if (r.has_children && !r.expanded) {
- r.expanded = true;
- this.update_expando(r.uid, true);
- this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row });
- }
- }
- }
- new_row = new_row.nextSibling;
- }
-
- this.resize();
- this.triggerEvent('listupdate');
- return false;
-},
-
-
-update_expando: function(uid, expanded)
-{
- var expando = document.getElementById('rcmexpando' + uid);
- if (expando)
- expando.className = expanded ? 'expanded' : 'collapsed';
-},
-
-
-/**
- * get first/next/previous/last rows that are not hidden
- */
-get_next_row: function()
-{
- if (!this.rowcount)
- return false;
-
- var last_selected_row = this.rows[this.last_selected],
- new_row = last_selected_row ? last_selected_row.obj.nextSibling : null;
-
- while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
- new_row = new_row.nextSibling;
-
- return new_row;
-},
-
-get_prev_row: function()
-{
- if (!this.rowcount)
- return false;
-
- var last_selected_row = this.rows[this.last_selected],
- new_row = last_selected_row ? last_selected_row.obj.previousSibling : null;
-
- while (new_row && (new_row.nodeType != 1 || new_row.style.display == 'none'))
- new_row = new_row.previousSibling;
-
- return new_row;
-},
-
-get_first_row: function()
-{
- if (this.rowcount) {
- var i, len, rows = this.tbody.childNodes;
-
- for (i=0, len=rows.length-1; i<len; i++)
- if (rows[i].id && String(rows[i].id).match(this.id_regexp) && this.rows[RegExp.$1] != null)
- return RegExp.$1;
- }
-
- return null;
-},
-
-get_last_row: function()
-{
- if (this.rowcount) {
- var i, rows = this.tbody.childNodes;
-
- for (i=rows.length-1; i>=0; i--)
- if (rows[i].id && String(rows[i].id).match(this.id_regexp) && this.rows[RegExp.$1] != null)
- return RegExp.$1;
- }
-
- return null;
-},
-
-row_tagname: function()
-{
- var row_tagnames = { table:'tr', ul:'li', '*':'div' };
- return row_tagnames[this.tagname] || row_tagnames['*'];
-},
-
-col_tagname: function()
-{
- var col_tagnames = { table:'td', '*':'span' };
- return col_tagnames[this.tagname] || col_tagnames['*'];
-},
-
-get_cell: function(row, index)
-{
- return $(this.col_tagname(), row).eq(index);
-},
-
-/**
- * selects or unselects the proper row depending on the modifier key pressed
- */
-select_row: function(id, mod_key, with_mouse)
-{
- var select_before = this.selection.join(',');
-
- if (!this.multiselect)
- mod_key = 0;
-
- if (!this.shift_start)
- this.shift_start = id
-
- if (!mod_key) {
- this.shift_start = id;
- this.highlight_row(id, false);
- this.multi_selecting = false;
- }
- else {
- switch (mod_key) {
- case SHIFT_KEY:
- this.shift_select(id, false);
- break;
-
- case CONTROL_KEY:
- if (with_mouse) {
- this.shift_start = id;
- this.highlight_row(id, true);
- }
- break;
-
- case CONTROL_SHIFT_KEY:
- this.shift_select(id, true);
- break;
-
- default:
- this.highlight_row(id, false);
- break;
- }
-
- this.multi_selecting = true;
- }
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.triggerEvent('select');
-
- if (this.last_selected != 0 && this.rows[this.last_selected])
- $(this.rows[this.last_selected].obj).removeClass('focused');
-
- // unselect if toggleselect is active and the same row was clicked again
- if (this.toggleselect && this.last_selected == id) {
- this.clear_selection();
- id = null;
- }
- else
- $(this.rows[id].obj).addClass('focused');
-
- if (!this.selection.length)
- this.shift_start = null;
-
- this.last_selected = id;
-},
-
-
-/**
- * Alias method for select_row
- */
-select: function(id)
-{
- this.select_row(id, false);
- this.scrollto(id);
-},
-
-
-/**
- * Select row next to the last selected one.
- * Either below or above.
- */
-select_next: function()
-{
- var next_row = this.get_next_row(),
- prev_row = this.get_prev_row(),
- new_row = (next_row) ? next_row : prev_row;
-
- if (new_row)
- this.select_row(new_row.uid, false, false);
-},
-
-
-/**
- * Select first row
- */
-select_first: function(mod_key)
-{
- var row = this.get_first_row();
- if (row) {
- this.select_row(row, mod_key, false);
- this.scrollto(row);
- }
-},
-
-
-/**
- * Select last row
- */
-select_last: function(mod_key)
-{
- var row = this.get_last_row();
- if (row) {
- this.select_row(row, mod_key, false);
- this.scrollto(row);
- }
-},
-
-
-/**
- * Add all childs of the given row to selection
- */
-select_children: function(uid)
-{
- var i, children = this.row_children(uid), len = children.length;
-
- for (i=0; i<len; i++)
- if (!this.in_selection(children[i]))
- this.select_row(children[i], CONTROL_KEY, true);
-},
-
-
-/**
- * Perform selection when shift key is pressed
- */
-shift_select: function(id, control)
-{
- if (!this.rows[this.shift_start] || !this.selection.length)
- this.shift_start = id;
-
- var n, i, j, to_row = this.rows[id],
- from_rowIndex = this._rowIndex(this.rows[this.shift_start].obj),
- to_rowIndex = this._rowIndex(to_row.obj);
-
- // if we're going down the list, and we hit a thread, and it's closed, select the whole thread
- if (from_rowIndex < to_rowIndex && !to_row.expanded && to_row.has_children)
- if (to_row = this.rows[(this.row_children(id)).pop()])
- to_rowIndex = this._rowIndex(to_row.obj);
-
- i = ((from_rowIndex < to_rowIndex) ? from_rowIndex : to_rowIndex),
- j = ((from_rowIndex > to_rowIndex) ? from_rowIndex : to_rowIndex);
-
- // iterate through the entire message list
- for (n in this.rows) {
- if (this._rowIndex(this.rows[n].obj) >= i && this._rowIndex(this.rows[n].obj) <= j) {
- if (!this.in_selection(n)) {
- this.highlight_row(n, true);
- }
- }
- else {
- if (this.in_selection(n) && !control) {
- this.highlight_row(n, true);
- }
- }
- }
-},
-
-
-/**
- * Helper method to emulate the rowIndex property of non-tr elements
- */
-_rowIndex: function(obj)
-{
- return (obj.rowIndex !== undefined) ? obj.rowIndex : $(obj).prevAll().length;
-},
-
-/**
- * Check if given id is part of the current selection
- */
-in_selection: function(id)
-{
- for (var n in this.selection)
- if (this.selection[n]==id)
- return true;
-
- return false;
-},
-
-
-/**
- * Select each row in list
- */
-select_all: function(filter)
-{
- if (!this.rowcount)
- return false;
-
- // reset but remember selection first
- var n, select_before = this.selection.join(',');
- this.selection = [];
-
- for (n in this.rows) {
- if (!filter || this.rows[n][filter] == true) {
- this.last_selected = n;
- this.highlight_row(n, true, true);
- }
- else {
- $(this.rows[n].obj).removeClass('selected').removeClass('unfocused');
- }
- }
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.triggerEvent('select');
-
- this.focus();
-
- return true;
-},
-
-
-/**
- * Invert selection
- */
-invert_selection: function()
-{
- if (!this.rowcount)
- return false;
-
- // remember old selection
- var n, select_before = this.selection.join(',');
-
- for (n in this.rows)
- this.highlight_row(n, true);
-
- // trigger event if selection changed
- if (this.selection.join(',') != select_before)
- this.triggerEvent('select');
-
- this.focus();
-
- return true;
-},
-
-
-/**
- * Unselect selected row(s)
- */
-clear_selection: function(id)
-{
- var n, num_select = this.selection.length;
-
- // one row
- if (id) {
- for (n in this.selection)
- if (this.selection[n] == id) {
- this.selection.splice(n,1);
- break;
- }
- }
- // all rows
- else {
- for (n in this.selection)
- if (this.rows[this.selection[n]]) {
- $(this.rows[this.selection[n]].obj).removeClass('selected').removeClass('unfocused');
- }
-
- this.selection = [];
- }
-
- if (num_select && !this.selection.length)
- this.triggerEvent('select');
-},
-
-
-/**
- * Getter for the selection array
- */
-get_selection: function()
-{
- return this.selection;
-},
-
-
-/**
- * Return the ID if only one row is selected
- */
-get_single_selection: function()
-{
- if (this.selection.length == 1)
- return this.selection[0];
- else
- return null;
-},
-
-
-/**
- * Highlight/unhighlight a row
- */
-highlight_row: function(id, multiple, norecur)
-{
- if (!this.rows[id])
- return;
-
- if (!multiple) {
- if (this.selection.length > 1 || !this.in_selection(id)) {
- this.clear_selection();
- this.selection[0] = id;
- $(this.rows[id].obj).addClass('selected');
- }
- }
- else {
- if (!this.in_selection(id)) { // select row
- this.selection.push(id);
- $(this.rows[id].obj).addClass('selected');
- if (!norecur && !this.rows[id].expanded)
- this.highlight_children(id, true);
- }
- else { // unselect row
- var p = $.inArray(id, this.selection),
- a_pre = this.selection.slice(0, p),
- a_post = this.selection.slice(p+1, this.selection.length);
-
- this.selection = a_pre.concat(a_post);
- $(this.rows[id].obj).removeClass('selected').removeClass('unfocused');
- if (!norecur && !this.rows[id].expanded)
- this.highlight_children(id, false);
- }
- }
-},
-
-
-/**
- * Highlight/unhighlight all childs of the given row
- */
-highlight_children: function(id, status)
-{
- var i, selected,
- children = this.row_children(id), len = children.length;
-
- for (i=0; i<len; i++) {
- selected = this.in_selection(children[i]);
- if ((status && !selected) || (!status && selected))
- this.highlight_row(children[i], true, true);
- }
-},
-
-
-/**
- * Handler for keyboard events
- */
-key_press: function(e)
-{
- var target = e.target || {};
- if (this.focused != true || target.nodeName == 'INPUT' || target.nodeName == 'TEXTAREA' || target.nodeName == 'SELECT')
- return true;
-
- var keyCode = rcube_event.get_keycode(e),
- mod_key = rcube_event.get_modifier(e);
-
- switch (keyCode) {
- case 40:
- case 38:
- case 63233: // "down", in safari keypress
- case 63232: // "up", in safari keypress
- // Stop propagation so that the browser doesn't scroll
- rcube_event.cancel(e);
- return this.use_arrow_key(keyCode, mod_key);
-
- case 32:
- rcube_event.cancel(e);
- return this.select_row(this.last_selected, mod_key, true);
-
- case 37: // Left arrow key
- case 39: // Right arrow key
- case 107: // Plus sign on a numeric keypad
- case 109: // Minus sign on a numeric keypad
- // Stop propagation
- rcube_event.cancel(e);
- var ret = this.use_plusminus_key(keyCode, mod_key);
- this.key_pressed = keyCode;
- this.modkey = mod_key;
- this.triggerEvent('keypress');
- this.modkey = 0;
- return ret;
-
- case 36: // Home
- this.select_first(mod_key);
- return rcube_event.cancel(e);
-
- case 35: // End
- this.select_last(mod_key);
- return rcube_event.cancel(e);
-
- case 27:
- if (this.drag_active)
- return this.drag_mouse_up(e);
-
- if (this.col_drag_active) {
- this.selected_column = null;
- return this.column_drag_mouse_up(e);
- }
-
- return rcube_event.cancel(e);
-
- default:
- this.key_pressed = keyCode;
- this.modkey = mod_key;
- this.triggerEvent('keypress');
- this.modkey = 0;
-
- if (this.key_pressed == this.BACKSPACE_KEY)
- return rcube_event.cancel(e);
- }
-
- return true;
-},
-
-
-/**
- * Special handling method for arrow keys
- */
-use_arrow_key: function(keyCode, mod_key)
-{
- var new_row;
- // Safari uses the nonstandard keycodes 63232/63233 for up/down, if we're
- // using the keypress event (but not the keydown or keyup event).
- if (keyCode == 40 || keyCode == 63233) // down arrow key pressed
- new_row = this.get_next_row();
- else if (keyCode == 38 || keyCode == 63232) // up arrow key pressed
- new_row = this.get_prev_row();
-
- if (new_row) {
- this.select_row(new_row.uid, mod_key, false);
- this.scrollto(new_row.uid);
- }
-
- return false;
-},
-
-
-/**
- * Special handling method for +/- keys
- */
-use_plusminus_key: function(keyCode, mod_key)
-{
- var selected_row = this.rows[this.last_selected];
-
- if (!selected_row || !selected_row.has_children)
- return;
-
- // expand
- if (keyCode == 39 || keyCode == 107) {
- if (selected_row.expanded)
- return;
-
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.expand_all(selected_row);
- else
- this.expand(selected_row);
- }
- // collapse
- else {
- if (!selected_row.expanded)
- return;
-
- if (mod_key == CONTROL_KEY || this.multiexpand)
- this.collapse_all(selected_row);
- else
- this.collapse(selected_row);
- }
-
- this.update_expando(selected_row.uid, selected_row.expanded);
-
- return false;
-},
-
-
-/**
- * Try to scroll the list to make the specified row visible
- */
-scrollto: function(id)
-{
- var row = this.rows[id].obj;
- if (row && this.frame) {
- var scroll_to = Number(row.offsetTop),
- head_offset = 0;
-
- // expand thread if target row is hidden (collapsed)
- if (!scroll_to && this.rows[id].parent_uid) {
- var parent = this.find_root(this.rows[id].uid);
- this.expand_all(this.rows[parent]);
- scroll_to = Number(row.offsetTop);
- }
-
- if (this.fixed_header)
- head_offset = Number(this.thead.offsetHeight);
-
- // if row is above the frame (or behind header)
- if (scroll_to < Number(this.frame.scrollTop) + head_offset) {
- // scroll window so that row isn't behind header
- this.frame.scrollTop = scroll_to - head_offset;
- }
- else if (scroll_to + Number(row.offsetHeight) > Number(this.frame.scrollTop) + Number(this.frame.offsetHeight))
- this.frame.scrollTop = (scroll_to + Number(row.offsetHeight)) - Number(this.frame.offsetHeight);
- }
-},
-
-
-/**
- * Handler for mouse move events
- */
-drag_mouse_move: function(e)
-{
- // convert touch event
- if (e.type == 'touchmove') {
- if (e.touches.length == 1 && e.changedTouches.length == 1)
- e = rcube_event.touchevent(e.changedTouches[0]);
- else
- return rcube_event.cancel(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);
-
- 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;
-
- if (!this.draglayer)
- this.draglayer = $('<div>').attr('id', 'rcmdraglayer')
- .css({ position:'absolute', display:'none', 'z-index':2000 })
- .appendTo(document.body);
-
- // 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);
- }
-
- // reset content
- this.draglayer.html('');
-
- // 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;
- }
-
- 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();
-
- if (me.subject_col < 0 || (me.subject_col >= 0 && me.subject_col == i)) {
- var subject = $(elem).text();
-
- if (subject) {
- // remove leading spaces
- subject = $.trim(subject);
- // truncate line to 50 characters
- subject = (subject.length > 50 ? subject.substring(0, 50) + '...' : subject);
-
- var entry = $('<div>').text(subject);
- me.draglayer.append(entry);
- }
-
- return false; // break
- }
- });
- }
- }
-
- this.draglayer.show();
- this.drag_active = true;
- this.triggerEvent('dragstart');
- }
-
- if (this.drag_active && this.draglayer) {
- var pos = rcube_event.get_mouse_pos(e);
- this.draglayer.css({ left:(pos.x+20)+'px', top:(pos.y-5 + (bw.ie ? document.documentElement.scrollTop : 0))+'px' });
- this.triggerEvent('dragmove', e?e:window.event);
- }
-
- this.drag_start = false;
-
- return false;
-},
-
-
-/**
- * Handler for mouse up events
- */
-drag_mouse_up: function(e)
-{
- document.onmousemove = null;
-
- if (e.type == 'touchend') {
- if (e.changedTouches.length != 1)
- return rcube_event.cancel(e);
- }
-
- if (this.draglayer && this.draglayer.is(':visible')) {
- if (this.drag_start_pos)
- this.draglayer.animate(this.drag_start_pos, 300, 'swing').hide(20);
- else
- this.draglayer.hide();
- }
-
- if (this.drag_active)
- this.focus();
- this.drag_active = false;
-
- rcube_event.remove_listener({event:'mousemove', object:this, method:'drag_mouse_move'});
- rcube_event.remove_listener({event:'mouseup', object:this, method:'drag_mouse_up'});
-
- if (bw.touch) {
- rcube_event.remove_listener({event:'touchmove', object:this, method:'drag_mouse_move'});
- rcube_event.remove_listener({event:'touchend', object:this, method:'drag_mouse_up'});
- }
-
- // remove temp divs
- this.del_dragfix();
-
- this.triggerEvent('dragend', e);
-
- return rcube_event.cancel(e);
-},
-
-
-/**
- * Handler for mouse move events for dragging list column
- */
-column_drag_mouse_move: function(e)
-{
- if (this.drag_start) {
- // check mouse movement, of less than 3 pixels, don't start dragging
- var i, m = rcube_event.get_mouse_pos(e);
-
- 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;
-
- if (!this.col_draglayer) {
- var lpos = $(this.list).offset(),
- cells = this.thead.rows[0].cells;
-
- // create dragging layer
- this.col_draglayer = $('<div>').attr('id', 'rcmcoldraglayer')
- .css(lpos).css({ position:'absolute', 'z-index':2001,
- 'background-color':'white', opacity:0.75,
- height: (this.frame.offsetHeight-2)+'px', width: (this.frame.offsetWidth-2)+'px' })
- .appendTo(document.body)
- // ... and column position indicator
- .append($('<div>').attr('id', 'rcmcolumnindicator')
- .css({ position:'absolute', 'border-right':'2px dotted #555',
- 'z-index':2002, height: (this.frame.offsetHeight-2)+'px' }));
-
- this.cols = [];
- this.list_pos = this.list_min_pos = lpos.left;
- // save columns positions
- for (i=0; i<cells.length; i++) {
- this.cols[i] = cells[i].offsetWidth;
- if (this.column_fixed !== null && i <= this.column_fixed) {
- this.list_min_pos += this.cols[i];
- }
- }
- }
-
- this.col_draglayer.show();
- this.col_drag_active = true;
- this.triggerEvent('column_dragstart');
- }
-
- // set column indicator position
- if (this.col_drag_active && this.col_draglayer) {
- var i, cpos = 0, pos = rcube_event.get_mouse_pos(e);
-
- for (i=0; i<this.cols.length; i++) {
- if (pos.x >= this.cols[i]/2 + this.list_pos + cpos)
- cpos += this.cols[i];
- else
- break;
- }
-
- // handle fixed columns on left
- if (i == 0 && this.list_min_pos > pos.x)
- cpos = this.list_min_pos - this.list_pos;
- // empty list needs some assignment
- else if (!this.list.rowcount && i == this.cols.length)
- cpos -= 2;
- $('#rcmcolumnindicator').css({ width: cpos+'px'});
- this.triggerEvent('column_dragmove', e?e:window.event);
- }
-
- this.drag_start = false;
-
- return false;
-},
-
-
-/**
- * Handler for mouse up events for dragging list columns
- */
-column_drag_mouse_up: function(e)
-{
- document.onmousemove = null;
-
- if (this.col_draglayer) {
- (this.col_draglayer).remove();
- this.col_draglayer = null;
- }
-
- if (this.col_drag_active)
- this.focus();
- this.col_drag_active = false;
-
- rcube_event.remove_listener({event:'mousemove', object:this, method:'column_drag_mouse_move'});
- rcube_event.remove_listener({event:'mouseup', object:this, method:'column_drag_mouse_up'});
- // remove temp divs
- this.del_dragfix();
-
- if (this.selected_column !== null && this.cols && this.cols.length) {
- var i, cpos = 0, pos = rcube_event.get_mouse_pos(e);
-
- // find destination position
- for (i=0; i<this.cols.length; i++) {
- if (pos.x >= this.cols[i]/2 + this.list_pos + cpos)
- cpos += this.cols[i];
- else
- break;
- }
-
- if (i != this.selected_column && i != this.selected_column+1) {
- this.column_replace(this.selected_column, i);
- }
- }
-
- this.triggerEvent('column_dragend', e);
-
- return rcube_event.cancel(e);
-},
-
-
-/**
- * Returns IDs of all rows in a thread (except root) for specified root
- */
-row_children: function(uid)
-{
- if (!this.rows[uid] || !this.rows[uid].has_children)
- return [];
-
- var res = [], depth = this.rows[uid].depth,
- row = this.rows[uid].obj.nextSibling;
-
- while (row) {
- if (row.nodeType == 1) {
- if ((r = this.rows[row.uid])) {
- if (!r.depth || r.depth <= depth)
- break;
- res.push(r.uid);
- }
- }
- row = row.nextSibling;
- }
-
- return res;
-},
-
-
-/**
- * Creates a layer for drag&drop over iframes
- */
-add_dragfix: function()
-{
- $('iframe').each(function() {
- $('<div class="iframe-dragdrop-fix"></div>')
- .css({background: '#fff',
- width: this.offsetWidth+'px', height: this.offsetHeight+'px',
- position: 'absolute', opacity: '0.001', zIndex: 1000
- })
- .css($(this).offset())
- .appendTo(document.body);
- });
-},
-
-
-/**
- * Removes the layer for drag&drop over iframes
- */
-del_dragfix: function()
-{
- $('div.iframe-dragdrop-fix').each(function() { this.parentNode.removeChild(this); });
-},
-
-
-/**
- * Replaces two columns
- */
-column_replace: function(from, to)
-{
- // only supported for <table> lists
- if (!this.thead || !this.thead.rows)
- return;
-
- var len, cells = this.thead.rows[0].cells,
- elem = cells[from],
- before = cells[to],
- td = document.createElement('td');
-
- // replace header cells
- if (before)
- cells[0].parentNode.insertBefore(td, before);
- else
- cells[0].parentNode.appendChild(td);
- cells[0].parentNode.replaceChild(elem, td);
-
- // replace list cells
- for (r=0, len=this.tbody.rows.length; r<len; r++) {
- row = this.tbody.rows[r];
-
- elem = row.cells[from];
- before = row.cells[to];
- td = document.createElement('td');
-
- if (before)
- row.insertBefore(td, before);
- else
- row.appendChild(td);
- row.replaceChild(elem, td);
- }
-
- // update subject column position
- if (this.subject_col == from)
- this.subject_col = to > from ? to - 1 : to;
- else if (this.subject_col < from && to <= this.subject_col)
- this.subject_col++;
- else if (this.subject_col > from && to >= this.subject_col)
- this.subject_col--;
-
- if (this.fixed_header)
- this.init_header();
-
- this.triggerEvent('column_replace');
-}
-
-};
-
-rcube_list_widget.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
-rcube_list_widget.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;
-rcube_list_widget.prototype.triggerEvent = rcube_event_engine.prototype.triggerEvent;
+function rcube_list_widget(a,b){this.ENTER_KEY=13;this.DELETE_KEY=46;this.BACKSPACE_KEY=8;this.list=a?a:null;this.frame=null;this.rows=[];this.selection=[];this.rowcount=0;this.colcount=0;this.subject_col=-1;this.modkey=0;this.multiselect=false;this.multiexpand=false;this.multi_selecting=false;this.draggable=false;this.column_movable=false;this.keyboard=false;this.toggleselect=false;this.dont_select=false;this.drag_active=false;this.col_drag_active=false;this.column_fixed=null;this.last_selected=0;this.shift_start=0;this.in_selection_before=false;this.focused=false;this.drag_mouse_start=null;this.dblclick_time=600;this.row_init=function(){};if(b&&typeof b==="object"){for(var c in b){this[c]=b[c]}}}rcube_list_widget.prototype={init:function(){if(this.list&&this.list.tBodies[0]){this.rows=[];this.rowcount=0;var b,a,c=this.list.tBodies[0].rows;for(b=0,a=c.length;b<a;b++){this.init_row(c[b]);this.rowcount++}this.init_header();this.frame=this.list.parentNode;if(this.keyboard){rcube_event.add_listener({event:"keydown",object:this,method:"key_press"})}}},init_row:function(c){if(c&&String(c.id).match(/^rcmrow([a-z0-9\-_=\+\/]+)/i)){var a=this,b=RegExp.$1;c.uid=b;this.rows[b]={uid:b,id:c.id,obj:c};c.onmousedown=function(d){return a.drag_row(d,this.uid)};c.onmouseup=function(d){return a.click_row(d,this.uid)};if(bw.touch){c.addEventListener("touchstart",function(d){if(d.touches.length==1){a.touchmoved=false;a.drag_row(rcube_event.touchevent(d.touches[0]),this.uid)}},false);c.addEventListener("touchend",function(d){if(d.changedTouches.length==1){if(!a.touchmoved&&!a.click_row(rcube_event.touchevent(d.changedTouches[0]),this.uid)){d.preventDefault()}}},false);c.addEventListener("touchmove",function(d){if(d.changedTouches.length==1){a.touchmoved=true;if(a.drag_active){d.preventDefault()}}},false)}if(document.all){c.onselectstart=function(){return false}}this.row_init(this.rows[b])}},init_header:function(){if(this.list&&this.list.tHead){this.colcount=0;var a,b,c=this;if(this.column_movable&&this.list.tHead&&this.list.tHead.rows){for(b=0;b<this.list.tHead.rows[0].cells.length;b++){if(this.column_fixed==b){continue}a=this.list.tHead.rows[0].cells[b];a.onmousedown=function(d){return c.drag_column(d,this)};this.colcount++}}}},clear:function(b){var a=document.createElement("tbody");this.list.insertBefore(a,this.list.tBodies[0]);this.list.removeChild(this.list.tBodies[1]);this.rows=[];this.rowcount=0;if(b){this.clear_selection()}if(this.frame){this.frame.scrollTop=0}},remove_row:function(a,b){var c=this.rows[a]?this.rows[a].obj:null;if(!c){return}c.style.display="none";if(b){this.select_next()}delete this.rows[a];this.rowcount--},insert_row:function(c,a){var b=this.list.tBodies[0];if(a&&b.rows.length){b.insertBefore(c,b.firstChild)}else{b.appendChild(c)}this.init_row(c);this.rowcount++},focus:function(a){var c,b;this.focused=true;for(c in this.selection){b=this.selection[c];if(this.rows[b]&&this.rows[b].obj){$(this.rows[b].obj).addClass("selected").removeClass("unfocused")}}$(":focus:not(body)").blur();window.focus();if(a||(a=window.event)){rcube_event.cancel(a)}},blur:function(){var b,a;this.focused=false;for(b in this.selection){a=this.selection[b];if(this.rows[a]&&this.rows[a].obj){$(this.rows[a].obj).removeClass("selected focused").addClass("unfocused")}}},drag_column:function(c,a){if(this.colcount>1){this.drag_start=true;this.drag_mouse_start=rcube_event.get_mouse_pos(c);rcube_event.add_listener({event:"mousemove",object:this,method:"column_drag_mouse_move"});rcube_event.add_listener({event:"mouseup",object:this,method:"column_drag_mouse_up"});this.add_dragfix();for(var b=0;b<this.list.tHead.rows[0].cells.length;b++){if(a==this.list.tHead.rows[0].cells[b]){this.selected_column=b;break}}}return false},drag_row:function(d,f){var c=rcube_event.get_target(d),b=c.tagName.toLowerCase();if(this.dont_select||(c&&(b=="input"||b=="img"))){return true}if(rcube_event.get_button(d)==2){return true}this.in_selection_before=d&&d.istouch||this.in_selection(f)?f:false;if(!this.in_selection_before){var a=rcube_event.get_modifier(d);this.select_row(f,a,false)}if(this.draggable&&this.selection.length&&this.in_selection(f)){this.drag_start=true;this.drag_mouse_start=rcube_event.get_mouse_pos(d);rcube_event.add_listener({event:"mousemove",object:this,method:"drag_mouse_move"});rcube_event.add_listener({event:"mouseup",object:this,method:"drag_mouse_up"});if(bw.touch){rcube_event.add_listener({event:"touchmove",object:this,method:"drag_mouse_move"});rcube_event.add_listener({event:"touchend",object:this,method:"drag_mouse_up"})}this.add_dragfix()}return false},click_row:function(g,h){var c=new Date().getTime(),b=rcube_event.get_modifier(g),f=rcube_event.get_target(g),d=f.tagName.toLowerCase();if((f&&(d=="input"||d=="img"))){return true}if(this.dont_select){this.dont_select=false;return false}var a=c-this.rows[h].clicked<this.dblclick_time;if(!this.drag_active&&this.in_selection_before==h&&!a){this.select_row(h,b,false)}this.drag_start=false;this.in_selection_before=false;if(this.rows&&a&&this.in_selection(h)){this.triggerEvent("dblclick");c=0}else{this.triggerEvent("click")}if(!this.drag_active){this.del_dragfix();rcube_event.cancel(g)}this.rows[h].clicked=c;return false},find_root:function(a){var b=this.rows[a];if(b&&b.parent_uid){return this.find_root(b.parent_uid)}else{return a}},expand_row:function(c,f){var d=this.rows[f],b=rcube_event.get_target(c),a=rcube_event.get_modifier(c);this.dont_select=true;d.clicked=0;if(d.expanded){b.className="collapsed";if(a==CONTROL_KEY||this.multiexpand){this.collapse_all(d)}else{this.collapse(d)}}else{b.className="expanded";if(a==CONTROL_KEY||this.multiexpand){this.expand_all(d)}else{this.expand(d)}}},collapse:function(d){d.expanded=false;this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:d.obj});var c=d.depth;var a=d?d.obj.nextSibling:null;var b;while(a){if(a.nodeType==1){var b=this.rows[a.uid];if(b&&b.depth<=c){break}$(a).css("display","none");if(b.expanded){b.expanded=false;this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:a})}}a=a.nextSibling}return false},expand:function(g){var d,e,f,b,a;if(g){g.expanded=true;f=g.depth;b=g.obj.nextSibling;this.update_expando(g.uid,true);this.triggerEvent("expandcollapse",{uid:g.uid,expanded:g.expanded,obj:g.obj})}else{var c=this.list.tBodies[0];b=c.firstChild;f=0;a=0}while(b){if(b.nodeType==1){d=this.rows[b.uid];if(d){if(g&&(!d.depth||d.depth<=f)){break}if(d.parent_uid){e=this.rows[d.parent_uid];if(e&&e.expanded){if((g&&e==g)||a>=e.depth-1){a=e.depth;$(b).css("display","");d.expanded=true;this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:b})}}else{if(g&&(!e||e.depth<=f)){break}}}}}b=b.nextSibling}return false},collapse_all:function(d){var c,a,b;if(d){d.expanded=false;c=d.depth;a=d.obj.nextSibling;this.update_expando(d.uid);this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:d.obj});if(c&&this.multiexpand){return false}}else{a=this.list.tBodies[0].firstChild;c=0}while(a){if(a.nodeType==1){if(b=this.rows[a.uid]){if(d&&(!b.depth||b.depth<=c)){break}if(d||b.depth){$(a).css("display","none")}if(b.has_children&&b.expanded){b.expanded=false;this.update_expando(b.uid,false);this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:a})}}}a=a.nextSibling}return false},expand_all:function(d){var c,a,b;if(d){d.expanded=true;c=d.depth;a=d.obj.nextSibling;this.update_expando(d.uid,true);this.triggerEvent("expandcollapse",{uid:d.uid,expanded:d.expanded,obj:d.obj})}else{a=this.list.tBodies[0].firstChild;c=0}while(a){if(a.nodeType==1){if(b=this.rows[a.uid]){if(d&&b.depth<=c){break}$(a).css("display","");if(b.has_children&&!b.expanded){b.expanded=true;this.update_expando(b.uid,true);this.triggerEvent("expandcollapse",{uid:b.uid,expanded:b.expanded,obj:a})}}}a=a.nextSibling}return false},update_expando:function(b,a){var c=document.getElementById("rcmexpando"+b);if(c){c.className=a?"expanded":"collapsed"}},get_next_row:function(){if(!this.rows){return false}var b=this.rows[this.last_selected],a=b?b.obj.nextSibling:null;while(a&&(a.nodeType!=1||a.style.display=="none")){a=a.nextSibling}return a},get_prev_row:function(){if(!this.rows){return false}var b=this.rows[this.last_selected],a=b?b.obj.previousSibling:null;while(a&&(a.nodeType!=1||a.style.display=="none")){a=a.previousSibling}return a},get_first_row:function(){if(this.rowcount){var b,a,c=this.list.tBodies[0].rows;for(b=0,a=c.length-1;b<a;b++){if(c[b].id&&String(c[b].id).match(/^rcmrow([a-z0-9\-_=\+\/]+)/i)&&this.rows[RegExp.$1]!=null){return RegExp.$1}}}return null},get_last_row:function(){if(this.rowcount){var a,b=this.list.tBodies[0].rows;for(a=b.length-1;a>=0;a--){if(b[a].id&&String(b[a].id).match(/^rcmrow([a-z0-9\-_=\+\/]+)/i)&&this.rows[RegExp.$1]!=null){return RegExp.$1}}}return null},select_row:function(d,a,c){var b=this.selection.join(",");if(!this.multiselect){a=0}if(!this.shift_start){this.shift_start=d}if(!a){this.shift_start=d;this.highlight_row(d,false);this.multi_selecting=false}else{switch(a){case SHIFT_KEY:this.shift_select(d,false);break;case CONTROL_KEY:if(!c){this.highlight_row(d,true)}break;case CONTROL_SHIFT_KEY:this.shift_select(d,true);break;default:this.highlight_row(d,false);break}this.multi_selecting=true}if(this.selection.join(",")!=b){this.triggerEvent("select")}if(this.last_selected!=0&&this.rows[this.last_selected]){$(this.rows[this.last_selected].obj).removeClass("focused")}if(this.toggleselect&&this.last_selected==d){this.clear_selection();d=null}else{$(this.rows[d].obj).addClass("focused")}if(!this.selection.length){this.shift_start=null}this.last_selected=d},select:function(a){this.select_row(a,false);this.scrollto(a)},select_next:function(){var b=this.get_next_row(),c=this.get_prev_row(),a=(b)?b:c;if(a){this.select_row(a.uid,false,false)}},select_first:function(a){var b=this.get_first_row();if(b){if(a){this.shift_select(b,a);this.triggerEvent("select");this.scrollto(b)}else{this.select(b)}}},select_last:function(a){var b=this.get_last_row();if(b){if(a){this.shift_select(b,a);this.triggerEvent("select");this.scrollto(b)}else{this.select(b)}}},select_children:function(d){var c,b=this.row_children(d),a=b.length;for(c=0;c<a;c++){if(!this.in_selection(b[c])){this.select_row(b[c],CONTROL_KEY)}}},shift_select:function(h,f){if(!this.rows[this.shift_start]||!this.selection.length){this.shift_start=h}var g,d,c,a=this.rows[h],e=this.rows[this.shift_start].obj.rowIndex,b=a.obj.rowIndex;if(!a.expanded&&a.has_children){if(a=this.rows[(this.row_children(h)).pop()]){b=a.obj.rowIndex}}d=((e<b)?e:b),c=((e>b)?e:b);for(g in this.rows){if(this.rows[g].obj.rowIndex>=d&&this.rows[g].obj.rowIndex<=c){if(!this.in_selection(g)){this.highlight_row(g,true)}}else{if(this.in_selection(g)&&!f){this.highlight_row(g,true)}}}},in_selection:function(b){for(var a in this.selection){if(this.selection[a]==b){return true}}return false},select_all:function(b){if(!this.rows||!this.rows.length){return false}var c,a=this.selection.join(",");this.selection=[];for(c in this.rows){if(!b||this.rows[c][b]==true){this.last_selected=c;this.highlight_row(c,true,true)}else{$(this.rows[c].obj).removeClass("selected").removeClass("unfocused")}}if(this.selection.join(",")!=a){this.triggerEvent("select")}this.focus();return true},invert_selection:function(){if(!this.rows||!this.rows.length){return false}var b,a=this.selection.join(",");for(b in this.rows){this.highlight_row(b,true)}if(this.selection.join(",")!=a){this.triggerEvent("select")}this.focus();return true},clear_selection:function(c){var b,a=this.selection.length;if(c){for(b in this.selection){if(this.selection[b]==c){this.selection.splice(b,1);break}}}else{for(b in this.selection){if(this.rows[this.selection[b]]){$(this.rows[this.selection[b]].obj).removeClass("selected").removeClass("unfocused")}}this.selection=[]}if(a&&!this.selection.length){this.triggerEvent("select")}},get_selection:function(){return this.selection},get_single_selection:function(){if(this.selection.length==1){return this.selection[0]}else{return null}},highlight_row:function(f,a,e){if(!this.rows[f]){return}if(!a){if(this.selection.length>1||!this.in_selection(f)){this.clear_selection();this.selection[0]=f;$(this.rows[f].obj).addClass("selected")}}else{if(!this.in_selection(f)){this.selection.push(f);$(this.rows[f].obj).addClass("selected");if(!e&&!this.rows[f].expanded){this.highlight_children(f,true)}}else{var d=$.inArray(f,this.selection),c=this.selection.slice(0,d),b=this.selection.slice(d+1,this.selection.length);this.selection=c.concat(b);$(this.rows[f].obj).removeClass("selected").removeClass("unfocused");if(!e&&!this.rows[f].expanded){this.highlight_children(f,false)}}}},highlight_children:function(f,b){var d,e,c=this.row_children(f),a=c.length;for(d=0;d<a;d++){e=this.in_selection(c[d]);if((b&&!e)||(!b&&e)){this.highlight_row(c[d],true,true)}}},key_press:function(f){var d=f.target||{};if(this.focused!=true||d.nodeName=="INPUT"||d.nodeName=="TEXTAREA"||d.nodeName=="SELECT"){return true}var c=rcube_event.get_keycode(f),a=rcube_event.get_modifier(f);switch(c){case 40:case 38:case 63233:case 63232:rcube_event.cancel(f);return this.use_arrow_key(c,a);case 61:case 107:case 109:case 32:rcube_event.cancel(f);var b=this.use_plusminus_key(c,a);this.key_pressed=c;this.modkey=a;this.triggerEvent("keypress");this.modkey=0;return b;case 36:this.select_first(a);return rcube_event.cancel(f);case 35:this.select_last(a);return rcube_event.cancel(f);case 27:if(this.drag_active){return this.drag_mouse_up(f)}if(this.col_drag_active){this.selected_column=null;return this.column_drag_mouse_up(f)}return rcube_event.cancel(f);default:this.key_pressed=c;this.modkey=a;this.triggerEvent("keypress");this.modkey=0;if(this.key_pressed==this.BACKSPACE_KEY){return rcube_event.cancel(f)}}return true},use_arrow_key:function(c,b){var a;if(c==40||c==63233){a=this.get_next_row()}else{if(c==38||c==63232){a=this.get_prev_row()}}if(a){this.select_row(a.uid,b,false);this.scrollto(a.uid)}return false},use_plusminus_key:function(c,a){var b=this.rows[this.last_selected];if(!b){return}if(c==32){c=b.expanded?109:61}if(c==61||c==107){if(a==CONTROL_KEY||this.multiexpand){this.expand_all(b)}else{this.expand(b)}}else{if(a==CONTROL_KEY||this.multiexpand){this.collapse_all(b)}else{this.collapse(b)}}this.update_expando(b.uid,b.expanded);return false},scrollto:function(d){var c=this.rows[d].obj;if(c&&this.frame){var b=Number(c.offsetTop);if(!b&&this.rows[d].parent_uid){var a=this.find_root(this.rows[d].uid);this.expand_all(this.rows[a]);b=Number(c.offsetTop)}if(b<Number(this.frame.scrollTop)){this.frame.scrollTop=b}else{if(b+Number(c.offsetHeight)>Number(this.frame.scrollTop)+Number(this.frame.offsetHeight)){this.frame.scrollTop=(b+Number(c.offsetHeight))-Number(this.frame.offsetHeight)}}}},drag_mouse_move:function(l){if(l.type=="touchmove"){if(l.touches.length==1&&l.changedTouches.length==1){l=rcube_event.touchevent(l.changedTouches[0])}else{return rcube_event.cancel(l)}}if(this.drag_start){var f=rcube_event.get_mouse_pos(l);if(!this.drag_mouse_start||(Math.abs(f.x-this.drag_mouse_start.x)<3&&Math.abs(f.y-this.drag_mouse_start.y)<3)){return false}if(!this.draglayer){this.draglayer=$("<div>").attr("id","rcmdraglayer").css({position:"absolute",display:"none","z-index":2000}).appendTo(document.body)}var b,j,t=$.merge([],this.selection);for(b in t){j=t[b];if(!this.rows[j].expanded){this.select_children(j)}}this.draglayer.html("");var o,h,b,p,g;for(b=0;b<this.selection.length;b++){if(b>12){this.draglayer.append("...");break}if(g=this.rows[this.selection[b]].obj){p="";for(o=0,h=0;h<g.childNodes.length;h++){if(g.childNodes[h].nodeName=="TD"){if(b==0){this.drag_start_pos=$(g.childNodes[h]).offset()}if(this.subject_col<0||(this.subject_col>=0&&this.subject_col==o)){var s,d,k,a=g.childNodes[h].childNodes;for(f=0;f<a.length;f++){if((k=g.childNodes[h].childNodes[f])&&(k.nodeType==3||k.nodeName=="A")){d=k}}if(!d){break}p=$(d).text();p=$.trim(p);p=(p.length>50?p.substring(0,50)+"...":p);s=$("<div>").text(p);this.draglayer.append(s);break}o++}}}}this.draglayer.show();this.drag_active=true;this.triggerEvent("dragstart")}if(this.drag_active&&this.draglayer){var q=rcube_event.get_mouse_pos(l);this.draglayer.css({left:(q.x+20)+"px",top:(q.y-5+(bw.ie?document.documentElement.scrollTop:0))+"px"});this.triggerEvent("dragmove",l?l:window.event)}this.drag_start=false;return false},drag_mouse_up:function(a){document.onmousemove=null;if(a.type=="touchend"){if(a.changedTouches.length!=1){return rcube_event.cancel(a)}}if(this.draglayer&&this.draglayer.is(":visible")){if(this.drag_start_pos){this.draglayer.animate(this.drag_start_pos,300,"swing").hide(20)}else{this.draglayer.hide()}}if(this.drag_active){this.focus()}this.drag_active=false;rcube_event.remove_listener({event:"mousemove",object:this,method:"drag_mouse_move"});rcube_event.remove_listener({event:"mouseup",object:this,method:"drag_mouse_up"});if(bw.touch){rcube_event.remove_listener({event:"touchmove",object:this,method:"drag_mouse_move"});rcube_event.remove_listener({event:"touchend",object:this,method:"drag_mouse_up"})}this.del_dragfix();this.triggerEvent("dragend");return rcube_event.cancel(a)},column_drag_mouse_move:function(f){if(this.drag_start){var c,a=rcube_event.get_mouse_pos(f);if(!this.drag_mouse_start||(Math.abs(a.x-this.drag_mouse_start.x)<3&&Math.abs(a.y-this.drag_mouse_start.y)<3)){return false}if(!this.col_draglayer){var d=$(this.list).offset(),b=this.list.tHead.rows[0].cells;this.col_draglayer=$("<div>").attr("id","rcmcoldraglayer").css(d).css({position:"absolute","z-index":2001,"background-color":"white",opacity:0.75,height:(this.frame.offsetHeight-2)+"px",width:(this.frame.offsetWidth-2)+"px"}).appendTo(document.body).append($("<div>").attr("id","rcmcolumnindicator").css({position:"absolute","border-right":"2px dotted #555","z-index":2002,height:(this.frame.offsetHeight-2)+"px"}));this.cols=[];this.list_pos=this.list_min_pos=d.left;for(c=0;c<b.length;c++){this.cols[c]=b[c].offsetWidth;if(this.column_fixed!==null&&c<=this.column_fixed){this.list_min_pos+=this.cols[c]}}}this.col_draglayer.show();this.col_drag_active=true;this.triggerEvent("column_dragstart")}if(this.col_drag_active&&this.col_draglayer){var c,h=0,g=rcube_event.get_mouse_pos(f);for(c=0;c<this.cols.length;c++){if(g.x>=this.cols[c]/2+this.list_pos+h){h+=this.cols[c]}else{break}}if(c==0&&this.list_min_pos>g.x){h=this.list_min_pos-this.list_pos}else{if(!this.list.rowcount&&c==this.cols.length){h-=2}}$("#rcmcolumnindicator").css({width:h+"px"});this.triggerEvent("column_dragmove",f?f:window.event)}this.drag_start=false;return false},column_drag_mouse_up:function(b){document.onmousemove=null;if(this.col_draglayer){(this.col_draglayer).remove();this.col_draglayer=null}if(this.col_drag_active){this.focus()}this.col_drag_active=false;rcube_event.remove_listener({event:"mousemove",object:this,method:"column_drag_mouse_move"});rcube_event.remove_listener({event:"mouseup",object:this,method:"column_drag_mouse_up"});this.del_dragfix();if(this.selected_column!==null&&this.cols&&this.cols.length){var a,d=0,c=rcube_event.get_mouse_pos(b);for(a=0;a<this.cols.length;a++){if(c.x>=this.cols[a]/2+this.list_pos+d){d+=this.cols[a]}else{break}}if(a!=this.selected_column&&a!=this.selected_column+1){this.column_replace(this.selected_column,a)}}this.triggerEvent("column_dragend");return rcube_event.cancel(b)},row_children:function(b){if(!this.rows[b]||!this.rows[b].has_children){return[]}var a=[],d=this.rows[b].depth,c=this.rows[b].obj.nextSibling;while(c){if(c.nodeType==1){if((r=this.rows[c.uid])){if(!r.depth||r.depth<=d){break}a.push(r.uid)}}c=c.nextSibling}return a},add_dragfix:function(){$("iframe").each(function(){$('<div class="iframe-dragdrop-fix"></div>').css({background:"#fff",width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo(document.body)})},del_dragfix:function(){$("div.iframe-dragdrop-fix").each(function(){this.parentNode.removeChild(this)})},column_replace:function(g,f){var a,b=this.list.tHead.rows[0].cells,c=b[g],d=b[f],e=document.createElement("td");if(d){b[0].parentNode.insertBefore(e,d)}else{b[0].parentNode.appendChild(e)}b[0].parentNode.replaceChild(c,e);for(r=0,a=this.list.tBodies[0].rows.length;r<a;r++){row=this.list.tBodies[0].rows[r];c=row.cells[g];d=row.cells[f];e=document.createElement("td");if(d){row.insertBefore(e,d)}else{row.appendChild(e)}row.replaceChild(c,e)}if(this.subject_col==g){this.subject_col=f>g?f-1:f}else{if(this.subject_col<g&&f<=this.subject_col){this.subject_col++}else{if(this.subject_col>g&&f>=this.subject_col){this.subject_col--}}}this.triggerEvent("column_replace")}};rcube_list_widget.prototype.addEventListener=rcube_event_engine.prototype.addEventListener;rcube_list_widget.prototype.removeEventListener=rcube_event_engine.prototype.removeEventListener;rcube_list_widget.prototype.triggerEvent=rcube_event_engine.prototype.triggerEvent; \ No newline at end of file
diff --git a/program/lib/Roundcube/bootstrap.php b/program/lib/Roundcube/bootstrap.php
index 6e5143382..c3fac1f4d 100644
--- a/program/lib/Roundcube/bootstrap.php
+++ b/program/lib/Roundcube/bootstrap.php
@@ -54,11 +54,11 @@ foreach ($config as $optname => $optval) {
}
// framework constants
-define('RCUBE_VERSION', '1.0-git');
+define('RCUBE_VERSION', '0.9.5');
define('RCUBE_CHARSET', 'UTF-8');
if (!defined('RCUBE_LIB_DIR')) {
- define('RCUBE_LIB_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR);
+ define('RCUBE_LIB_DIR', dirname(__FILE__).'/');
}
if (!defined('RCUBE_INSTALL_PATH')) {
@@ -303,6 +303,32 @@ function is_ascii($str, $control_chars = true)
/**
+ * Remove single and double quotes from a given string
+ *
+ * @param string Input value
+ *
+ * @return string Dequoted string
+ */
+function strip_quotes($str)
+{
+ return str_replace(array("'", '"'), '', $str);
+}
+
+
+/**
+ * Remove new lines characters from given string
+ *
+ * @param string $str Input value
+ *
+ * @return string Stripped string
+ */
+function strip_newlines($str)
+{
+ return preg_replace('/[\r\n]/', '', $str);
+}
+
+
+/**
* Compose a valid representation of name and e-mail address
*
* @param string $email E-mail address
diff --git a/program/lib/Roundcube/html.php b/program/lib/Roundcube/html.php
index f6f744cb2..1a4c3beba 100644
--- a/program/lib/Roundcube/html.php
+++ b/program/lib/Roundcube/html.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2011, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -21,7 +21,7 @@
* Class for HTML code creation
*
* @package Framework
- * @subpackage View
+ * @subpackage HTML
*/
class html
{
@@ -32,8 +32,8 @@ class html
public static $doctype = 'xhtml';
public static $lc_tags = true;
- public static $common_attrib = array('id','class','style','title','align','unselectable');
- public static $containers = array('iframe','div','span','p','h1','h2','h3','ul','form','textarea','table','thead','tbody','tr','th','td','style','script');
+ public static $common_attrib = array('id','class','style','title','align');
+ public static $containers = array('iframe','div','span','p','h1','h2','h3','form','textarea','table','thead','tbody','tr','th','td','style','script');
/**
@@ -218,7 +218,7 @@ class html
$attr = array('src' => $attr);
}
return self::tag('iframe', $attr, $cont, array_merge(self::$common_attrib,
- array('src','name','width','height','border','frameborder','onload')));
+ array('src','name','width','height','border','frameborder')));
}
/**
@@ -288,7 +288,7 @@ class html
}
// attributes with no value
- if (in_array($key, array('checked', 'multiple', 'disabled', 'selected', 'autofocus'))) {
+ if (in_array($key, array('checked', 'multiple', 'disabled', 'selected'))) {
if ($value) {
$attrib_arr[] = $key . '="' . $key . '"';
}
@@ -350,18 +350,16 @@ class html
/**
* Class to create an HTML input field
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_inputfield extends html
{
protected $tagname = 'input';
protected $type = 'text';
protected $allowed = array(
- 'type','name','value','size','tabindex','autocapitalize','required',
+ 'type','name','value','size','tabindex','autocapitalize',
'autocomplete','checked','onchange','onclick','disabled','readonly',
- 'spellcheck','results','maxlength','src','multiple','accept',
- 'placeholder','autofocus',
+ 'spellcheck','results','maxlength','src','multiple','placeholder',
);
/**
@@ -407,8 +405,7 @@ class html_inputfield extends html
/**
* Class to create an HTML password field
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_passwordfield extends html_inputfield
{
@@ -418,9 +415,9 @@ class html_passwordfield extends html_inputfield
/**
* Class to create an hidden HTML input field
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
+
class html_hiddenfield extends html
{
protected $tagname = 'input';
@@ -468,8 +465,7 @@ class html_hiddenfield extends html
/**
* Class to create HTML radio buttons
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_radiobutton extends html_inputfield
{
@@ -499,8 +495,7 @@ class html_radiobutton extends html_inputfield
/**
* Class to create HTML checkboxes
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_checkbox extends html_inputfield
{
@@ -530,8 +525,7 @@ class html_checkbox extends html_inputfield
/**
* Class to create an HTML textarea
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_textarea extends html
{
@@ -589,8 +583,7 @@ class html_textarea extends html
* print $select->show('CH');
* </pre>
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_select extends html
{
@@ -604,17 +597,16 @@ class html_select extends html
*
* @param mixed $names Option name or array with option names
* @param mixed $values Option value or array with option values
- * @param array $attrib Additional attributes for the option entry
*/
- public function add($names, $values = null, $attrib = array())
+ public function add($names, $values = null)
{
if (is_array($names)) {
foreach ($names as $i => $text) {
- $this->options[] = array('text' => $text, 'value' => $values[$i]) + $attrib;
+ $this->options[] = array('text' => $text, 'value' => $values[$i]);
}
}
else {
- $this->options[] = array('text' => $names, 'value' => $values) + $attrib;
+ $this->options[] = array('text' => $names, 'value' => $values);
}
}
@@ -645,7 +637,7 @@ class html_select extends html
$option_content = self::quote($option_content);
}
- $this->content .= self::tag('option', $attr + $option, $option_content, array('value','label','class','style','title','disabled','selected'));
+ $this->content .= self::tag('option', $attr, $option_content);
}
return parent::show();
@@ -656,8 +648,7 @@ class html_select extends html
/**
* Class to build an HTML table
*
- * @package Framework
- * @subpackage View
+ * @package HTML
*/
class html_table extends html
{
@@ -679,11 +670,6 @@ class html_table extends html
{
$default_attrib = self::$doctype == 'xhtml' ? array('summary' => '', 'border' => 0) : array();
$this->attrib = array_merge($attrib, $default_attrib);
-
- if (!empty($attrib['tagname']) && $attrib['tagname'] != 'table') {
- $this->tagname = $attrib['tagname'];
- $this->allowed = self::$common_attrib;
- }
}
/**
@@ -827,20 +813,19 @@ class html_table extends html
if (!empty($this->header)) {
$rowcontent = '';
foreach ($this->header as $c => $col) {
- $rowcontent .= self::tag($this->_col_tagname(), $col->attrib, $col->content);
+ $rowcontent .= self::tag('td', $col->attrib, $col->content);
}
- $thead = $this->tagname == 'table' ? self::tag('thead', null, self::tag('tr', null, $rowcontent, parent::$common_attrib)) :
- self::tag($this->_row_tagname(), array('class' => 'thead'), $rowcontent, parent::$common_attrib);
+ $thead = self::tag('thead', null, self::tag('tr', null, $rowcontent, parent::$common_attrib));
}
foreach ($this->rows as $r => $row) {
$rowcontent = '';
foreach ($row->cells as $c => $col) {
- $rowcontent .= self::tag($this->_col_tagname(), $col->attrib, $col->content);
+ $rowcontent .= self::tag('td', $col->attrib, $col->content);
}
if ($r < $this->rowindex || count($row->cells)) {
- $tbody .= self::tag($this->_row_tagname(), $row->attrib, $rowcontent, parent::$common_attrib);
+ $tbody .= self::tag('tr', $row->attrib, $rowcontent, parent::$common_attrib);
}
}
@@ -849,7 +834,7 @@ class html_table extends html
}
// add <tbody>
- $this->content = $thead . ($this->tagname == 'table' ? self::tag('tbody', null, $tbody) : $tbody);
+ $this->content = $thead . self::tag('tbody', null, $tbody);
unset($this->attrib['cols'], $this->attrib['rowsonly']);
return parent::show();
@@ -874,22 +859,4 @@ class html_table extends html
$this->rowindex = 0;
}
- /**
- * Getter for the corresponding tag name for table row elements
- */
- private function _row_tagname()
- {
- static $row_tagnames = array('table' => 'tr', 'ul' => 'li', '*' => 'div');
- return $row_tagnames[$this->tagname] ?: $row_tagnames['*'];
- }
-
- /**
- * Getter for the corresponding tag name for table cell elements
- */
- private function _col_tagname()
- {
- static $col_tagnames = array('table' => 'td', '*' => 'span');
- return $col_tagnames[$this->tagname] ?: $col_tagnames['*'];
- }
-
}
diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index 399f84fd8..7329b09fb 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -99,20 +99,20 @@ class rcube
protected $texts;
protected $caches = array();
protected $shutdown_functions = array();
+ protected $expunge_cache = false;
/**
* This implements the 'singleton' design pattern
*
* @param integer Options to initialize with this instance. See rcube::INIT_WITH_* constants
- * @param string Environment name to run (e.g. live, dev, test)
*
* @return rcube The one and only instance
*/
- static function get_instance($mode = 0, $env = '')
+ static function get_instance($mode = 0)
{
if (!self::$instance) {
- self::$instance = new rcube($env);
+ self::$instance = new rcube();
self::$instance->init($mode);
}
@@ -123,10 +123,10 @@ class rcube
/**
* Private constructor
*/
- protected function __construct($env = '')
+ protected function __construct()
{
// load configuration
- $this->config = new rcube_config($env);
+ $this->config = new rcube_config;
$this->plugins = new rcube_dummy_plugin_api;
register_shutdown_function(array($this, 'shutdown'));
@@ -258,39 +258,6 @@ class rcube
/**
- * Initialize and get shared cache object
- *
- * @param string $name Cache identifier
- * @param bool $packed Enables/disables data serialization
- *
- * @return rcube_cache_shared Cache object
- */
- public function get_cache_shared($name, $packed=true)
- {
- $shared_name = "shared_$name";
-
- if (!array_key_exists($shared_name, $this->caches)) {
- $opt = strtolower($name) . '_cache';
- $type = $this->config->get($opt);
- $ttl = $this->config->get($opt . '_ttl');
-
- if (!$type) {
- // cache is disabled
- return $this->caches[$shared_name] = null;
- }
-
- if ($ttl === null) {
- $ttl = $this->config->get('shared_cache_ttl', '10d');
- }
-
- $this->caches[$shared_name] = new rcube_cache_shared($type, $name, $ttl, $packed);
- }
-
- return $this->caches[$shared_name];
- }
-
-
- /**
* Create SMTP object and connect to server
*
* @param boolean True if connection should be established
@@ -378,7 +345,6 @@ class rcube
'auth_pw' => $this->config->get("{$driver}_auth_pw"),
'debug' => (bool) $this->config->get("{$driver}_debug"),
'force_caps' => (bool) $this->config->get("{$driver}_force_caps"),
- 'disabled_caps' => $this->config->get("{$driver}_disabled_caps"),
'timeout' => (int) $this->config->get("{$driver}_timeout"),
'skip_deleted' => (bool) $this->config->get('skip_deleted'),
'driver' => $driver,
@@ -458,12 +424,15 @@ class rcube
ini_set('session.name', $sess_name ? $sess_name : 'roundcube_sessid');
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
+ ini_set('session.serialize_handler', 'php');
ini_set('session.cookie_httponly', 1);
// use database for storing session data
$this->session = new rcube_session($this->get_dbh(), $this->config);
- $this->session->register_gc_handler(array($this, 'gc'));
+ $this->session->register_gc_handler(array($this, 'temp_gc'));
+ $this->session->register_gc_handler(array($this, 'cache_gc'));
+
$this->session->set_secret($this->config->get('des_key') . dirname($_SERVER['SCRIPT_NAME']));
$this->session->set_ip_check($this->config->get('ip_check'));
@@ -473,47 +442,27 @@ class rcube
// start PHP session (if not in CLI mode)
if ($_SERVER['REMOTE_ADDR']) {
- $this->session->start();
+ session_start();
}
}
/**
- * Garbage collector - cache/temp cleaner
- */
- public function gc()
- {
- rcube_cache::gc();
- rcube_cache_shared::gc();
- $this->get_storage()->cache_gc();
-
- $this->gc_temp();
- }
-
-
- /**
* Garbage collector function for temp files.
* Remove temp files older than two days
*/
- public function gc_temp()
+ public function temp_gc()
{
$tmp = unslashify($this->config->get('temp_dir'));
-
- // expire in 48 hours by default
- $temp_dir_ttl = $this->config->get('temp_dir_ttl', '48h');
- $temp_dir_ttl = get_offset_sec($temp_dir_ttl);
- if ($temp_dir_ttl < 6*3600)
- $temp_dir_ttl = 6*3600; // 6 hours sensible lower bound.
-
- $expire = time() - $temp_dir_ttl;
+ $expire = time() - 172800; // expire in 48 hours
if ($tmp && ($dir = opendir($tmp))) {
while (($fname = readdir($dir)) !== false) {
- if ($fname[0] == '.') {
+ if ($fname{0} == '.') {
continue;
}
- if (@filemtime($tmp.'/'.$fname) < $expire) {
+ if (filemtime($tmp.'/'.$fname) < $expire) {
@unlink($tmp.'/'.$fname);
}
}
@@ -524,21 +473,14 @@ class rcube
/**
- * Runs garbage collector with probability based on
- * session settings. This is intended for environments
- * without a session.
+ * Garbage collector for cache entries.
+ * Set flag to expunge caches on shutdown
*/
- public function gc_run()
+ public function cache_gc()
{
- $probability = (int) ini_get('session.gc_probability');
- $divisor = (int) ini_get('session.gc_divisor');
-
- if ($divisor > 0 && $probability > 0) {
- $random = mt_rand(1, $divisor);
- if ($random <= $probability) {
- $this->gc();
- }
- }
+ // because this gc function is called before storage is initialized,
+ // we just set a flag to expunge storage cache on shutdown.
+ $this->expunge_cache = true;
}
@@ -702,11 +644,7 @@ class rcube
// user HTTP_ACCEPT_LANGUAGE if no language is specified
if (empty($lang) || $lang == 'auto') {
$accept_langs = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
- $lang = $accept_langs[0];
-
- if (preg_match('/^([a-z]+)[_-]([a-z]+)$/i', $lang, $m)) {
- $lang = $m[1] . '_' . strtoupper($m[2]);
- }
+ $lang = str_replace('-', '_', $accept_langs[0]);
}
if (empty($rcube_languages)) {
@@ -801,7 +739,7 @@ class rcube
mcrypt_module_close($td);
}
else {
- @include_once 'des.inc';
+ // @include_once 'des.inc'; (not shipped with this distribution)
if (function_exists('des')) {
$des_iv_size = 8;
@@ -856,7 +794,7 @@ class rcube
mcrypt_module_close($td);
}
else {
- @include_once 'des.inc';
+ // @include_once 'des.inc'; (not shipped with this distribution)
if (function_exists('des')) {
$des_iv_size = 8;
@@ -926,14 +864,6 @@ class rcube
call_user_func($function);
}
- // write session data as soon as possible and before
- // closing database connection, don't do this before
- // registered shutdown functions, they may need the session
- // Note: this will run registered gc handlers (ie. cache gc)
- if ($_SERVER['REMOTE_ADDR'] && is_object($this->session)) {
- $this->session->write_close();
- }
-
if (is_object($this->smtp)) {
$this->smtp->disconnect();
}
@@ -945,6 +875,9 @@ class rcube
}
if (is_object($this->storage)) {
+ if ($this->expunge_cache) {
+ $this->storage->expunge_cache();
+ }
$this->storage->close();
}
}
@@ -1363,191 +1296,6 @@ class rcube
}
}
- /**
- * Unique Message-ID generator.
- *
- * @return string Message-ID
- */
- public function gen_message_id()
- {
- $local_part = md5(uniqid('rcube'.mt_rand(), true));
- $domain_part = $this->user->get_username('domain');
-
- // Try to find FQDN, some spamfilters doesn't like 'localhost' (#1486924)
- if (!preg_match('/\.[a-z]+$/i', $domain_part)) {
- foreach (array($_SERVER['HTTP_HOST'], $_SERVER['SERVER_NAME']) as $host) {
- $host = preg_replace('/:[0-9]+$/', '', $host);
- if ($host && preg_match('/\.[a-z]+$/i', $host)) {
- $domain_part = $host;
- }
- }
- }
-
- return sprintf('<%s@%s>', $local_part, $domain_part);
- }
-
- /**
- * Send the given message using the configured method.
- *
- * @param object $message Reference to Mail_MIME object
- * @param string $from Sender address string
- * @param array $mailto Array of recipient address strings
- * @param array $error SMTP error array (reference)
- * @param string $body_file Location of file with saved message body (reference),
- * used when delay_file_io is enabled
- * @param array $options SMTP options (e.g. DSN request)
- *
- * @return boolean Send status.
- */
- public function deliver_message(&$message, $from, $mailto, &$error, &$body_file = null, $options = null)
- {
- $plugin = $this->plugins->exec_hook('message_before_send', array(
- 'message' => $message,
- 'from' => $from,
- 'mailto' => $mailto,
- 'options' => $options,
- ));
-
- if ($plugin['abort']) {
- return isset($plugin['result']) ? $plugin['result'] : false;
- }
-
- $from = $plugin['from'];
- $mailto = $plugin['mailto'];
- $options = $plugin['options'];
- $message = $plugin['message'];
- $headers = $message->headers();
-
- // send thru SMTP server using custom SMTP library
- if ($this->config->get('smtp_server')) {
- // generate list of recipients
- $a_recipients = array($mailto);
-
- if (strlen($headers['Cc']))
- $a_recipients[] = $headers['Cc'];
- if (strlen($headers['Bcc']))
- $a_recipients[] = $headers['Bcc'];
-
- // clean Bcc from header for recipients
- $send_headers = $headers;
- unset($send_headers['Bcc']);
- // here too, it because txtHeaders() below use $message->_headers not only $send_headers
- unset($message->_headers['Bcc']);
-
- $smtp_headers = $message->txtHeaders($send_headers, true);
-
- if ($message->getParam('delay_file_io')) {
- // use common temp dir
- $temp_dir = $this->config->get('temp_dir');
- $body_file = tempnam($temp_dir, 'rcmMsg');
- if (PEAR::isError($mime_result = $message->saveMessageBody($body_file))) {
- self::raise_error(array('code' => 650, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Could not create message: ".$mime_result->getMessage()),
- TRUE, FALSE);
- return false;
- }
- $msg_body = fopen($body_file, 'r');
- }
- else {
- $msg_body = $message->get();
- }
-
- // send message
- if (!is_object($this->smtp)) {
- $this->smtp_init(true);
- }
-
- $sent = $this->smtp->send_mail($from, $a_recipients, $smtp_headers, $msg_body, $options);
- $response = $this->smtp->get_response();
- $error = $this->smtp->get_error();
-
- // log error
- if (!$sent) {
- self::raise_error(array('code' => 800, 'type' => 'smtp',
- 'line' => __LINE__, 'file' => __FILE__,
- 'message' => "SMTP error: ".join("\n", $response)), TRUE, FALSE);
- }
- }
- // send mail using PHP's mail() function
- else {
- // unset some headers because they will be added by the mail() function
- $headers_enc = $message->headers($headers);
- $headers_php = $message->_headers;
- unset($headers_php['To'], $headers_php['Subject']);
-
- // reset stored headers and overwrite
- $message->_headers = array();
- $header_str = $message->txtHeaders($headers_php);
-
- // #1485779
- if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
- if (preg_match_all('/<([^@]+@[^>]+)>/', $headers_enc['To'], $m)) {
- $headers_enc['To'] = implode(', ', $m[1]);
- }
- }
-
- $msg_body = $message->get();
-
- if (PEAR::isError($msg_body)) {
- self::raise_error(array('code' => 650, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Could not create message: ".$msg_body->getMessage()),
- TRUE, FALSE);
- }
- else {
- $delim = $this->config->header_delimiter();
- $to = $headers_enc['To'];
- $subject = $headers_enc['Subject'];
- $header_str = rtrim($header_str);
-
- if ($delim != "\r\n") {
- $header_str = str_replace("\r\n", $delim, $header_str);
- $msg_body = str_replace("\r\n", $delim, $msg_body);
- $to = str_replace("\r\n", $delim, $to);
- $subject = str_replace("\r\n", $delim, $subject);
- }
-
- if (filter_var(ini_get('safe_mode'), FILTER_VALIDATE_BOOLEAN))
- $sent = mail($to, $subject, $msg_body, $header_str);
- else
- $sent = mail($to, $subject, $msg_body, $header_str, "-f$from");
- }
- }
-
- if ($sent) {
- $this->plugins->exec_hook('message_sent', array('headers' => $headers, 'body' => $msg_body));
-
- // remove MDN headers after sending
- unset($headers['Return-Receipt-To'], $headers['Disposition-Notification-To']);
-
- // get all recipients
- if ($headers['Cc'])
- $mailto .= $headers['Cc'];
- if ($headers['Bcc'])
- $mailto .= $headers['Bcc'];
- if (preg_match_all('/<([^@]+@[^>]+)>/', $mailto, $m))
- $mailto = implode(', ', array_unique($m[1]));
-
- if ($this->config->get('smtp_log')) {
- self::write_log('sendmail', sprintf("User %s [%s]; Message for %s; %s",
- $this->user->get_username(),
- $_SERVER['REMOTE_ADDR'],
- $mailto,
- !empty($response) ? join('; ', $response) : ''));
- }
- }
-
- if (is_resource($msg_body)) {
- fclose($msg_body);
- }
-
- $message->_headers = array();
- $message->headers($headers);
-
- return $sent;
- }
-
}
diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php
index 886f65cb9..13016ecc7 100644
--- a/program/lib/Roundcube/rcube_addressbook.php
+++ b/program/lib/Roundcube/rcube_addressbook.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
+ | Copyright (C) 2006-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -35,7 +35,6 @@ abstract class rcube_addressbook
/** public properties (mandatory) */
public $primary_key;
public $groups = false;
- public $export_groups = true;
public $readonly = true;
public $searchonly = false;
public $undelete = false;
@@ -209,7 +208,6 @@ abstract class rcube_addressbook
public function validate(&$save_data, $autofix = false)
{
$rcube = rcube::get_instance();
- $valid = true;
// check validity of email addresses
foreach ($this->get_col_values('email', $save_data, true) as $email) {
@@ -217,28 +215,12 @@ abstract class rcube_addressbook
if (!rcube_utils::check_email(rcube_utils::idn_to_ascii($email))) {
$error = $rcube->gettext(array('name' => 'emailformaterror', 'vars' => array('email' => $email)));
$this->set_error(self::ERROR_VALIDATE, $error);
- $valid = false;
- break;
+ return false;
}
}
}
- // allow plugins to do contact validation and auto-fixing
- $plugin = $rcube->plugins->exec_hook('contact_validate', array(
- 'record' => $save_data,
- 'autofix' => $autofix,
- 'valid' => $valid,
- ));
-
- if ($valid && !$plugin['valid']) {
- $this->set_error(self::ERROR_VALIDATE, $plugin['error']);
- }
-
- if (is_array($plugin['record'])) {
- $save_data = $plugin['record'];
- }
-
- return $plugin['valid'];
+ return true;
}
/**
@@ -441,7 +423,7 @@ abstract class rcube_addressbook
* @param boolean True to return one array with all values, False for hash array with values grouped by type
* @return array List of column values
*/
- public static function get_col_values($col, $data, $flat = false)
+ function get_col_values($col, $data, $flat = false)
{
$out = array();
foreach ((array)$data as $c => $values) {
@@ -450,7 +432,7 @@ abstract class rcube_addressbook
$out = array_merge($out, (array)$values);
}
else {
- list(, $type) = explode(':', $c);
+ list($f, $type) = explode(':', $c);
$out[$type] = array_merge((array)$out[$type], (array)$values);
}
}
@@ -494,8 +476,7 @@ abstract class rcube_addressbook
$fn = trim(join(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']))));
// use email address part for name
- $email = self::get_col_values('email', $contact, true);
- $email = $email[0];
+ $email = is_array($contact['email']) ? $contact['email'][0] : $contact['email'];
if ($email && (empty($fn) || $fn == $email)) {
// return full email
@@ -532,12 +513,8 @@ abstract class rcube_addressbook
$fn = join(' ', array($contact['surname'], $contact['firstname'], $contact['middlename']));
else if ($compose_mode == 1)
$fn = join(' ', array($contact['firstname'], $contact['middlename'], $contact['surname']));
- else if ($compose_mode == 0)
+ else
$fn = !empty($contact['name']) ? $contact['name'] : join(' ', array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']));
- else {
- $plugin = rcube::get_instance()->plugins->exec_hook('contact_listname', array('contact' => $contact));
- $fn = $plugin['fn'];
- }
$fn = trim($fn, ', ');
@@ -546,9 +523,9 @@ abstract class rcube_addressbook
$fn = $contact['name'];
// fallback to email address
- if (empty($fn) && ($email = self::get_col_values('email', $contact, true)) && !empty($email)) {
- return $email[0];
- }
+ $email = is_array($contact['email']) ? $contact['email'][0] : $contact['email'];
+ if (empty($fn) && $email)
+ return $email;
return $fn;
}
@@ -561,11 +538,11 @@ abstract class rcube_addressbook
$key = $contact[$sort_col] . ':' . $contact['sourceid'];
// add email to a key to not skip contacts with the same name (#1488375)
- if (($email = self::get_col_values('email', $contact, true)) && !empty($email)) {
- $key .= ':' . implode(':', (array)$email);
- }
+ if (!empty($contact['email'])) {
+ $key .= ':' . implode(':', (array)$contact['email']);
+ }
- return $key;
+ return $key;
}
/**
@@ -584,9 +561,9 @@ abstract class rcube_addressbook
// use only strict comparison (mode = 1)
// @TODO: partial search, e.g. match only day and month
if (in_array($colname, $this->date_cols)) {
- return (($value = rcube_utils::anytodatetime($value))
- && ($search = rcube_utils::anytodatetime($search))
- && $value->format('Ymd') == $search->format('Ymd'));
+ return (($value = rcube_utils::strtotime($value))
+ && ($search = rcube_utils::strtotime($search))
+ && date('Ymd', $value) == date('Ymd', $search));
}
// composite field, e.g. address
diff --git a/program/lib/Roundcube/rcube_base_replacer.php b/program/lib/Roundcube/rcube_base_replacer.php
index fa6764753..aaaa2028c 100644
--- a/program/lib/Roundcube/rcube_base_replacer.php
+++ b/program/lib/Roundcube/rcube_base_replacer.php
@@ -21,7 +21,7 @@
* using a predefined base
*
* @package Framework
- * @subpackage Utils
+ * @subpackage Core
* @author Thomas Bruederli <roundcube@gmail.com>
*/
class rcube_base_replacer
@@ -90,8 +90,8 @@ class rcube_base_replacer
if (preg_match_all('/\.\.\//', $path, $matches, PREG_SET_ORDER)) {
foreach ($matches as $a_match) {
- if ($pos = strrpos($base_url, '/')) {
- $base_url = substr($base_url, 0, $pos);
+ if (strrpos($base_url, '/')) {
+ $base_url = substr($base_url, 0, strrpos($base_url, '/'));
}
$path = substr($path, 3);
}
diff --git a/program/lib/Roundcube/rcube_browser.php b/program/lib/Roundcube/rcube_browser.php
index 34128291b..d10fe2a2c 100644
--- a/program/lib/Roundcube/rcube_browser.php
+++ b/program/lib/Roundcube/rcube_browser.php
@@ -20,7 +20,7 @@
* Provide details about the client's browser based on the User-Agent header
*
* @package Framework
- * @subpackage Utils
+ * @subpackage Core
*/
class rcube_browser
{
diff --git a/program/lib/Roundcube/rcube_cache.php b/program/lib/Roundcube/rcube_cache.php
index a708cb292..deaba68e9 100644
--- a/program/lib/Roundcube/rcube_cache.php
+++ b/program/lib/Roundcube/rcube_cache.php
@@ -38,7 +38,6 @@ class rcube_cache
private $type;
private $userid;
private $prefix;
- private $table;
private $ttl;
private $packed;
private $index;
@@ -72,9 +71,8 @@ class rcube_cache
$this->db = function_exists('apc_exists'); // APC 3.1.4 required
}
else {
- $this->type = 'db';
- $this->db = $rcube->get_dbh();
- $this->table = $this->db->table_name('cache');
+ $this->type = 'db';
+ $this->db = $rcube->get_dbh();
}
// convert ttl string to seconds
@@ -194,31 +192,20 @@ class rcube_cache
*/
function expunge()
{
- if ($this->type == 'db' && $this->db && $this->ttl) {
+ if ($this->type == 'db' && $this->db) {
$this->db->query(
- "DELETE FROM ".$this->table.
+ "DELETE FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key LIKE ?".
- " AND expires < " . $this->db->now(),
+ " AND " . $this->db->unixtimestamp('created')." < ?",
$this->userid,
- $this->prefix.'.%');
+ $this->prefix.'.%',
+ time() - $this->ttl);
}
}
/**
- * Remove expired records of all caches
- */
- static function gc()
- {
- $rcube = rcube::get_instance();
- $db = $rcube->get_dbh();
-
- $db->query("DELETE FROM " . $db->table_name('cache') . " WHERE expires < " . $db->now());
- }
-
-
- /**
* Writes the cache back to the DB.
*/
function close()
@@ -284,7 +271,7 @@ class rcube_cache
else {
$sql_result = $this->db->limitquery(
"SELECT data, cache_key".
- " FROM " . $this->table.
+ " FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key = ?".
// for better performance we allow more records for one key
@@ -339,7 +326,7 @@ class rcube_cache
// Remove NULL rows (here we don't need to check if the record exist)
if ($data == 'N;') {
$this->db->query(
- "DELETE FROM " . $this->table.
+ "DELETE FROM ".$this->db->table_name('cache').
" WHERE user_id = ?".
" AND cache_key = ?",
$this->userid, $key);
@@ -350,10 +337,8 @@ class rcube_cache
// update existing cache record
if ($key_exists) {
$result = $this->db->query(
- "UPDATE " . $this->table.
- " SET created = " . $this->db->now().
- ", expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL').
- ", data = ?".
+ "UPDATE ".$this->db->table_name('cache').
+ " SET created = ". $this->db->now().", data = ?".
" WHERE user_id = ?".
" AND cache_key = ?",
$data, $this->userid, $key);
@@ -363,9 +348,9 @@ class rcube_cache
// for better performance we allow more records for one key
// so, no need to check if record exist (see rcube_cache::read_record())
$result = $this->db->query(
- "INSERT INTO " . $this->table.
- " (created, expires, user_id, cache_key, data)".
- " VALUES (" . $this->db->now() . ", " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL') . ", ?, ?, ?)",
+ "INSERT INTO ".$this->db->table_name('cache').
+ " (created, user_id, cache_key, data)".
+ " VALUES (".$this->db->now().", ?, ?, ?)",
$this->userid, $key, $data);
}
@@ -426,7 +411,7 @@ class rcube_cache
}
$this->db->query(
- "DELETE FROM " . $this->table.
+ "DELETE FROM ".$this->db->table_name('cache').
" WHERE user_id = ?" . $where,
$this->userid);
}
diff --git a/program/lib/Roundcube/rcube_config.php b/program/lib/Roundcube/rcube_config.php
index 04b914c3d..3edec4242 100644
--- a/program/lib/Roundcube/rcube_config.php
+++ b/program/lib/Roundcube/rcube_config.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2008-2013, The Roundcube Dev Team |
+ | Copyright (C) 2008-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -26,8 +26,6 @@ class rcube_config
{
const DEFAULT_SKIN = 'larry';
- private $env = '';
- private $paths = array();
private $prop = array();
private $errors = array();
private $userprefs = array();
@@ -45,46 +43,14 @@ class rcube_config
'reply_mode' => 'top_posting',
'refresh_interval' => 'keep_alive',
'min_refresh_interval' => 'min_keep_alive',
- 'messages_cache_ttl' => 'message_cache_lifetime',
- 'redundant_attachments_cache_ttl' => 'redundant_attachments_memcache_ttl',
);
/**
* Object constructor
- *
- * @param string Environment suffix for config files to load
*/
- public function __construct($env = '')
+ public function __construct()
{
- $this->env = $env;
-
- if ($paths = getenv('RCUBE_CONFIG_PATH')) {
- $this->paths = explode(PATH_SEPARATOR, $paths);
- // make all paths absolute
- foreach ($this->paths as $i => $path) {
- if (!$this->_is_absolute($path)) {
- if ($realpath = realpath(RCUBE_INSTALL_PATH . $path)) {
- $this->paths[$i] = unslashify($realpath) . '/';
- }
- else {
- unset($this->paths[$i]);
- }
- }
- else {
- $this->paths[$i] = unslashify($path) . '/';
- }
- }
- }
-
- if (defined('RCUBE_CONFIG_DIR') && !in_array(RCUBE_CONFIG_DIR, $this->paths)) {
- $this->paths[] = RCUBE_CONFIG_DIR;
- }
-
- if (empty($this->paths)) {
- $this->paths[] = RCUBE_INSTALL_PATH . 'config/';
- }
-
$this->load();
// Defaults, that we do not require you to configure,
@@ -101,22 +67,13 @@ class rcube_config
*/
private function load()
{
- // Load default settings
- if (!$this->load_from_file('defaults.inc.php')) {
- $this->errors[] = 'defaults.inc.php was not found.';
- }
-
// load main config file
- if (!$this->load_from_file('config.inc.php')) {
- // Old configuration files
- if (!$this->load_from_file('main.inc.php') ||
- !$this->load_from_file('db.inc.php')) {
- $this->errors[] = 'config.inc.php was not found.';
- }
- else if (rand(1,100) == 10) { // log warning on every 100th request (average)
- trigger_error("config.inc.php was not found. Please migrate your config by running bin/update.sh", E_USER_WARNING);
- }
- }
+ if (!$this->load_from_file(RCUBE_CONFIG_DIR . 'main.inc.php'))
+ $this->errors[] = 'main.inc.php was not found.';
+
+ // load database config
+ if (!$this->load_from_file(RCUBE_CONFIG_DIR . 'db.inc.php'))
+ $this->errors[] = 'db.inc.php was not found.';
// load host-specific configuration
$this->load_host_config();
@@ -162,6 +119,17 @@ class rcube_config
// enable display_errors in 'show' level, but not for ajax requests
ini_set('display_errors', intval(empty($_REQUEST['_remote']) && ($this->prop['debug_level'] & 4)));
+ // set timezone auto settings values
+ if ($this->prop['timezone'] == 'auto') {
+ $this->prop['_timezone_value'] = $this->client_timezone();
+ }
+ else if (is_numeric($this->prop['timezone']) && ($tz = timezone_name_from_abbr("", $this->prop['timezone'] * 3600, 0))) {
+ $this->prop['timezone'] = $tz;
+ }
+ else if (empty($this->prop['timezone'])) {
+ $this->prop['timezone'] = 'UTC';
+ }
+
// remove deprecated properties
unset($this->prop['dst_active']);
@@ -175,107 +143,45 @@ class rcube_config
*/
private function load_host_config()
{
- if (empty($this->prop['include_host_config'])) {
- return;
- }
-
- foreach (array('HTTP_HOST', 'SERVER_NAME', 'SERVER_ADDR') as $key) {
- $fname = null;
- $name = $_SERVER[$key];
-
- if (!$name) {
- continue;
- }
+ $fname = null;
- if (is_array($this->prop['include_host_config'])) {
- $fname = $this->prop['include_host_config'][$name];
- }
- else {
- $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $name) . '.inc.php';
- }
+ if (is_array($this->prop['include_host_config'])) {
+ $fname = $this->prop['include_host_config'][$_SERVER['HTTP_HOST']];
+ }
+ else if (!empty($this->prop['include_host_config'])) {
+ $fname = preg_replace('/[^a-z0-9\.\-_]/i', '', $_SERVER['HTTP_HOST']) . '.inc.php';
+ }
- if ($fname && $this->load_from_file($fname)) {
- return;
- }
+ if ($fname) {
+ $this->load_from_file(RCUBE_CONFIG_DIR . $fname);
}
}
+
/**
* Read configuration from a file
* and merge with the already stored config values
*
- * @param string $file Name of the config file to be loaded
+ * @param string $fpath Full path to the config file to be loaded
* @return booelan True on success, false on failure
*/
- public function load_from_file($file)
+ public function load_from_file($fpath)
{
- $success = false;
-
- foreach ($this->resolve_paths($file) as $fpath) {
- if ($fpath && is_file($fpath) && is_readable($fpath)) {
- // use output buffering, we don't need any output here
- ob_start();
- include($fpath);
- ob_end_clean();
-
- if (is_array($config)) {
- $this->merge($config);
- $success = true;
- }
- // deprecated name of config variable
- if (is_array($rcmail_config)) {
- $this->merge($rcmail_config);
- $success = true;
- }
+ if (is_file($fpath) && is_readable($fpath)) {
+ // use output buffering, we don't need any output here
+ ob_start();
+ include($fpath);
+ ob_end_clean();
+
+ if (is_array($rcmail_config)) {
+ $this->merge($rcmail_config);
+ return true;
}
}
- return $success;
+ return false;
}
- /**
- * Helper method to resolve absolute paths to the given config file.
- * This also takes the 'env' property into account.
- *
- * @param string Filename or absolute file path
- * @param boolean Return -$env file path if exists
- * @return array List of candidates in config dir path(s)
- */
- public function resolve_paths($file, $use_env = true)
- {
- $files = array();
- $abs_path = $this->_is_absolute($file);
-
- foreach ($this->paths as $basepath) {
- $realpath = $abs_path ? $file : realpath($basepath . '/' . $file);
-
- // check if <file>-env.ini exists
- if ($realpath && $use_env && !empty($this->env)) {
- $envfile = preg_replace('/\.(inc.php)$/', '-' . $this->env . '.\\1', $realpath);
- if (is_file($envfile))
- $realpath = $envfile;
- }
-
- if ($realpath) {
- $files[] = $realpath;
-
- // no need to continue the loop if an absolute file path is given
- if ($abs_path) {
- break;
- }
- }
- }
-
- return $files;
- }
-
- /**
- * Determine whether the given file path is absolute or relative
- */
- private function _is_absolute($path)
- {
- return $path[0] == DIRECTORY_SEPARATOR || preg_match('!^[a-z]:[\\\\/]!i', $path);
- }
/**
* Getter for a specific config parameter
@@ -295,10 +201,8 @@ class rcube_config
$rcube = rcube::get_instance();
- if ($name == 'timezone') {
- if (empty($result) || $result == 'auto') {
- $result = $this->client_timezone();
- }
+ if ($name == 'timezone' && isset($this->prop['_timezone_value'])) {
+ $result = $this->prop['_timezone_value'];
}
else if ($name == 'client_mimetypes') {
if ($result == null && $def == null)
@@ -356,6 +260,11 @@ class rcube_config
}
}
+ // convert user's timezone into the new format
+ if (is_numeric($prefs['timezone']) && ($tz = timezone_name_from_abbr('', $prefs['timezone'] * 3600, 0))) {
+ $prefs['timezone'] = $tz;
+ }
+
// larry is the new default skin :-)
if ($prefs['skin'] == 'default') {
$prefs['skin'] = self::DEFAULT_SKIN;
@@ -363,6 +272,13 @@ class rcube_config
$this->userprefs = $prefs;
$this->prop = array_merge($this->prop, $prefs);
+
+ // override timezone settings with client values
+ if ($this->prop['timezone'] == 'auto') {
+ $this->prop['_timezone_value'] = isset($_SESSION['timezone']) ? $this->client_timezone() : $this->prop['_timezone_value'];
+ }
+ else if (isset($this->prop['_timezone_value']))
+ unset($this->prop['_timezone_value']);
}
@@ -503,12 +419,13 @@ class rcube_config
*/
private function client_timezone()
{
- // @TODO: remove this legacy timezone handling in the future
- $props = $this->fix_legacy_props(array('timezone' => $_SESSION['timezone']));
-
- if (!empty($props['timezone'])) {
+ if (isset($_SESSION['timezone']) && is_numeric($_SESSION['timezone'])
+ && ($ctz = timezone_name_from_abbr("", $_SESSION['timezone'] * 3600, 0))) {
+ return $ctz;
+ }
+ else if (!empty($_SESSION['timezone'])) {
try {
- $tz = new DateTimeZone($props['timezone']);
+ $tz = timezone_open($_SESSION['timezone']);
return $tz->getName();
}
catch (Exception $e) { /* gracefully ignore */ }
@@ -536,77 +453,6 @@ class rcube_config
}
}
- // convert deprecated numeric timezone value
- if (isset($props['timezone']) && is_numeric($props['timezone'])) {
- if ($tz = self::timezone_name_from_abbr($props['timezone'])) {
- $props['timezone'] = $tz;
- }
- else {
- unset($props['timezone']);
- }
- }
-
return $props;
}
-
- /**
- * timezone_name_from_abbr() replacement. Converts timezone offset
- * into timezone name abbreviation.
- *
- * @param float $offset Timezone offset (in hours)
- *
- * @return string Timezone abbreviation
- */
- static public function timezone_name_from_abbr($offset)
- {
- // List of timezones here is not complete - https://bugs.php.net/bug.php?id=44780
- if ($tz = timezone_name_from_abbr('', $offset * 3600, 0)) {
- return $tz;
- }
-
- // try with more complete list (#1489261)
- $timezones = array(
- '-660' => "Pacific/Apia",
- '-600' => "Pacific/Honolulu",
- '-570' => "Pacific/Marquesas",
- '-540' => "America/Anchorage",
- '-480' => "America/Los_Angeles",
- '-420' => "America/Denver",
- '-360' => "America/Chicago",
- '-300' => "America/New_York",
- '-270' => "America/Caracas",
- '-240' => "America/Halifax",
- '-210' => "Canada/Newfoundland",
- '-180' => "America/Sao_Paulo",
- '-60' => "Atlantic/Azores",
- '0' => "Europe/London",
- '60' => "Europe/Paris",
- '120' => "Europe/Helsinki",
- '180' => "Europe/Moscow",
- '210' => "Asia/Tehran",
- '240' => "Asia/Dubai",
- '300' => "Asia/Karachi",
- '270' => "Asia/Kabul",
- '300' => "Asia/Karachi",
- '330' => "Asia/Kolkata",
- '345' => "Asia/Katmandu",
- '360' => "Asia/Yekaterinburg",
- '390' => "Asia/Rangoon",
- '420' => "Asia/Krasnoyarsk",
- '480' => "Asia/Shanghai",
- '525' => "Australia/Eucla",
- '540' => "Asia/Tokyo",
- '570' => "Australia/Adelaide",
- '600' => "Australia/Melbourne",
- '630' => "Australia/Lord_Howe",
- '660' => "Asia/Vladivostok",
- '690' => "Pacific/Norfolk",
- '720' => "Pacific/Auckland",
- '765' => "Pacific/Chatham",
- '780' => "Pacific/Enderbury",
- '840' => "Pacific/Kiritimati",
- );
-
- return $timezones[(string) intval($offset * 60)];
- }
}
diff --git a/program/lib/Roundcube/rcube_contacts.php b/program/lib/Roundcube/rcube_contacts.php
index 5c9e5ab39..3919cdc6e 100644
--- a/program/lib/Roundcube/rcube_contacts.php
+++ b/program/lib/Roundcube/rcube_contacts.php
@@ -592,8 +592,8 @@ class rcube_contacts extends rcube_addressbook
// validate e-mail addresses
$valid = parent::validate($save_data, $autofix);
- // require at least one email address or a name
- if ($valid && !strlen($save_data['firstname'].$save_data['surname'].$save_data['name']) && !array_filter($this->get_col_values('email', $save_data, true))) {
+ // require at least one e-mail address (syntax check is already done)
+ if ($valid && !array_filter($this->get_col_values('email', $save_data, true))) {
$this->set_error(self::ERROR_VALIDATE, 'noemailwarning');
$valid = false;
}
@@ -718,10 +718,6 @@ class rcube_contacts extends rcube_addressbook
foreach ($save_data as $key => $values) {
list($field, $section) = explode(':', $key);
$fulltext = in_array($field, $this->fulltext_cols);
- // avoid casting DateTime objects to array
- if (is_object($values) && is_a($values, 'DateTime')) {
- $values = array(0 => $values);
- }
foreach ((array)$values as $value) {
if (isset($value))
$vcard->set($field, $value, $section);
diff --git a/program/lib/Roundcube/rcube_content_filter.php b/program/lib/Roundcube/rcube_content_filter.php
index ae6617d1b..b814bb71d 100644
--- a/program/lib/Roundcube/rcube_content_filter.php
+++ b/program/lib/Roundcube/rcube_content_filter.php
@@ -20,7 +20,7 @@
* PHP stream filter to detect html/javascript code in attachments
*
* @package Framework
- * @subpackage Utils
+ * @subpackage Core
*/
class rcube_content_filter extends php_user_filter
{
diff --git a/program/lib/Roundcube/rcube_csv2vcard.php b/program/lib/Roundcube/rcube_csv2vcard.php
index aa385dce4..506a4b740 100644
--- a/program/lib/Roundcube/rcube_csv2vcard.php
+++ b/program/lib/Roundcube/rcube_csv2vcard.php
@@ -47,7 +47,7 @@ class rcube_csv2vcard
//'business_street_2' => '',
//'business_street_3' => '',
'car_phone' => 'phone:car',
- 'categories' => 'groups',
+ 'categories' => 'categories',
//'children' => '',
'company' => 'organization',
//'company_main_phone' => '',
@@ -130,25 +130,6 @@ class rcube_csv2vcard
'work_state' => 'region:work',
'home_city_short' => 'locality:home',
'home_state_short' => 'region:home',
-
- // Atmail
- 'date_of_birth' => 'birthday',
- 'email' => 'email:pref',
- 'home_mobile' => 'phone:cell',
- 'home_zip' => 'zipcode:home',
- 'info' => 'notes',
- 'user_photo' => 'photo',
- 'url' => 'website:homepage',
- 'work_company' => 'organization',
- 'work_dept' => 'departament',
- 'work_fax' => 'phone:work,fax',
- 'work_mobile' => 'phone:work,cell',
- 'work_title' => 'jobtitle',
- 'work_zip' => 'zipcode:work',
- 'group' => 'groups',
-
- // GMail
- 'groups' => 'groups',
);
/**
@@ -249,30 +230,8 @@ class rcube_csv2vcard
'work_phone' => "Work Phone",
'work_address' => "Work Address",
//'work_address_2' => "Work Address 2",
- 'work_city' => "Work City",
'work_country' => "Work Country",
- 'work_state' => "Work State",
'work_zipcode' => "Work ZipCode",
-
- // Atmail
- 'date_of_birth' => "Date of Birth",
- 'email' => "Email",
- //'email_2' => "Email2",
- //'email_3' => "Email3",
- //'email_4' => "Email4",
- //'email_5' => "Email5",
- 'home_mobile' => "Home Mobile",
- 'home_zip' => "Home Zip",
- 'info' => "Info",
- 'user_photo' => "User Photo",
- 'url' => "URL",
- 'work_company' => "Work Company",
- 'work_dept' => "Work Dept",
- 'work_fax' => "Work Fax",
- 'work_mobile' => "Work Mobile",
- 'work_title' => "Work Title",
- 'work_zip' => "Work Zip",
- 'groups' => "Group",
);
protected $local_label_map = array();
@@ -309,6 +268,7 @@ class rcube_csv2vcard
{
// convert to UTF-8
$head = substr($csv, 0, 4096);
+ $fallback = rcube::get_instance()->config->get('default_charset', 'ISO-8859-1'); // fallback to Latin-1?
$charset = rcube_charset::detect($head, RCUBE_CHARSET);
$csv = rcube_charset::convert($csv, $charset);
$head = '';
@@ -316,7 +276,7 @@ class rcube_csv2vcard
$this->map = array();
// Parse file
- foreach (preg_split("/[\r\n]+/", $csv) as $line) {
+ foreach (preg_split("/[\r\n]+/", $csv) as $i => $line) {
$elements = $this->parse_line($line);
if (empty($elements)) {
continue;
@@ -430,18 +390,9 @@ class rcube_csv2vcard
$contact['birthday'] = $contact['birthday-y'] .'-' .$contact['birthday-m'] . '-' . $contact['birthday-d'];
}
- // categories/groups separator in vCard is ',' not ';'
- if (!empty($contact['groups'])) {
- $contact['groups'] = str_replace(';', ',', $contact['groups']);
- }
-
- // Empty dates, e.g. "0/0/00", "0000-00-00 00:00:00"
foreach (array('birthday', 'anniversary') as $key) {
- if (!empty($contact[$key])) {
- $date = preg_replace('/[0[:^word:]]/', '', $contact[$key]);
- if (empty($date)) {
- unset($contact[$key]);
- }
+ if (!empty($contact[$key]) && $contact[$key] == '0/0/00') { // @TODO: localization?
+ unset($contact[$key]);
}
}
diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php
index 2828f26ee..5083a0dfe 100644
--- a/program/lib/Roundcube/rcube_db.php
+++ b/program/lib/Roundcube/rcube_db.php
@@ -31,10 +31,7 @@ class rcube_db
protected $db_dsnr; // DSN for read operations
protected $db_connected = false; // Already connected ?
protected $db_mode; // Connection mode
- protected $db_table_dsn_map = array();
protected $dbh; // Connection handle
- protected $dbhs = array();
- protected $table_connections = array();
protected $db_error = false;
protected $db_error_msg = '';
@@ -50,7 +47,6 @@ class rcube_db
'identifier_end' => '"',
);
- const DEBUG_LINE_LENGTH = 4096;
/**
* Factory, returns driver-specific instance of the class
@@ -66,6 +62,7 @@ class rcube_db
$driver = strtolower(substr($db_dsnw, 0, strpos($db_dsnw, ':')));
$driver_map = array(
'sqlite2' => 'sqlite',
+ 'sqlite3' => 'sqlite',
'sybase' => 'mssql',
'dblib' => 'mssql',
'mysqli' => 'mysql',
@@ -100,32 +97,34 @@ class rcube_db
$this->db_dsnw = $db_dsnw;
$this->db_dsnr = $db_dsnr;
$this->db_pconn = $pconn;
- $this->db_dsnw_noread = rcube::get_instance()->config->get('db_dsnw_noread', false);
$this->db_dsnw_array = self::parse_dsn($db_dsnw);
$this->db_dsnr_array = self::parse_dsn($db_dsnr);
- $this->db_table_dsn_map = array_map(array($this, 'table_name'), rcube::get_instance()->config->get('db_table_dsn', array()));
+ // Initialize driver class
+ $this->init();
+ }
+
+ /**
+ * Initialization of the object with driver specific code
+ */
+ protected function init()
+ {
+ // To be used by driver classes
}
/**
* Connect to specific database
*
- * @param array $dsn DSN for DB connections
- * @param string $mode Connection mode (r|w)
+ * @param array $dsn DSN for DB connections
+ *
+ * @return PDO database handle
*/
- protected function dsn_connect($dsn, $mode)
+ protected function dsn_connect($dsn)
{
$this->db_error = false;
$this->db_error_msg = null;
- // return existing handle
- if ($this->dbhs[$mode]) {
- $this->dbh = $this->dbhs[$mode];
- $this->db_mode = $mode;
- return $this->dbh;
- }
-
// Get database specific connection options
$dsn_string = $this->dsn_string($dsn);
$dsn_options = $this->dsn_options($dsn);
@@ -159,11 +158,9 @@ class rcube_db
return null;
}
- $this->dbh = $dbh;
- $this->dbhs[$mode] = $dbh;
- $this->db_mode = $mode;
- $this->db_connected = true;
$this->conn_configure($dsn, $dbh);
+
+ return $dbh;
}
/**
@@ -186,12 +183,21 @@ class rcube_db
}
/**
+ * Driver-specific database character set setting
+ *
+ * @param string $charset Character set name
+ */
+ protected function set_charset($charset)
+ {
+ $this->query("SET NAMES 'utf8'");
+ }
+
+ /**
* Connect to appropriate database depending on the operation
*
* @param string $mode Connection mode (r|w)
- * @param boolean $force Enforce using the given mode
*/
- public function db_connect($mode, $force = false)
+ public function db_connect($mode)
{
// previous connection failed, don't attempt to connect again
if ($this->conn_failure) {
@@ -205,61 +211,31 @@ class rcube_db
// Already connected
if ($this->db_connected) {
- // connected to db with the same or "higher" mode (if allowed)
- if ($this->db_mode == $mode || $this->db_mode == 'w' && !$force && !$this->db_dsnw_noread) {
+ // connected to db with the same or "higher" mode
+ if ($this->db_mode == 'w' || $this->db_mode == $mode) {
return;
}
}
$dsn = ($mode == 'r') ? $this->db_dsnr_array : $this->db_dsnw_array;
- $this->dsn_connect($dsn, $mode);
+
+ $this->dbh = $this->dsn_connect($dsn);
+ $this->db_connected = is_object($this->dbh);
// use write-master when read-only fails
- if (!$this->db_connected && $mode == 'r' && $this->is_replicated()) {
- $this->dsn_connect($this->db_dsnw_array, 'w');
+ if (!$this->db_connected && $mode == 'r') {
+ $mode = 'w';
+ $this->dbh = $this->dsn_connect($this->db_dsnw_array);
+ $this->db_connected = is_object($this->dbh);
}
- $this->conn_failure = !$this->db_connected;
- }
-
- /**
- * Analyze the given SQL statement and select the appropriate connection to use
- */
- protected function dsn_select($query)
- {
- // no replication
- if ($this->db_dsnw == $this->db_dsnr) {
- return 'w';
+ if ($this->db_connected) {
+ $this->db_mode = $mode;
+ $this->set_charset('utf8');
}
-
- // Read or write ?
- $mode = preg_match('/^(select|show|set)/i', $query) ? 'r' : 'w';
-
- // find tables involved in this query
- if (preg_match_all('/(?:^|\s)(from|update|into|join)\s+'.$this->options['identifier_start'].'?([a-z0-9._]+)'.$this->options['identifier_end'].'?\s+/i', $query, $matches, PREG_SET_ORDER)) {
- foreach ($matches as $m) {
- $table = $m[2];
-
- // always use direct mapping
- if ($this->db_table_dsn_map[$table]) {
- $mode = $this->db_table_dsn_map[$table];
- break; // primary table rules
- }
- else if ($mode == 'r') {
- // connected to db with the same or "higher" mode for this table
- $db_mode = $this->table_connections[$table];
- if ($db_mode == 'w' && !$this->db_dsnw_noread) {
- $mode = $db_mode;
- }
- }
- }
-
- // remember mode chosen (for primary table)
- $table = $matches[0][2];
- $this->table_connections[$table] = $mode;
+ else {
+ $this->conn_failure = true;
}
-
- return $mode;
}
/**
@@ -280,11 +256,6 @@ class rcube_db
protected function debug($query)
{
if ($this->options['debug_mode']) {
- if (($len = strlen($query)) > self::DEBUG_LINE_LENGTH) {
- $diff = $len - self::DEBUG_LINE_LENGTH;
- $query = substr($query, 0, self::DEBUG_LINE_LENGTH)
- . "... [truncated $diff bytes]";
- }
rcube::write_log('sql', '[' . (++$this->db_index) . '] ' . $query . ';');
}
}
@@ -392,9 +363,10 @@ class rcube_db
*/
protected function _query($query, $offset, $numrows, $params)
{
- $query = ltrim($query);
+ // Read or write ?
+ $mode = preg_match('/^(select|show)/i', ltrim($query)) ? 'r' : 'w';
- $this->db_connect($this->dsn_select($query), true);
+ $this->db_connect($mode);
// check connection before proceeding
if (!$this->is_connected()) {
@@ -405,28 +377,27 @@ class rcube_db
$query = $this->set_limit($query, $numrows, $offset);
}
+ $params = (array) $params;
+
// Because in Roundcube we mostly use queries that are
// executed only once, we will not use prepared queries
$pos = 0;
$idx = 0;
- if (count($params)) {
- while ($pos = strpos($query, '?', $pos)) {
- if ($query[$pos+1] == '?') { // skip escaped '?'
- $pos += 2;
- }
- else {
- $val = $this->quote($params[$idx++]);
- unset($params[$idx-1]);
- $query = substr_replace($query, $val, $pos, 1);
- $pos += strlen($val);
- }
+ while ($pos = strpos($query, '?', $pos)) {
+ if ($query[$pos+1] == '?') { // skip escaped ?
+ $pos += 2;
+ }
+ else {
+ $val = $this->quote($params[$idx++]);
+ unset($params[$idx-1]);
+ $query = substr_replace($query, $val, $pos, 1);
+ $pos += strlen($val);
}
}
- // replace escaped '?' back to normal, see self::quote()
- $query = str_replace('??', '?', $query);
- $query = rtrim($query, " \t\n\r\0\x0B;");
+ // replace escaped ? back to normal
+ $query = rtrim(strtr($query, array('??' => '?')), ';');
$this->debug($query);
@@ -438,26 +409,7 @@ class rcube_db
$result = $this->dbh->query($query);
if ($result === false) {
- $result = $this->handle_error($query);
- }
-
- $this->last_result = $result;
-
- return $result;
- }
-
- /**
- * Helper method to handle DB errors.
- * This by default logs the error but could be overriden by a driver implementation
- *
- * @param string Query that triggered the error
- * @return mixed Result to be stored and returned
- */
- protected function handle_error($query)
- {
- $error = $this->dbh->errorInfo();
-
- if (empty($this->options['ignore_key_errors']) || !in_array($error[0], array('23000', '23505'))) {
+ $error = $this->dbh->errorInfo();
$this->db_error = true;
$this->db_error_msg = sprintf('[%s] %s', $error[1], $error[2]);
@@ -467,7 +419,9 @@ class rcube_db
), true, false);
}
- return false;
+ $this->last_result = $result;
+
+ return $result;
}
/**
@@ -749,19 +703,11 @@ class rcube_db
/**
* Return SQL function for current time and date
*
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
* @return string SQL function to use in query
*/
- public function now($interval = 0)
+ public function now()
{
- if ($interval) {
- $add = ' ' . ($interval > 0 ? '+' : '-') . ' INTERVAL ';
- $add .= $interval > 0 ? intval($interval) : intval($interval) * -1;
- $add .= ' SECOND';
- }
-
- return "now()" . $add;
+ return "now()";
}
/**
@@ -920,43 +866,19 @@ class rcube_db
*/
public function table_name($table)
{
- static $rcube;
+ $rcube = rcube::get_instance();
- if (!$rcube) {
- $rcube = rcube::get_instance();
- }
+ // return table name if configured
+ $config_key = 'db_table_'.$table;
- // add prefix to the table name if configured
- if (($prefix = $rcube->config->get('db_prefix')) && strpos($table, $prefix) !== 0) {
- return $prefix . $table;
+ if ($name = $rcube->config->get($config_key)) {
+ return $name;
}
return $table;
}
/**
- * Set class option value
- *
- * @param string $name Option name
- * @param mixed $value Option value
- */
- public function set_option($name, $value)
- {
- $this->options[$name] = $value;
- }
-
- /**
- * Set DSN connection to be used for the given table
- *
- * @param string Table name
- * @param string DSN connection ('r' or 'w') to be used
- */
- public function set_table_dsn($table, $mode)
- {
- $this->db_table_dsn_map[$this->table_name($table)] = $mode;
- }
-
- /**
* MDB2 DSN string parser
*
* @param string $sequence Secuence name
diff --git a/program/lib/Roundcube/rcube_db_mssql.php b/program/lib/Roundcube/rcube_db_mssql.php
index 726e4b421..37a42678a 100644
--- a/program/lib/Roundcube/rcube_db_mssql.php
+++ b/program/lib/Roundcube/rcube_db_mssql.php
@@ -29,52 +29,38 @@ class rcube_db_mssql extends rcube_db
public $db_provider = 'mssql';
/**
- * Object constructor
- *
- * @param string $db_dsnw DSN for read/write operations
- * @param string $db_dsnr Optional DSN for read only operations
- * @param bool $pconn Enables persistent connections
+ * Driver initialization
*/
- public function __construct($db_dsnw, $db_dsnr = '', $pconn = false)
+ protected function init()
{
- parent::__construct($db_dsnw, $db_dsnr, $pconn);
-
$this->options['identifier_start'] = '[';
$this->options['identifier_end'] = ']';
}
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
+ * Character setting
*/
- protected function conn_configure($dsn, $dbh)
+ protected function set_charset($charset)
{
- // Set date format in case of non-default language (#1488918)
- $dbh->query("SET DATEFORMAT ymd");
+ // UTF-8 is default
}
/**
* Return SQL function for current time and date
*
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
* @return string SQL function to use in query
*/
- public function now($interval = 0)
+ public function now()
{
- if ($interval) {
- $interval = intval($interval);
- return "dateadd(second, $interval, getdate())";
- }
-
return "getdate()";
}
/**
* Return SQL statement to convert a field value into a unix timestamp
*
+ * This method is deprecated and should not be used anymore due to limitations
+ * of timestamp functions in Mysql (year 2038 problem)
+ *
* @param string $field Field name
*
* @return string SQL statement to use in query
diff --git a/program/lib/Roundcube/rcube_db_mysql.php b/program/lib/Roundcube/rcube_db_mysql.php
index d3d0ac5c8..7f5ad2b36 100644
--- a/program/lib/Roundcube/rcube_db_mysql.php
+++ b/program/lib/Roundcube/rcube_db_mysql.php
@@ -30,13 +30,9 @@ class rcube_db_mysql extends rcube_db
public $db_provider = 'mysql';
/**
- * Object constructor
- *
- * @param string $db_dsnw DSN for read/write operations
- * @param string $db_dsnr Optional DSN for read only operations
- * @param bool $pconn Enables persistent connections
+ * Driver initialization/configuration
*/
- public function __construct($db_dsnw, $db_dsnr = '', $pconn = false)
+ protected function init()
{
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
rcube::raise_error(array('code' => 600, 'type' => 'db',
@@ -45,25 +41,12 @@ class rcube_db_mysql extends rcube_db
true, true);
}
- parent::__construct($db_dsnw, $db_dsnr, $pconn);
-
// SQL identifiers quoting
$this->options['identifier_start'] = '`';
$this->options['identifier_end'] = '`';
}
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
- */
- protected function conn_configure($dsn, $dbh)
- {
- $dbh->query("SET NAMES 'utf8'");
- }
-
- /**
* Abstract SQL statement for value concatenation
*
* @return string SQL statement to be used in query
@@ -151,7 +134,7 @@ class rcube_db_mysql extends rcube_db
$result[PDO::MYSQL_ATTR_FOUND_ROWS] = true;
// Enable AUTOCOMMIT mode (#1488902)
- $result[PDO::ATTR_AUTOCOMMIT] = true;
+ $dsn_options[PDO::ATTR_AUTOCOMMIT] = true;
return $result;
}
@@ -179,29 +162,4 @@ class rcube_db_mysql extends rcube_db
return isset($this->variables[$varname]) ? $this->variables[$varname] : $default;
}
- /**
- * Handle DB errors, re-issue the query on deadlock errors from InnoDB row-level locking
- *
- * @param string Query that triggered the error
- * @return mixed Result to be stored and returned
- */
- protected function handle_error($query)
- {
- $error = $this->dbh->errorInfo();
-
- // retry after "Deadlock found when trying to get lock" errors
- $retries = 2;
- while ($error[1] == 1213 && $retries >= 0) {
- usleep(50000); // wait 50 ms
- $result = $this->dbh->query($query);
- if ($result !== false) {
- return $result;
- }
- $error = $this->dbh->errorInfo();
- $retries--;
- }
-
- return parent::handle_error($query);
- }
-
}
diff --git a/program/lib/Roundcube/rcube_db_pgsql.php b/program/lib/Roundcube/rcube_db_pgsql.php
index 68bf6d85d..a06a37c10 100644
--- a/program/lib/Roundcube/rcube_db_pgsql.php
+++ b/program/lib/Roundcube/rcube_db_pgsql.php
@@ -29,17 +29,6 @@ class rcube_db_pgsql extends rcube_db
public $db_provider = 'postgres';
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
- */
- protected function conn_configure($dsn, $dbh)
- {
- $dbh->query("SET NAMES 'utf8'");
- }
-
- /**
* Get last inserted record ID
*
* @param string $table Table name (to find the incremented sequence)
@@ -64,20 +53,19 @@ class rcube_db_pgsql extends rcube_db
/**
* Return correct name for a specific database sequence
*
- * @param string $table Table name
+ * @param string $sequence Secuence name
*
* @return string Translated sequence name
*/
- protected function sequence_name($table)
+ protected function sequence_name($sequence)
{
- // Note: we support only one sequence per table
- // Note: The sequence name must be <table_name>_seq
- $sequence = $table . '_seq';
- $rcube = rcube::get_instance();
+ $rcube = rcube::get_instance();
// return sequence name if configured
- if ($prefix = $rcube->config->get('db_prefix')) {
- return $prefix . $sequence;
+ $config_key = 'db_sequence_'.$sequence;
+
+ if ($name = $rcube->config->get($config_key)) {
+ return $name;
}
return $sequence;
@@ -86,6 +74,9 @@ class rcube_db_pgsql extends rcube_db
/**
* Return SQL statement to convert a field value into a unix timestamp
*
+ * This method is deprecated and should not be used anymore due to limitations
+ * of timestamp functions in Mysql (year 2038 problem)
+ *
* @param string $field Field name
*
* @return string SQL statement to use in query
@@ -97,24 +88,6 @@ class rcube_db_pgsql extends rcube_db
}
/**
- * Return SQL function for current time and date
- *
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
- * @return string SQL function to use in query
- */
- public function now($interval = 0)
- {
- if ($interval) {
- $add = ' ' . ($interval > 0 ? '+' : '-') . " interval '";
- $add .= $interval > 0 ? intval($interval) : intval($interval) * -1;
- $add .= " seconds'";
- }
-
- return "now()" . $add;
- }
-
- /**
* Return SQL statement for case insensitive LIKE
*
* @param string $column Field name
diff --git a/program/lib/Roundcube/rcube_db_sqlite.php b/program/lib/Roundcube/rcube_db_sqlite.php
index b66c56097..145b8a371 100644
--- a/program/lib/Roundcube/rcube_db_sqlite.php
+++ b/program/lib/Roundcube/rcube_db_sqlite.php
@@ -29,6 +29,13 @@ class rcube_db_sqlite extends rcube_db
public $db_provider = 'sqlite';
/**
+ * Database character set
+ */
+ protected function set_charset($charset)
+ {
+ }
+
+ /**
* Prepare connection
*/
protected function conn_prepare($dsn)
@@ -49,6 +56,10 @@ class rcube_db_sqlite extends rcube_db
*/
protected function conn_configure($dsn, $dbh)
{
+ // we emulate via callback some missing functions
+ $dbh->sqliteCreateFunction('unix_timestamp', array('rcube_db_sqlite', 'sqlite_unix_timestamp'), 1);
+ $dbh->sqliteCreateFunction('now', array('rcube_db_sqlite', 'sqlite_now'), 0);
+
// Initialize database structure in file is empty
if (!empty($dsn['database']) && !filesize($dsn['database'])) {
$data = file_get_contents(RCUBE_INSTALL_PATH . 'SQL/sqlite.initial.sql');
@@ -72,32 +83,30 @@ class rcube_db_sqlite extends rcube_db
}
/**
- * Return SQL statement to convert a field value into a unix timestamp
- *
- * @param string $field Field name
- *
- * @return string SQL statement to use in query
- * @deprecated
+ * Callback for sqlite: unix_timestamp()
*/
- public function unixtimestamp($field)
+ public static function sqlite_unix_timestamp($timestamp = '')
{
- return "strftime('%s', $field)";
+ $timestamp = trim($timestamp);
+ if (!$timestamp) {
+ $ret = time();
+ }
+ else if (!preg_match('/^[0-9]+$/s', $timestamp)) {
+ $ret = strtotime($timestamp);
+ }
+ else {
+ $ret = $timestamp;
+ }
+
+ return $ret;
}
/**
- * Return SQL function for current time and date
- *
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
- * @return string SQL function to use in query
+ * Callback for sqlite: now()
*/
- public function now($interval = 0)
+ public static function sqlite_now()
{
- if ($interval) {
- $add = ($interval > 0 ? '+' : '') . intval($interval) . ' seconds';
- }
-
- return "datetime('now'" . ($add ? ",'$add'" : "") . ")";
+ return date("Y-m-d H:i:s");
}
/**
diff --git a/program/lib/Roundcube/rcube_db_sqlsrv.php b/program/lib/Roundcube/rcube_db_sqlsrv.php
index 4339f3dfd..e5dfb1154 100644
--- a/program/lib/Roundcube/rcube_db_sqlsrv.php
+++ b/program/lib/Roundcube/rcube_db_sqlsrv.php
@@ -29,46 +29,29 @@ class rcube_db_sqlsrv extends rcube_db
public $db_provider = 'mssql';
/**
- * Object constructor
- *
- * @param string $db_dsnw DSN for read/write operations
- * @param string $db_dsnr Optional DSN for read only operations
- * @param bool $pconn Enables persistent connections
+ * Driver initialization
*/
- public function __construct($db_dsnw, $db_dsnr = '', $pconn = false)
+ protected function init()
{
- parent::__construct($db_dsnw, $db_dsnr, $pconn);
-
$this->options['identifier_start'] = '[';
$this->options['identifier_end'] = ']';
}
/**
- * Driver-specific configuration of database connection
- *
- * @param array $dsn DSN for DB connections
- * @param PDO $dbh Connection handler
+ * Database character set setting
*/
- protected function conn_configure($dsn, $dbh)
+ protected function set_charset($charset)
{
- // Set date format in case of non-default language (#1488918)
- $dbh->query("SET DATEFORMAT ymd");
+ // UTF-8 is default
}
/**
* Return SQL function for current time and date
*
- * @param int $interval Optional interval (in seconds) to add/subtract
- *
* @return string SQL function to use in query
*/
- public function now($interval = 0)
+ public function now()
{
- if ($interval) {
- $interval = intval($interval);
- return "dateadd(second, $interval, getdate())";
- }
-
return "getdate()";
}
diff --git a/program/lib/Roundcube/rcube_enriched.php b/program/lib/Roundcube/rcube_enriched.php
index 12deb33ce..8c628c912 100644
--- a/program/lib/Roundcube/rcube_enriched.php
+++ b/program/lib/Roundcube/rcube_enriched.php
@@ -118,7 +118,7 @@ class rcube_enriched
$quoted = '';
$lines = explode('<br>', $a[2]);
- foreach ($lines as $line)
+ foreach ($lines as $n => $line)
$quoted .= '&gt;'.$line.'<br>';
$body = $a[1].'<span class="quotes">'.$quoted.'</span>'.$a[3];
diff --git a/program/lib/Roundcube/rcube_html2text.php b/program/lib/Roundcube/rcube_html2text.php
index 01362e6fb..9b248a3a8 100644
--- a/program/lib/Roundcube/rcube_html2text.php
+++ b/program/lib/Roundcube/rcube_html2text.php
@@ -608,27 +608,24 @@ class rcube_html2text
$this->width = $p_width;
// Add citation markers and create <pre> block
- $body = preg_replace_callback('/((?:^|\n)>*)([^\n]*)/', array($this, 'blockquote_citation_callback'), trim($body));
+ $body = preg_replace_callback('/((?:^|\n)>*)([^\n]*)/', array($this, 'blockquote_citation_ballback'), trim($body));
$body = '<pre>' . htmlspecialchars($body) . '</pre>';
- $text = substr_replace($text, $body . "\n", $start, $end + 13 - $start);
+ $text = substr($text, 0, $start) . $body . "\n" . substr($text, $end + 13);
$offset = 0;
-
break;
}
- }
- while ($end || $next);
+ } while ($end || $next);
}
}
/**
* Callback function to correctly add citation markers for blockquote contents
*/
- public function blockquote_citation_callback($m)
+ public function blockquote_citation_ballback($m)
{
- $line = ltrim($m[2]);
+ $line = ltrim($m[2]);
$space = $line[0] == '>' ? '' : ' ';
-
return $m[1] . '>' . $space . $line;
}
diff --git a/program/lib/Roundcube/rcube_image.php b/program/lib/Roundcube/rcube_image.php
index 4e4caae93..ffcfd4b1d 100644
--- a/program/lib/Roundcube/rcube_image.php
+++ b/program/lib/Roundcube/rcube_image.php
@@ -93,10 +93,6 @@ class rcube_image
$convert = $rcube->config->get('im_convert_path', false);
$props = $this->props();
- if (empty($props)) {
- return false;
- }
-
if (!$filename) {
$filename = $this->image_file;
}
@@ -105,6 +101,7 @@ class rcube_image
if ($convert) {
$p['out'] = $filename;
$p['in'] = $this->image_file;
+ $p['size'] = $size.'x'.$size;
$type = $props['type'];
if (!$type && ($data = $this->identify())) {
@@ -119,37 +116,11 @@ class rcube_image
$type = 'jpg';
}
- // If only one dimension is greater than the limit convert doesn't
- // work as expected, we need to calculate new dimensions
- $scale = $size / max($props['width'], $props['height']);
+ $p += array('type' => $type, 'types' => "bmp,eps,gif,jp2,jpg,png,svg,tif", 'quality' => 75);
+ $p['-opts'] = array('-resize' => $p['size'].'>');
- // if file is smaller than the limit, we do nothing
- // but copy original file to destination file
- if ($scale >= 1 && $p['intype'] == $type) {
- $result = ($this->image_file == $filename || copy($this->image_file, $filename)) ? '' : false;
- }
- else {
- if ($scale >= 1) {
- $width = $props['width'];
- $height = $props['height'];
- }
- else {
- $width = intval($props['width'] * $scale);
- $height = intval($props['height'] * $scale);
- }
-
- $valid_types = "bmp,eps,gif,jp2,jpg,png,svg,tif";
-
- $p += array(
- 'type' => $type,
- 'quality' => 75,
- 'size' => $width . 'x' . $height,
- );
-
- if (in_array($type, explode(',', $valid_types))) { // Valid type?
- $result = rcube::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace sRGB -strip'
- . ' -quality {quality} -resize {size} {intype}:{in} {type}:{out}', $p);
- }
+ if (in_array($type, explode(',', $p['types']))) { // Valid type?
+ $result = rcube::exec($convert . ' 2>&1 -flatten -auto-orient -colorspace sRGB -quality {quality} {-opts} {intype}:{in} {type}:{out}', $p);
}
if ($result === '') {
@@ -177,43 +148,39 @@ class rcube_image
return false;
}
- if ($image === false) {
- return false;
- }
-
$scale = $size / max($props['width'], $props['height']);
// Imagemagick resize is implemented in shrinking mode (see -resize argument above)
// we do the same here, if an image is smaller than specified size
// we do nothing but copy original file to destination file
- if ($scale >= 1) {
- $result = $this->image_file == $filename || copy($this->image_file, $filename);
+ if ($scale > 1) {
+ return $this->image_file == $filename || copy($this->image_file, $filename) ? $type : false;
}
- else {
- $width = intval($props['width'] * $scale);
- $height = intval($props['height'] * $scale);
- $new_image = imagecreatetruecolor($width, $height);
-
- // Fix transparency of gif/png image
- if ($props['gd_type'] != IMAGETYPE_JPEG) {
- imagealphablending($new_image, false);
- imagesavealpha($new_image, true);
- $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
- imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
- }
-
- imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $props['width'], $props['height']);
- $image = $new_image;
-
- if ($props['gd_type'] == IMAGETYPE_JPEG) {
- $result = imagejpeg($image, $filename, 75);
- }
- elseif($props['gd_type'] == IMAGETYPE_GIF) {
- $result = imagegif($image, $filename);
- }
- elseif($props['gd_type'] == IMAGETYPE_PNG) {
- $result = imagepng($image, $filename, 6, PNG_ALL_FILTERS);
- }
+
+ $width = $props['width'] * $scale;
+ $height = $props['height'] * $scale;
+
+ $new_image = imagecreatetruecolor($width, $height);
+
+ // Fix transparency of gif/png image
+ if ($props['gd_type'] != IMAGETYPE_JPEG) {
+ imagealphablending($new_image, false);
+ imagesavealpha($new_image, true);
+ $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
+ imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
+ }
+
+ imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $props['width'], $props['height']);
+ $image = $new_image;
+
+ if ($props['gd_type'] == IMAGETYPE_JPEG) {
+ $result = imagejpeg($image, $filename, 75);
+ }
+ elseif($props['gd_type'] == IMAGETYPE_GIF) {
+ $result = imagegif($image, $filename);
+ }
+ elseif($props['gd_type'] == IMAGETYPE_PNG) {
+ $result = imagepng($image, $filename, 6, PNG_ALL_FILTERS);
}
if ($result) {
@@ -255,7 +222,7 @@ class rcube_image
$p['out'] = $filename;
$p['type'] = self::$extensions[$type];
- $result = rcube::exec($convert . ' 2>&1 -colorspace sRGB -strip -quality 75 {in} {type}:{out}', $p);
+ $result = rcube::exec($convert . ' 2>&1 -colorspace sRGB -quality 75 {in} {type}:{out}', $p);
if ($result === '') {
@chmod($filename, 0600);
diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php
index 9faf1bbc6..ca5e35f2c 100644
--- a/program/lib/Roundcube/rcube_imap.php
+++ b/program/lib/Roundcube/rcube_imap.php
@@ -308,7 +308,14 @@ class rcube_imap extends rcube_storage
*/
public function set_folder($folder)
{
+ if ($this->folder == $folder) {
+ return;
+ }
+
$this->folder = $folder;
+
+ // clear messagecount cache for this folder
+ $this->clear_messagecount($folder);
}
@@ -606,7 +613,7 @@ class rcube_imap extends rcube_storage
}
if ($mode == 'THREADS') {
- $res = $this->threads($folder);
+ $res = $this->fetch_threads($folder, $force);
$count = $res->count();
if ($status) {
@@ -636,11 +643,11 @@ class rcube_imap extends rcube_storage
$keys[] = 'ALL';
}
if ($status) {
- $keys[] = 'MAX';
+ $keys[] = 'MAX';
}
}
- // @TODO: if $mode == 'ALL' we could try to use cache index here
+ // @TODO: if $force==false && $mode == 'ALL' we could try to use cache index here
// get message count using (E)SEARCH
// not very performant but more precise (using UNDELETED)
@@ -771,7 +778,7 @@ class rcube_imap extends rcube_storage
$threads = $mcache->get_thread($folder);
}
else {
- $threads = $this->threads($folder);
+ $threads = $this->fetch_threads($folder);
}
return $this->fetch_thread_headers($folder, $threads, $page, $slice);
@@ -780,47 +787,32 @@ class rcube_imap extends rcube_storage
/**
* Method for fetching threads data
*
- * @param string $folder Folder name
+ * @param string $folder Folder name
+ * @param bool $force Use IMAP server, no cache
*
* @return rcube_imap_thread Thread data object
*/
- function threads($folder)
+ function fetch_threads($folder, $force = false)
{
- if ($mcache = $this->get_mcache_engine()) {
+ if (!$force && ($mcache = $this->get_mcache_engine())) {
// don't store in self's internal cache, cache has it's own internal cache
return $mcache->get_thread($folder);
}
- if (!empty($this->icache['threads'])) {
- if ($this->icache['threads']->get_parameters('MAILBOX') == $folder) {
- return $this->icache['threads'];
+ if (empty($this->icache['threads'])) {
+ if (!$this->check_connection()) {
+ return new rcube_result_thread();
}
- }
- // get all threads
- $result = $this->threads_direct($folder);
+ // get all threads
+ $result = $this->conn->thread($folder, $this->threading,
+ $this->options['skip_deleted'] ? 'UNDELETED' : '', true);
- // add to internal (fast) cache
- return $this->icache['threads'] = $result;
- }
-
-
- /**
- * Method for direct fetching of threads data
- *
- * @param string $folder Folder name
- *
- * @return rcube_imap_thread Thread data object
- */
- function threads_direct($folder)
- {
- if (!$this->check_connection()) {
- return new rcube_result_thread();
+ // add to internal (fast) cache
+ $this->icache['threads'] = $result;
}
- // get all threads
- return $this->conn->thread($folder, $this->threading,
- $this->options['skip_deleted'] ? 'UNDELETED' : '', true);
+ return $this->icache['threads'];
}
@@ -1091,17 +1083,16 @@ class rcube_imap extends rcube_storage
/**
- * Returns current status of a folder (compared to the last time use)
+ * Returns current status of folder
*
* We compare the maximum UID to determine the number of
* new messages because the RECENT flag is not reliable.
*
* @param string $folder Folder name
- * @param array $diff Difference data
*
- * @return int Folder status
+ * @return int Folder status
*/
- public function folder_status($folder = null, &$diff = array())
+ public function folder_status($folder = null)
{
if (!strlen($folder)) {
$folder = $this->folder;
@@ -1122,9 +1113,6 @@ class rcube_imap extends rcube_storage
// got new messages
if ($new['maxuid'] > $old['maxuid']) {
$result += 1;
- // get new message UIDs range, that can be used for example
- // to get the data of these messages
- $diff['new'] = ($old['maxuid'] + 1 < $new['maxuid'] ? ($old['maxuid']+1).':' : '') . $new['maxuid'];
}
// some messages has been deleted
if ($new['cnt'] < $old['cnt']) {
@@ -1175,15 +1163,12 @@ class rcube_imap extends rcube_storage
* @param string $folder Folder to get index from
* @param string $sort_field Sort column
* @param string $sort_order Sort order [ASC, DESC]
- * @param bool $no_threads Get not threaded index
- * @param bool $no_search Get index not limited to search result (optionally)
*
* @return rcube_result_index|rcube_result_thread List of messages (UIDs)
*/
- public function index($folder = '', $sort_field = NULL, $sort_order = NULL,
- $no_threads = false, $no_search = false
- ) {
- if (!$no_threads && $this->threading) {
+ public function index($folder = '', $sort_field = NULL, $sort_order = NULL)
+ {
+ if ($this->threading) {
return $this->thread_index($folder, $sort_field, $sort_order);
}
@@ -1195,50 +1180,43 @@ class rcube_imap extends rcube_storage
// we have a saved search result, get index from there
if ($this->search_string) {
- if ($this->search_set->is_empty()) {
- return new rcube_result_index($folder, '* SORT');
+ if ($this->search_threads) {
+ $this->search($folder, $this->search_string, $this->search_charset, $this->sort_field);
}
- // search result is an index with the same sorting?
- if (($this->search_set instanceof rcube_result_index)
- && ((!$this->sort_field && !$this->search_sorted) ||
- ($this->search_sorted && $this->search_sort_field == $this->sort_field))
- ) {
+ // use message index sort as default sorting
+ if (!$this->sort_field || $this->search_sorted) {
+ if ($this->sort_field && $this->search_sort_field != $this->sort_field) {
+ $this->search($folder, $this->search_string, $this->search_charset, $this->sort_field);
+ }
$index = $this->search_set;
}
- // $no_search is enabled when we are not interested in
- // fetching index for search result, e.g. to sort
- // threaded search result we can use full mailbox index.
- // This makes possible to use index from cache
- else if (!$no_search) {
- if (!$this->sort_field) {
- // No sorting needed, just build index from the search result
- // @TODO: do we need to sort by UID here?
- $search = $this->search_set->get_compressed();
- $index = new rcube_result_index($folder, '* ESEARCH ALL ' . $search);
- }
- else {
- $index = $this->index_direct($folder, $this->search_charset,
- $this->sort_field, $this->search_set);
- }
+ else if (!$this->check_connection()) {
+ return new rcube_result_index();
+ }
+ else {
+ $index = $this->conn->index($folder, $this->search_set->get(),
+ $this->sort_field, $this->options['skip_deleted'], true, true);
}
- if (isset($index)) {
- if ($this->sort_order != $index->get_parameters('ORDER')) {
- $index->revert();
- }
-
- return $index;
+ if ($this->sort_order != $index->get_parameters('ORDER')) {
+ $index->revert();
}
+
+ return $index;
}
// check local cache
if ($mcache = $this->get_mcache_engine()) {
- return $mcache->get_index($folder, $this->sort_field, $this->sort_order);
+ $index = $mcache->get_index($folder, $this->sort_field, $this->sort_order);
}
-
// fetch from IMAP server
- return $this->index_direct($folder, $this->sort_field, $this->sort_order);
+ else {
+ $index = $this->index_direct(
+ $folder, $this->sort_field, $this->sort_order);
+ }
+
+ return $index;
}
@@ -1246,24 +1224,22 @@ class rcube_imap extends rcube_storage
* Return sorted list of message UIDs ignoring current search settings.
* Doesn't uses cache by default.
*
- * @param string $folder Folder to get index from
- * @param string $sort_field Sort column
- * @param string $sort_order Sort order [ASC, DESC]
- * @param rcube_result_* $search Optional messages set to limit the result
+ * @param string $folder Folder to get index from
+ * @param string $sort_field Sort column
+ * @param string $sort_order Sort order [ASC, DESC]
+ * @param bool $skip_cache Disables cache usage
*
* @return rcube_result_index Sorted list of message UIDs
*/
- public function index_direct($folder, $sort_field = null, $sort_order = null, $search = null)
+ public function index_direct($folder, $sort_field = null, $sort_order = null, $skip_cache = true)
{
- if (!empty($search)) {
- $search = $this->search_set->get_compressed();
+ if (!$skip_cache && ($mcache = $this->get_mcache_engine())) {
+ $index = $mcache->get_index($folder, $sort_field, $sort_order);
}
-
// use message index sort as default sorting
- if (!$sort_field) {
+ else if (!$sort_field) {
// use search result from count() if possible
- if (empty($search) && $this->options['skip_deleted']
- && !empty($this->icache['undeleted_idx'])
+ if ($this->options['skip_deleted'] && !empty($this->icache['undeleted_idx'])
&& $this->icache['undeleted_idx']->get_parameters('ALL') !== null
&& $this->icache['undeleted_idx']->get_parameters('MAILBOX') == $folder
) {
@@ -1273,12 +1249,8 @@ class rcube_imap extends rcube_storage
return new rcube_result_index();
}
else {
- $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
- if ($search) {
- $query = trim($query . ' UID ' . $search);
- }
-
- $index = $this->conn->search($folder, $query, true);
+ $index = $this->conn->search($folder,
+ 'ALL' .($this->options['skip_deleted'] ? ' UNDELETED' : ''), true);
}
}
else if (!$this->check_connection()) {
@@ -1287,18 +1259,13 @@ class rcube_imap extends rcube_storage
// fetch complete message index
else {
if ($this->get_capability('SORT')) {
- $query = $this->options['skip_deleted'] ? 'UNDELETED' : '';
- if ($search) {
- $query = trim($query . ' UID ' . $search);
- }
-
- $index = $this->conn->sort($folder, $sort_field, $query, true);
+ $index = $this->conn->sort($folder, $sort_field,
+ $this->options['skip_deleted'] ? 'UNDELETED' : '', true);
}
if (empty($index) || $index->is_error()) {
- $index = $this->conn->index($folder, $search ? $search : "1:*",
- $sort_field, $this->options['skip_deleted'],
- $search ? true : false, true);
+ $index = $this->conn->index($folder, "1:*", $sort_field,
+ $this->options['skip_deleted'], false, true);
}
}
@@ -1331,7 +1298,7 @@ class rcube_imap extends rcube_storage
}
else {
// get all threads (default sort order)
- $threads = $this->threads($folder);
+ $threads = $this->fetch_threads($folder);
}
$this->set_sort_order($sort_field, $sort_order);
@@ -1342,10 +1309,9 @@ class rcube_imap extends rcube_storage
/**
- * Sort threaded result, using THREAD=REFS method if available.
- * If not, use any method and re-sort the result in THREAD=REFS way.
+ * Sort threaded result, using THREAD=REFS method
*
- * @param rcube_result_thread $threads Threads result set
+ * @param rcube_result_thread $threads Threads result set
*/
protected function sort_threads($threads)
{
@@ -1359,7 +1325,7 @@ class rcube_imap extends rcube_storage
if ($this->threading != 'REFS' || ($this->sort_field && $this->sort_field != 'date')) {
$sortby = $this->sort_field ? $this->sort_field : 'date';
- $index = $this->index($this->folder, $sortby, $this->sort_order, true, true);
+ $index = $this->index_direct($this->folder, $sortby, $this->sort_order, false);
if (!$index->is_empty()) {
$threads->sort($index);
@@ -1439,6 +1405,8 @@ class rcube_imap extends rcube_storage
*/
protected function search_index($folder, $criteria='ALL', $charset=NULL, $sort_field=NULL)
{
+ $orig_criteria = $criteria;
+
if (!$this->check_connection()) {
if ($this->threading) {
return new rcube_result_thread();
@@ -2079,18 +2047,17 @@ class rcube_imap extends rcube_storage
/**
* Fetch message body of a specific message from the server
*
- * @param int Message UID
- * @param string Part number
- * @param rcube_message_part Part object created by get_structure()
- * @param mixed True to print part, resource to write part contents in
- * @param resource File pointer to save the message part
- * @param boolean Disables charset conversion
- * @param int Only read this number of bytes
- * @param boolean Enables formatting of text/* parts bodies
+ * @param int $uid Message UID
+ * @param string $part Part number
+ * @param rcube_message_part $o_part Part object created by get_structure()
+ * @param mixed $print True to print part, ressource to write part contents in
+ * @param resource $fp File pointer to save the message part
+ * @param boolean $skip_charset_conv Disables charset conversion
+ * @param int $max_bytes Only read this number of bytes
*
* @return string Message/part body if not printed
*/
- public function get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL, $skip_charset_conv=false, $max_bytes=0, $formatted=true)
+ public function get_message_part($uid, $part=1, $o_part=NULL, $print=NULL, $fp=NULL, $skip_charset_conv=false, $max_bytes=0)
{
if (!$this->check_connection()) {
return null;
@@ -2109,9 +2076,8 @@ class rcube_imap extends rcube_storage
}
if ($o_part && $o_part->size) {
- $formatted = $formatted && $o_part->ctype_primary == 'text';
$body = $this->conn->handlePartBody($this->folder, $uid, true,
- $part ? $part : 'TEXT', $o_part->encoding, $print, $fp, $formatted, $max_bytes);
+ $part ? $part : 'TEXT', $o_part->encoding, $print, $fp, $o_part->ctype_primary == 'text', $max_bytes);
}
if ($fp || $print) {
@@ -2256,14 +2222,13 @@ class rcube_imap extends rcube_storage
/**
* Append a mail message (source) to a specific folder
*
- * @param string $folder Target folder
- * @param string|array $message The message source string or filename
- * or array (of strings and file pointers)
- * @param string $headers Headers string if $message contains only the body
- * @param boolean $is_file True if $message is a filename
- * @param array $flags Message flags
- * @param mixed $date Message internal date
- * @param bool $binary Enables BINARY append
+ * @param string $folder Target folder
+ * @param string $message The message source string or filename
+ * @param string $headers Headers string if $message contains only the body
+ * @param boolean $is_file True if $message is a filename
+ * @param array $flags Message flags
+ * @param mixed $date Message internal date
+ * @param bool $binary Enables BINARY append
*
* @return int|bool Appended message UID or True on success, False on error
*/
@@ -2354,7 +2319,10 @@ class rcube_imap extends rcube_storage
// move messages
$moved = $this->conn->move($uids, $from_mbox, $to_mbox);
+ // send expunge command in order to have the moved message
+ // really deleted from the source folder
if ($moved) {
+ $this->expunge_message($uids, $from_mbox, false);
$this->clear_messagecount($from_mbox);
$this->clear_messagecount($to_mbox);
}
@@ -2656,6 +2624,7 @@ class rcube_imap extends rcube_storage
if ($list_extended) {
// unsubscribe non-existent folders, remove from the list
+ // we can do this only when LIST response is available
if (is_array($a_folders) && $name == '*' && !empty($this->conn->data['LIST'])) {
foreach ($a_folders as $idx => $folder) {
if (($opts = $this->conn->data['LIST'][$folder])
@@ -2668,14 +2637,19 @@ class rcube_imap extends rcube_storage
}
}
else {
- // unsubscribe non-existent folders, remove them from the list
- if (is_array($a_folders) && !empty($a_folders) && $name == '*') {
- $existing = $this->list_folders($root, $name);
- $nonexisting = array_diff($a_folders, $existing);
- $a_folders = array_diff($a_folders, $nonexisting);
-
- foreach ($nonexisting as $folder) {
- $this->conn->unsubscribe($folder);
+ // unsubscribe non-existent folders, remove them from the list,
+ // we can do this only when LIST response is available
+ if (is_array($a_folders) && $name == '*' && !empty($this->conn->data['LIST'])) {
+ foreach ($a_folders as $idx => $folder) {
+ if (!isset($this->conn->data['LIST'][$folder])
+ || in_array('\\Noselect', $this->conn->data['LIST'][$folder])
+ ) {
+ // Some servers returns \Noselect for existing folders
+ if (!$this->folder_exists($folder)) {
+ $this->conn->unsubscribe($folder);
+ unset($a_folders[$idx]);
+ }
+ }
}
}
}
@@ -2794,6 +2768,7 @@ class rcube_imap extends rcube_storage
*/
private function list_folders_update(&$result, $type = null)
{
+ $delim = $this->get_hierarchy_delimiter();
$namespace = $this->get_namespace();
$search = array();
@@ -3704,7 +3679,7 @@ class rcube_imap extends rcube_storage
{
if ($this->caching && !$this->cache) {
$rcube = rcube::get_instance();
- $ttl = $rcube->config->get('imap_cache_ttl', '10d');
+ $ttl = $rcube->config->get('message_cache_lifetime', '10d');
$this->cache = $rcube->get_cache('IMAP', $this->caching, $ttl);
}
@@ -3752,6 +3727,21 @@ class rcube_imap extends rcube_storage
}
}
+ /**
+ * Delete outdated cache entries
+ */
+ public function expunge_cache()
+ {
+ if ($this->mcache) {
+ $ttl = rcube::get_instance()->config->get('message_cache_lifetime', '10d');
+ $this->mcache->expunge($ttl);
+ }
+
+ if ($this->cache) {
+ $this->cache->expunge();
+ }
+ }
+
/* --------------------------------
* message caching methods
@@ -3760,17 +3750,12 @@ class rcube_imap extends rcube_storage
/**
* Enable or disable messages caching
*
- * @param boolean $set Flag
- * @param int $mode Cache mode
+ * @param boolean $set Flag
*/
- public function set_messages_caching($set, $mode = null)
+ public function set_messages_caching($set)
{
if ($set) {
$this->messages_caching = true;
-
- if ($mode && ($cache = $this->get_mcache_engine())) {
- $cache->set_mode($mode);
- }
}
else {
if ($this->mcache) {
@@ -3790,10 +3775,8 @@ class rcube_imap extends rcube_storage
if ($this->messages_caching && !$this->mcache) {
$rcube = rcube::get_instance();
if (($dbh = $rcube->get_dbh()) && ($userid = $rcube->get_user_id())) {
- $ttl = $rcube->config->get('messages_cache_ttl', '10d');
- $threshold = $rcube->config->get('messages_cache_threshold', 50);
$this->mcache = new rcube_imap_cache(
- $dbh, $this, $userid, $this->options['skip_deleted'], $ttl, $threshold);
+ $dbh, $this, $userid, $this->options['skip_deleted']);
}
}
@@ -3805,7 +3788,7 @@ class rcube_imap extends rcube_storage
* Clears the messages cache.
*
* @param string $folder Folder name
- * @param array $uids Optional message UIDs to remove from cache
+ * @param array $uids Optional message UIDs to remove from cache
*/
protected function clear_message_cache($folder = null, $uids = null)
{
@@ -3815,15 +3798,6 @@ class rcube_imap extends rcube_storage
}
- /**
- * Delete outdated cache entries
- */
- function cache_gc()
- {
- rcube_imap_cache::gc();
- }
-
-
/* --------------------------------
* protected methods
* --------------------------------*/
@@ -3857,7 +3831,7 @@ class rcube_imap extends rcube_storage
$delimiter = $this->get_hierarchy_delimiter();
// find default folders and skip folders starting with '.'
- foreach ($a_folders as $folder) {
+ foreach ($a_folders as $i => $folder) {
if ($folder[0] == '.') {
continue;
}
@@ -4117,9 +4091,9 @@ class rcube_imap extends rcube_storage
return $this->index($folder, $sort_field, $sort_order);
}
- public function message_index_direct($folder, $sort_field = null, $sort_order = null)
+ public function message_index_direct($folder, $sort_field = null, $sort_order = null, $skip_cache = true)
{
- return $this->index_direct($folder, $sort_field, $sort_order);
+ return $this->index_direct($folder, $sort_field, $sort_order, $skip_cache);
}
public function list_mailboxes($root='', $name='*', $filter=null, $rights=null, $skip_sort=false)
diff --git a/program/lib/Roundcube/rcube_imap_cache.php b/program/lib/Roundcube/rcube_imap_cache.php
index a8166545e..5170e9e21 100644
--- a/program/lib/Roundcube/rcube_imap_cache.php
+++ b/program/lib/Roundcube/rcube_imap_cache.php
@@ -27,9 +27,6 @@
*/
class rcube_imap_cache
{
- const MODE_INDEX = 1;
- const MODE_MESSAGE = 2;
-
/**
* Instance of rcube_imap
*
@@ -52,20 +49,6 @@ class rcube_imap_cache
private $userid;
/**
- * Expiration time in seconds
- *
- * @var int
- */
- private $ttl;
-
- /**
- * Maximum cached message size
- *
- * @var int
- */
- private $threshold;
-
- /**
* Internal (in-memory) cache
*
* @var array
@@ -73,7 +56,6 @@ class rcube_imap_cache
private $icache = array();
private $skip_deleted = false;
- private $mode;
/**
* List of known flags. Thanks to this we can handle flag changes
@@ -99,32 +81,15 @@ class rcube_imap_cache
);
-
/**
* Object constructor.
- *
- * @param rcube_db $db DB handler
- * @param rcube_imap $imap IMAP handler
- * @param int $userid User identifier
- * @param bool $skip_deleted skip_deleted flag
- * @param string $ttl Expiration time of memcache/apc items
- * @param int $threshold Maximum cached message size
*/
- function __construct($db, $imap, $userid, $skip_deleted, $ttl=0, $threshold=0)
+ function __construct($db, $imap, $userid, $skip_deleted)
{
- // convert ttl string to seconds
- $ttl = get_offset_sec($ttl);
- if ($ttl > 2592000) $ttl = 2592000;
-
$this->db = $db;
$this->imap = $imap;
$this->userid = $userid;
$this->skip_deleted = $skip_deleted;
- $this->ttl = $ttl;
- $this->threshold = $threshold;
-
- // cache all possible information by default
- $this->mode = self::MODE_INDEX | self::MODE_MESSAGE;
}
@@ -139,17 +104,6 @@ class rcube_imap_cache
/**
- * Set cache mode
- *
- * @param int $mode Cache mode
- */
- public function set_mode($mode)
- {
- $this->mode = $mode;
- }
-
-
- /**
* Return (sorted) messages index (UIDs).
* If index doesn't exist or is invalid, will be updated.
*
@@ -261,7 +215,9 @@ class rcube_imap_cache
* Return messages thread.
* If threaded index doesn't exist or is invalid, will be updated.
*
- * @param string $mailbox Folder name
+ * @param string $mailbox Folder name
+ * @param string $sort_field Sorting column
+ * @param string $sort_order Sorting order (ASC|DESC)
*
* @return array Messages threaded index
*/
@@ -300,11 +256,19 @@ class rcube_imap_cache
if ($index === null) {
// Get mailbox data (UIDVALIDITY, counters, etc.) for status check
$mbox_data = $this->imap->folder_data($mailbox);
- // Get THREADS result
- $index['object'] = $this->get_thread_data($mailbox, $mbox_data);
+
+ if ($mbox_data['EXISTS']) {
+ // get all threads (default sort order)
+ $threads = $this->imap->fetch_threads($mailbox, true);
+ }
+ else {
+ $threads = new rcube_result_thread($mailbox, '* THREAD');
+ }
+
+ $index['object'] = $threads;
// insert/update
- $this->add_thread_row($mailbox, $index['object'], $mbox_data, $exists);
+ $this->add_thread_row($mailbox, $threads, $mbox_data, $exists);
}
$this->icache[$mailbox]['thread'] = $index;
@@ -327,46 +291,38 @@ class rcube_imap_cache
return array();
}
- $result = array();
-
- if ($this->mode & self::MODE_MESSAGE) {
- // Fetch messages from cache
- $sql_result = $this->db->query(
- "SELECT uid, data, flags"
- ." FROM ".$this->db->table_name('cache_messages')
- ." WHERE user_id = ?"
- ." AND mailbox = ?"
- ." AND uid IN (".$this->db->array2list($msgs, 'integer').")",
- $this->userid, $mailbox);
+ // Fetch messages from cache
+ $sql_result = $this->db->query(
+ "SELECT uid, data, flags"
+ ." FROM ".$this->db->table_name('cache_messages')
+ ." WHERE user_id = ?"
+ ." AND mailbox = ?"
+ ." AND uid IN (".$this->db->array2list($msgs, 'integer').")",
+ $this->userid, $mailbox);
- $msgs = array_flip($msgs);
+ $msgs = array_flip($msgs);
+ $result = array();
- while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
- $uid = intval($sql_arr['uid']);
- $result[$uid] = $this->build_message($sql_arr);
+ while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
+ $uid = intval($sql_arr['uid']);
+ $result[$uid] = $this->build_message($sql_arr);
- if (!empty($result[$uid])) {
- // save memory, we don't need message body here (?)
- $result[$uid]->body = null;
+ if (!empty($result[$uid])) {
+ // save memory, we don't need message body here (?)
+ $result[$uid]->body = null;
- unset($msgs[$uid]);
- }
+ unset($msgs[$uid]);
}
-
- $msgs = array_flip($msgs);
}
// Fetch not found messages from IMAP server
if (!empty($msgs)) {
- $messages = $this->imap->fetch_headers($mailbox, $msgs, false, true);
+ $messages = $this->imap->fetch_headers($mailbox, array_keys($msgs), false, true);
// Insert to DB and add to result list
if (!empty($messages)) {
foreach ($messages as $msg) {
- if ($this->mode & self::MODE_MESSAGE) {
- $this->add_message($mailbox, $msg, !array_key_exists($msg->uid, $result));
- }
-
+ $this->add_message($mailbox, $msg, !array_key_exists($msg->uid, $result));
$result[$msg->uid] = $msg;
}
}
@@ -397,19 +353,17 @@ class rcube_imap_cache
return $this->icache['__message']['object'];
}
- if ($this->mode & self::MODE_MESSAGE) {
- $sql_result = $this->db->query(
- "SELECT flags, data"
- ." FROM ".$this->db->table_name('cache_messages')
- ." WHERE user_id = ?"
- ." AND mailbox = ?"
- ." AND uid = ?",
- $this->userid, $mailbox, (int)$uid);
+ $sql_result = $this->db->query(
+ "SELECT flags, data"
+ ." FROM ".$this->db->table_name('cache_messages')
+ ." WHERE user_id = ?"
+ ." AND mailbox = ?"
+ ." AND uid = ?",
+ $this->userid, $mailbox, (int)$uid);
- if ($sql_arr = $this->db->fetch_assoc($sql_result)) {
- $message = $this->build_message($sql_arr);
- $found = true;
- }
+ if ($sql_arr = $this->db->fetch_assoc($sql_result)) {
+ $message = $this->build_message($sql_arr);
+ $found = true;
}
// Get the message from IMAP server
@@ -418,10 +372,6 @@ class rcube_imap_cache
// cache will be updated in close(), see below
}
- if (!($this->mode & self::MODE_MESSAGE)) {
- return $message;
- }
-
// Save the message in internal cache, will be written to DB in close()
// Common scenario: user opens unseen message
// - get message (SELECT)
@@ -457,10 +407,6 @@ class rcube_imap_cache
return;
}
- if (!($this->mode & self::MODE_MESSAGE)) {
- return;
- }
-
$flags = 0;
$msg = clone $message;
@@ -480,40 +426,23 @@ class rcube_imap_cache
if (!$force) {
$res = $this->db->query(
"UPDATE ".$this->db->table_name('cache_messages')
- ." SET flags = ?, data = ?, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET flags = ?, data = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?"
." AND uid = ?",
$flags, $msg, $this->userid, $mailbox, (int) $message->uid);
- if ($this->db->affected_rows($res)) {
+ if ($this->db->affected_rows()) {
return;
}
}
- $this->db->set_option('ignore_key_errors', true);
-
// insert new record
- $res = $this->db->query(
+ $this->db->query(
"INSERT INTO ".$this->db->table_name('cache_messages')
- ." (user_id, mailbox, uid, flags, expires, data)"
- ." VALUES (?, ?, ?, ?, ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL') . ", ?)",
+ ." (user_id, mailbox, uid, flags, changed, data)"
+ ." VALUES (?, ?, ?, ?, ".$this->db->now().", ?)",
$this->userid, $mailbox, (int) $message->uid, $flags, $msg);
-
- // race-condition, insert failed so try update (#1489146)
- // thanks to ignore_key_errors "duplicate row" errors will be ignored
- if ($force && !$res && !$this->db->is_error($res)) {
- $this->db->query(
- "UPDATE ".$this->db->table_name('cache_messages')
- ." SET expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
- .", flags = ?, data = ?"
- ." WHERE user_id = ?"
- ." AND mailbox = ?"
- ." AND uid = ?",
- $flags, $msg, $this->userid, $mailbox, (int) $message->uid);
- }
-
- $this->db->set_option('ignore_key_errors', false);
}
@@ -532,10 +461,6 @@ class rcube_imap_cache
return;
}
- if (!($this->mode & self::MODE_MESSAGE)) {
- return;
- }
-
$flag = strtoupper($flag);
$idx = (int) array_search($flag, $this->flags);
$uids = (array) $uids;
@@ -558,7 +483,7 @@ class rcube_imap_cache
$this->db->query(
"UPDATE ".$this->db->table_name('cache_messages')
- ." SET expires = ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET changed = ".$this->db->now()
.", flags = flags ".($enabled ? "+ $idx" : "- $idx")
." WHERE user_id = ?"
." AND mailbox = ?"
@@ -576,10 +501,6 @@ class rcube_imap_cache
*/
function remove_message($mailbox = null, $uids = null)
{
- if (!($this->mode & self::MODE_MESSAGE)) {
- return;
- }
-
if (!strlen($mailbox)) {
$this->db->query(
"DELETE FROM ".$this->db->table_name('cache_messages')
@@ -685,21 +606,23 @@ class rcube_imap_cache
/**
- * Delete expired cache entries
+ * Delete cache entries older than TTL
+ *
+ * @param string $ttl Lifetime of message cache entries
*/
- static function gc()
+ function expunge($ttl)
{
- $rcube = rcube::get_instance();
- $db = $rcube->get_dbh();
+ // get expiration timestamp
+ $ts = get_offset_time($ttl, -1);
- $db->query("DELETE FROM ".$db->table_name('cache_messages')
- ." WHERE expires < " . $db->now());
+ $this->db->query("DELETE FROM ".$this->db->table_name('cache_messages')
+ ." WHERE changed < " . $this->db->fromunixtime($ts));
- $db->query("DELETE FROM ".$db->table_name('cache_index')
- ." WHERE expires < " . $db->now());
+ $this->db->query("DELETE FROM ".$this->db->table_name('cache_index')
+ ." WHERE changed < " . $this->db->fromunixtime($ts));
- $db->query("DELETE FROM ".$db->table_name('cache_thread')
- ." WHERE expires < " . $db->now());
+ $this->db->query("DELETE FROM ".$this->db->table_name('cache_thread')
+ ." WHERE changed < " . $this->db->fromunixtime($ts));
}
@@ -791,38 +714,20 @@ class rcube_imap_cache
$data = implode('@', $data);
if ($exists) {
- $res = $this->db->query(
+ $sql_result = $this->db->query(
"UPDATE ".$this->db->table_name('cache_index')
- ." SET data = ?, valid = 1, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET data = ?, valid = 1, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?",
$data, $this->userid, $mailbox);
-
- if ($this->db->affected_rows($res)) {
- return;
- }
}
-
- $this->db->set_option('ignore_key_errors', true);
-
- $res = $this->db->query(
- "INSERT INTO ".$this->db->table_name('cache_index')
- ." (user_id, mailbox, valid, expires, data)"
- ." VALUES (?, ?, 1, ". ($this->ttl ? $this->db->now($this->ttl) : 'NULL') .", ?)",
- $this->userid, $mailbox, $data);
-
- // race-condition, insert failed so try update (#1489146)
- // thanks to ignore_key_errors "duplicate row" errors will be ignored
- if (!$exists && !$res && !$this->db->is_error($res)) {
- $res = $this->db->query(
- "UPDATE ".$this->db->table_name('cache_index')
- ." SET data = ?, valid = 1, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
- ." WHERE user_id = ?"
- ." AND mailbox = ?",
- $data, $this->userid, $mailbox);
+ else {
+ $sql_result = $this->db->query(
+ "INSERT INTO ".$this->db->table_name('cache_index')
+ ." (user_id, mailbox, data, valid, changed)"
+ ." VALUES (?, ?, ?, 1, ".$this->db->now().")",
+ $this->userid, $mailbox, $data);
}
-
- $this->db->set_option('ignore_key_errors', false);
}
@@ -839,41 +744,21 @@ class rcube_imap_cache
);
$data = implode('@', $data);
- $expires = ($this->ttl ? $this->db->now($this->ttl) : 'NULL');
-
if ($exists) {
- $res = $this->db->query(
+ $sql_result = $this->db->query(
"UPDATE ".$this->db->table_name('cache_thread')
- ." SET data = ?, expires = $expires"
+ ." SET data = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?",
$data, $this->userid, $mailbox);
-
- if ($this->db->affected_rows($res)) {
- return;
- }
}
-
- $this->db->set_option('ignore_key_errors', true);
-
- $res = $this->db->query(
- "INSERT INTO ".$this->db->table_name('cache_thread')
- ." (user_id, mailbox, expires, data)"
- ." VALUES (?, ?, $expires, ?)",
- $this->userid, $mailbox, $data);
-
- // race-condition, insert failed so try update (#1489146)
- // thanks to ignore_key_errors "duplicate row" errors will be ignored
- if (!$exists && !$res && !$this->db->is_error($res)) {
- $this->db->query(
- "UPDATE ".$this->db->table_name('cache_thread')
- ." SET expires = $expires, data = ?"
- ." WHERE user_id = ?"
- ." AND mailbox = ?",
- $data, $this->userid, $mailbox);
+ else {
+ $sql_result = $this->db->query(
+ "INSERT INTO ".$this->db->table_name('cache_thread')
+ ." (user_id, mailbox, data, changed)"
+ ." VALUES (?, ?, ?, ".$this->db->now().")",
+ $this->userid, $mailbox, $data);
}
-
- $this->db->set_option('ignore_key_errors', false);
}
@@ -1081,17 +966,15 @@ class rcube_imap_cache
$removed = array();
// Get known UIDs
- if ($this->mode & self::MODE_MESSAGE) {
- $sql_result = $this->db->query(
- "SELECT uid"
- ." FROM ".$this->db->table_name('cache_messages')
- ." WHERE user_id = ?"
- ." AND mailbox = ?",
- $this->userid, $mailbox);
+ $sql_result = $this->db->query(
+ "SELECT uid"
+ ." FROM ".$this->db->table_name('cache_messages')
+ ." WHERE user_id = ?"
+ ." AND mailbox = ?",
+ $this->userid, $mailbox);
- while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
- $uids[] = $sql_arr['uid'];
- }
+ while ($sql_arr = $this->db->fetch_assoc($sql_result)) {
+ $uids[] = $sql_arr['uid'];
}
// Synchronize messages data
@@ -1102,7 +985,7 @@ class rcube_imap_cache
$uids, true, array('FLAGS'), $index['modseq'], $qresync);
if (!empty($result)) {
- foreach ($result as $msg) {
+ foreach ($result as $id => $msg) {
$uid = $msg->uid;
// Remove deleted message
if ($this->skip_deleted && !empty($msg->flags['DELETED'])) {
@@ -1123,7 +1006,7 @@ class rcube_imap_cache
$this->db->query(
"UPDATE ".$this->db->table_name('cache_messages')
- ." SET flags = ?, expires = " . ($this->ttl ? $this->db->now($this->ttl) : 'NULL')
+ ." SET flags = ?, changed = ".$this->db->now()
." WHERE user_id = ?"
." AND mailbox = ?"
." AND uid = ?"
@@ -1151,18 +1034,17 @@ class rcube_imap_cache
}
}
+ // Invalidate thread index (?)
+ if (!$index['valid']) {
+ $this->remove_thread($mailbox);
+ }
+
$sort_field = $index['sort_field'];
$sort_order = $index['object']->get_parameters('ORDER');
$exists = true;
// Validate index
if (!$this->validate($mailbox, $index, $exists)) {
- // Invalidate (remove) thread index
- // if $exists=false it was already removed in validate()
- if ($exists) {
- $this->remove_thread($mailbox);
- }
-
// Update index
$data = $this->get_index_data($mailbox, $sort_field, $sort_order, $mbox_data);
}
@@ -1229,16 +1111,11 @@ class rcube_imap_cache
*
* @param rcube_message_header|rcube_message_part
*/
- private function message_object_prepare(&$msg, &$size = 0)
+ private function message_object_prepare(&$msg)
{
- // Remove body too big
- if ($msg->body && ($length = strlen($msg->body))) {
- $size += $length;
-
- if ($size > $this->threshold * 1024) {
- $size -= $length;
- unset($msg->body);
- }
+ // Remove body too big (>25kB)
+ if ($msg->body && strlen($msg->body) > 25 * 1024) {
+ unset($msg->body);
}
// Fix mimetype which might be broken by some code when message is displayed
@@ -1252,13 +1129,13 @@ class rcube_imap_cache
if (is_array($msg->structure->parts)) {
foreach ($msg->structure->parts as $part) {
- $this->message_object_prepare($part, $size);
+ $this->message_object_prepare($part);
}
}
if (is_array($msg->parts)) {
foreach ($msg->parts as $part) {
- $this->message_object_prepare($part, $size);
+ $this->message_object_prepare($part);
}
}
}
@@ -1283,25 +1160,6 @@ class rcube_imap_cache
return $index;
}
-
-
- /**
- * Fetches thread data from IMAP server
- */
- private function get_thread_data($mailbox, $mbox_data = array())
- {
- if (empty($mbox_data)) {
- $mbox_data = $this->imap->folder_data($mailbox);
- }
-
- if ($mbox_data['EXISTS']) {
- // get all threads (default sort order)
- return $this->imap->threads_direct($mailbox);
- }
-
- return new rcube_result_thread($mailbox, '* THREAD');
- }
-
}
// for backward compat.
diff --git a/program/lib/Roundcube/rcube_imap_generic.php b/program/lib/Roundcube/rcube_imap_generic.php
index f9a62f010..1b28c3bd7 100644
--- a/program/lib/Roundcube/rcube_imap_generic.php
+++ b/program/lib/Roundcube/rcube_imap_generic.php
@@ -48,8 +48,6 @@ class rcube_imap_generic
'*' => '\\*',
);
- public static $mupdate;
-
private $fp;
private $host;
private $logged = false;
@@ -74,8 +72,6 @@ class rcube_imap_generic
const COMMAND_CAPABILITY = 2;
const COMMAND_LASTLINE = 4;
- const DEBUG_LINE_LENGTH = 4098; // 4KB + 2B for \r\n
-
/**
* Object constructor
*/
@@ -791,21 +787,23 @@ class rcube_imap_generic
// TLS connection
if ($this->prefs['ssl_mode'] == 'tls' && $this->getCapability('STARTTLS')) {
- $res = $this->execute('STARTTLS');
+ if (version_compare(PHP_VERSION, '5.1.0', '>=')) {
+ $res = $this->execute('STARTTLS');
- if ($res[0] != self::ERROR_OK) {
- $this->closeConnection();
- return false;
- }
+ if ($res[0] != self::ERROR_OK) {
+ $this->closeConnection();
+ return false;
+ }
- if (!stream_socket_enable_crypto($this->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
- $this->setError(self::ERROR_BAD, "Unable to negotiate TLS");
- $this->closeConnection();
- return false;
- }
+ if (!stream_socket_enable_crypto($this->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
+ $this->setError(self::ERROR_BAD, "Unable to negotiate TLS");
+ $this->closeConnection();
+ return false;
+ }
- // Now we're secure, capabilities need to be reread
- $this->clearCapability();
+ // Now we're secure, capabilities need to be reread
+ $this->clearCapability();
+ }
}
// Send ID info
@@ -904,11 +902,6 @@ class rcube_imap_generic
$this->prefs['auth_type'] = 'CHECK';
}
- // disabled capabilities
- if (!empty($this->prefs['disabled_caps'])) {
- $this->prefs['disabled_caps'] = array_map('strtoupper', (array)$this->prefs['disabled_caps']);
- }
-
// additional message flags
if (!empty($this->prefs['message_flags'])) {
$this->flags = array_merge($this->flags, $this->prefs['message_flags']);
@@ -1090,8 +1083,8 @@ class rcube_imap_generic
/**
* Executes EXPUNGE command
*
- * @param string $mailbox Mailbox name
- * @param string|array $messages Message UIDs to expunge
+ * @param string $mailbox Mailbox name
+ * @param string $messages Message UIDs to expunge
*
* @return boolean True on success, False on error
*/
@@ -1109,13 +1102,10 @@ class rcube_imap_generic
// Clear internal status cache
unset($this->data['STATUS:'.$mailbox]);
- if (!empty($messages) && $messages != '*' && $this->hasCapability('UIDPLUS')) {
- $messages = self::compressMessageSet($messages);
- $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE);
- }
- else {
+ if ($messages)
+ $result = $this->execute('UID EXPUNGE', array($messages), self::COMMAND_NORESPONSE);
+ else
$result = $this->execute('EXPUNGE', null, self::COMMAND_NORESPONSE);
- }
if ($result == self::ERROR_OK) {
$this->selected = null; // state has changed, need to reselect
@@ -1352,8 +1342,9 @@ class rcube_imap_generic
$folders[$mailbox] = array();
}
- // store folder options
- if ($cmd == 'LIST') {
+ // store LSUB options only if not empty, this way
+ // we can detect a situation when LIST doesn't return specified folder
+ if (!empty($opts) || $cmd == 'LIST') {
// Add to options array
if (empty($this->data['LIST'][$mailbox]))
$this->data['LIST'][$mailbox] = $opts;
@@ -1585,12 +1576,11 @@ class rcube_imap_generic
}
// message IDs
- if (!empty($add)) {
+ if (!empty($add))
$add = $this->compressMessageSet($add);
- }
list($code, $response) = $this->execute($return_uid ? 'UID SORT' : 'SORT',
- array("($field)", $encoding, !empty($add) ? $add : 'ALL'));
+ array("($field)", $encoding, 'ALL' . (!empty($add) ? ' '.$add : '')));
if ($code != self::ERROR_OK) {
$response = null;
@@ -1677,6 +1667,7 @@ class rcube_imap_generic
}
if (!empty($criteria)) {
+ $modseq = stripos($criteria, 'MODSEQ') !== false;
$params .= ($params ? ' ' : '') . $criteria;
}
else {
@@ -1815,6 +1806,7 @@ class rcube_imap_generic
if ($skip_deleted && preg_match('/FLAGS \(([^)]+)\)/', $line, $matches)) {
$flags = explode(' ', strtoupper($matches[1]));
if (in_array('\\DELETED', $flags)) {
+ $deleted[$id] = $id;
continue;
}
}
@@ -2006,6 +1998,7 @@ class rcube_imap_generic
/**
* Moves message(s) from one folder to another.
+ * Original message(s) will be marked as deleted.
*
* @param string|array $messages Message UID(s)
* @param string $from Mailbox name
@@ -2024,41 +2017,15 @@ class rcube_imap_generic
return false;
}
- // use MOVE command (RFC 6851)
- if ($this->hasCapability('MOVE')) {
- // Clear last COPYUID data
- unset($this->data['COPYUID']);
+ $r = $this->copy($messages, $from, $to);
+ if ($r) {
// Clear internal status cache
- unset($this->data['STATUS:'.$to]);
unset($this->data['STATUS:'.$from]);
- $result = $this->execute('UID MOVE', array(
- $this->compressMessageSet($messages), $this->escape($to)),
- self::COMMAND_NORESPONSE);
-
- return ($result == self::ERROR_OK);
- }
-
- // use COPY + STORE +FLAGS.SILENT \Deleted + EXPUNGE
- $result = $this->copy($messages, $from, $to);
-
- if ($result) {
- // Clear internal status cache
- unset($this->data['STATUS:'.$from]);
-
- $result = $this->flag($from, $messages, 'DELETED');
-
- if ($messages == '*') {
- // CLOSE+SELECT should be faster than EXPUNGE
- $this->close();
- }
- else {
- $this->expunge($from, $messages);
- }
+ return $this->flag($from, $messages, 'DELETED');
}
-
- return $result;
+ return $r;
}
/**
@@ -2199,7 +2166,7 @@ class rcube_imap_generic
// create array with header field:data
if (!empty($headers)) {
$headers = explode("\n", trim($headers));
- foreach ($headers as $resln) {
+ foreach ($headers as $hid => $resln) {
if (ord($resln[0]) <= 32) {
$lines[$ln] .= (empty($lines[$ln]) ? '' : "\n") . trim($resln);
} else {
@@ -2207,7 +2174,7 @@ class rcube_imap_generic
}
}
- foreach ($lines as $str) {
+ while (list($lines_key, $str) = each($lines)) {
list($field, $string) = explode(':', $str, 2);
$field = strtolower($field);
@@ -2511,7 +2478,7 @@ class rcube_imap_generic
}
if ($binary) {
- // WARNING: Use $formatted argument with care, this may break binary data stream
+ // WARNING: Use $formatting argument with care, this may break binary data stream
$mode = -1;
}
@@ -2532,7 +2499,6 @@ class rcube_imap_generic
// handle one line response
if ($line[0] == '(' && substr($line, -1) == ')') {
// tokenize content inside brackets
- // the content can be e.g.: (UID 9844 BODY[2.4] NIL)
$tokens = $this->tokenizeResponse(preg_replace('/(^\(|\)$)/', '', $line));
for ($i=0; $i<count($tokens); $i+=2) {
@@ -2647,11 +2613,11 @@ class rcube_imap_generic
/**
* Handler for IMAP APPEND command
*
- * @param string $mailbox Mailbox name
- * @param string|array $message The message source string or array (of strings and file pointers)
- * @param array $flags Message flags
- * @param string $date Message internal date
- * @param bool $binary Enable BINARY append (RFC3516)
+ * @param string $mailbox Mailbox name
+ * @param string $message Message content
+ * @param array $flags Message flags
+ * @param string $date Message internal date
+ * @param bool $binary Enable BINARY append (RFC3516)
*
* @return string|bool On success APPENDUID response (if available) or True, False on failure
*/
@@ -2665,28 +2631,13 @@ class rcube_imap_generic
$binary = $binary && $this->getCapability('BINARY');
$literal_plus = !$binary && $this->prefs['literal+'];
- $len = 0;
- $msg = is_array($message) ? $message : array(&$message);
- $chunk_size = 512000;
-
- for ($i=0, $cnt=count($msg); $i<$cnt; $i++) {
- if (is_resource($msg[$i])) {
- $stat = fstat($msg[$i]);
- if ($stat === false) {
- return false;
- }
- $len += $stat['size'];
- }
- else {
- if (!$binary) {
- $msg[$i] = str_replace("\r", '', $msg[$i]);
- $msg[$i] = str_replace("\n", "\r\n", $msg[$i]);
- }
- $len += strlen($msg[$i]);
- }
+ if (!$binary) {
+ $message = str_replace("\r", '', $message);
+ $message = str_replace("\n", "\r\n", $message);
}
+ $len = strlen($message);
if (!$len) {
return false;
}
@@ -2711,32 +2662,7 @@ class rcube_imap_generic
}
}
- foreach ($msg as $msg_part) {
- // file pointer
- if (is_resource($msg_part)) {
- rewind($msg_part);
- while (!feof($msg_part) && $this->fp) {
- $buffer = fread($msg_part, $chunk_size);
- $this->putLine($buffer, false);
- }
- fclose($msg_part);
- }
- // string
- else {
- $size = strlen($msg_part);
-
- // Break up the data by sending one chunk (up to 512k) at a time.
- // This approach reduces our peak memory usage
- for ($offset = 0; $offset < $size; $offset += $chunk_size) {
- $chunk = substr($msg_part, $offset, $chunk_size);
- if (!$this->putLine($chunk, false)) {
- return false;
- }
- }
- }
- }
-
- if (!$this->putLine('')) { // \r\n
+ if (!$this->putLine($message)) {
return false;
}
@@ -2775,23 +2701,94 @@ class rcube_imap_generic
*/
function appendFromFile($mailbox, $path, $headers=null, $flags = array(), $date = null, $binary = false)
{
+ unset($this->data['APPENDUID']);
+
+ if ($mailbox === null || $mailbox === '') {
+ return false;
+ }
+
// open message file
+ $in_fp = false;
if (file_exists(realpath($path))) {
- $fp = fopen($path, 'r');
+ $in_fp = fopen($path, 'r');
}
- if (!$fp) {
+ if (!$in_fp) {
$this->setError(self::ERROR_UNKNOWN, "Couldn't open $path for reading");
return false;
}
- $message = array();
+ $body_separator = "\r\n\r\n";
+ $len = filesize($path);
+
+ if (!$len) {
+ return false;
+ }
+
if ($headers) {
- $message[] = trim($headers, "\r\n") . "\r\n\r\n";
+ $headers = preg_replace('/[\r\n]+$/', '', $headers);
+ $len += strlen($headers) + strlen($body_separator);
+ }
+
+ $binary = $binary && $this->getCapability('BINARY');
+ $literal_plus = !$binary && $this->prefs['literal+'];
+
+ // build APPEND command
+ $key = $this->nextTag();
+ $request = "$key APPEND " . $this->escape($mailbox) . ' (' . $this->flagsToStr($flags) . ')';
+ if (!empty($date)) {
+ $request .= ' ' . $this->escape($date);
+ }
+ $request .= ' ' . ($binary ? '~' : '') . '{' . $len . ($literal_plus ? '+' : '') . '}';
+
+ // send APPEND command
+ if ($this->putLine($request)) {
+ // Don't wait when LITERAL+ is supported
+ if (!$literal_plus) {
+ $line = $this->readReply();
+
+ if ($line[0] != '+') {
+ $this->parseResult($line, 'APPEND: ');
+ return false;
+ }
+ }
+
+ // send headers with body separator
+ if ($headers) {
+ $this->putLine($headers . $body_separator, false);
+ }
+
+ // send file
+ while (!feof($in_fp) && $this->fp) {
+ $buffer = fgets($in_fp, 4096);
+ $this->putLine($buffer, false);
+ }
+ fclose($in_fp);
+
+ if (!$this->putLine('')) { // \r\n
+ return false;
+ }
+
+ // read response
+ do {
+ $line = $this->readLine();
+ } while (!$this->startsWith($line, $key, true, true));
+
+ // Clear internal status cache
+ unset($this->data['STATUS:'.$mailbox]);
+
+ if ($this->parseResult($line, 'APPEND: ') != self::ERROR_OK)
+ return false;
+ else if (!empty($this->data['APPENDUID']))
+ return $this->data['APPENDUID'];
+ else
+ return true;
+ }
+ else {
+ $this->setError(self::ERROR_COMMAND, "Unable to send command: $request");
}
- $message[] = $fp;
- return $this->append($mailbox, $message, $flags, $date, $binary);
+ return false;
}
/**
@@ -3158,11 +3155,6 @@ class rcube_imap_generic
}
foreach ($data as $entry) {
- // Workaround cyrus-murder bug, the entry[2] string needs to be escaped
- if (self::$mupdate) {
- $entry[2] = addcslashes($entry[2], '\\"');
- }
-
// ANNOTATEMORE drafts before version 08 require quoted parameters
$entries[] = sprintf('%s (%s %s)', $this->escape($entry[0], true),
$this->escape($entry[1], true), $this->escape($entry[2], true));
@@ -3545,7 +3537,7 @@ class rcube_imap_generic
if (is_array($element)) {
reset($element);
- foreach ($element as $value) {
+ while (list($key, $value) = each($element)) {
$string .= ' ' . self::r_implode($value);
}
}
@@ -3573,7 +3565,7 @@ class rcube_imap_generic
// if less than 255 bytes long, let's not bother
if (!$force && strlen($messages)<255) {
return $messages;
- }
+ }
// see if it's already been compressed
if (strpos($messages, ':') !== false) {
@@ -3681,20 +3673,8 @@ class rcube_imap_generic
*/
static function strToTime($date)
{
- // Clean malformed data
- $date = preg_replace(
- array(
- '/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
- '/[^a-z0-9\x20\x09:+-]/i', // remove any invalid characters
- '/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
- ),
- array(
- '\\1',
- '',
- '',
- ), $date);
-
- $date = trim($date);
+ // support non-standard "GMTXXXX" literal
+ $date = preg_replace('/GMT\s*([+-][0-9]+)/', '\\1', $date);
// if date parsing fails, we have a date in non-rfc format
// remove token from the end and try again
@@ -3719,18 +3699,10 @@ class rcube_imap_generic
$this->capability = explode(' ', strtoupper($str));
- if (!empty($this->prefs['disabled_caps'])) {
- $this->capability = array_diff($this->capability, $this->prefs['disabled_caps']);
- }
-
if (!isset($this->prefs['literal+']) && in_array('LITERAL+', $this->capability)) {
$this->prefs['literal+'] = true;
}
- if (preg_match('/(\[| )MUPDATE=.*/', $str)) {
- self::$mupdate = true;
- }
-
if ($trusted) {
$this->capability_readed = true;
}
@@ -3772,10 +3744,9 @@ class rcube_imap_generic
/**
* Set the value of the debugging flag.
*
- * @param boolean $debug New value for the debugging flag.
- * @param callback $handler Logging handler function
+ * @param boolean $debug New value for the debugging flag.
*
- * @since 0.5-stable
+ * @since 0.5-stable
*/
function setDebug($debug, $handler = null)
{
@@ -3786,18 +3757,12 @@ class rcube_imap_generic
/**
* Write the given debug text to the current debug output handler.
*
- * @param string $message Debug mesage text.
+ * @param string $message Debug mesage text.
*
- * @since 0.5-stable
+ * @since 0.5-stable
*/
private function debug($message)
{
- if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) {
- $diff = $len - self::DEBUG_LINE_LENGTH;
- $message = substr($message, 0, self::DEBUG_LINE_LENGTH)
- . "... [truncated $diff bytes]";
- }
-
if ($this->resourceid) {
$message = sprintf('[%s] %s', $this->resourceid, $message);
}
diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index b733e2465..7c4002337 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/program/lib/Roundcube/rcube_ldap.php
@@ -3,8 +3,8 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
- | Copyright (C) 2011-2013, Kolab Systems AG |
+ | Copyright (C) 2006-2012, The Roundcube Dev Team |
+ | Copyright (C) 2011-2012, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -27,51 +27,38 @@
*/
class rcube_ldap extends rcube_addressbook
{
- // public properties
+ /** public properties */
public $primary_key = 'ID';
- public $groups = false;
- public $readonly = true;
- public $ready = false;
- public $group_id = 0;
- public $coltypes = array();
- public $export_groups = false;
-
- // private properties
- protected $ldap;
- protected $prop = array();
+ public $groups = false;
+ public $readonly = true;
+ public $ready = false;
+ public $group_id = 0;
+ public $coltypes = array();
+
+ /** private properties */
+ protected $conn;
+ protected $prop = array();
protected $fieldmap = array();
- protected $filter = '';
protected $sub_filter;
- protected $result;
- protected $ldap_result;
+ protected $filter = '';
+ protected $result = null;
+ protected $ldap_result = null;
protected $mail_domain = '';
protected $debug = false;
- /**
- * Group objectclass (lowercase) to member attribute mapping
- *
- * @var array
- */
- private $group_types = array(
- 'group' => 'member',
- 'groupofnames' => 'member',
- 'kolabgroupofnames' => 'member',
- 'groupofuniquenames' => 'uniqueMember',
- 'kolabgroupofuniquenames' => 'uniqueMember',
- 'univentiongroup' => 'uniqueMember',
- 'groupofurls' => null,
- );
-
- private $base_dn = '';
+ private $base_dn = '';
private $groups_base_dn = '';
- private $group_url;
+ private $group_url = null;
private $cache;
+ private $vlv_active = false;
+ private $vlv_count = 0;
+
/**
* Object constructor
*
- * @param array $p LDAP connection properties
+ * @param array $p LDAP connection properties
* @param boolean $debug Enables debug mode
* @param string $mail_domain Current user mail domain name
*/
@@ -79,7 +66,8 @@ class rcube_ldap extends rcube_addressbook
{
$this->prop = $p;
- $fetch_attributes = array('objectClass');
+ if (isset($p['searchonly']))
+ $this->searchonly = $p['searchonly'];
// check if groups are configured
if (is_array($p['groups']) && count($p['groups'])) {
@@ -94,24 +82,6 @@ class rcube_ldap extends rcube_addressbook
$this->prop['groups']['name_attr'] = 'cn';
if (empty($this->prop['groups']['scope']))
$this->prop['groups']['scope'] = 'sub';
- // extend group objectclass => member attribute mapping
- if (!empty($this->prop['groups']['class_member_attr']))
- $this->group_types = array_merge($this->group_types, $this->prop['groups']['class_member_attr']);
-
- // add group name attrib to the list of attributes to be fetched
- $fetch_attributes[] = $this->prop['groups']['name_attr'];
- }
- if (is_array($p['group_filters']) && count($p['group_filters'])) {
- $this->groups = true;
-
- foreach ($p['group_filters'] as $k => $group_filter) {
- // set default name attribute to cn
- if (empty($group_filter['name_attr']) && empty($this->prop['groups']['name_attr']))
- $this->prop['group_filters'][$k]['name_attr'] = $group_filter['name_attr'] = 'cn';
-
- if ($group_filter['name_attr'])
- $fetch_attributes[] = $group_filter['name_attr'];
- }
}
// fieldmap property is given
@@ -199,7 +169,7 @@ class rcube_ldap extends rcube_addressbook
// Build sub_fields filter
if (!empty($this->prop['sub_fields']) && is_array($this->prop['sub_fields'])) {
$this->sub_filter = '';
- foreach ($this->prop['sub_fields'] as $class) {
+ foreach ($this->prop['sub_fields'] as $attr => $class) {
if (!empty($class)) {
$class = is_array($class) ? array_pop($class) : $class;
$this->sub_filter .= '(objectClass=' . $class . ')';
@@ -216,24 +186,7 @@ class rcube_ldap extends rcube_addressbook
// initialize cache
$rcube = rcube::get_instance();
- if ($cache_type = $rcube->config->get('ldap_cache', 'db')) {
- $cache_ttl = $rcube->config->get('ldap_cache_ttl', '10m');
- $cache_name = 'LDAP.' . asciiwords($this->prop['name']);
-
- $this->cache = $rcube->get_cache($cache_name, $cache_type, $cache_ttl);
- }
-
- // determine which attributes to fetch
- $this->prop['list_attributes'] = array_unique($fetch_attributes);
- $this->prop['attributes'] = array_merge(array_values($this->fieldmap), $fetch_attributes);
- foreach ($rcube->config->get('contactlist_fields') as $col) {
- $this->prop['list_attributes'] = array_merge($this->prop['list_attributes'], $this->_map_field($col));
- }
-
- // initialize ldap wrapper object
- $this->ldap = new rcube_ldap_generic($this->prop);
- $this->ldap->set_cache($this->cache);
- $this->ldap->set_debug($this->debug);
+ $this->cache = $rcube->get_cache('LDAP.' . asciiwords($this->prop['name']), 'db', 600);
$this->_connect();
}
@@ -246,18 +199,49 @@ class rcube_ldap extends rcube_addressbook
{
$rcube = rcube::get_instance();
- if ($this->ready)
+ if (!function_exists('ldap_connect'))
+ rcube::raise_error(array('code' => 100, 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "No ldap support in this installation of PHP"),
+ true, true);
+
+ if (is_resource($this->conn))
return true;
if (!is_array($this->prop['hosts']))
$this->prop['hosts'] = array($this->prop['hosts']);
+ if (empty($this->prop['ldap_version']))
+ $this->prop['ldap_version'] = 3;
+
// try to connect + bind for every host configured
// with OpenLDAP 2.x ldap_connect() always succeeds but ldap_bind will fail if host isn't reachable
// see http://www.php.net/manual/en/function.ldap-connect.php
foreach ($this->prop['hosts'] as $host) {
- // skip host if connection failed
- if (!$this->ldap->connect($host)) {
+ $host = rcube_utils::idn_to_ascii(rcube_utils::parse_host($host));
+ $hostname = $host.($this->prop['port'] ? ':'.$this->prop['port'] : '');
+
+ $this->_debug("C: Connect [$hostname] [{$this->prop['name']}]");
+
+ if ($lc = @ldap_connect($host, $this->prop['port'])) {
+ if ($this->prop['use_tls'] === true)
+ if (!ldap_start_tls($lc))
+ continue;
+
+ $this->_debug("S: OK");
+
+ ldap_set_option($lc, LDAP_OPT_PROTOCOL_VERSION, $this->prop['ldap_version']);
+ $this->prop['host'] = $host;
+ $this->conn = $lc;
+
+ if (!empty($this->prop['network_timeout']))
+ ldap_set_option($lc, LDAP_OPT_NETWORK_TIMEOUT, $this->prop['network_timeout']);
+
+ if (isset($this->prop['referrals']))
+ ldap_set_option($lc, LDAP_OPT_REFERRALS, $this->prop['referrals']);
+ }
+ else {
+ $this->_debug("S: NOT OK");
continue;
}
@@ -272,7 +256,7 @@ class rcube_ldap extends rcube_addressbook
$this->base_dn = $this->prop['base_dn'];
$this->groups_base_dn = ($this->prop['groups']['base_dn']) ?
- $this->prop['groups']['base_dn'] : $this->base_dn;
+ $this->prop['groups']['base_dn'] : $this->base_dn;
// User specific access, generate the proper values to use.
if ($this->prop['user_specific']) {
@@ -291,65 +275,30 @@ class rcube_ldap extends rcube_addressbook
$replaces = array('%dn' => '', '%dc' => $dc, '%d' => $d, '%fu' => $fu, '%u' => $u);
- // Search for the dn to use to authenticate
- if ($this->prop['search_base_dn'] && $this->prop['search_filter']
- && (strstr($bind_dn, '%dn') || strstr($this->base_dn, '%dn') || strstr($this->groups_base_dn, '%dn'))
- ) {
- $search_attribs = array('uid');
- if ($search_bind_attrib = (array)$this->prop['search_bind_attrib']) {
- foreach ($search_bind_attrib as $r => $attr) {
- $search_attribs[] = $attr;
- $replaces[$r] = '';
- }
- }
-
- $search_bind_dn = strtr($this->prop['search_bind_dn'], $replaces);
- $search_base_dn = strtr($this->prop['search_base_dn'], $replaces);
- $search_filter = strtr($this->prop['search_filter'], $replaces);
-
- $cache_key = 'DN.' . md5("$host:$search_bind_dn:$search_base_dn:$search_filter:"
- .$this->prop['search_bind_pw']);
-
- if ($this->cache && ($dn = $this->cache->get($cache_key))) {
- $replaces['%dn'] = $dn;
+ if ($this->prop['search_base_dn'] && $this->prop['search_filter']) {
+ if (!empty($this->prop['search_bind_dn']) && !empty($this->prop['search_bind_pw'])) {
+ $this->bind($this->prop['search_bind_dn'], $this->prop['search_bind_pw']);
}
- else {
- $ldap = $this->ldap;
- if (!empty($search_bind_dn) && !empty($this->prop['search_bind_pw'])) {
- // To protect from "Critical extension is unavailable" error
- // we need to use a separate LDAP connection
- if (!empty($this->prop['vlv'])) {
- $ldap = new rcube_ldap_generic($this->prop);
- $ldap->set_debug($this->debug);
- $ldap->set_cache($this->cache);
- if (!$ldap->connect($host)) {
- continue;
- }
- }
-
- if (!$ldap->bind($search_bind_dn, $this->prop['search_bind_pw'])) {
- continue; // bind failed, try next host
- }
- }
- $res = $ldap->search($search_base_dn, $search_filter, 'sub', $search_attribs);
- if ($res) {
- $res->rewind();
- $replaces['%dn'] = $res->get_dn();
-
- // add more replacements from 'search_bind_attrib' config
- if ($search_bind_attrib) {
- $res = $res->current();
- foreach ($search_bind_attrib as $r => $attr) {
- $replaces[$r] = $res[$attr][0];
- }
- }
- }
+ // Search for the dn to use to authenticate
+ $this->prop['search_base_dn'] = strtr($this->prop['search_base_dn'], $replaces);
+ $this->prop['search_filter'] = strtr($this->prop['search_filter'], $replaces);
+
+ $this->_debug("S: searching with base {$this->prop['search_base_dn']} for {$this->prop['search_filter']}");
- if ($ldap != $this->ldap) {
- $ldap->close();
+ $res = @ldap_search($this->conn, $this->prop['search_base_dn'], $this->prop['search_filter'], array('uid'));
+ if ($res) {
+ if (($entry = ldap_first_entry($this->conn, $res))
+ && ($bind_dn = ldap_get_dn($this->conn, $entry))
+ ) {
+ $this->_debug("S: search returned dn: $bind_dn");
+ $dn = ldap_explode_dn($bind_dn, 1);
+ $replaces['%dn'] = $dn[0];
}
}
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ }
// DN not found
if (empty($replaces['%dn'])) {
@@ -360,13 +309,9 @@ class rcube_ldap extends rcube_addressbook
'code' => 100, 'type' => 'ldap',
'file' => __FILE__, 'line' => __LINE__,
'message' => "DN not found using LDAP search."), true);
- continue;
+ return false;
}
}
-
- if ($this->cache && !empty($replaces['%dn'])) {
- $this->cache->set($cache_key, $replaces['%dn']);
- }
}
// Replace the bind_dn and base_dn variables.
@@ -374,23 +319,6 @@ class rcube_ldap extends rcube_addressbook
$this->base_dn = strtr($this->base_dn, $replaces);
$this->groups_base_dn = strtr($this->groups_base_dn, $replaces);
- // replace placeholders in filter settings
- if (!empty($this->prop['filter']))
- $this->prop['filter'] = strtr($this->prop['filter'], $replaces);
- if (!empty($this->prop['groups']['filter']))
- $this->prop['groups']['filter'] = strtr($this->prop['groups']['filter'], $replaces);
- if (!empty($this->prop['groups']['member_filter']))
- $this->prop['groups']['member_filter'] = strtr($this->prop['groups']['member_filter'], $replaces);
-
- if (!empty($this->prop['group_filters'])) {
- foreach ($this->prop['group_filters'] as $i => $gf) {
- if (!empty($gf['base_dn']))
- $this->prop['group_filters'][$i]['base_dn'] = strtr($gf['base_dn'], $replaces);
- if (!empty($gf['filter']))
- $this->prop['group_filters'][$i]['filter'] = strtr($gf['filter'], $replaces);
- }
- }
-
if (empty($bind_user)) {
$bind_user = $u;
}
@@ -401,13 +329,13 @@ class rcube_ldap extends rcube_addressbook
}
else {
if (!empty($bind_dn)) {
- $this->ready = $this->ldap->bind($bind_dn, $bind_pass);
+ $this->ready = $this->bind($bind_dn, $bind_pass);
}
else if (!empty($this->prop['auth_cid'])) {
- $this->ready = $this->ldap->sasl_bind($this->prop['auth_cid'], $bind_pass, $bind_user);
+ $this->ready = $this->sasl_bind($this->prop['auth_cid'], $bind_pass, $bind_user);
}
else {
- $this->ready = $this->ldap->sasl_bind($bind_user, $bind_pass);
+ $this->ready = $this->sasl_bind($bind_user, $bind_pass);
}
}
@@ -418,10 +346,10 @@ class rcube_ldap extends rcube_addressbook
} // end foreach hosts
- if (!is_resource($this->ldap->conn)) {
+ if (!is_resource($this->conn)) {
rcube::raise_error(array('code' => 100, 'type' => 'ldap',
'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Could not connect to any LDAP server, last tried $host"), true);
+ 'message' => "Could not connect to any LDAP server, last tried $hostname"), true);
return false;
}
@@ -431,47 +359,112 @@ class rcube_ldap extends rcube_addressbook
/**
- * Close connection to LDAP server
+ * Bind connection with (SASL-) user and password
+ *
+ * @param string $authc Authentication user
+ * @param string $pass Bind password
+ * @param string $authz Autorization user
+ *
+ * @return boolean True on success, False on error
*/
- function close()
+ public function sasl_bind($authc, $pass, $authz=null)
{
- if ($this->ldap) {
- $this->ldap->close();
+ if (!$this->conn) {
+ return false;
+ }
+
+ if (!function_exists('ldap_sasl_bind')) {
+ rcube::raise_error(array('code' => 100, 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Unable to bind: ldap_sasl_bind() not exists"),
+ true, true);
}
+
+ if (!empty($authz)) {
+ $authz = 'u:' . $authz;
+ }
+
+ if (!empty($this->prop['auth_method'])) {
+ $method = $this->prop['auth_method'];
+ }
+ else {
+ $method = 'DIGEST-MD5';
+ }
+
+ $this->_debug("C: Bind [mech: $method, authc: $authc, authz: $authz] [pass: $pass]");
+
+ if (ldap_sasl_bind($this->conn, NULL, $pass, $method, NULL, $authc, $authz)) {
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ $this->_debug("S: ".ldap_error($this->conn));
+
+ rcube::raise_error(array(
+ 'code' => ldap_errno($this->conn), 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Bind failed for authcid=$authc ".ldap_error($this->conn)),
+ true);
+
+ return false;
}
/**
- * Returns address book name
+ * Bind connection with DN and password
*
- * @return string Address book name
+ * @param string Bind DN
+ * @param string Bind password
+ *
+ * @return boolean True on success, False on error
*/
- function get_name()
+ public function bind($dn, $pass)
{
- return $this->prop['name'];
+ if (!$this->conn) {
+ return false;
+ }
+
+ $this->_debug("C: Bind [dn: $dn] [pass: $pass]");
+
+ if (@ldap_bind($this->conn, $dn, $pass)) {
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ $this->_debug("S: ".ldap_error($this->conn));
+
+ rcube::raise_error(array(
+ 'code' => ldap_errno($this->conn), 'type' => 'ldap',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => "Bind failed for dn=$dn: ".ldap_error($this->conn)),
+ true);
+
+ return false;
}
/**
- * Set internal list page
- *
- * @param number Page number to list
+ * Close connection to LDAP server
*/
- function set_page($page)
+ function close()
{
- $this->list_page = (int)$page;
- $this->ldap->set_vlv_page($this->list_page, $this->page_size);
+ if ($this->conn)
+ {
+ $this->_debug("C: Close");
+ ldap_unbind($this->conn);
+ $this->conn = null;
+ }
}
+
/**
- * Set internal page size
+ * Returns address book name
*
- * @param number Number of records to display on one page
+ * @return string Address book name
*/
- function set_pagesize($size)
+ function get_name()
{
- $this->page_size = (int)$size;
- $this->ldap->set_vlv_page($this->list_page, $this->page_size);
+ return $this->prop['name'];
}
@@ -531,14 +524,16 @@ class rcube_ldap extends rcube_addressbook
*/
function list_records($cols=null, $subset=0)
{
- if ($this->prop['searchonly'] && empty($this->filter) && !$this->group_id) {
+ if ($this->prop['searchonly'] && empty($this->filter) && !$this->group_id)
+ {
$this->result = new rcube_result_set(0);
$this->result->searchonly = true;
return $this->result;
}
// fetch group members recursively
- if ($this->group_id && $this->group_data['dn']) {
+ if ($this->group_id && $this->group_data['dn'])
+ {
$entries = $this->list_group_members($this->group_data['dn']);
// make list of entries unique and sort it
@@ -552,35 +547,34 @@ class rcube_ldap extends rcube_addressbook
$entries['count'] = count($entries);
$this->result = new rcube_result_set($entries['count'], ($this->list_page-1) * $this->page_size);
}
- else {
- $prop = $this->group_id ? $this->group_data : $this->prop;
- $base_dn = $this->group_id ? $this->group_base_dn : $this->base_dn;
-
- // use global search filter
- if (!empty($this->filter))
- $prop['filter'] = $this->filter;
+ else
+ {
+ // add general filter to query
+ if (!empty($this->prop['filter']) && empty($this->filter))
+ $this->set_search_set($this->prop['filter']);
// exec LDAP search if no result resource is stored
- if ($this->ready && !$this->ldap_result)
- $this->ldap_result = $this->ldap->search($base_dn, $prop['filter'], $prop['scope'], $this->prop['attributes'], $prop);
+ if ($this->conn && !$this->ldap_result)
+ $this->_exec_search();
// count contacts for this user
$this->result = $this->count();
// we have a search result resource
- if ($this->ldap_result && $this->result->count > 0) {
+ if ($this->ldap_result && $this->result->count > 0)
+ {
// sorting still on the ldap server
- if ($this->sort_col && $prop['scope'] !== 'base' && !$this->ldap->vlv_active)
- $this->ldap_result->sort($this->sort_col);
+ if ($this->sort_col && $this->prop['scope'] !== 'base' && !$this->vlv_active)
+ ldap_sort($this->conn, $this->ldap_result, $this->sort_col);
// get all entries from the ldap server
- $entries = $this->ldap_result->entries();
+ $entries = ldap_get_entries($this->conn, $this->ldap_result);
}
} // end else
// start and end of the page
- $start_row = $this->ldap->vlv_active ? 0 : $this->result->first;
+ $start_row = $this->vlv_active ? 0 : $this->result->first;
$start_row = $subset < 0 ? $start_row + $this->page_size + $subset : $start_row;
$last_row = $this->result->first + $this->page_size;
$last_row = $subset != 0 ? $start_row + abs($subset) : $last_row;
@@ -595,10 +589,9 @@ class rcube_ldap extends rcube_addressbook
/**
* Get all members of the given group
*
- * @param string Group DN
- * @param boolean Count only
- * @param array Group entries (if called recursively)
- * @return array Accumulated group members
+ * @param string Group DN
+ * @param array Group entries (if called recursively)
+ * @return array Accumulated group members
*/
function list_group_members($dn, $count = false, $entries = null)
{
@@ -606,34 +599,43 @@ class rcube_ldap extends rcube_addressbook
// fetch group object
if (empty($entries)) {
- $attribs = array_merge(array('dn','objectClass','memberURL'), array_values($this->group_types));
- $entries = $this->ldap->read_entries($dn, '(objectClass=*)', $attribs);
- if ($entries === false) {
+ $result = @ldap_read($this->conn, $dn, '(objectClass=*)', array('dn','objectClass','member','uniqueMember','memberURL'));
+ if ($result === false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
return $group_members;
}
+
+ $entries = @ldap_get_entries($this->conn, $result);
}
- for ($i=0; $i < $entries['count']; $i++) {
+ for ($i=0; $i < $entries['count']; $i++)
+ {
$entry = $entries[$i];
- $attrs = array();
-
- foreach ((array)$entry['objectclass'] as $objectclass) {
- if (($member_attr = $this->get_group_member_attr(array($objectclass), ''))
- && ($member_attr = strtolower($member_attr)) && !in_array($member_attr, $attrs)
- ) {
- $members = $this->_list_group_members($dn, $entry, $member_attr, $count);
- $group_members = array_merge($group_members, $members);
- $attrs[] = $member_attr;
- }
- else if (!empty($entry['memberurl'])) {
- $members = $this->_list_group_memberurl($dn, $entry, $count);
- $group_members = array_merge($group_members, $members);
- }
- if ($this->prop['sizelimit'] && count($group_members) > $this->prop['sizelimit']) {
- break 2;
+ if (empty($entry['objectclass']))
+ continue;
+
+ foreach ((array)$entry['objectclass'] as $objectclass)
+ {
+ switch (strtolower($objectclass)) {
+ case "group":
+ case "groupofnames":
+ case "kolabgroupofnames":
+ $group_members = array_merge($group_members, $this->_list_group_members($dn, $entry, 'member', $count));
+ break;
+ case "groupofuniquenames":
+ case "kolabgroupofuniquenames":
+ $group_members = array_merge($group_members, $this->_list_group_members($dn, $entry, 'uniquemember', $count));
+ break;
+ case "groupofurls":
+ $group_members = array_merge($group_members, $this->_list_group_memberurl($dn, $entry, $count));
+ break;
}
}
+
+ if ($this->prop['sizelimit'] && count($group_members) > $this->prop['sizelimit'])
+ break;
}
return array_filter($group_members);
@@ -645,7 +647,6 @@ class rcube_ldap extends rcube_addressbook
* @param string Group DN
* @param array Group entry
* @param string Member attribute to use
- * @param boolean Count only
* @return array Accumulated group members
*/
private function _list_group_members($dn, $entry, $attr, $count)
@@ -653,23 +654,28 @@ class rcube_ldap extends rcube_addressbook
// Use the member attributes to return an array of member ldap objects
// NOTE that the member attribute is supposed to contain a DN
$group_members = array();
- if (empty($entry[$attr])) {
+ if (empty($entry[$attr]))
return $group_members;
- }
// read these attributes for all members
- $attrib = $count ? array('dn','objectClass') : $this->prop['list_attributes'];
- $attrib = array_merge($attrib, array_values($this->group_types));
+ $attrib = $count ? array('dn') : array_values($this->fieldmap);
+ $attrib[] = 'objectClass';
+ $attrib[] = 'member';
+ $attrib[] = 'uniqueMember';
$attrib[] = 'memberURL';
- $filter = $this->prop['groups']['member_filter'] ? $this->prop['groups']['member_filter'] : '(objectclass=*)';
-
- for ($i=0; $i < $entry[$attr]['count']; $i++) {
+ for ($i=0; $i < $entry[$attr]['count']; $i++)
+ {
if (empty($entry[$attr][$i]))
continue;
- $members = $this->ldap->read_entries($entry[$attr][$i], $filter, $attrib);
- if ($members == false) {
+ $result = @ldap_read($this->conn, $entry[$attr][$i], '(objectclass=*)',
+ $attrib, 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit']);
+
+ $members = @ldap_get_entries($this->conn, $result);
+ if ($members == false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
$members = array();
}
@@ -695,22 +701,34 @@ class rcube_ldap extends rcube_addressbook
{
$group_members = array();
- for ($i=0; $i < $entry['memberurl']['count']; $i++) {
+ for ($i=0; $i < $entry['memberurl']['count']; $i++)
+ {
// extract components from url
if (!preg_match('!ldap:///([^\?]+)\?\?(\w+)\?(.*)$!', $entry['memberurl'][$i], $m))
continue;
// add search filter if any
$filter = $this->filter ? '(&(' . $m[3] . ')(' . $this->filter . '))' : $m[3];
- $attrs = $count ? array('dn','objectClass') : $this->prop['list_attributes'];
- if ($result = $this->ldap->search($m[1], $filter, $m[2], $attrs, $this->group_data)) {
- $entries = $result->entries();
- for ($j = 0; $j < $entries['count']; $j++) {
- if ($this->is_group_entry($entries[$j]) && ($nested_group_members = $this->list_group_members($entries[$j]['dn'], $count)))
- $group_members = array_merge($group_members, $nested_group_members);
- else
- $group_members[] = $entries[$j];
- }
+ $func = $m[2] == 'sub' ? 'ldap_search' : ($m[2] == 'base' ? 'ldap_read' : 'ldap_list');
+
+ $attrib = $count ? array('dn') : array_values($this->fieldmap);
+ if ($result = @$func($this->conn, $m[1], $filter,
+ $attrib, 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit'])
+ ) {
+ $this->_debug("S: ".ldap_count_entries($this->conn, $result)." record(s) for ".$m[1]);
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return $group_members;
+ }
+
+ $entries = @ldap_get_entries($this->conn, $result);
+ for ($j = 0; $j < $entries['count']; $j++)
+ {
+ if ($nested_group_members = $this->list_group_members($entries[$j]['dn'], $count))
+ $group_members = array_merge($group_members, $nested_group_members);
+ else
+ $group_members[] = $entries[$j];
}
}
@@ -746,11 +764,14 @@ class rcube_ldap extends rcube_addressbook
$mode = intval($mode);
// special treatment for ID-based search
- if ($fields == 'ID' || $fields == $this->primary_key) {
+ if ($fields == 'ID' || $fields == $this->primary_key)
+ {
$ids = !is_array($value) ? explode(',', $value) : $value;
$result = new rcube_result_set();
- foreach ($ids as $id) {
- if ($rec = $this->get_record($id, true)) {
+ foreach ($ids as $id)
+ {
+ if ($rec = $this->get_record($id, true))
+ {
$result->add($rec);
$result->count++;
}
@@ -762,20 +783,34 @@ class rcube_ldap extends rcube_addressbook
$rcube = rcube::get_instance();
$list_fields = $rcube->config->get('contactlist_fields');
- if ($this->prop['vlv_search'] && $this->ready && join(',', (array)$fields) == join(',', $list_fields)) {
+ if ($this->prop['vlv_search'] && $this->conn && join(',', (array)$fields) == join(',', $list_fields))
+ {
+ // add general filter to query
+ if (!empty($this->prop['filter']) && empty($this->filter))
+ $this->set_search_set($this->prop['filter']);
+
+ // set VLV controls with encoded search string
+ $this->_vlv_set_controls($this->prop, $this->list_page, $this->page_size, $value);
+
+ $function = $this->_scope2func($this->prop['scope']);
+ $this->ldap_result = @$function($this->conn, $this->base_dn, $this->filter ? $this->filter : '(objectclass=*)',
+ array_values($this->fieldmap), 0, $this->page_size, (int)$this->prop['timelimit']);
+
$this->result = new rcube_result_set(0);
- $search_suffix = $this->prop['fuzzy_search'] && $mode != 1 ? '*' : '';
- $ldap_data = $this->ldap->search($this->base_dn, $this->prop['filter'], $this->prop['scope'], $this->prop['attributes'],
- array('search' => $value . $search_suffix /*, 'sort' => $this->prop['sort'] */));
- if ($ldap_data === false) {
+ if (!$this->ldap_result) {
+ $this->_debug("S: ".ldap_error($this->conn));
return $this->result;
}
+ $this->_debug("S: ".ldap_count_entries($this->conn, $this->ldap_result)." record(s)");
+
// get all entries of this page and post-filter those that really match the query
- $search = mb_strtolower($value);
- foreach ($ldap_data as $i => $entry) {
- $rec = $this->_ldap2result($entry);
+ $search = mb_strtolower($value);
+ $entries = ldap_get_entries($this->conn, $this->ldap_result);
+
+ for ($i = 0; $i < $entries['count']; $i++) {
+ $rec = $this->_ldap2result($entries[$i]);
foreach ($fields as $f) {
foreach ((array)$rec[$f] as $val) {
if ($this->compare_search_value($f, $val, $search, $mode)) {
@@ -801,27 +836,31 @@ class rcube_ldap extends rcube_addressbook
}
}
- if ($fields == '*') {
+ if ($fields == '*')
+ {
// search_fields are required for fulltext search
- if (empty($this->prop['search_fields'])) {
+ if (empty($this->prop['search_fields']))
+ {
$this->set_error(self::ERROR_SEARCH, 'nofulltextsearch');
$this->result = new rcube_result_set();
return $this->result;
}
- if (is_array($this->prop['search_fields'])) {
+ if (is_array($this->prop['search_fields']))
+ {
foreach ($this->prop['search_fields'] as $field) {
- $filter .= "($field=$wp" . rcube_ldap_generic::quote_string($value) . "$ws)";
+ $filter .= "($field=$wp" . $this->_quote_string($value) . "$ws)";
}
}
}
- else {
+ else
+ {
foreach ((array)$fields as $idx => $field) {
$val = is_array($value) ? $value[$idx] : $value;
if ($attrs = $this->_map_field($field)) {
if (count($attrs) > 1)
$filter .= '(|';
foreach ($attrs as $f)
- $filter .= "($f=$wp" . rcube_ldap_generic::quote_string($val) . "$ws)";
+ $filter .= "($f=$wp" . $this->_quote_string($val) . "$ws)";
if (count($attrs) > 1)
$filter .= ')';
}
@@ -856,6 +895,7 @@ class rcube_ldap extends rcube_addressbook
// set filter string and execute search
$this->set_search_set($filter);
+ $this->_exec_search();
if ($select)
$this->list_records();
@@ -874,21 +914,20 @@ class rcube_ldap extends rcube_addressbook
function count()
{
$count = 0;
- if ($this->ldap_result) {
- $count = $this->ldap_result->count();
+ if ($this->conn && $this->ldap_result) {
+ $count = $this->vlv_active ? $this->vlv_count : ldap_count_entries($this->conn, $this->ldap_result);
}
else if ($this->group_id && $this->group_data['dn']) {
$count = count($this->list_group_members($this->group_data['dn'], true));
}
- // We have a connection but no result set, attempt to get one.
- else if ($this->ready) {
- $prop = $this->group_id ? $this->group_data : $this->prop;
- $base_dn = $this->group_id ? $this->group_base_dn : $this->base_dn;
-
- if (!empty($this->filter)) { // Use global search filter
- $prop['filter'] = $this->filter;
+ else if ($this->conn) {
+ // We have a connection but no result set, attempt to get one.
+ if (empty($this->filter)) {
+ // The filter is not set, set it.
+ $this->filter = $this->prop['filter'];
}
- $count = $this->ldap->search($base_dn, $prop['filter'], $prop['scope'], array('dn'), $prop, true);
+
+ $count = (int) $this->_exec_search(true);
}
return new rcube_result_set($count, ($this->list_page-1) * $this->page_size);
@@ -918,16 +957,28 @@ class rcube_ldap extends rcube_addressbook
{
$res = $this->result = null;
- if ($this->ready && $dn) {
+ if ($this->conn && $dn)
+ {
$dn = self::dn_decode($dn);
- if ($rec = $this->ldap->get_entry($dn)) {
- $rec = array_change_key_case($rec, CASE_LOWER);
+ $this->_debug("C: Read [dn: $dn] [(objectclass=*)]");
+
+ if ($ldap_result = @ldap_read($this->conn, $dn, '(objectclass=*)', array_values($this->fieldmap))) {
+ $this->_debug("S: OK");
+
+ $entry = ldap_first_entry($this->conn, $ldap_result);
+
+ if ($entry && ($rec = ldap_get_attributes($this->conn, $entry))) {
+ $rec = array_change_key_case($rec, CASE_LOWER);
+ }
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
}
// Use ldap_list to get subentries like country (c) attribute (#1488123)
if (!empty($rec) && $this->sub_filter) {
- if ($entries = $this->ldap->list_entries($dn, $this->sub_filter, array_keys($this->prop['sub_fields']))) {
+ if ($entries = $this->ldap_list($dn, $this->sub_filter, array_keys($this->prop['sub_fields']))) {
foreach ($entries as $entry) {
$lrec = array_change_key_case($entry, CASE_LOWER);
$rec = array_merge($lrec, $rec);
@@ -939,7 +990,7 @@ class rcube_ldap extends rcube_addressbook
// Add in the dn for the entry.
$rec['dn'] = $dn;
$res = $this->_ldap2result($rec);
- $this->result = new rcube_result_set(1);
+ $this->result = new rcube_result_set();
$this->result->add($res);
}
}
@@ -986,6 +1037,7 @@ class rcube_ldap extends rcube_addressbook
$mail_field = $this->fieldmap['email'];
// try to extract surname and firstname from displayname
+ $reverse_map = array_flip($this->fieldmap);
$name_parts = preg_split('/[\s,.]+/', $save_data['name']);
if ($sn_field && $missing[$sn_field]) {
@@ -1052,12 +1104,12 @@ class rcube_ldap extends rcube_addressbook
}
// Build the new entries DN.
- $dn = $this->prop['LDAP_rdn'].'='.rcube_ldap_generic::quote_string($newentry[$this->prop['LDAP_rdn']], true).','.$this->base_dn;
+ $dn = $this->prop['LDAP_rdn'].'='.$this->_quote_string($newentry[$this->prop['LDAP_rdn']], true).','.$this->base_dn;
// Remove attributes that need to be added separately (child objects)
$xfields = array();
if (!empty($this->prop['sub_fields']) && is_array($this->prop['sub_fields'])) {
- foreach (array_keys($this->prop['sub_fields']) as $xf) {
+ foreach ($this->prop['sub_fields'] as $xf => $xclass) {
if (!empty($newentry[$xf])) {
$xfields[$xf] = $newentry[$xf];
unset($newentry[$xf]);
@@ -1065,19 +1117,19 @@ class rcube_ldap extends rcube_addressbook
}
}
- if (!$this->ldap->add($dn, $newentry)) {
+ if (!$this->ldap_add($dn, $newentry)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
foreach ($xfields as $xidx => $xf) {
- $xdn = $xidx.'='.rcube_ldap_generic::quote_string($xf).','.$dn;
+ $xdn = $xidx.'='.$this->_quote_string($xf).','.$dn;
$xf = array(
$xidx => $xf,
'objectClass' => (array) $this->prop['sub_fields'][$xidx],
);
- $this->ldap->add($xdn, $xf);
+ $this->ldap_add($xdn, $xf);
}
$dn = self::dn_encode($dn);
@@ -1120,7 +1172,7 @@ class rcube_ldap extends rcube_addressbook
}
}
- foreach ($this->fieldmap as $fld) {
+ foreach ($this->fieldmap as $col => $fld) {
if ($fld) {
$val = $ldap_data[$fld];
$old = $old_data[$fld];
@@ -1183,7 +1235,7 @@ class rcube_ldap extends rcube_addressbook
// Update the entry as required.
if (!empty($deletedata)) {
// Delete the fields.
- if (!$this->ldap->mod_del($dn, $deletedata)) {
+ if (!$this->ldap_mod_del($dn, $deletedata)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1193,17 +1245,17 @@ class rcube_ldap extends rcube_addressbook
// Handle RDN change
if ($replacedata[$this->prop['LDAP_rdn']]) {
$newdn = $this->prop['LDAP_rdn'].'='
- .rcube_ldap_generic::quote_string($replacedata[$this->prop['LDAP_rdn']], true)
+ .$this->_quote_string($replacedata[$this->prop['LDAP_rdn']], true)
.','.$this->base_dn;
if ($dn != $newdn) {
$newrdn = $this->prop['LDAP_rdn'].'='
- .rcube_ldap_generic::quote_string($replacedata[$this->prop['LDAP_rdn']], true);
+ .$this->_quote_string($replacedata[$this->prop['LDAP_rdn']], true);
unset($replacedata[$this->prop['LDAP_rdn']]);
}
}
// Replace the fields.
if (!empty($replacedata)) {
- if (!$this->ldap->mod_replace($dn, $replacedata)) {
+ if (!$this->ldap_mod_replace($dn, $replacedata)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1219,8 +1271,8 @@ class rcube_ldap extends rcube_addressbook
// remove sub-entries
if (!empty($subdeldata)) {
foreach ($subdeldata as $fld => $val) {
- $subdn = $fld.'='.rcube_ldap_generic::quote_string($val).','.$dn;
- if (!$this->ldap->delete($subdn)) {
+ $subdn = $fld.'='.$this->_quote_string($val).','.$dn;
+ if (!$this->ldap_delete($subdn)) {
return false;
}
}
@@ -1228,7 +1280,7 @@ class rcube_ldap extends rcube_addressbook
if (!empty($newdata)) {
// Add the fields.
- if (!$this->ldap->mod_add($dn, $newdata)) {
+ if (!$this->ldap_mod_add($dn, $newdata)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1236,7 +1288,7 @@ class rcube_ldap extends rcube_addressbook
// Handle RDN change
if (!empty($newrdn)) {
- if (!$this->ldap->rename($dn, $newrdn, null, true)) {
+ if (!$this->ldap_rename($dn, $newrdn, null, true)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1247,7 +1299,8 @@ class rcube_ldap extends rcube_addressbook
// change the group membership of the contact
if ($this->groups) {
$group_ids = $this->get_record_groups($dn);
- foreach (array_keys($group_ids) as $group_id) {
+ foreach ($group_ids as $group_id)
+ {
$this->remove_from_group($group_id, $dn);
$this->add_to_group($group_id, $newdn);
}
@@ -1259,12 +1312,12 @@ class rcube_ldap extends rcube_addressbook
// add sub-entries
if (!empty($subnewdata)) {
foreach ($subnewdata as $fld => $val) {
- $subdn = $fld.'='.rcube_ldap_generic::quote_string($val).','.$dn;
+ $subdn = $fld.'='.$this->_quote_string($val).','.$dn;
$xf = array(
$fld => $val,
'objectClass' => (array) $this->prop['sub_fields'][$fld],
);
- $this->ldap->add($subdn, $xf);
+ $this->ldap_add($subdn, $xf);
}
}
@@ -1292,9 +1345,9 @@ class rcube_ldap extends rcube_addressbook
// Need to delete all sub-entries first
if ($this->sub_filter) {
- if ($entries = $this->ldap->list_entries($dn, $this->sub_filter)) {
+ if ($entries = $this->ldap_list($dn, $this->sub_filter)) {
foreach ($entries as $entry) {
- if (!$this->ldap->delete($entry['dn'])) {
+ if (!$this->ldap_delete($entry['dn'])) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1303,7 +1356,7 @@ class rcube_ldap extends rcube_addressbook
}
// Delete the record.
- if (!$this->ldap->delete($dn)) {
+ if (!$this->ldap_delete($dn)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
@@ -1312,7 +1365,7 @@ class rcube_ldap extends rcube_addressbook
if ($this->groups) {
$dn = self::dn_encode($dn);
$group_ids = $this->get_record_groups($dn);
- foreach (array_keys($group_ids) as $group_id) {
+ foreach ($group_ids as $group_id) {
$this->remove_from_group($group_id, $dn);
}
}
@@ -1327,8 +1380,8 @@ class rcube_ldap extends rcube_addressbook
*/
function delete_all()
{
- // searching for contact entries
- $dn_list = $this->ldap->list_entries($this->base_dn, $this->prop['filter'] ? $this->prop['filter'] : '(objectclass=*)');
+ //searching for contact entries
+ $dn_list = $this->ldap_list($this->base_dn, $this->prop['filter'] ? $this->prop['filter'] : '(objectclass=*)');
if (!empty($dn_list)) {
foreach ($dn_list as $idx => $entry) {
@@ -1345,10 +1398,6 @@ class rcube_ldap extends rcube_addressbook
*/
protected function add_autovalues(&$attrs)
{
- if (empty($this->prop['autovalues'])) {
- return;
- }
-
$attrvals = array();
foreach ($attrs as $k => $v) {
$attrvals['{'.$k.'}'] = is_array($v) ? $v[0] : $v;
@@ -1359,16 +1408,7 @@ class rcube_ldap extends rcube_addressbook
if (strpos($templ, '(') !== false) {
// replace {attr} placeholders with (escaped!) attribute values to be safely eval'd
$code = preg_replace('/\{\w+\}/', '', strtr($templ, array_map('addslashes', $attrvals)));
- $fn = create_function('', "return ($code);");
- if (!$fn) {
- rcube::raise_error(array(
- 'code' => 505, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Expression parse error on: ($code)"), true, false);
- continue;
- }
-
- $attrs[$lf] = $fn();
+ $attrs[$lf] = eval("return ($code);");
}
else {
// replace {attr} placeholders with concrete attribute values
@@ -1378,26 +1418,120 @@ class rcube_ldap extends rcube_addressbook
}
}
+ /**
+ * Execute the LDAP search based on the stored credentials
+ */
+ private function _exec_search($count = false)
+ {
+ if ($this->ready)
+ {
+ $filter = $this->filter ? $this->filter : '(objectclass=*)';
+ $function = $this->_scope2func($this->prop['scope'], $ns_function);
+
+ $this->_debug("C: Search [$filter][dn: $this->base_dn]");
+
+ // when using VLV, we get the total count by...
+ if (!$count && $function != 'ldap_read' && $this->prop['vlv'] && !$this->group_id) {
+ // ...either reading numSubOrdinates attribute
+ if ($this->prop['numsub_filter'] && ($result_count = @$ns_function($this->conn, $this->base_dn, $this->prop['numsub_filter'], array('numSubOrdinates'), 0, 0, 0))) {
+ $counts = ldap_get_entries($this->conn, $result_count);
+ for ($this->vlv_count = $j = 0; $j < $counts['count']; $j++)
+ $this->vlv_count += $counts[$j]['numsubordinates'][0];
+ $this->_debug("D: total numsubordinates = " . $this->vlv_count);
+ }
+ else if (!function_exists('ldap_parse_virtuallist_control')) // ...or by fetching all records dn and count them
+ $this->vlv_count = $this->_exec_search(true);
+
+ $this->vlv_active = $this->_vlv_set_controls($this->prop, $this->list_page, $this->page_size);
+ }
+
+ // only fetch dn for count (should keep the payload low)
+ $attrs = $count ? array('dn') : array_values($this->fieldmap);
+ if ($this->ldap_result = @$function($this->conn, $this->base_dn, $filter,
+ $attrs, 0, (int)$this->prop['sizelimit'], (int)$this->prop['timelimit'])
+ ) {
+ // when running on a patched PHP we can use the extended functions to retrieve the total count from the LDAP search result
+ if ($this->vlv_active && function_exists('ldap_parse_virtuallist_control')) {
+ if (ldap_parse_result($this->conn, $this->ldap_result,
+ $errcode, $matcheddn, $errmsg, $referrals, $serverctrls)
+ && $serverctrls // can be null e.g. in case of adm. limit error
+ ) {
+ ldap_parse_virtuallist_control($this->conn, $serverctrls,
+ $last_offset, $this->vlv_count, $vresult);
+ $this->_debug("S: VLV result: last_offset=$last_offset; content_count=$this->vlv_count");
+ }
+ else {
+ $this->_debug("S: ".($errmsg ? $errmsg : ldap_error($this->conn)));
+ }
+ }
+
+ $entries_count = ldap_count_entries($this->conn, $this->ldap_result);
+ $this->_debug("S: $entries_count record(s)");
+
+ return $count ? $entries_count : true;
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Choose the right PHP function according to scope property
+ */
+ private function _scope2func($scope, &$ns_function = null)
+ {
+ switch ($scope) {
+ case 'sub':
+ $function = $ns_function = 'ldap_search';
+ break;
+ case 'base':
+ $function = $ns_function = 'ldap_read';
+ break;
+ default:
+ $function = 'ldap_list';
+ $ns_function = 'ldap_read';
+ break;
+ }
+
+ return $function;
+ }
+
+ /**
+ * Set server controls for Virtual List View (paginated listing)
+ */
+ private function _vlv_set_controls($prop, $list_page, $page_size, $search = null)
+ {
+ $sort_ctrl = array('oid' => "1.2.840.113556.1.4.473", 'value' => $this->_sort_ber_encode((array)$prop['sort']));
+ $vlv_ctrl = array('oid' => "2.16.840.1.113730.3.4.9", 'value' => $this->_vlv_ber_encode(($offset = ($list_page-1) * $page_size + 1), $page_size, $search), 'iscritical' => true);
+
+ $sort = (array)$prop['sort'];
+ $this->_debug("C: set controls sort=" . join(' ', unpack('H'.(strlen($sort_ctrl['value'])*2), $sort_ctrl['value'])) . " ($sort[0]);"
+ . " vlv=" . join(' ', (unpack('H'.(strlen($vlv_ctrl['value'])*2), $vlv_ctrl['value']))) . " ($offset/$page_size)");
+
+ if (!ldap_set_option($this->conn, LDAP_OPT_SERVER_CONTROLS, array($sort_ctrl, $vlv_ctrl))) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ $this->set_error(self::ERROR_SEARCH, 'vlvnotsupported');
+ return false;
+ }
+
+ return true;
+ }
+
/**
* Converts LDAP entry into an array
*/
private function _ldap2result($rec)
{
- $out = array('_type' => 'person');
- $fieldmap = $this->fieldmap;
+ $out = array();
if ($rec['dn'])
$out[$this->primary_key] = self::dn_encode($rec['dn']);
- // determine record type
- if ($this->is_group_entry($rec)) {
- $out['_type'] = 'group';
- $out['readonly'] = true;
- $fieldmap['name'] = $this->group_data['name_attr'] ? $this->group_data['name_attr'] : $this->prop['groups']['name_attr'];
- }
-
- foreach ($fieldmap as $rf => $lf)
+ foreach ($this->fieldmap as $rf => $lf)
{
for ($i=0; $i < $rec[$lf]['count']; $i++) {
if (!($value = $rec[$lf][$i]))
@@ -1459,10 +1593,8 @@ class rcube_ldap extends rcube_addressbook
if (is_array($colprop['serialized'])) {
foreach ($colprop['serialized'] as $subtype => $delim) {
$key = $col.':'.$subtype;
- foreach ((array)$save_cols[$key] as $i => $val) {
- $values = array($val['street'], $val['locality'], $val['zipcode'], $val['country']);
- $save_cols[$key][$i] = count(array_filter($values)) ? join($delim, $values) : null;
- }
+ foreach ((array)$save_cols[$key] as $i => $val)
+ $save_cols[$key][$i] = join($delim, array($val['street'], $val['locality'], $val['zipcode'], $val['country']));
}
}
}
@@ -1500,11 +1632,11 @@ class rcube_ldap extends rcube_addressbook
{
// list of known attribute aliases
static $aliases = array(
- 'gn' => 'givenname',
+ 'gn' => 'givenname',
'rfc822mailbox' => 'email',
- 'userid' => 'uid',
- 'emailaddress' => 'email',
- 'pkcs9email' => 'email',
+ 'userid' => 'uid',
+ 'emailaddress' => 'email',
+ 'pkcs9email' => 'email',
);
list($name, $limit) = explode(':', $namev, 2);
@@ -1513,15 +1645,6 @@ class rcube_ldap extends rcube_addressbook
return (isset($aliases[$name]) ? $aliases[$name] : $name) . $suffix;
}
- /**
- * Determines whether the given LDAP entry is a group record
- */
- private function is_group_entry($entry)
- {
- $classes = array_map('strtolower', (array)$entry['objectclass']);
-
- return count(array_intersect(array_keys($this->group_types), $classes)) > 0;
- }
/**
* Prints debug info to the log
@@ -1538,27 +1661,55 @@ class rcube_ldap extends rcube_addressbook
* Activate/deactivate debug mode
*
* @param boolean $dbg True if LDAP commands should be logged
+ * @access public
*/
function set_debug($dbg = true)
{
$this->debug = $dbg;
+ }
- if ($this->ldap) {
- $this->ldap->set_debug($dbg);
- }
+
+ /**
+ * Quotes attribute value string
+ *
+ * @param string $str Attribute value
+ * @param bool $dn True if the attribute is a DN
+ *
+ * @return string Quoted string
+ */
+ private static function _quote_string($str, $dn=false)
+ {
+ // take firt entry if array given
+ if (is_array($str))
+ $str = reset($str);
+
+ if ($dn)
+ $replace = array(','=>'\2c', '='=>'\3d', '+'=>'\2b', '<'=>'\3c',
+ '>'=>'\3e', ';'=>'\3b', '\\'=>'\5c', '"'=>'\22', '#'=>'\23');
+ else
+ $replace = array('*'=>'\2a', '('=>'\28', ')'=>'\29', '\\'=>'\5c',
+ '/'=>'\2f');
+
+ return strtr($str, $replace);
}
/**
* Setter for the current group
+ * (empty, has to be re-implemented by extending class)
*/
function set_group($group_id)
{
- if ($group_id) {
+ if ($group_id)
+ {
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+
$this->group_id = $group_id;
- $this->group_data = $this->get_group_entry($group_id);
+ $this->group_data = $group_cache[$group_id];
}
- else {
+ else
+ {
$this->group_id = 0;
$this->group_data = null;
}
@@ -1577,13 +1728,15 @@ class rcube_ldap extends rcube_addressbook
*/
function list_groups($search = null, $mode = 0)
{
- if (!$this->groups) {
+ if (!$this->groups)
return array();
- }
- $group_cache = $this->_fetch_groups();
- $groups = array();
+ // use cached list for searching
+ $this->cache->expunge();
+ if (!$search || ($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+ $groups = array();
if ($search) {
foreach ($group_cache as $group) {
if ($this->compare_search_value('name', $group['name'], $search, $mode)) {
@@ -1591,9 +1744,8 @@ class rcube_ldap extends rcube_addressbook
}
}
}
- else {
+ else
$groups = $group_cache;
- }
return array_values($groups);
}
@@ -1601,140 +1753,80 @@ class rcube_ldap extends rcube_addressbook
/**
* Fetch groups from server
*/
- private function _fetch_groups($vlv_page = null)
+ private function _fetch_groups($vlv_page = 0)
{
- // special case: list groups from 'group_filters' config
- if ($vlv_page === null && !empty($this->prop['group_filters'])) {
- $groups = array();
-
- // 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'];
- }
-
- foreach ($this->prop['group_filters'] as $id => $prop) {
- $groups[$id] = $prop + array('ID' => $id, 'name' => ucfirst($id), 'virtual' => true, 'base_dn' => $this->base_dn);
- }
-
- return $groups;
- }
-
- if ($this->cache && $vlv_page === null && ($groups = $this->cache->get('groups')) !== null) {
- return $groups;
- }
-
- $base_dn = $this->groups_base_dn;
- $filter = $this->prop['groups']['filter'];
- $scope = $this->prop['groups']['scope'];
- $name_attr = $this->prop['groups']['name_attr'];
+ $base_dn = $this->groups_base_dn;
+ $filter = $this->prop['groups']['filter'];
+ $name_attr = $this->prop['groups']['name_attr'];
$email_attr = $this->prop['groups']['email_attr'] ? $this->prop['groups']['email_attr'] : 'mail';
$sort_attrs = $this->prop['groups']['sort'] ? (array)$this->prop['groups']['sort'] : array($name_attr);
- $sort_attr = $sort_attrs[0];
+ $sort_attr = $sort_attrs[0];
- $ldap = $this->ldap;
+ $this->_debug("C: Search [$filter][dn: $base_dn]");
// use vlv to list groups
if ($this->prop['groups']['vlv']) {
$page_size = 200;
- if (!$this->prop['groups']['sort']) {
+ if (!$this->prop['groups']['sort'])
$this->prop['groups']['sort'] = $sort_attrs;
- }
-
- $ldap = clone $this->ldap;
- $ldap->set_config($this->prop['groups']);
- $ldap->set_vlv_page($vlv_page+1, $page_size);
+ $vlv_active = $this->_vlv_set_controls($this->prop['groups'], $vlv_page+1, $page_size);
}
- $attrs = array_unique(array('dn', 'objectClass', $name_attr, $email_attr, $sort_attr));
- $ldap_data = $ldap->search($base_dn, $filter, $scope, $attrs, $this->prop['groups']);
-
- if ($ldap_data === false) {
+ $function = $this->_scope2func($this->prop['groups']['scope'], $ns_function);
+ $res = @$function($this->conn, $base_dn, $filter, array_unique(array('dn', 'objectClass', $name_attr, $email_attr, $sort_attr)));
+ if ($res === false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
return array();
}
- $groups = array();
- $group_sortnames = array();
- $group_count = $ldap_data->count();
+ $ldap_data = ldap_get_entries($this->conn, $res);
+ $this->_debug("S: ".ldap_count_entries($this->conn, $res)." record(s)");
- foreach ($ldap_data as $entry) {
- if (!$entry['dn']) // DN is mandatory
- $entry['dn'] = $ldap_data->get_dn();
-
- $group_name = is_array($entry[$name_attr]) ? $entry[$name_attr][0] : $entry[$name_attr];
- $group_id = self::dn_encode($entry['dn']);
+ $groups = array();
+ $group_sortnames = array();
+ $group_count = $ldap_data["count"];
+ for ($i=0; $i < $group_count; $i++)
+ {
+ $group_name = is_array($ldap_data[$i][$name_attr]) ? $ldap_data[$i][$name_attr][0] : $ldap_data[$i][$name_attr];
+ $group_id = self::dn_encode($group_name);
$groups[$group_id]['ID'] = $group_id;
- $groups[$group_id]['dn'] = $entry['dn'];
+ $groups[$group_id]['dn'] = $ldap_data[$i]['dn'];
$groups[$group_id]['name'] = $group_name;
- $groups[$group_id]['member_attr'] = $this->get_group_member_attr($entry['objectclass']);
+ $groups[$group_id]['member_attr'] = $this->get_group_member_attr($ldap_data[$i]['objectclass']);
// list email attributes of a group
- for ($j=0; $entry[$email_attr] && $j < $entry[$email_attr]['count']; $j++) {
- if (strpos($entry[$email_attr][$j], '@') > 0)
- $groups[$group_id]['email'][] = $entry[$email_attr][$j];
+ for ($j=0; $ldap_data[$i][$email_attr] && $j < $ldap_data[$i][$email_attr]['count']; $j++) {
+ if (strpos($ldap_data[$i][$email_attr][$j], '@') > 0)
+ $groups[$group_id]['email'][] = $ldap_data[$i][$email_attr][$j];
}
- $group_sortnames[] = mb_strtolower($entry[$sort_attr][0]);
+ $group_sortnames[] = mb_strtolower($ldap_data[$i][$sort_attr][0]);
}
// recursive call can exit here
- if ($vlv_page > 0) {
+ if ($vlv_page > 0)
return $groups;
- }
// call recursively until we have fetched all groups
- while ($this->prop['groups']['vlv'] && $group_count == $page_size) {
- $next_page = $this->_fetch_groups(++$vlv_page);
- $groups = array_merge($groups, $next_page);
+ while ($vlv_active && $group_count == $page_size)
+ {
+ $next_page = $this->_fetch_groups(++$vlv_page);
+ $groups = array_merge($groups, $next_page);
$group_count = count($next_page);
}
// when using VLV the list of groups is already sorted
- if (!$this->prop['groups']['vlv']) {
+ if (!$this->prop['groups']['vlv'])
array_multisort($group_sortnames, SORT_ASC, SORT_STRING, $groups);
- }
// cache this
- if ($this->cache) {
- $this->cache->set('groups', $groups);
- }
+ $this->cache->set('groups', $groups);
return $groups;
}
/**
- * Fetch a group entry from LDAP and save in local cache
- */
- private function get_group_entry($group_id)
- {
- $group_cache = $this->_fetch_groups();
-
- // add group record to cache if it isn't yet there
- if (!isset($group_cache[$group_id])) {
- $name_attr = $this->prop['groups']['name_attr'];
- $dn = self::dn_decode($group_id);
-
- if ($list = $this->ldap->read_entries($dn, '(objectClass=*)', array('dn','objectClass','member','uniqueMember','memberURL',$name_attr,$this->fieldmap['email']))) {
- $entry = $list[0];
- $group_name = is_array($entry[$name_attr]) ? $entry[$name_attr][0] : $entry[$name_attr];
- $group_cache[$group_id]['ID'] = $group_id;
- $group_cache[$group_id]['dn'] = $dn;
- $group_cache[$group_id]['name'] = $group_name;
- $group_cache[$group_id]['member_attr'] = $this->get_group_member_attr($entry['objectclass']);
- }
- else {
- $group_cache[$group_id] = false;
- }
-
- if ($this->cache) {
- $this->cache->set('groups', $group_cache);
- }
- }
-
- return $group_cache[$group_id];
- }
-
- /**
* Get group properties such as name and email address(es)
*
* @param string Group identifier
@@ -1742,7 +1834,10 @@ class rcube_ldap extends rcube_addressbook
*/
function get_group($group_id)
{
- $group_data = $this->get_group_entry($group_id);
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+
+ $group_data = $group_cache[$group_id];
unset($group_data['dn'], $group_data['member_attr']);
return $group_data;
@@ -1756,24 +1851,24 @@ class rcube_ldap extends rcube_addressbook
*/
function create_group($group_name)
{
- $new_dn = 'cn=' . rcube_ldap_generic::quote_string($group_name, true) . ',' . $this->groups_base_dn;
- $new_gid = self::dn_encode($new_dn);
+ $base_dn = $this->groups_base_dn;
+ $new_dn = "cn=$group_name,$base_dn";
+ $new_gid = self::dn_encode($group_name);
$member_attr = $this->get_group_member_attr();
- $name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn';
- $new_entry = array(
+ $name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn';
+
+ $new_entry = array(
'objectClass' => $this->prop['groups']['object_classes'],
$name_attr => $group_name,
$member_attr => '',
);
- if (!$this->ldap->add($new_dn, $new_entry)) {
+ if (!$this->ldap_add($new_dn, $new_entry)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return array('id' => $new_gid, 'name' => $group_name);
}
@@ -1786,18 +1881,19 @@ class rcube_ldap extends rcube_addressbook
*/
function delete_group($group_id)
{
- $group_cache = $this->_fetch_groups();
- $del_dn = $group_cache[$group_id]['dn'];
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
+
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $del_dn = "cn=$group_name,$base_dn";
- if (!$this->ldap->delete($del_dn)) {
+ if (!$this->ldap_delete($del_dn)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
- if ($this->cache) {
- unset($group_cache[$group_id]);
- $this->cache->set('groups', $group_cache);
- }
+ $this->cache->remove('groups');
return true;
}
@@ -1812,19 +1908,21 @@ class rcube_ldap extends rcube_addressbook
*/
function rename_group($group_id, $new_name, &$new_gid)
{
- $group_cache = $this->_fetch_groups();
- $old_dn = $group_cache[$group_id]['dn'];
- $new_rdn = "cn=" . rcube_ldap_generic::quote_string($new_name, true);
- $new_gid = self::dn_encode($new_rdn . ',' . $this->groups_base_dn);
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
- if (!$this->ldap->rename($old_dn, $new_rdn, null, true)) {
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $old_dn = "cn=$group_name,$base_dn";
+ $new_rdn = "cn=$new_name";
+ $new_gid = self::dn_encode($new_name);
+
+ if (!$this->ldap_rename($old_dn, $new_rdn, null, true)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return false;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return $new_name;
}
@@ -1839,27 +1937,27 @@ class rcube_ldap extends rcube_addressbook
*/
function add_to_group($group_id, $contact_ids)
{
- $group_cache = $this->_fetch_groups();
- $member_attr = $group_cache[$group_id]['member_attr'];
- $group_dn = $group_cache[$group_id]['dn'];
- $new_attrs = array();
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
- if (!is_array($contact_ids)) {
+ if (!is_array($contact_ids))
$contact_ids = explode(',', $contact_ids);
- }
- foreach ($contact_ids as $id) {
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $member_attr = $group_cache[$group_id]['member_attr'];
+ $group_dn = "cn=$group_name,$base_dn";
+ $new_attrs = array();
+
+ foreach ($contact_ids as $id)
$new_attrs[$member_attr][] = self::dn_decode($id);
- }
- if (!$this->ldap->mod_add($group_dn, $new_attrs)) {
+ if (!$this->ldap_mod_add($group_dn, $new_attrs)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return 0;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return count($new_attrs[$member_attr]);
}
@@ -1874,27 +1972,27 @@ class rcube_ldap extends rcube_addressbook
*/
function remove_from_group($group_id, $contact_ids)
{
- $group_cache = $this->_fetch_groups();
- $member_attr = $group_cache[$group_id]['member_attr'];
- $group_dn = $group_cache[$group_id]['dn'];
- $del_attrs = array();
+ if (($group_cache = $this->cache->get('groups')) === null)
+ $group_cache = $this->_fetch_groups();
- if (!is_array($contact_ids)) {
+ if (!is_array($contact_ids))
$contact_ids = explode(',', $contact_ids);
- }
- foreach ($contact_ids as $id) {
+ $base_dn = $this->groups_base_dn;
+ $group_name = $group_cache[$group_id]['name'];
+ $member_attr = $group_cache[$group_id]['member_attr'];
+ $group_dn = "cn=$group_name,$base_dn";
+ $del_attrs = array();
+
+ foreach ($contact_ids as $id)
$del_attrs[$member_attr][] = self::dn_decode($id);
- }
- if (!$this->ldap->mod_del($group_dn, $del_attrs)) {
+ if (!$this->ldap_mod_del($group_dn, $del_attrs)) {
$this->set_error(self::ERROR_SAVING, 'errorsaving');
return 0;
}
- if ($this->cache) {
- $this->cache->remove('groups');
- }
+ $this->cache->remove('groups');
return count($del_attrs[$member_attr]);
}
@@ -1909,63 +2007,206 @@ class rcube_ldap extends rcube_addressbook
*/
function get_record_groups($contact_id)
{
- if (!$this->groups) {
+ if (!$this->groups)
return array();
- }
$base_dn = $this->groups_base_dn;
$contact_dn = self::dn_decode($contact_id);
$name_attr = $this->prop['groups']['name_attr'] ? $this->prop['groups']['name_attr'] : 'cn';
$member_attr = $this->get_group_member_attr();
$add_filter = '';
-
if ($member_attr != 'member' && $member_attr != 'uniqueMember')
$add_filter = "($member_attr=$contact_dn)";
$filter = strtr("(|(member=$contact_dn)(uniqueMember=$contact_dn)$add_filter)", array('\\' => '\\\\'));
- $ldap_data = $this->ldap->search($base_dn, $filter, 'sub', array('dn', $name_attr));
- if ($res === false) {
+ $this->_debug("C: Search [$filter][dn: $base_dn]");
+
+ $res = @ldap_search($this->conn, $base_dn, $filter, array($name_attr));
+ if ($res === false)
+ {
+ $this->_debug("S: ".ldap_error($this->conn));
return array();
}
+ $ldap_data = ldap_get_entries($this->conn, $res);
+ $this->_debug("S: ".ldap_count_entries($this->conn, $res)." record(s)");
$groups = array();
- foreach ($ldap_data as $entry) {
- if (!$entry['dn'])
- $entry['dn'] = $ldap_data->get_dn();
- $group_name = $entry[$name_attr][0];
- $group_id = self::dn_encode($entry['dn']);
- $groups[$group_id] = $group_name;
+ for ($i=0; $i<$ldap_data["count"]; $i++)
+ {
+ $group_name = $ldap_data[$i][$name_attr][0];
+ $group_id = self::dn_encode($group_name);
+ $groups[$group_id] = $group_id;
}
-
return $groups;
}
/**
* Detects group member attribute name
*/
- private function get_group_member_attr($object_classes = array(), $default = 'member')
+ private function get_group_member_attr($object_classes = array())
{
if (empty($object_classes)) {
$object_classes = $this->prop['groups']['object_classes'];
}
-
if (!empty($object_classes)) {
foreach ((array)$object_classes as $oc) {
- if ($attr = $this->group_types[strtolower($oc)]) {
- return $attr;
+ switch (strtolower($oc)) {
+ case 'group':
+ case 'groupofnames':
+ case 'kolabgroupofnames':
+ $member_attr = 'member';
+ break;
+
+ case 'groupofuniquenames':
+ case 'kolabgroupofuniquenames':
+ $member_attr = 'uniqueMember';
+ break;
}
}
}
+ if (!empty($member_attr)) {
+ return $member_attr;
+ }
+
if (!empty($this->prop['groups']['member_attr'])) {
return $this->prop['groups']['member_attr'];
}
- return $default;
+ return 'member';
}
/**
+ * Generate BER encoded string for Virtual List View option
+ *
+ * @param integer List offset (first record)
+ * @param integer Records per page
+ * @return string BER encoded option value
+ */
+ private function _vlv_ber_encode($offset, $rpp, $search = '')
+ {
+ # this string is ber-encoded, php will prefix this value with:
+ # 04 (octet string) and 10 (length of 16 bytes)
+ # the code behind this string is broken down as follows:
+ # 30 = ber sequence with a length of 0e (14) bytes following
+ # 02 = type integer (in two's complement form) with 2 bytes following (beforeCount): 01 00 (ie 0)
+ # 02 = type integer (in two's complement form) with 2 bytes following (afterCount): 01 18 (ie 25-1=24)
+ # a0 = type context-specific/constructed with a length of 06 (6) bytes following
+ # 02 = type integer with 2 bytes following (offset): 01 01 (ie 1)
+ # 02 = type integer with 2 bytes following (contentCount): 01 00
+
+ # whith a search string present:
+ # 81 = type context-specific/constructed with a length of 04 (4) bytes following (the length will change here)
+ # 81 indicates a user string is present where as a a0 indicates just a offset search
+ # 81 = type context-specific/constructed with a length of 06 (6) bytes following
+
+ # the following info was taken from the ISO/IEC 8825-1:2003 x.690 standard re: the
+ # encoding of integer values (note: these values are in
+ # two-complement form so since offset will never be negative bit 8 of the
+ # leftmost octet should never by set to 1):
+ # 8.3.2: If the contents octets of an integer value encoding consist
+ # of more than one octet, then the bits of the first octet (rightmost) and bit 8
+ # of the second (to the left of first octet) octet:
+ # a) shall not all be ones; and
+ # b) shall not all be zero
+
+ if ($search)
+ {
+ $search = preg_replace('/[^-[:alpha:] ,.()0-9]+/', '', $search);
+ $ber_val = self::_string2hex($search);
+ $str = self::_ber_addseq($ber_val, '81');
+ }
+ else
+ {
+ # construct the string from right to left
+ $str = "020100"; # contentCount
+
+ $ber_val = self::_ber_encode_int($offset); // returns encoded integer value in hex format
+
+ // calculate octet length of $ber_val
+ $str = self::_ber_addseq($ber_val, '02') . $str;
+
+ // now compute length over $str
+ $str = self::_ber_addseq($str, 'a0');
+ }
+
+ // now tack on records per page
+ $str = "020100" . self::_ber_addseq(self::_ber_encode_int($rpp-1), '02') . $str;
+
+ // now tack on sequence identifier and length
+ $str = self::_ber_addseq($str, '30');
+
+ return pack('H'.strlen($str), $str);
+ }
+
+
+ /**
+ * create ber encoding for sort control
+ *
+ * @param array List of cols to sort by
+ * @return string BER encoded option value
+ */
+ private function _sort_ber_encode($sortcols)
+ {
+ $str = '';
+ foreach (array_reverse((array)$sortcols) as $col) {
+ $ber_val = self::_string2hex($col);
+
+ # 30 = ber sequence with a length of octet value
+ # 04 = octet string with a length of the ascii value
+ $oct = self::_ber_addseq($ber_val, '04');
+ $str = self::_ber_addseq($oct, '30') . $str;
+ }
+
+ // now tack on sequence identifier and length
+ $str = self::_ber_addseq($str, '30');
+
+ return pack('H'.strlen($str), $str);
+ }
+
+ /**
+ * Add BER sequence with correct length and the given identifier
+ */
+ private static function _ber_addseq($str, $identifier)
+ {
+ $len = dechex(strlen($str)/2);
+ if (strlen($len) % 2 != 0)
+ $len = '0'.$len;
+
+ return $identifier . $len . $str;
+ }
+
+ /**
+ * Returns BER encoded integer value in hex format
+ */
+ private static function _ber_encode_int($offset)
+ {
+ $val = dechex($offset);
+ $prefix = '';
+
+ // check if bit 8 of high byte is 1
+ if (preg_match('/^[89abcdef]/', $val))
+ $prefix = '00';
+
+ if (strlen($val)%2 != 0)
+ $prefix .= '0';
+
+ return $prefix . $val;
+ }
+
+ /**
+ * Returns ascii string encoded in hex
+ */
+ private static function _string2hex($str)
+ {
+ $hex = '';
+ for ($i=0; $i < strlen($str); $i++)
+ $hex .= dechex(ord($str[$i]));
+ return $hex;
+ }
+
+ /**
* HTML-safe DN string encoding
*
* @param string $str DN string
@@ -1992,4 +2233,130 @@ class rcube_ldap extends rcube_addressbook
return base64_decode($str);
}
+ /**
+ * Wrapper for ldap_add()
+ */
+ protected function ldap_add($dn, $entry)
+ {
+ $this->_debug("C: Add [dn: $dn]: ".print_r($entry, true));
+
+ $res = ldap_add($this->conn, $dn, $entry);
+ if ($res === false) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_delete()
+ */
+ protected function ldap_delete($dn)
+ {
+ $this->_debug("C: Delete [dn: $dn]");
+
+ $res = ldap_delete($this->conn, $dn);
+ if ($res === false) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_mod_replace()
+ */
+ protected function ldap_mod_replace($dn, $entry)
+ {
+ $this->_debug("C: Replace [dn: $dn]: ".print_r($entry, true));
+
+ if (!ldap_mod_replace($this->conn, $dn, $entry)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_mod_add()
+ */
+ protected function ldap_mod_add($dn, $entry)
+ {
+ $this->_debug("C: Add [dn: $dn]: ".print_r($entry, true));
+
+ if (!ldap_mod_add($this->conn, $dn, $entry)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_mod_del()
+ */
+ protected function ldap_mod_del($dn, $entry)
+ {
+ $this->_debug("C: Delete [dn: $dn]: ".print_r($entry, true));
+
+ if (!ldap_mod_del($this->conn, $dn, $entry)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_rename()
+ */
+ protected function ldap_rename($dn, $newrdn, $newparent = null, $deleteoldrdn = true)
+ {
+ $this->_debug("C: Rename [dn: $dn] [dn: $newrdn]");
+
+ if (!ldap_rename($this->conn, $dn, $newrdn, $newparent, $deleteoldrdn)) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return false;
+ }
+
+ $this->_debug("S: OK");
+ return true;
+ }
+
+ /**
+ * Wrapper for ldap_list()
+ */
+ protected function ldap_list($dn, $filter, $attrs = array(''))
+ {
+ $list = array();
+ $this->_debug("C: List [dn: $dn] [{$filter}]");
+
+ if ($result = ldap_list($this->conn, $dn, $filter, $attrs)) {
+ $list = ldap_get_entries($this->conn, $result);
+
+ if ($list === false) {
+ $this->_debug("S: ".ldap_error($this->conn));
+ return array();
+ }
+
+ $count = $list['count'];
+ unset($list['count']);
+
+ $this->_debug("S: $count record(s)");
+ }
+ else {
+ $this->_debug("S: ".ldap_error($this->conn));
+ }
+
+ return $list;
+ }
+
}
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php
index 9b662a286..a8bcf6afc 100644
--- a/program/lib/Roundcube/rcube_message.php
+++ b/program/lib/Roundcube/rcube_message.php
@@ -168,11 +168,10 @@ class rcube_message
* @param resource $fp File pointer to save the message part
* @param boolean $skip_charset_conv Disables charset conversion
* @param int $max_bytes Only read this number of bytes
- * @param boolean $formatted Enables formatting of text/* parts bodies
*
* @return string Part content
*/
- public function get_part_content($mime_id, $fp = null, $skip_charset_conv = false, $max_bytes = 0, $formatted = true)
+ public function get_part_content($mime_id, $fp = null, $skip_charset_conv = false, $max_bytes = 0)
{
if ($part = $this->mime_parts[$mime_id]) {
// stored in message structure (winmail/inline-uuencode)
@@ -186,88 +185,47 @@ class rcube_message
// get from IMAP
$this->storage->set_folder($this->folder);
- return $this->storage->get_message_part($this->uid, $mime_id, $part,
- NULL, $fp, $skip_charset_conv, $max_bytes, $formatted);
+ return $this->storage->get_message_part($this->uid, $mime_id, $part, NULL, $fp, $skip_charset_conv, $max_bytes);
}
}
/**
- * Determine if the message contains a HTML part. This must to be
- * a real part not an attachment (or its part)
+ * Determine if the message contains a HTML part
*
- * @param bool $enriched Enables checking for text/enriched parts too
+ * @param bool $recursive Enables checking in all levels of the structure
+ * @param bool $enriched Enables checking for text/enriched parts too
*
* @return bool True if a HTML is available, False if not
*/
- function has_html_part($enriched = false)
+ function has_html_part($recursive = true, $enriched = false)
{
// check all message parts
- foreach ($this->mime_parts as $part) {
+ foreach ($this->parts as $part) {
if ($part->mimetype == 'text/html' || ($enriched && $part->mimetype == 'text/enriched')) {
- // Skip if part is an attachment, don't use is_attachment() here
- if ($part->filename) {
- continue;
- }
-
- $level = explode('.', $part->mime_id);
+ // Level check, we'll skip e.g. HTML attachments
+ if (!$recursive) {
+ $level = explode('.', $part->mime_id);
- // Check if the part belongs to higher-level's multipart part
- // this can be alternative/related/signed/encrypted, but not mixed
- while (array_pop($level) !== null) {
- if (!count($level)) {
- return true;
- }
-
- $parent = $this->mime_parts[join('.', $level)];
- if (!preg_match('/^multipart\/(alternative|related|signed|encrypted)$/', $parent->mimetype)) {
- continue 2;
+ // Skip if part is an attachment
+ if ($this->is_attachment($part)) {
+ continue;
}
- }
-
- if ($part->size) {
- return true;
- }
- }
- }
-
- return false;
- }
-
-
- /**
- * Determine if the message contains a text/plain part. This must to be
- * a real part not an attachment (or its part)
- *
- * @return bool True if a plain text part is available, False if not
- */
- function has_text_part()
- {
- // check all message parts
- foreach ($this->mime_parts as $part) {
- if ($part->mimetype == 'text/plain') {
- // Skip if part is an attachment, don't use is_attachment() here
- if ($part->filename) {
- continue;
- }
-
- $level = explode('.', $part->mime_id);
- // Check if the part belongs to higher-level's alternative/related
- while (array_pop($level) !== null) {
- if (!count($level)) {
- return true;
- }
+ // Check if the part belongs to higher-level's alternative/related
+ while (array_pop($level) !== null) {
+ if (!count($level)) {
+ return true;
+ }
- $parent = $this->mime_parts[join('.', $level)];
- if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') {
- continue 2;
+ $parent = $this->mime_parts[join('.', $level)];
+ if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') {
+ continue 2;
+ }
}
}
- if ($part->size) {
- return true;
- }
+ return true;
}
}
@@ -362,8 +320,8 @@ class rcube_message
$mimetype = $structure->real_mimetype;
// parse headers from message/rfc822 part
- if (!isset($structure->headers['subject']) && !isset($structure->headers['from'])) {
- list($headers, ) = explode("\r\n\r\n", $this->get_part_content($structure->mime_id, null, true, 32768));
+ if (!isset($structure->headers['subject'])) {
+ list($headers, $dump) = explode("\r\n\r\n", $this->get_part_content($structure->mime_id, null, true, 32768));
$structure->headers = rcube_mime::parse_headers($headers);
}
}
@@ -372,7 +330,7 @@ class rcube_message
// show message headers
if ($recursive && is_array($structure->headers) &&
- (isset($structure->headers['subject']) || $structure->headers['from'] || $structure->headers['to'])) {
+ ($structure->headers['subject'] || $structure->headers['from'] || $structure->headers['to'])) {
$c = new stdClass;
$c->type = 'headers';
$c->headers = $structure->headers;
@@ -434,24 +392,17 @@ class rcube_message
continue;
}
- // We've encountered (malformed) messages with more than
- // one text/plain or text/html part here. There's no way to choose
- // which one is better, so we'll display first of them and add
- // others as attachments (#1489358)
-
// check if sub part is
if ($is_multipart)
$related_part = $p;
- else if ($sub_mimetype == 'text/plain' && !$plain_part)
+ else if ($sub_mimetype == 'text/plain')
$plain_part = $p;
- else if ($sub_mimetype == 'text/html' && !$html_part)
+ else if ($sub_mimetype == 'text/html')
$html_part = $p;
- else if ($sub_mimetype == 'text/enriched' && !$enriched_part)
+ else if ($sub_mimetype == 'text/enriched')
$enriched_part = $p;
- else {
- // add unsupported/unrecognized parts to attachments list
- $this->attachments[] = $sub_part;
- }
+ else
+ $attach_part = $p;
}
// parse related part (alternative part could be in here)
@@ -492,6 +443,19 @@ class rcube_message
$this->parts[] = $c;
}
+
+ // add html part as attachment
+ if ($html_part !== null && $structure->parts[$html_part] !== $print_part) {
+ $html_part = $structure->parts[$html_part];
+ $html_part->mimetype = 'text/html';
+
+ $this->attachments[] = $html_part;
+ }
+
+ // add unsupported/unrecognized parts to attachments list
+ if ($attach_part) {
+ $this->attachments[] = $structure->parts[$attach_part];
+ }
}
// this is an ecrypted message -> create a plaintext body with the according message
else if ($mimetype == 'multipart/encrypted') {
@@ -572,6 +536,10 @@ class rcube_message
if (!empty($mail_part->filename)) {
$this->attachments[] = $mail_part;
}
+ // list html part as attachment (here the part is most likely inside a multipart/related part)
+ else if ($this->parse_alternative && ($secondary_type == 'html' && !$this->opt['prefer_html'])) {
+ $this->attachments[] = $mail_part;
+ }
}
// part message/*
else if ($primary_type == 'message') {
diff --git a/program/lib/Roundcube/rcube_mime.php b/program/lib/Roundcube/rcube_mime.php
index a931c27c1..323a5e900 100644
--- a/program/lib/Roundcube/rcube_mime.php
+++ b/program/lib/Roundcube/rcube_mime.php
@@ -708,20 +708,12 @@ class rcube_mime
*/
public static function file_content_type($path, $name, $failover = 'application/octet-stream', $is_stream = false, $skip_suffix = false)
{
- static $mime_ext = array();
-
$mime_type = null;
- $config = rcube::get_instance()->config;
- $mime_magic = $config->get('mime_magic');
-
- if (!$skip_suffix && empty($mime_ext)) {
- foreach ($config->resolve_paths('mimetypes.php') as $fpath) {
- $mime_ext = array_merge($mime_ext, (array) @include($fpath));
- }
- }
+ $mime_magic = rcube::get_instance()->config->get('mime_magic');
+ $mime_ext = $skip_suffix ? null : @include(RCUBE_CONFIG_DIR . '/mimetypes.php');
// use file name suffix with hard-coded mime-type map
- if (!$skip_suffix && is_array($mime_ext) && $name) {
+ if (is_array($mime_ext) && $name) {
if ($suffix = substr($name, strrpos($name, '.')+1)) {
$mime_type = $mime_ext[strtolower($suffix)];
}
@@ -810,7 +802,7 @@ class rcube_mime
}
$mime_types = $mime_extensions = array();
- $regex = "/([\w\+\-\.\/]+)\s+([\w\s]+)/i";
+ $regex = "/([\w\+\-\.\/]+)\t+([\w\s]+)/i";
foreach((array)$lines as $line) {
// skip comments or mime types w/o any extensions
if ($line[0] == '#' || !preg_match($regex, $line, $matches))
@@ -826,9 +818,7 @@ class rcube_mime
// fallback to some well-known types most important for daily emails
if (empty($mime_types)) {
- foreach (rcube::get_instance()->config->resolve_paths('mimetypes.php') as $fpath) {
- $mime_extensions = array_merge($mime_extensions, (array) @include($fpath));
- }
+ $mime_extensions = (array) @include(RCUBE_CONFIG_DIR . '/mimetypes.php');
foreach ($mime_extensions as $ext => $mime) {
$mime_types[$mime][] = $ext;
diff --git a/program/lib/Roundcube/rcube_plugin.php b/program/lib/Roundcube/rcube_plugin.php
index 3153a8410..34720cfd7 100644
--- a/program/lib/Roundcube/rcube_plugin.php
+++ b/program/lib/Roundcube/rcube_plugin.php
@@ -92,16 +92,6 @@ abstract class rcube_plugin
abstract function init();
/**
- * Provide information about this
- *
- * @return array Meta information about a plugin or false if not implemented
- */
- public static function info()
- {
- return false;
- }
-
- /**
* Attempt to load the given plugin which is required for the current plugin
*
* @param string Plugin name
@@ -227,7 +217,7 @@ abstract class rcube_plugin
$rcube->load_language($lang, $add);
// add labels to client
- if ($add2client && method_exists($rcube->output, 'add_label')) {
+ if ($add2client) {
if (is_array($add2client)) {
$js_labels = array_map(array($this, 'label_map_callback'), $add2client);
}
@@ -240,24 +230,6 @@ abstract class rcube_plugin
}
/**
- * Wrapper for add_label() adding the plugin ID as domain
- */
- public function add_label()
- {
- $rcube = rcube::get_instance();
-
- if (method_exists($rcube->output, 'add_label')) {
- $args = func_get_args();
- if (count($args) == 1 && is_array($args[0])) {
- $args = $args[0];
- }
-
- $args = array_map(array($this, 'label_map_callback'), $args);
- $rcube->output->add_label($args);
- }
- }
-
- /**
* Wrapper for rcube::gettext() adding the plugin ID as domain
*
* @param string $p Message identifier
@@ -273,7 +245,7 @@ abstract class rcube_plugin
/**
* Register this plugin to be responsible for a specific task
*
- * @param string $task Task name (only characters [a-z0-9_-] are allowed)
+ * @param string $task Task name (only characters [a-z0-9_.-] are allowed)
*/
public function register_task($task)
{
@@ -408,10 +380,6 @@ abstract class rcube_plugin
*/
private function label_map_callback($key)
{
- if (strpos($key, $this->ID.'.') === 0) {
- return $key;
- }
-
return $this->ID.'.'.$key;
}
}
diff --git a/program/lib/Roundcube/rcube_plugin_api.php b/program/lib/Roundcube/rcube_plugin_api.php
index 2258f1486..c9602d912 100644
--- a/program/lib/Roundcube/rcube_plugin_api.php
+++ b/program/lib/Roundcube/rcube_plugin_api.php
@@ -229,119 +229,6 @@ class rcube_plugin_api
}
/**
- * Get information about a specific plugin.
- * This is either provided my a plugin's info() method or extracted from a package.xml or a composer.json file
- *
- * @param string Plugin name
- * @return array Meta information about a plugin or False if plugin was not found
- */
- public function get_info($plugin_name)
- {
- static $composer_lock, $license_uris = array(
- 'Apache' => 'http://www.apache.org/licenses/LICENSE-2.0.html',
- 'Apache-2' => 'http://www.apache.org/licenses/LICENSE-2.0.html',
- 'Apache-1' => 'http://www.apache.org/licenses/LICENSE-1.0',
- 'Apache-1.1' => 'http://www.apache.org/licenses/LICENSE-1.1',
- 'GPL' => 'http://www.gnu.org/licenses/gpl.html',
- 'GPLv2' => 'http://www.gnu.org/licenses/gpl-2.0.html',
- 'GPL-2.0' => 'http://www.gnu.org/licenses/gpl-2.0.html',
- 'GPLv3' => 'http://www.gnu.org/licenses/gpl-3.0.html',
- 'GPL-3.0' => 'http://www.gnu.org/licenses/gpl-3.0.html',
- 'GPL-3.0+' => 'http://www.gnu.org/licenses/gpl.html',
- 'GPL-2.0+' => 'http://www.gnu.org/licenses/gpl.html',
- 'LGPL' => 'http://www.gnu.org/licenses/lgpl.html',
- 'LGPLv2' => 'http://www.gnu.org/licenses/lgpl-2.0.html',
- 'LGPLv2.1' => 'http://www.gnu.org/licenses/lgpl-2.1.html',
- 'LGPLv3' => 'http://www.gnu.org/licenses/lgpl.html',
- 'LGPL-2.0' => 'http://www.gnu.org/licenses/lgpl-2.0.html',
- 'LGPL-2.1' => 'http://www.gnu.org/licenses/lgpl-2.1.html',
- 'LGPL-3.0' => 'http://www.gnu.org/licenses/lgpl.html',
- 'LGPL-3.0+' => 'http://www.gnu.org/licenses/lgpl.html',
- 'BSD' => 'http://opensource.org/licenses/bsd-license.html',
- 'BSD-2-Clause' => 'http://opensource.org/licenses/BSD-2-Clause',
- 'BSD-3-Clause' => 'http://opensource.org/licenses/BSD-3-Clause',
- 'FreeBSD' => 'http://opensource.org/licenses/BSD-2-Clause',
- 'MIT' => 'http://www.opensource.org/licenses/mit-license.php',
- 'PHP' => 'http://opensource.org/licenses/PHP-3.0',
- 'PHP-3' => 'http://www.php.net/license/3_01.txt',
- 'PHP-3.0' => 'http://www.php.net/license/3_0.txt',
- 'PHP-3.01' => 'http://www.php.net/license/3_01.txt',
- );
-
- $dir = dir($this->dir);
- $fn = unslashify($dir->path) . DIRECTORY_SEPARATOR . $plugin_name . DIRECTORY_SEPARATOR . $plugin_name . '.php';
- $info = false;
-
- if (!class_exists($plugin_name))
- include($fn);
-
- if (class_exists($plugin_name))
- $info = $plugin_name::info();
-
- // fall back to composer.json file
- if (!$info) {
- $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['license'] = $json['license'];
- if ($license_uri = $license_uris[$info['license']])
- $info['license_uri'] = $license_uri;
- }
-
- // read local composer.lock file (once)
- if (!isset($composer_lock)) {
- $composer_lock = @json_decode(@file_get_contents(INSTALL_PATH . "/composer.lock"), true);
- if ($composer_lock['packages']) {
- foreach ($composer_lock['packages'] as $i => $package) {
- $composer_lock['installed'][$package['name']] = $package;
- }
- }
- }
-
- // load additional information from local composer.lock file
- if ($lock = $composer_lock['installed'][$json['name']]) {
- $info['version'] = $lock['version'];
- $info['uri'] = $lock['homepage'] ? $lock['homepage'] : $lock['source']['uri'];
- $info['src_uri'] = $lock['dist']['uri'] ? $lock['dist']['uri'] : $lock['source']['uri'];
- }
- }
-
- // fall back to package.xml file
- if (!$info) {
- $package = INSTALL_PATH . "/plugins/$plugin_name/package.xml";
- if (file_exists($package) && ($file = file_get_contents($package))) {
- $doc = new DOMDocument();
- $doc->loadXML($file);
- $xpath = new DOMXPath($doc);
- $xpath->registerNamespace('rc', "http://pear.php.net/dtd/package-2.0");
-
- // XPaths of plugin metadata elements
- $metadata = array(
- 'name' => 'string(//rc:package/rc:name)',
- 'version' => 'string(//rc:package/rc:version/rc:release)',
- 'license' => 'string(//rc:package/rc:license)',
- 'license_uri' => 'string(//rc:package/rc:license/@uri)',
- 'src_uri' => 'string(//rc:package/rc:srcuri)',
- 'uri' => 'string(//rc:package/rc:uri)',
- );
-
- foreach ($metadata as $key => $path) {
- $info[$key] = $xpath->evaluate($path);
- }
-
- // dependent required plugins (can be used, but not included in config)
- $deps = $xpath->evaluate('//rc:package/rc:dependencies/rc:required/rc:package/rc:name');
- for ($i = 0; $i < $deps->length; $i++) {
- $dn = $deps->item($i)->nodeValue;
- $info['requires'][] = $dn;
- }
- }
- }
-
- return $info;
- }
-
- /**
* Allows a plugin object to register a callback for a certain hook
*
* @param string $hook Hook name
@@ -404,7 +291,7 @@ class rcube_plugin_api
$args = $ret + $args;
}
- if ($args['break']) {
+ if ($args['abort']) {
break;
}
}
@@ -492,7 +379,7 @@ class rcube_plugin_api
/**
* Register this plugin to be responsible for a specific task
*
- * @param string $task Task name (only characters [a-z0-9_-] are allowed)
+ * @param string $task Task name (only characters [a-z0-9_.-] are allowed)
* @param string $owner Plugin name that registers this action
*/
public function register_task($task, $owner)
@@ -502,7 +389,7 @@ class rcube_plugin_api
return true;
}
- if ($task != asciiwords($task, true)) {
+ if ($task != asciiwords($task)) {
rcube::raise_error(array('code' => 526, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Invalid task name: $task."
diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php
index a4b070e28..1391e5e4b 100644
--- a/program/lib/Roundcube/rcube_result_set.php
+++ b/program/lib/Roundcube/rcube_result_set.php
@@ -3,7 +3,7 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2006-2013, The Roundcube Dev Team |
+ | Copyright (C) 2006-2011, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -17,22 +17,20 @@
*/
/**
- * Roundcube result set class
- *
+ * Roundcube result set class.
* Representing an address directory result set.
- * Implenets Iterator and thus be used in foreach() loops.
*
* @package Framework
* @subpackage Addressbook
*/
-class rcube_result_set implements Iterator
+class rcube_result_set
{
- public $count = 0;
- public $first = 0;
- public $searchonly = false;
- public $records = array();
+ var $count = 0;
+ var $first = 0;
+ var $current = 0;
+ var $searchonly = false;
+ var $records = array();
- private $current = 0;
function __construct($c=0, $f=0)
{
@@ -53,39 +51,18 @@ class rcube_result_set implements Iterator
function first()
{
$this->current = 0;
- return $this->records[$this->current];
- }
-
- function seek($i)
- {
- $this->current = $i;
- }
-
- /*** PHP 5 Iterator interface ***/
-
- function rewind()
- {
- $this->current = 0;
- }
-
- function current()
- {
- return $this->records[$this->current];
- }
-
- function key()
- {
- return $this->current;
+ return $this->records[$this->current++];
}
+ // alias for iterate()
function next()
{
return $this->iterate();
}
- function valid()
+ function seek($i)
{
- return isset($this->records[$this->current]);
+ $this->current = $i;
}
}
diff --git a/program/lib/Roundcube/rcube_session.php b/program/lib/Roundcube/rcube_session.php
index caca262c6..ee4db6e86 100644
--- a/program/lib/Roundcube/rcube_session.php
+++ b/program/lib/Roundcube/rcube_session.php
@@ -32,9 +32,7 @@ class rcube_session
private $ip;
private $start;
private $changed;
- private $time_diff = 0;
private $reloaded = false;
- private $appends = array();
private $unsets = array();
private $gc_handlers = array();
private $cookiename = 'roundcube_sessauth';
@@ -44,7 +42,6 @@ class rcube_session
private $secret = '';
private $ip_check = false;
private $logging = false;
- private $storage;
private $memcache;
@@ -55,21 +52,18 @@ class rcube_session
{
$this->db = $db;
$this->start = microtime(true);
- $this->ip = rcube_utils::remote_addr();
+ $this->ip = $_SERVER['REMOTE_ADDR'];
$this->logging = $config->get('log_session', false);
$lifetime = $config->get('session_lifetime', 1) * 60;
$this->set_lifetime($lifetime);
// use memcache backend
- $this->storage = $config->get('session_storage', 'db');
- if ($this->storage == 'memcache') {
+ if ($config->get('session_storage', 'db') == 'memcache') {
$this->memcache = rcube::get_instance()->get_memcache();
// set custom functions for PHP session management if memcache is available
if ($this->memcache) {
- ini_set('session.serialize_handler', 'php');
-
session_set_save_handler(
array($this, 'open'),
array($this, 'close'),
@@ -85,9 +79,7 @@ class rcube_session
true, true);
}
}
- else if ($this->storage != 'php') {
- ini_set('session.serialize_handler', 'php');
-
+ else {
// set custom functions for PHP session management
session_set_save_handler(
array($this, 'open'),
@@ -95,23 +87,7 @@ class rcube_session
array($this, 'db_read'),
array($this, 'db_write'),
array($this, 'db_destroy'),
- array($this, 'gc'));
- }
- }
-
-
- /**
- * Wrapper for session_start()
- */
- public function start()
- {
- session_start();
-
- // copy some session properties to object vars
- if ($this->storage == 'php') {
- $this->key = session_id();
- $this->ip = $_SESSION['__IP'];
- $this->changed = $_SESSION['__MTIME'];
+ array($this, 'db_gc'));
}
}
@@ -140,25 +116,6 @@ class rcube_session
/**
- * Wrapper for session_write_close()
- */
- public function write_close()
- {
- if ($this->storage == 'php') {
- $_SESSION['__IP'] = $this->ip;
- $_SESSION['__MTIME'] = time();
- }
-
- session_write_close();
-
- // write_close() is called on script shutdown, see rcube::shutdown()
- // execute cleanup functionality if enabled by session gc handler
- // we do this after closing the session for better performance
- $this->gc_shutdown();
- }
-
-
- /**
* Read session data from database
*
* @param string Session ID
@@ -168,16 +125,14 @@ class rcube_session
public function db_read($key)
{
$sql_result = $this->db->query(
- "SELECT vars, ip, changed, " . $this->db->now() . " AS ts"
- . " FROM " . $this->db->table_name('session')
- . " WHERE sess_id = ?", $key);
+ "SELECT vars, ip, changed FROM ".$this->db->table_name('session')
+ ." WHERE sess_id = ?", $key);
if ($sql_result && ($sql_arr = $this->db->fetch_assoc($sql_result))) {
- $this->time_diff = time() - strtotime($sql_arr['ts']);
- $this->changed = strtotime($sql_arr['changed']);
- $this->ip = $sql_arr['ip'];
- $this->vars = base64_decode($sql_arr['vars']);
- $this->key = $key;
+ $this->changed = strtotime($sql_arr['changed']);
+ $this->ip = $sql_arr['ip'];
+ $this->vars = base64_decode($sql_arr['vars']);
+ $this->key = $key;
return !empty($this->vars) ? (string) $this->vars : '';
}
@@ -197,9 +152,8 @@ class rcube_session
*/
public function db_write($key, $vars)
{
- $now = $this->db->now();
- $table = $this->db->table_name('session');
- $ts = microtime(true);
+ $ts = microtime(true);
+ $now = $this->db->fromunixtime((int)$ts);
// no session row in DB (db_read() returns false)
if (!$this->key) {
@@ -217,19 +171,22 @@ class rcube_session
$newvars = $this->_fixvars($vars, $oldvars);
if ($newvars !== $oldvars) {
- $this->db->query("UPDATE $table "
- . "SET changed = $now, vars = ? WHERE sess_id = ?",
- base64_encode($newvars), $key);
+ $this->db->query(
+ sprintf("UPDATE %s SET vars=?, changed=%s WHERE sess_id=?",
+ $this->db->table_name('session'), $now),
+ base64_encode($newvars), $key);
}
- else if ($ts - $this->changed + $this->time_diff > $this->lifetime / 2) {
- $this->db->query("UPDATE $table SET changed = $now"
- . " WHERE sess_id = ?", $key);
+ else if ($ts - $this->changed > $this->lifetime / 2) {
+ $this->db->query("UPDATE ".$this->db->table_name('session')
+ ." SET changed=$now WHERE sess_id=?", $key);
}
}
else {
- $this->db->query("INSERT INTO $table (sess_id, vars, ip, created, changed)"
- . " VALUES (?, ?, ?, $now, $now)",
- $key, base64_encode($vars), (string)$this->ip);
+ $this->db->query(
+ sprintf("INSERT INTO %s (sess_id, vars, ip, created, changed) ".
+ "VALUES (?, ?, ?, %s, %s)",
+ $this->db->table_name('session'), $now, $now),
+ $key, base64_encode($vars), (string)$this->ip);
}
return true;
@@ -289,6 +246,25 @@ class rcube_session
/**
+ * Garbage collecting function
+ *
+ * @param string Session lifetime in seconds
+ * @return boolean True on success
+ */
+ public function db_gc($maxlifetime)
+ {
+ // just delete all expired sessions
+ $this->db->query(
+ sprintf("DELETE FROM %s WHERE changed < %s",
+ $this->db->table_name('session'), $this->db->fromunixtime(time() - $maxlifetime)));
+
+ $this->gc();
+
+ return true;
+ }
+
+
+ /**
* Read session data from memcache
*
* @param string Session ID
@@ -364,11 +340,11 @@ class rcube_session
/**
* Execute registered garbage collector routines
*/
- public function gc($maxlifetime)
+ public function gc()
{
- // move gc execution to the script shutdown function
- // see rcube::shutdown() and rcube_session::write_close()
- return $this->gc_enabled = $maxlifetime;
+ foreach ($this->gc_handlers as $fct) {
+ call_user_func($fct);
+ }
}
@@ -390,25 +366,6 @@ class rcube_session
/**
- * Garbage collector handler to run on script shutdown
- */
- protected function gc_shutdown()
- {
- if ($this->gc_enabled) {
- // just delete all expired sessions
- if ($this->storage == 'db') {
- $this->db->query("DELETE FROM " . $this->db->table_name('session')
- . " WHERE changed < " . $this->db->now(-$this->gc_enabled));
- }
-
- foreach ($this->gc_handlers as $fct) {
- call_user_func($fct);
- }
- }
- }
-
-
- /**
* Generate and set new session id
*
* @param boolean $destroy If enabled the current session will be destroyed
@@ -442,19 +399,8 @@ class rcube_session
$node = &$this->get_node(explode('.', $path), $_SESSION);
- if ($key !== null) {
- $node[$key] = $value;
- $path .= '.' . $key;
- }
- else {
- $node[] = $value;
- }
-
- $this->appends[] = $path;
-
- // when overwriting a previously unset variable
- if ($this->unsets[$path])
- unset($this->unsets[$path]);
+ if ($key !== null) $node[$key] = $value;
+ else $node[] = $value;
}
@@ -492,7 +438,7 @@ class rcube_session
public function kill()
{
$this->vars = null;
- $this->ip = rcube_utils::remote_addr(); // update IP (might have changed)
+ $this->ip = $_SERVER['REMOTE_ADDR']; // update IP (might have changed)
$this->destroy(session_id());
rcube_utils::setcookie($this->cookiename, '-del-', time() - 60);
}
@@ -503,40 +449,13 @@ class rcube_session
*/
public function reload()
{
- // collect updated data from previous appends
- $merge_data = array();
- foreach ((array)$this->appends as $var) {
- $path = explode('.', $var);
- $value = $this->get_node($path, $_SESSION);
- $k = array_pop($path);
- $node = &$this->get_node($path, $merge_data);
- $node[$k] = $value;
- }
-
if ($this->key && $this->memcache)
$data = $this->mc_read($this->key);
else if ($this->key)
$data = $this->db_read($this->key);
- if ($data) {
+ if ($data)
session_decode($data);
-
- // apply appends and unsets to reloaded data
- $_SESSION = array_merge_recursive($_SESSION, $merge_data);
-
- foreach ((array)$this->unsets as $var) {
- if (isset($_SESSION[$var])) {
- unset($_SESSION[$var]);
- }
- else {
- $path = explode('.', $var);
- $k = array_pop($path);
- $node = &$this->get_node($path, $_SESSION);
- unset($node[$k]);
- }
- }
- }
-
}
/**
@@ -733,10 +652,10 @@ class rcube_session
function check_auth()
{
$this->cookie = $_COOKIE[$this->cookiename];
- $result = $this->ip_check ? rcube_utils::remote_addr() == $this->ip : true;
+ $result = $this->ip_check ? $_SERVER['REMOTE_ADDR'] == $this->ip : true;
if (!$result) {
- $this->log("IP check failed for " . $this->key . "; expected " . $this->ip . "; got " . rcube_utils::remote_addr());
+ $this->log("IP check failed for " . $this->key . "; expected " . $this->ip . "; got " . $_SERVER['REMOTE_ADDR']);
}
if ($result && $this->_mkcookie($this->now) != $this->cookie) {
diff --git a/program/lib/Roundcube/rcube_smtp.php b/program/lib/Roundcube/rcube_smtp.php
index 60b1389ea..201e8269e 100644
--- a/program/lib/Roundcube/rcube_smtp.php
+++ b/program/lib/Roundcube/rcube_smtp.php
@@ -33,8 +33,6 @@ class rcube_smtp
// define headers delimiter
const SMTP_MIME_CRLF = "\r\n";
- const DEBUG_LINE_LENGTH = 4098; // 4KB + 2B for \r\n
-
/**
* SMTP Connection and authentication
@@ -329,12 +327,6 @@ class rcube_smtp
*/
public function debug_handler(&$smtp, $message)
{
- if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) {
- $diff = $len - self::DEBUG_LINE_LENGTH;
- $message = substr($message, 0, self::DEBUG_LINE_LENGTH)
- . "... [truncated $diff bytes]";
- }
-
rcube::write_log('smtp', preg_replace('/\r\n$/', '', $message));
}
@@ -441,9 +433,9 @@ class rcube_smtp
$recipients = rcube_utils::explode_quoted_string(',', $recipients);
reset($recipients);
- foreach ($recipients as $recipient) {
+ while (list($k, $recipient) = each($recipients)) {
$a = rcube_utils::explode_quoted_string(' ', $recipient);
- foreach ($a as $word) {
+ while (list($k2, $word) = each($a)) {
if (strpos($word, "@") > 0 && $word[strlen($word)-1] != '"') {
$word = preg_replace('/^<|>$/', '', trim($word));
if (in_array($word, $addresses) === false) {
diff --git a/program/lib/Roundcube/rcube_spellchecker.php b/program/lib/Roundcube/rcube_spellchecker.php
index 3182ff378..672515204 100644
--- a/program/lib/Roundcube/rcube_spellchecker.php
+++ b/program/lib/Roundcube/rcube_spellchecker.php
@@ -3,8 +3,8 @@
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2011-2013, Kolab Systems AG |
- | Copyright (C) 2008-2013, The Roundcube Dev Team |
+ | Copyright (C) 2011, Kolab Systems AG |
+ | Copyright (C) 2008-2011, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -28,15 +28,21 @@ class rcube_spellchecker
{
private $matches = array();
private $engine;
- private $backend;
private $lang;
private $rc;
private $error;
+ private $separator = '/[\s\r\n\t\(\)\/\[\]{}<>\\"]+|[:;?!,\.](?=\W|$)/';
private $options = array();
private $dict;
private $have_dict;
+ // default settings
+ const GOOGLE_HOST = 'ssl://spell.roundcube.net';
+ const GOOGLE_PORT = 443;
+ const MAX_SUGGESTIONS = 10;
+
+
/**
* Constructor
*
@@ -54,63 +60,8 @@ class rcube_spellchecker
'ignore_caps' => $this->rc->config->get('spellcheck_ignore_caps'),
'dictionary' => $this->rc->config->get('spellcheck_dictionary'),
);
-
- $cls = 'rcube_spellcheck_' . $this->engine;
- if (class_exists($cls)) {
- $this->backend = new $cls($this, $this->lang);
- $this->backend->options = $this->options;
- }
- else {
- $this->error = "Unknown spellcheck engine '$this->engine'";
- }
}
- /**
- * Return a list of supported languages
- */
- function languages()
- {
- // trust configuration
- $configured = $this->rc->config->get('spellcheck_languages');
- if (!empty($configured) && is_array($configured) && !$configured[0]) {
- return $configured;
- }
- else if (!empty($configured)) {
- $langs = (array)$configured;
- }
- else if ($this->backend) {
- $langs = $this->backend->languages();
- }
-
- // load index
- @include(RCUBE_LOCALIZATION_DIR . 'index.inc');
-
- // add correct labels
- $languages = array();
- foreach ($langs as $lang) {
- $langc = strtolower(substr($lang, 0, 2));
- $alias = $rcube_language_aliases[$langc];
- if (!$alias) {
- $alias = $langc.'_'.strtoupper($langc);
- }
- if ($rcube_languages[$lang]) {
- $languages[$lang] = $rcube_languages[$lang];
- }
- else if ($rcube_languages[$alias]) {
- $languages[$lang] = $rcube_languages[$alias];
- }
- else {
- $languages[$lang] = ucfirst($lang);
- }
- }
-
- // remove possible duplicates (#1489395)
- $languages = array_unique($languages);
-
- asort($languages);
-
- return $languages;
- }
/**
* Set content and check spelling
@@ -130,8 +81,11 @@ class rcube_spellchecker
$this->content = $text;
}
- if ($this->backend) {
- $this->matches = $this->backend->check($this->content);
+ if ($this->engine == 'pspell') {
+ $this->matches = $this->_pspell_check($this->content);
+ }
+ else {
+ $this->matches = $this->_googie_check($this->content);
}
return $this->found() == 0;
@@ -158,11 +112,11 @@ class rcube_spellchecker
*/
function get_suggestions($word)
{
- if ($this->backend) {
- return $this->backend->get_suggestions($word);
+ if ($this->engine == 'pspell') {
+ return $this->_pspell_suggestions($word);
}
- return array();
+ return $this->_googie_suggestions($word);
}
@@ -176,15 +130,11 @@ class rcube_spellchecker
*/
function get_words($text = null, $is_html=false)
{
- if ($is_html) {
- $text = $this->html2text($text);
- }
-
- if ($this->backend) {
- return $this->backend->get_words($text);
+ if ($this->engine == 'pspell') {
+ return $this->_pspell_words($text, $is_html);
}
- return array();
+ return $this->_googie_words($text, $is_html);
}
@@ -198,7 +148,7 @@ class rcube_spellchecker
// send output
$out = '<?xml version="1.0" encoding="'.RCUBE_CHARSET.'"?><spellresult charschecked="'.mb_strlen($this->content).'">';
- foreach ((array)$this->matches as $item) {
+ foreach ($this->matches as $item) {
$out .= '<c o="'.$item[1].'" l="'.$item[2].'">';
$out .= is_array($item[4]) ? implode("\t", $item[4]) : $item[4];
$out .= '</c>';
@@ -219,7 +169,7 @@ class rcube_spellchecker
{
$result = array();
- foreach ((array)$this->matches as $item) {
+ foreach ($this->matches as $item) {
if ($this->engine == 'pspell') {
$word = $item[0];
}
@@ -240,7 +190,254 @@ class rcube_spellchecker
*/
function error()
{
- return $this->error ? $this->error : ($this->backend ? $this->backend->error() : false);
+ return $this->error;
+ }
+
+
+ /**
+ * Checks the text using pspell
+ *
+ * @param string $text Text content for spellchecking
+ */
+ private function _pspell_check($text)
+ {
+ // init spellchecker
+ $this->_pspell_init();
+
+ if (!$this->plink) {
+ return array();
+ }
+
+ // tokenize
+ $text = preg_split($this->separator, $text, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);
+
+ $diff = 0;
+ $matches = array();
+
+ foreach ($text as $w) {
+ $word = trim($w[0]);
+ $pos = $w[1] - $diff;
+ $len = mb_strlen($word);
+
+ // skip exceptions
+ if ($this->is_exception($word)) {
+ }
+ else if (!pspell_check($this->plink, $word)) {
+ $suggestions = pspell_suggest($this->plink, $word);
+
+ if (sizeof($suggestions) > self::MAX_SUGGESTIONS) {
+ $suggestions = array_slice($suggestions, 0, self::MAX_SUGGESTIONS);
+ }
+
+ $matches[] = array($word, $pos, $len, null, $suggestions);
+ }
+
+ $diff += (strlen($word) - $len);
+ }
+
+ return $matches;
+ }
+
+
+ /**
+ * Returns the misspelled words
+ */
+ private function _pspell_words($text = null, $is_html=false)
+ {
+ $result = array();
+
+ if ($text) {
+ // init spellchecker
+ $this->_pspell_init();
+
+ if (!$this->plink) {
+ return array();
+ }
+
+ // With PSpell we don't need to get suggestions to return misspelled words
+ if ($is_html) {
+ $text = $this->html2text($text);
+ }
+
+ $text = preg_split($this->separator, $text, NULL, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);
+
+ foreach ($text as $w) {
+ $word = trim($w[0]);
+
+ // skip exceptions
+ if ($this->is_exception($word)) {
+ continue;
+ }
+
+ if (!pspell_check($this->plink, $word)) {
+ $result[] = $word;
+ }
+ }
+
+ return $result;
+ }
+
+ foreach ($this->matches as $m) {
+ $result[] = $m[0];
+ }
+
+ return $result;
+ }
+
+
+ /**
+ * Returns suggestions for misspelled word
+ */
+ private function _pspell_suggestions($word)
+ {
+ // init spellchecker
+ $this->_pspell_init();
+
+ if (!$this->plink) {
+ return array();
+ }
+
+ $suggestions = pspell_suggest($this->plink, $word);
+
+ if (sizeof($suggestions) > self::MAX_SUGGESTIONS)
+ $suggestions = array_slice($suggestions, 0, self::MAX_SUGGESTIONS);
+
+ return is_array($suggestions) ? $suggestions : array();
+ }
+
+
+ /**
+ * Initializes PSpell dictionary
+ */
+ private function _pspell_init()
+ {
+ if (!$this->plink) {
+ if (!extension_loaded('pspell')) {
+ $this->error = "Pspell extension not available";
+ rcube::raise_error(array(
+ 'code' => 500, 'type' => 'php',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => $this->error), true, false);
+
+ return;
+ }
+
+ $this->plink = pspell_new($this->lang, null, null, RCUBE_CHARSET, PSPELL_FAST);
+ }
+
+ if (!$this->plink) {
+ $this->error = "Unable to load Pspell engine for selected language";
+ }
+ }
+
+
+ private function _googie_check($text)
+ {
+ // spell check uri is configured
+ $url = $this->rc->config->get('spellcheck_uri');
+
+ if ($url) {
+ $a_uri = parse_url($url);
+ $ssl = ($a_uri['scheme'] == 'https' || $a_uri['scheme'] == 'ssl');
+ $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);
+ $host = ($ssl ? 'ssl://' : '') . $a_uri['host'];
+ $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $this->lang;
+ }
+ else {
+ $host = self::GOOGLE_HOST;
+ $port = self::GOOGLE_PORT;
+ $path = '/tbproxy/spell?lang=' . $this->lang;
+ }
+
+ // Google has some problem with spaces, use \n instead
+ $gtext = str_replace(' ', "\n", $text);
+
+ $gtext = '<?xml version="1.0" encoding="utf-8" ?>'
+ .'<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">'
+ .'<text>' . htmlspecialchars($gtext) . '</text>'
+ .'</spellrequest>';
+
+ $store = '';
+ if ($fp = fsockopen($host, $port, $errno, $errstr, 30)) {
+ $out = "POST $path HTTP/1.0\r\n";
+ $out .= "Host: " . str_replace('ssl://', '', $host) . "\r\n";
+ $out .= "Content-Length: " . strlen($gtext) . "\r\n";
+ $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
+ $out .= "Connection: Close\r\n\r\n";
+ $out .= $gtext;
+ fwrite($fp, $out);
+
+ while (!feof($fp))
+ $store .= fgets($fp, 128);
+ fclose($fp);
+ }
+
+ if (!$store) {
+ $this->error = "Empty result from spelling engine";
+ }
+
+ preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $store, $matches, PREG_SET_ORDER);
+
+ // skip exceptions (if appropriate options are enabled)
+ if (!empty($this->options['ignore_syms']) || !empty($this->options['ignore_nums'])
+ || !empty($this->options['ignore_caps']) || !empty($this->options['dictionary'])
+ ) {
+ foreach ($matches as $idx => $m) {
+ $word = mb_substr($text, $m[1], $m[2], RCUBE_CHARSET);
+ // skip exceptions
+ if ($this->is_exception($word)) {
+ unset($matches[$idx]);
+ }
+ }
+ }
+
+ return $matches;
+ }
+
+
+ private function _googie_words($text = null, $is_html=false)
+ {
+ if ($text) {
+ if ($is_html) {
+ $text = $this->html2text($text);
+ }
+
+ $matches = $this->_googie_check($text);
+ }
+ else {
+ $matches = $this->matches;
+ $text = $this->content;
+ }
+
+ $result = array();
+
+ foreach ($matches as $m) {
+ $result[] = mb_substr($text, $m[1], $m[2], RCUBE_CHARSET);
+ }
+
+ return $result;
+ }
+
+
+ private function _googie_suggestions($word)
+ {
+ if ($word) {
+ $matches = $this->_googie_check($word);
+ }
+ else {
+ $matches = $this->matches;
+ }
+
+ if ($matches[0][4]) {
+ $suggestions = explode("\t", $matches[0][4]);
+ if (sizeof($suggestions) > self::MAX_SUGGESTIONS) {
+ $suggestions = array_slice($suggestions, 0, MAX_SUGGESTIONS);
+ }
+
+ return $suggestions;
+ }
+
+ return array();
}
diff --git a/program/lib/Roundcube/rcube_storage.php b/program/lib/Roundcube/rcube_storage.php
index e697b2c73..8193e540c 100644
--- a/program/lib/Roundcube/rcube_storage.php
+++ b/program/lib/Roundcube/rcube_storage.php
@@ -61,6 +61,8 @@ abstract class rcube_storage
'MAIL-FOLLOWUP-TO',
'MAIL-REPLY-TO',
'RETURN-PATH',
+ 'DELIVERED-TO',
+ 'ENVELOPE-TO',
);
const UNKNOWN = 0;
@@ -538,13 +540,12 @@ abstract class rcube_storage
/**
* Append a mail message (source) to a specific folder.
*
- * @param string $folder Target folder
- * @param string|array $message The message source string or filename
- * or array (of strings and file pointers)
- * @param string $headers Headers string if $message contains only the body
- * @param boolean $is_file True if $message is a filename
- * @param array $flags Message flags
- * @param mixed $date Message internal date
+ * @param string $folder Target folder
+ * @param string $message The message source string or filename
+ * @param string $headers Headers string if $message contains only the body
+ * @param boolean $is_file True if $message is a filename
+ * @param array $flags Message flags
+ * @param mixed $date Message internal date
*
* @return int|bool Appended message UID or True on success, False on error
*/
@@ -806,14 +807,13 @@ abstract class rcube_storage
/**
- * Returns current status of a folder (compared to the last time use)
+ * Returns current status of a folder
*
* @param string $folder Folder name
- * @param array $diff Difference data
*
* @return int Folder status
*/
- abstract function folder_status($folder = null, &$diff = array());
+ abstract function folder_status($folder = null);
/**
@@ -985,6 +985,6 @@ abstract class rcube_storage
/**
* Delete outdated cache entries
*/
- abstract function cache_gc();
+ abstract function expunge_cache();
} // end class rcube_storage
diff --git a/program/lib/Roundcube/rcube_string_replacer.php b/program/lib/Roundcube/rcube_string_replacer.php
index 77b91d18b..bd26f8e7d 100644
--- a/program/lib/Roundcube/rcube_string_replacer.php
+++ b/program/lib/Roundcube/rcube_string_replacer.php
@@ -24,19 +24,13 @@
*/
class rcube_string_replacer
{
- public static $pattern = '/##str_replacement_(\d+)##/';
+ public static $pattern = '/##str_replacement\[([0-9]+)\]##/';
public $mailto_pattern;
public $link_pattern;
- public $linkref_index;
- public $linkref_pattern;
-
private $values = array();
- private $options = array();
- private $linkrefs = array();
- private $urls = array();
- function __construct($options = array())
+ function __construct()
{
// Simplified domain expression for UTF8 characters handling
// Support unicode/punycode in top-level domain part
@@ -50,10 +44,6 @@ class rcube_string_replacer
."@$utf_domain" // domain-part
."(\?[$url1$url2]+)?" // e.g. ?subject=test...
.")/";
- $this->linkref_index = '/\[([^\]#]+)\](:?\s*##str_replacement_(\d+)##)/';
- $this->linkref_pattern = '/\[([^\]#]+)\]/';
-
- $this->options = $options;
}
/**
@@ -74,7 +64,7 @@ class rcube_string_replacer
*/
public function get_replacement($i)
{
- return '##str_replacement_' . $i . '##';
+ return '##str_replacement['.$i.']##';
}
/**
@@ -99,11 +89,10 @@ class rcube_string_replacer
if ($url) {
$suffix = $this->parse_url_brackets($url);
- $attrib = (array)$this->options['link_attribs'];
- $attrib['href'] = $url_prefix . $url;
-
- $i = $this->add(html::a($attrib, rcube::Q($url)) . $suffix);
- $this->urls[$i] = $attrib['href'];
+ $i = $this->add(html::a(array(
+ 'href' => $url_prefix . $url,
+ 'target' => '_blank'
+ ), rcube::Q($url)) . $suffix);
}
// Return valid link for recognized schemes, otherwise
@@ -112,32 +101,6 @@ class rcube_string_replacer
}
/**
- * Callback to add an entry to the link index
- */
- public function linkref_addindex($matches)
- {
- $key = $matches[1];
- $this->linkrefs[$key] = $this->urls[$matches[3]];
-
- return $this->get_replacement($this->add('['.$key.']')) . $matches[2];
- }
-
- /**
- * Callback to replace link references with real links
- */
- public function linkref_callback($matches)
- {
- $i = 0;
- if ($url = $this->linkrefs[$matches[1]]) {
- $attrib = (array)$this->options['link_attribs'];
- $attrib['href'] = $url;
- $i = $this->add(html::a($attrib, rcube::Q($matches[1])));
- }
-
- return $i > 0 ? '['.$this->get_replacement($i).']' : $matches[0];
- }
-
- /**
* Callback function used to build mailto: links around e-mail strings
*
* @param array Matches result from preg_replace_callback
@@ -176,9 +139,6 @@ class rcube_string_replacer
// search for patterns like links and e-mail addresses
$str = preg_replace_callback($this->link_pattern, array($this, 'link_callback'), $str);
$str = preg_replace_callback($this->mailto_pattern, array($this, 'mailto_callback'), $str);
- // resolve link references
- $str = preg_replace_callback($this->linkref_index, array($this, 'linkref_addindex'), $str);
- $str = preg_replace_callback($this->linkref_pattern, array($this, 'linkref_callback'), $str);
return $str;
}
diff --git a/program/lib/Roundcube/rcube_user.php b/program/lib/Roundcube/rcube_user.php
index 57f63361d..505b190d1 100644
--- a/program/lib/Roundcube/rcube_user.php
+++ b/program/lib/Roundcube/rcube_user.php
@@ -163,16 +163,8 @@ class rcube_user
if (!$this->ID)
return false;
- $plugin = $this->rc->plugins->exec_hook('preferences_update', array(
- 'userid' => $this->ID, 'prefs' => $a_user_prefs, 'old' => (array)$this->get_prefs()));
-
- if (!empty($plugin['abort'])) {
- return;
- }
-
- $a_user_prefs = $plugin['prefs'];
- $old_prefs = $plugin['old'];
- $config = $this->rc->config;
+ $config = $this->rc->config;
+ $old_prefs = (array)$this->get_prefs();
// merge (partial) prefs array with existing settings
$save_prefs = $a_user_prefs + $old_prefs;
@@ -503,9 +495,9 @@ class rcube_user
"INSERT INTO ".$dbh->table_name('users').
" (created, last_login, username, mail_host, language)".
" VALUES (".$dbh->now().", ".$dbh->now().", ?, ?, ?)",
- $data['user'],
- $data['host'],
- $data['language']);
+ strip_newlines($data['user']),
+ strip_newlines($data['host']),
+ strip_newlines($data['language']));
if ($user_id = $dbh->insert_id('users')) {
// create rcube_user instance to make plugin hooks work
@@ -525,7 +517,7 @@ class rcube_user
if (empty($user_email)) {
$user_email = strpos($data['user'], '@') ? $user : sprintf('%s@%s', $data['user'], $mail_domain);
}
- $email_list[] = $user_email;
+ $email_list[] = strip_newlines($user_email);
}
// identities_level check
else if (count($email_list) > 1 && $rcube->config->get('identities_level', 0) > 1) {
@@ -555,6 +547,7 @@ class rcube_user
$record['name'] = $user_name != $record['email'] ? $user_name : '';
}
+ $record['name'] = strip_newlines($record['name']);
$record['user_id'] = $user_id;
$record['standard'] = $standard;
diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php
index 27a618d83..4dadbb8bd 100644
--- a/program/lib/Roundcube/rcube_utils.php
+++ b/program/lib/Roundcube/rcube_utils.php
@@ -390,21 +390,20 @@ class rcube_utils
* Convert array of request parameters (prefixed with _)
* to a regular array with non-prefixed keys.
*
- * @param int $mode Source to get value from (GPC)
- * @param string $ignore PCRE expression to skip parameters by name
- * @param boolean $allow_html Allow HTML tags in field value
+ * @param int $mode Source to get value from (GPC)
+ * @param string $ignore PCRE expression to skip parameters by name
*
* @return array Hash array with all request parameters
*/
- public static function request2param($mode = null, $ignore = 'task|action', $allow_html = false)
+ public static function request2param($mode = null, $ignore = 'task|action')
{
$out = array();
$src = $mode == self::INPUT_GET ? $_GET : ($mode == self::INPUT_POST ? $_POST : $_REQUEST);
- foreach (array_keys($src) as $key) {
+ foreach ($src as $key => $value) {
$fname = $key[0] == '_' ? substr($key, 1) : $key;
if ($ignore && !preg_match('/^(' . $ignore . ')$/', $fname)) {
- $out[$fname] = self::get_input_value($key, $mode, $allow_html);
+ $out[$fname] = self::get_input_value($key, $mode);
}
}
@@ -445,41 +444,34 @@ class rcube_utils
$source = self::xss_entity_decode($source);
$stripped = preg_replace('/[^a-z\(:;]/i', '', $source);
$evilexpr = 'expression|behavior|javascript:|import[^a]' . (!$allow_remote ? '|url\(' : '');
-
if (preg_match("/$evilexpr/i", $stripped)) {
return '/* evil! */';
}
- $strict_url_regexp = '!url\s*\([ "\'](https?:)//[a-z0-9/._+-]+["\' ]\)!Uims';
-
// cut out all contents between { and }
while (($pos = strpos($source, '{', $last_pos)) && ($pos2 = strpos($source, '}', $pos))) {
- $nested = strpos($source, '{', $pos+1);
- if ($nested && $nested < $pos2) // when dealing with nested blocks (e.g. @media), take the inner one
- $pos = $nested;
- $length = $pos2 - $pos - 1;
- $styles = substr($source, $pos+1, $length);
+ $styles = substr($source, $pos+1, $pos2-($pos+1));
// check every line of a style block...
if ($allow_remote) {
$a_styles = preg_split('/;[\r\n]*/', $styles, -1, PREG_SPLIT_NO_EMPTY);
-
foreach ($a_styles as $line) {
$stripped = preg_replace('/[^a-z\(:;]/i', '', $line);
// ... and only allow strict url() values
- if (stripos($stripped, 'url(') && !preg_match($strict_url_regexp, $line)) {
+ $regexp = '!url\s*\([ "\'](https?:)//[a-z0-9/._+-]+["\' ]\)!Uims';
+ if (stripos($stripped, 'url(') && !preg_match($regexp, $line)) {
$a_styles = array('/* evil! */');
break;
}
}
-
$styles = join(";\n", $a_styles);
}
- $key = $replacements->add($styles);
- $repl = $replacements->get_replacement($key);
- $source = substr_replace($source, $repl, $pos+1, $length);
- $last_pos = $pos2 - ($length - strlen($repl));
+ $key = $replacements->add($styles);
+ $source = substr($source, 0, $pos+1)
+ . $replacements->get_replacement($key)
+ . substr($source, $pos2, strlen($source)-$pos2);
+ $last_pos = $pos+2;
}
// remove html comments and add #container to each tag selector.
@@ -514,24 +506,17 @@ class rcube_utils
*/
public static function file2class($mimetype, $filename)
{
- $mimetype = strtolower($mimetype);
- $filename = strtolower($filename);
-
list($primary, $secondary) = explode('/', $mimetype);
$classes = array($primary ? $primary : 'unknown');
-
if ($secondary) {
$classes[] = $secondary;
}
-
- if (preg_match('/\.([a-z0-9]+)$/', $filename, $m)) {
- if (!in_array($m[1], $classes)) {
- $classes[] = $m[1];
- }
+ if (preg_match('/\.([a-z0-9]+)$/i', $filename, $m)) {
+ $classes[] = $m[1];
}
- return join(" ", $classes);
+ return strtolower(join(" ", $classes));
}
@@ -674,21 +659,6 @@ class rcube_utils
/**
- * Returns the real remote IP address
- *
- * @return string Remote IP address
- */
- 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];
- }
-
- return '';
- }
-
- /**
* Read a specific HTTP request header.
*
* @param string $name Header name
@@ -747,88 +717,31 @@ class rcube_utils
*/
public static function strtotime($date)
{
- $date = self::clean_datestr($date);
-
- // unix timestamp
- if (is_numeric($date)) {
- return (int) $date;
- }
-
- // if date parsing fails, we have a date in non-rfc format.
- // remove token from the end and try again
- while ((($ts = @strtotime($date)) === false) || ($ts < 0)) {
- $d = explode(' ', $date);
- array_pop($d);
- if (!$d) {
- break;
- }
- $date = implode(' ', $d);
- }
-
- return (int) $ts;
- }
-
- /**
- * Date parsing function that turns the given value into a DateTime object
- *
- * @param string $date Date string
- *
- * @return object DateTime instance or false on failure
- */
- public static function anytodatetime($date)
- {
- if (is_object($date) && is_a($date, 'DateTime')) {
- return $date;
- }
-
- $dt = false;
- $date = self::clean_datestr($date);
+ $date = trim($date);
- // try to parse string with DateTime first
- if (!empty($date)) {
- try {
- $dt = new DateTime($date);
- }
- catch (Exception $e) {
- // ignore
- }
+ // check for MS Outlook vCard date format YYYYMMDD
+ if (preg_match('/^([12][90]\d\d)([01]\d)([0123]\d)$/', $date, $m)) {
+ return mktime(0,0,0, intval($m[2]), intval($m[3]), intval($m[1]));
}
- // try our advanced strtotime() method
- if (!$dt && ($timestamp = self::strtotime($date))) {
- try {
- $dt = new DateTime("@".$timestamp);
- }
- catch (Exception $e) {
- // ignore
- }
+ // common little-endian formats, e.g. dd/mm/yyyy (not all are supported by strtotime)
+ if (preg_match('/^(\d{1,2})[.\/-](\d{1,2})[.\/-](\d{4})$/', $date, $m)
+ && $m[1] > 0 && $m[1] <= 31 && $m[2] > 0 && $m[2] <= 12 && $m[3] >= 1970
+ ) {
+ return mktime(0,0,0, intval($m[2]), intval($m[1]), intval($m[3]));
}
- return $dt;
- }
-
- /**
- * Clean up date string for strtotime() input
- *
- * @param string $date Date string
- *
- * @return string Date string
- */
- public static function clean_datestr($date)
- {
- $date = trim($date);
-
- // check for MS Outlook vCard date format YYYYMMDD
- if (preg_match('/^([12][90]\d\d)([01]\d)([0123]\d)$/', $date, $m)) {
- return sprintf('%04d-%02d-%02d 00:00:00', intval($m[1]), intval($m[2]), intval($m[3]));
+ // unix timestamp
+ if (is_numeric($date)) {
+ return (int) $date;
}
// Clean malformed data
$date = preg_replace(
array(
- '/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
- '/[^a-z0-9\x20\x09:+-\/]/i', // remove any invalid characters
- '/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
+ '/GMT\s*([+-][0-9]+)/', // support non-standard "GMTXXXX" literal
+ '/[^a-z0-9\x20\x09:+-]/i', // remove any invalid characters
+ '/\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*/i', // remove weekday names
),
array(
'\\1',
@@ -836,23 +749,21 @@ class rcube_utils
'',
), $date);
- $date = trim($date);
-
- // try to fix dd/mm vs. mm/dd discrepancy, we can't do more here
- if (preg_match('/^(\d{1,2})[.\/-](\d{1,2})[.\/-](\d{4})$/', $date, $m)) {
- $mdy = $m[2] > 12 && $m[1] <= 12;
- $day = $mdy ? $m[2] : $m[1];
- $month = $mdy ? $m[1] : $m[2];
- $date = sprintf('%04d-%02d-%02d 00:00:00', intval($m[3]), $month, $day);
- }
- // I've found that YYYY.MM.DD is recognized wrong, so here's a fix
- else if (preg_match('/^(\d{4})\.(\d{1,2})\.(\d{1,2})$/', $date)) {
- $date = str_replace('.', '-', $date) . ' 00:00:00';
+ // if date parsing fails, we have a date in non-rfc format.
+ // remove token from the end and try again
+ while ((($ts = @strtotime($date)) === false) || ($ts < 0)) {
+ $d = explode(' ', $date);
+ array_pop($d);
+ if (!$d) {
+ break;
+ }
+ $date = implode(' ', $d);
}
- return $date;
+ return (int) $ts;
}
+
/*
* Idn_to_ascii wrapper.
* Intl/Idn modules version of this function doesn't work with e-mail address
diff --git a/program/lib/Roundcube/rcube_vcard.php b/program/lib/Roundcube/rcube_vcard.php
index a54ee7e11..f76c4f08d 100644
--- a/program/lib/Roundcube/rcube_vcard.php
+++ b/program/lib/Roundcube/rcube_vcard.php
@@ -47,7 +47,6 @@ class rcube_vcard
'manager' => 'X-MANAGER',
'spouse' => 'X-SPOUSE',
'edit' => 'X-AB-EDIT',
- 'groups' => 'CATEGORIES',
);
private $typemap = array(
'IPHONE' => 'mobile',
@@ -358,8 +357,8 @@ class rcube_vcard
case 'birthday':
case 'anniversary':
- if (($val = rcube_utils::anytodatetime($value)) && ($fn = self::$fieldmap[$field])) {
- $this->raw[$fn][] = array(0 => $val->format('Y-m-d'), 'value' => array('date'));
+ if (($val = rcube_utils::strtotime($value)) && ($fn = self::$fieldmap[$field])) {
+ $this->raw[$fn][] = array(0 => date('Y-m-d', $val), 'value' => array('date'));
}
break;
@@ -378,7 +377,7 @@ class rcube_vcard
default:
if ($field == 'phone' && $this->phonetypemap[$type_uc]) {
$type = $this->phonetypemap[$type_uc];
- }
+ }
if (($tag = self::$fieldmap[$field]) && (is_array($value) || strlen($value))) {
$index = count($this->raw[$tag]);
@@ -482,7 +481,7 @@ class rcube_vcard
$vcard_block = '';
$in_vcard_block = false;
- foreach (preg_split("/[\r\n]+/", $data) as $line) {
+ foreach (preg_split("/[\r\n]+/", $data) as $i => $line) {
if ($in_vcard_block && !empty($line)) {
$vcard_block .= $line . "\n";
}
@@ -518,28 +517,20 @@ class rcube_vcard
*/
public static function cleanup($vcard)
{
+ // Convert special types (like Skype) to normal type='skype' classes with this simple regex ;)
+ $vcard = preg_replace(
+ '/item(\d+)\.(TEL|EMAIL|URL)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
+ '\2;type=\5\3:\4',
+ $vcard);
+
// convert Apple X-ABRELATEDNAMES into X-* fields for better compatibility
$vcard = preg_replace_callback(
'/item(\d+)\.(X-ABRELATEDNAMES)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
array('self', 'x_abrelatednames_callback'),
$vcard);
- // Cleanup
- $vcard = preg_replace(array(
- // convert special types (like Skype) to normal type='skype' classes with this simple regex ;)
- '/item(\d+)\.(TEL|EMAIL|URL)([^:]*?):(.*?)item\1.X-ABLabel:(?:_\$!<)?([\w-() ]*)(?:>!\$_)?./s',
- '/^item\d*\.X-AB.*$/m', // remove cruft like item1.X-AB*
- '/^item\d*\./m', // remove item1.ADR instead of ADR
- '/\n+/', // remove empty lines
- '/^(N:[^;\R]*)$/m', // if N doesn't have any semicolons, add some
- ),
- array(
- '\2;type=\5\3:\4',
- '',
- '',
- "\n",
- '\1;;;;',
- ), $vcard);
+ // Remove cruft like item1.X-AB*, item1.ADR instead of ADR, and empty lines
+ $vcard = preg_replace(array('/^item\d*\.X-AB.*$/m', '/^item\d*\./m', "/\n+/"), array('', '', "\n"), $vcard);
// convert X-WAB-GENDER to X-GENDER
if (preg_match('/X-WAB-GENDER:(\d)/', $vcard, $matches)) {
@@ -547,6 +538,9 @@ class rcube_vcard
$vcard = preg_replace('/X-WAB-GENDER:\d/', 'X-GENDER:' . $value, $vcard);
}
+ // if N doesn't have any semicolons, add some
+ $vcard = preg_replace('/^(N:[^;\R]*)$/m', '\1;;;;', $vcard);
+
return $vcard;
}
@@ -762,7 +756,7 @@ class rcube_vcard
*
* @return string Joined and quoted string
*/
- public static function vcard_quote($s, $sep = ';')
+ private static function vcard_quote($s, $sep = ';')
{
if (is_array($s)) {
foreach($s as $part) {
@@ -771,7 +765,7 @@ class rcube_vcard
return(implode($sep, (array)$r));
}
- return strtr($s, array('\\' => '\\\\', "\r" => '', "\n" => '\n', $sep => '\\'.$sep));
+ return strtr($s, array('\\' => '\\\\', "\r" => '', "\n" => '\n', ',' => '\,', ';' => '\;'));
}
/**
diff --git a/program/lib/Roundcube/rcube_washtml.php b/program/lib/Roundcube/rcube_washtml.php
index e7467545f..f964f8b35 100644
--- a/program/lib/Roundcube/rcube_washtml.php
+++ b/program/lib/Roundcube/rcube_washtml.php
@@ -377,14 +377,7 @@ class rcube_washtml
// Detect max nesting level (for dumpHTML) (#1489110)
$this->max_nesting_level = (int) @ini_get('xdebug.max_nesting_level');
- // Use optimizations if supported
- if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
- @$node->loadHTML($html, LIBXML_PARSEHUGE | LIBXML_COMPACT);
- }
- else {
- @$node->loadHTML($html);
- }
-
+ @$node->loadHTML($html);
return $this->dumpHtml($node);
}
@@ -417,25 +410,6 @@ class rcube_washtml
);
$html = preg_replace($html_search, $html_replace, trim($html));
- //-> Replace all of those weird MS Word quotes and other high characters
- $badwordchars=array(
- "\xe2\x80\x98", // left single quote
- "\xe2\x80\x99", // right single quote
- "\xe2\x80\x9c", // left double quote
- "\xe2\x80\x9d", // right double quote
- "\xe2\x80\x94", // em dash
- "\xe2\x80\xa6" // elipses
- );
- $fixedwordchars=array(
- "'",
- "'",
- '"',
- '"',
- '&mdash;',
- '...'
- );
- $html = str_replace($badwordchars,$fixedwordchars, $html);
-
// PCRE errors handling (#1486856), should we use something like for every preg_* use?
if ($html === null && ($preg_error = preg_last_error()) != PREG_NO_ERROR) {
$errstr = "Could not clean up HTML message! PCRE Error: $preg_error.";
diff --git a/program/localization/ar_SA/labels.inc b/program/localization/ar_SA/labels.inc
index 4100f7c4a..af08cc301 100644
--- a/program/localization/ar_SA/labels.inc
+++ b/program/localization/ar_SA/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'مرحباً بكم ÙÙŠ $product';
$labels['username'] = 'اسم المستخدم';
$labels['password'] = 'كلمة المرور';
$labels['server'] = 'الخادم';
$labels['login'] = 'تسجيل الدخول';
+
+// taskbar
$labels['logout'] = 'تسجيل الخروج';
$labels['mail'] = 'البريد';
$labels['settings'] = 'الإعدادات الشخصية';
$labels['addressbook'] = 'دÙتر العناوين';
+
+// mailbox names
$labels['inbox'] = 'الوارد';
$labels['drafts'] = 'المسودات';
$labels['sent'] = 'المرسل';
$labels['trash'] = 'المهملات';
$labels['junk'] = 'غير المرغوب';
+
+// message listing
$labels['subject'] = 'الموضوع';
$labels['from'] = 'المرسل';
+$labels['sender'] = 'Sender';
$labels['to'] = 'المستقبل';
$labels['cc'] = 'نسخة';
$labels['bcc'] = 'نسخة مخÙية';
@@ -41,18 +52,28 @@ $labels['size'] = 'الحجم';
$labels['priority'] = 'الأولوية';
$labels['organization'] = 'المنظمة';
$labels['readstatus'] = 'حالة القراءة';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'مجلدات';
$labels['messagesfromto'] = 'الرسالة $from إلى $to من مجموع $count';
$labels['threadsfromto'] = 'جهات الإتصال $from إلى $to من مجموع $count';
$labels['messagenrof'] = 'الرسالة $nr من $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'نسخ';
$labels['move'] = 'نقل';
$labels['moveto'] = 'نقل إلى...';
$labels['download'] = 'تنزيل';
-$labels['open'] = 'Ùتح';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'اسم الملÙ';
$labels['filesize'] = 'حجم الملÙ';
+
$labels['addtoaddressbook'] = 'إضاÙØ© إلى دÙتر العناوين';
+
+// weekdays short
$labels['sun'] = 'أحد';
$labels['mon'] = 'إثنين';
$labels['tue'] = 'ثلاثاء';
@@ -60,6 +81,8 @@ $labels['wed'] = 'أربعاء';
$labels['thu'] = 'خميس';
$labels['fri'] = 'جمعة';
$labels['sat'] = 'سبت';
+
+// weekdays long
$labels['sunday'] = 'الأحد';
$labels['monday'] = 'الإثنين';
$labels['tuesday'] = 'الثلاثاء';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'الأربعاء';
$labels['thursday'] = 'الخميس';
$labels['friday'] = 'الجمعة';
$labels['saturday'] = 'السبت';
+
+// months short
$labels['jan'] = 'يناير';
$labels['feb'] = 'Ùبراير';
$labels['mar'] = 'مارس';
@@ -79,6 +104,8 @@ $labels['sep'] = 'سبتمبر';
$labels['oct'] = 'أكتوبر';
$labels['nov'] = 'نوÙمبر';
$labels['dec'] = 'ديسمبر';
+
+// months long
$labels['longjan'] = 'يناير';
$labels['longfeb'] = 'Ùبراير';
$labels['longmar'] = 'مارس';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'سبتمبر';
$labels['longoct'] = 'أكتوبر';
$labels['longnov'] = 'نوÙمبر';
$labels['longdec'] = 'ديسمبر';
+
$labels['today'] = 'اليوم';
+
+// toolbar buttons
$labels['refresh'] = 'تحديث';
$labels['checkmail'] = 'التحقق من وجود رسائل جديدة';
$labels['compose'] = 'إنشاء رسالة';
@@ -124,6 +154,7 @@ $labels['moreactions'] = 'إجراءات إضاÙية...';
$labels['more'] = 'المزيد';
$labels['back'] = 'العودة';
$labels['options'] = 'خيارات';
+
$labels['select'] = 'تحديد';
$labels['all'] = 'الكل';
$labels['none'] = 'لاشيء';
@@ -131,7 +162,7 @@ $labels['currpage'] = 'الصÙحة الحالية';
$labels['unread'] = 'غير المقروءة';
$labels['flagged'] = 'موسوم';
$labels['unanswered'] = 'بلا رد';
-$labels['withattachment'] = 'مع المرÙقات';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'محذوÙ';
$labels['undeleted'] = 'غير محذوÙØ©';
$labels['invert'] = 'عكس';
@@ -142,6 +173,7 @@ $labels['expand-all'] = 'إظهار الكل';
$labels['expand-unread'] = 'إظهار الغير مقروءة';
$labels['collapse-all'] = 'ضمّ الكل';
$labels['threaded'] = 'متتابع';
+
$labels['autoexpand_threads'] = 'إظهار تتابعات الرسائل';
$labels['do_expand'] = 'جميع التتابعات';
$labels['expand_only_unread'] = 'Ùقط مع الرسائل الغير مقروءة';
@@ -157,18 +189,27 @@ $labels['listcolumns'] = 'أعمدة السرد';
$labels['listsorting'] = 'أعمدة الترتيب';
$labels['listorder'] = 'طريقة الترتيب';
$labels['listmode'] = 'وضع طريقة السرد';
+
$labels['folderactions'] = 'إجراءات المجلد...';
$labels['compact'] = 'ضغط';
$labels['empty'] = 'تÙريغ';
+
$labels['quota'] = 'المساحة المستخدمة';
$labels['unknown'] = 'مجهول';
$labels['unlimited'] = 'غير محدود';
+
$labels['quicksearch'] = 'البحث السريع';
$labels['resetsearch'] = 'استعادة البحث للاÙتراضي';
$labels['searchmod'] = 'أماكن البحث';
$labels['msgtext'] = 'كامل الرسالة';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'اÙتح ÙÙŠ ناÙذة جديدة';
$labels['emlsave'] = 'تنزيل (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'تعديل كجديد';
$labels['send'] = 'ارسل';
$labels['sendmessage'] = 'إرسال الرسالة الآن';
@@ -180,40 +221,52 @@ $labels['returnreceipt'] = 'ايصال استلام';
$labels['dsn'] = 'تنويه حالة التوصيل';
$labels['mailreplyintro'] = 'كتب $sender ÙÙŠ $date:';
$labels['originalmessage'] = 'الرسالة الأساسية';
+
$labels['editidents'] = 'تعديل الهويات';
$labels['spellcheck'] = 'التدقيق اﻹملائى';
$labels['checkspelling'] = 'التدقيق الإملائي';
$labels['resumeediting'] = 'متابعة التحرير';
$labels['revertto'] = 'استعادة إلى';
+
$labels['attach'] = 'إرÙاق';
$labels['attachments'] = 'مرÙقات';
$labels['upload'] = 'تحميل';
$labels['uploadprogress'] = '$percent ($current من $total)';
$labels['close'] = 'إغلاق';
$labels['messageoptions'] = 'خيارات الرسائل...';
+
$labels['low'] = 'منخض';
$labels['lowest'] = 'الأقل';
$labels['normal'] = 'عادي';
$labels['high'] = 'مرتÙع';
$labels['highest'] = 'الأعلى';
+
$labels['nosubject'] = '(دون موضوع)';
$labels['showimages'] = 'إظهار الصور';
$labels['alwaysshow'] = 'دائماً أظهر الصّور القادمة من $sender';
$labels['isdraft'] = 'هذه مسودّة رسالة';
$labels['andnmore'] = '$nr المزيد ...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'نص مجرد';
$labels['savesentmessagein'] = 'احÙظ الرسالة المÙرسلة ÙÙŠ';
$labels['dontsave'] = 'لا تحÙظها';
$labels['maxuploadsize'] = 'أقصى حجم للمل٠هو $size';
+
$labels['addcc'] = 'أض٠CC';
$labels['addbcc'] = 'أض٠BCC';
$labels['addreplyto'] = 'أضي٠Reply-To';
$labels['addfollowupto'] = 'إضاÙØ© Mail-Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'طلب المرسل إعلامه عند قراءتك لرسالته. هل تود إعلام المرسل؟';
$labels['receiptread'] = 'إيصال الاستلام )بالقراءة)';
$labels['yourmessage'] = 'هذا إيصال بقراءة رسالتك';
$labels['receiptnote'] = 'ملاحظة: ÙŠÙعلمك هذا الإيصال بأن رسالتك قد ظهرت على جهاز المستقبÙÙ„. ليست هناك أية ضمانات أن المستقبل قد قرأ أو Ùهم محتويات الرسالة.';
+
+// address boook
$labels['name'] = 'اسم العرض';
$labels['firstname'] = 'الإسم الأول';
$labels['surname'] = 'الإسم الأخير';
@@ -248,6 +301,7 @@ $labels['search'] = 'بحث';
$labels['advsearch'] = 'بحث متقدم';
$labels['advanced'] = 'Ù…Ùتقدم';
$labels['other'] = 'آخر';
+
$labels['typehome'] = 'المنزل';
$labels['typework'] = 'العمل';
$labels['typeother'] = 'آخر';
@@ -262,12 +316,14 @@ $labels['typeassistant'] = 'المساعد';
$labels['typehomepage'] = 'الرئيسية';
$labels['typeblog'] = 'المدوّنة';
$labels['typeprofile'] = 'المل٠الشخصي';
+
$labels['addfield'] = 'إضاÙØ© حقل...';
$labels['addcontact'] = 'إضاÙØ© المراسل المحدد إلى دÙتر عناويني';
$labels['editcontact'] = 'تحرير بيانات المراسل';
$labels['contacts'] = 'المراسلين';
$labels['contactproperties'] = 'خواص جهة الإتصال';
$labels['personalinfo'] = 'المعلومات الشخصية';
+
$labels['edit'] = 'تحرير';
$labels['cancel'] = 'إلغاء';
$labels['save'] = 'Ø­Ùظ';
@@ -276,46 +332,60 @@ $labels['rename'] = 'إعادة التسمية';
$labels['addphoto'] = 'إضاÙØ©';
$labels['replacephoto'] = 'استبدال';
$labels['uploadphoto'] = 'ارÙع صورة';
+
$labels['newcontact'] = 'إنشاء بطاقة مراسل جديدة';
$labels['deletecontact'] = 'حذ٠المراسلين المحددين';
$labels['composeto'] = 'إنشاء رسالة إليه';
$labels['contactsfromto'] = 'المراسلون $from إلى $to من $count';
$labels['print'] = 'طباعة';
$labels['export'] = 'تصدير';
-$labels['exportall'] = 'تصدير الكل';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'صدّر المراسلين بنسق vCard';
$labels['newcontactgroup'] = 'إنشاء مجموعة مراسلين جديدة';
$labels['grouprename'] = 'تغيير اسم المجموعة';
$labels['groupdelete'] = 'حذ٠المجموعة';
$labels['groupremoveselected'] = 'حذ٠العنوان المختار من المجموعة';
+
$labels['previouspage'] = 'عرض المجموعة السابقة';
$labels['firstpage'] = 'عرض المجموعة الأولى';
$labels['nextpage'] = 'عرض المجموعة التالية';
$labels['lastpage'] = 'عرض المجموعة الأخيرة';
+
$labels['group'] = 'مجموعة';
$labels['groups'] = 'المجموعات';
$labels['personaladrbook'] = 'العناوين الشخصية';
+
$labels['searchsave'] = 'Ø­Ùظ البحث';
$labels['searchdelete'] = 'حذ٠البحث';
+
$labels['import'] = 'استورد';
$labels['importcontacts'] = 'استورد المراسلين';
$labels['importfromfile'] = 'استورد من ملÙ:';
+$labels['importtarget'] = 'أض٠المراسلين الجدد إلى دÙتر العناوين:';
$labels['importreplace'] = 'استبدل دÙتر العناوين بأكمله';
+$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'] = 'تم';
+
+// settings
$labels['settingsfor'] = 'إعدادات';
$labels['about'] = 'نبذة';
$labels['preferences'] = 'التÙضيلات';
$labels['userpreferences'] = 'تÙضيلات المستخدم';
$labels['editpreferences'] = 'تحرير تÙضيلات المستخدم';
+
$labels['identities'] = 'الهويات';
$labels['manageidentities'] = 'إدارة هويات هذا الحساب';
$labels['newidentity'] = 'هوية جديدة';
+
$labels['newitem'] = 'عنصر جديد';
$labels['edititem'] = 'تحرير عنصر';
+
$labels['preferhtml'] = 'تÙضيل صيغة HTML';
$labels['defaultcharset'] = 'ترميز المحار٠الاÙتراضي';
$labels['htmlmessage'] = 'رسالة بنسق HTML';
-$labels['digitalsig'] = 'التوقيع الالكتروني';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'نسق التاريخ';
$labels['timeformat'] = 'نسق الوقت';
$labels['prettydate'] = 'تواريخ منمقة';
@@ -330,7 +400,9 @@ $labels['showinextwin'] = 'Ùتح الرسالة ÙÙ‰ ناÙذة جديدة';
$labels['composeextwin'] = 'أرسال عن طريق ناÙذة جديدة';
$labels['htmleditor'] = 'إنشاء رسائل بنسق HTML';
$labels['htmlonreply'] = 'حال الرد على الرسائل بصيغة HTML Ùقط';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'توقيع HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'إظهار قسم المعاينة';
$labels['skin'] = 'شكل الواجهة';
$labels['logoutclear'] = 'Ø¥Ùراغ سلة المحذوÙات عند الخروج';
@@ -348,12 +420,14 @@ $labels['readwhendeleted'] = 'تحديد الرسالة كمقروءة عند ح
$labels['flagfordeletion'] = 'وضع علامة على الرسالة لحذÙها بدلاً منحذÙها';
$labels['skipdeleted'] = 'لا تظهر الرسائل المحذوÙØ©';
$labels['deletealways'] = 'حذ٠الرسائل مباشرة، إن تعذر نقلها إلىالمهملات';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'إظهار الصور الخارجية المدمجة';
$labels['fromknownsenders'] = 'للمرسلين المعلومين';
$labels['always'] = 'دائماً';
$labels['showinlineimages'] = 'إظهار الصّور المرÙقة أسÙÙ„ الرسالة';
$labels['autosavedraft'] = 'Ø­Ùظ المسودة تلقائياً';
$labels['everynminutes'] = 'كل $n دقيقة';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'أبداً';
$labels['immediately'] = 'حالاً';
$labels['messagesdisplaying'] = 'إظهار الرسائل';
@@ -367,12 +441,15 @@ $labels['advancedoptions'] = 'خيارات متقدّمة';
$labels['focusonnewmessage'] = 'التركيز على ناÙذة المتصÙØ­ عند وجود رسالةجديدة';
$labels['checkallfolders'] = 'التحقق من وجود رسائل جديدة ÙÙŠ جميعالمجلدات';
$labels['displaynext'] = 'إظهار الرسالة التالية بعد حذÙ/نقلالرسالة الحالية';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'الخيارات الأساسية';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'قسم';
$labels['maintenance'] = 'الصيانة';
$labels['newmessage'] = 'رسالة جديدة';
$labels['signatureoptions'] = 'خيارات التوقيع';
$labels['whenreplying'] = 'عند الرد';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'بدء رسالة جديدة ووضع النص أعلى الأصلية';
$labels['replybottomposting'] = 'بدء رسالة جديدة ووضع النص أسÙÙ„ الأصلية';
$labels['replyremovesignature'] = 'إزالة التوقيع من الرسالة عند الرد';
@@ -385,13 +462,20 @@ $labels['afternseconds'] = 'بعد $n ثواني';
$labels['reqmdn'] = 'طلب إشعار استلام دائماً';
$labels['reqdsn'] = 'طلب تنويه لحالة التوصيل دائماً';
$labels['replysamefolder'] = 'وضع الردود ÙÙŠ المجلد الذي يحوي الرسالةالمردود عليها';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'تجاهل عنوان البريد الإلكتروني البديل Ùيالتكملة التلقائية';
+$labels['listnamedisplay'] = 'List contacts as';
$labels['spellcheckbeforesend'] = 'تحقق من الإملاء قبل إرسال الرسائل';
$labels['spellcheckoptions'] = 'خيارات التدقيق الإملاءي';
$labels['spellcheckignoresyms'] = 'تجاهل الكلمات التي تحتوي رموز';
$labels['spellcheckignorenums'] = 'تجاهل الكلمات التي تحتوي أرقام';
$labels['spellcheckignorecaps'] = 'تجاهل الكلمات التي بها أحر٠كبيرة';
$labels['addtodict'] = 'إضاÙØ© إلى القامس';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'مجلد';
$labels['folders'] = 'مجلدات';
$labels['foldername'] = 'اسم المجلد';
@@ -412,19 +496,26 @@ $labels['foldertype'] = 'نوع المجلد';
$labels['personalfolder'] = 'مجلد خاص';
$labels['otherfolder'] = 'مجلد مستخدم آخر';
$labels['sharedfolder'] = 'مجلد عام';
+
$labels['sortby'] = 'ترتيب بحسب';
$labels['sortasc'] = 'ترتيب تصاعدي';
$labels['sortdesc'] = 'ترتيب تنازلي';
$labels['undo'] = 'تراجع';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'إضاÙØ©';
$labels['version'] = 'النسخة';
$labels['source'] = 'المصدر';
$labels['license'] = 'الترخيص';
$labels['support'] = 'احصل على الدعم الÙني';
+
+// units
$labels['B'] = 'ب';
$labels['KB'] = 'ك.ب';
$labels['MB'] = 'م.ب';
$labels['GB'] = 'ج.ب';
+
+// character sets
$labels['unicode'] = 'يونيكود';
$labels['english'] = 'الإنجليزية';
$labels['westerneuropean'] = 'الغرب أوروبية';
@@ -443,4 +534,5 @@ $labels['vietnamese'] = 'الÙيتنامية';
$labels['japanese'] = 'اليابانية';
$labels['korean'] = 'الكورية';
$labels['chinese'] = 'الصينية';
+
?>
diff --git a/program/localization/ar_SA/messages.inc b/program/localization/ar_SA/messages.inc
index 7d9a7ac62..9429a3910 100644
--- a/program/localization/ar_SA/messages.inc
+++ b/program/localization/ar_SA/messages.inc
@@ -15,6 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Ùشل تسجيل الدخول';
$messages['cookiesdisabled'] = 'المتصÙØ­ الخاص بك لا يقبل الكوكيز';
$messages['sessionerror'] = 'انتهت صلاحية الجلسة الحالية أو أنها غيرصالحة';
@@ -22,12 +25,17 @@ $messages['storageerror'] = 'Ùشل الاتصال بخادم IMAP';
$messages['servererror'] = 'خطأ ÙÙŠ الخادم!';
$messages['servererrormsg'] = 'خطأ خادم: $msg';
$messages['dberror'] = 'خطأ ÙÙŠ قاعدة البيانات!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'تعذر تنÙيذ العملية. المجلد للقراءة Ùقط.';
$messages['errornoperm'] = 'تعذر تنÙيذ العملية. ليست لديك الصلاحية.';
+$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'] = 'طلب غير صالح! لم تحÙظ أية بيانات.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'لم يعثر على أية رسائل ÙÙŠ صندوق البريد هذا';
$messages['loggedout'] = 'قمت بإنهاء هذه الجلسة بنجاح. إلى اللقاء!';
$messages['mailboxempty'] = 'صندوق البريد Ùارغ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'جاري العمل...';
$messages['uploading'] = 'جاري رÙع الملÙ...';
$messages['uploadingmany'] = 'جاري تحميل الملÙات...';
@@ -48,6 +56,8 @@ $messages['contactnotfound'] = 'تعذر العثور على المراسل ال
$messages['contactsearchonly'] = 'اكتب بعض كلمات البحث للعثور علىالمÙراسلين';
$messages['sendingfailed'] = 'Ùشل إرسال الرسالة';
$messages['senttooquickly'] = 'رجاء انتظر $sec ثوان قبل إرسال هذه الرسالة';
+$messages['errorsavingsent'] = 'حدث خطأ أثناء Ø­Ùظ الرسالة المÙرسلة';
+$messages['errorsaving'] = 'حدث خطأ أثناء الحÙظ';
$messages['errormoving'] = 'تعذر نقل هذه الرسالة';
$messages['errorcopying'] = 'تعذر نسخ الرسائل';
$messages['errordeleting'] = 'تعذر حذ٠هذه الرسالة';
@@ -91,6 +101,8 @@ $messages['converting'] = 'إزالة التنسيق من الرسالة...';
$messages['messageopenerror'] = 'تعذرت قراءة الرسالة من الخادم';
$messages['fileuploaderror'] = 'Ùشل رÙع الملÙ';
$messages['filesizeerror'] = 'حجم المل٠الذي تحاول رÙعه أكبر من الحجمالأقصى $size';
+$messages['copysuccess'] = 'تم نسخ $nr رسائل بنجاح';
+$messages['copyerror'] = 'لم يمكن نسخ أية عناوين';
$messages['sourceisreadonly'] = 'لا يمكن تعديل مصدر العنوان هذا';
$messages['errorsavingcontact'] = 'تعذر Ø­Ùظ عنوان المراسل';
$messages['movingmessage'] = 'جاري نقل الرسالة...';
@@ -102,13 +114,16 @@ $messages['addingmember'] = 'جاري إضاÙØ© المÙراسلين إلى اÙ
$messages['removingmember'] = 'جاري إزالة المراسلين من المجموعة...';
$messages['receiptsent'] = 'أرسل إيصال الاستلام بنجاح';
$messages['errorsendingreceipt'] = 'تعذر إرسال إيصال الاستلام';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'لا يمكن حذ٠هذا السجل حيث أنه الوحيدالمتبقي.';
$messages['forbiddencharacter'] = 'اسم المجلّد يحتوي حروÙاً ممنوعة';
$messages['selectimportfile'] = 'رجاء اختر ملÙاً لرÙعه';
$messages['addresswriterror'] = 'دÙتر العناوين المحدد غير قابل للكتابة';
$messages['contactaddedtogroup'] = 'تمت إضاÙØ© المراسلين إلى هذه المجموعةبنجاح';
$messages['contactremovedfromgroup'] = 'تمت إزالة المراسلين من هذه المجموعةبنجاح';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'جاري الاستيراد، رجاء انتظر...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>تم استيراد $inserted مراسلين بنجاح، وتجاهل$skipped موجودين مسبقاً</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>تم تجاهل $skipped عناصر موجودة</b>';
$messages['opnotpermitted'] = 'العملية ممنوعة!';
@@ -124,6 +139,7 @@ $messages['smtperror'] = 'خطأ SMTP: $msg';
$messages['emailformaterror'] = 'عنوان بريد إلكتروني غير صالح: $email';
$messages['toomanyrecipients'] = 'عدد المرسل إليهم كبير. قلص العدد إلى $max.';
$messages['maxgroupmembersreached'] = 'عدد أعضاء المجموعة أكثر من $max';
+$messages['internalerror'] = 'حدث خطأ داخلي. الرجاء المحاولة مرة أخرى';
$messages['contactdelerror'] = 'تعذر حذ٠أسماء جهات الإتصال';
$messages['contactdeleted'] = 'تم حذ٠أسماء جهات الإتصال بنجاح';
$messages['contactrestoreerror'] = 'تعذر استعادة المÙراسل المحذوÙ.';
@@ -149,4 +165,7 @@ $messages['invalidimageformat'] = 'ليست صيغة صورة صحيحة';
$messages['mispellingsfound'] = 'عÙثر على أخطاء إملائية ÙÙŠ الرسالة';
$messages['parentnotwritable'] = 'تعذر إنشاء/نقل المجلد إلى المجلد المحدد.ليست لديك الصلاحية.';
$messages['messagetoobig'] = 'جزء الرسالة أكبر بكثير مما يمكن معالجته.';
+$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/ast/labels.inc b/program/localization/ast/labels.inc
index 7a60238b7..49f85689b 100644
--- a/program/localization/ast/labels.inc
+++ b/program/localization/ast/labels.inc
@@ -15,50 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienllegáu a $product';
$labels['username'] = 'Usuariu';
$labels['password'] = 'Clave';
$labels['server'] = 'Sirvidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Zarrar';
$labels['mail'] = 'Corréu';
-$labels['settings'] = 'Axustes';
-$labels['addressbook'] = 'Llibreta de direiciones';
+$labels['settings'] = 'Preferencies personales';
+$labels['addressbook'] = 'Llibru de direiciones';
+
+// mailbox names
$labels['inbox'] = 'Entrantes';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Unviaos';
$labels['trash'] = 'Papelera';
$labels['junk'] = 'Puxarra';
-$labels['show_real_foldernames'] = 'Amosar nomes reales pa carpetes especiales';
+
+// message listing
$labels['subject'] = 'Asuntu';
$labels['from'] = 'De';
-$labels['sender'] = 'Remitente';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Pa';
$labels['cc'] = 'Copia';
-$labels['bcc'] = 'Cct';
+$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Contestar a';
-$labels['followupto'] = 'Responder-a';
-$labels['date'] = 'Data';
+$labels['followupto'] = 'Followup-To';
+$labels['date'] = 'Fecha';
$labels['size'] = 'Tamañu';
$labels['priority'] = 'Prioridá';
$labels['organization'] = 'Organización';
-$labels['readstatus'] = 'Lleer estáu';
-$labels['listoptions'] = 'Llista d\'oopciones...';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Bandexes';
$labels['messagesfromto'] = 'Mensaxes del $from a $to de $count';
-$labels['threadsfromto'] = 'Filos $from a $to de $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Mensaxe $nr de $count';
-$labels['fromtoshort'] = '$from – $to de $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Copia';
-$labels['move'] = 'Mover';
-$labels['moveto'] = 'mover a...';
-$labels['download'] = 'Descargar';
-$labels['open'] = 'Abrir';
-$labels['showattachment'] = 'Amosar';
-$labels['showanyway'] = 'Amosar de toes formes';
+$labels['move'] = 'Move';
+$labels['moveto'] = 'mover pa...';
+$labels['download'] = 'baxar';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Nome del Ficheru';
$labels['filesize'] = 'Tamañu del ficheru';
-$labels['addtoaddressbook'] = 'Amestar a la llibreta de direiciones';
+
+$labels['addtoaddressbook'] = 'Amestar al llibru de direiciones';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Llu';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mie';
$labels['thu'] = 'Xue';
$labels['fri'] = 'Vie';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Domingu';
$labels['monday'] = 'Llunes';
$labels['tuesday'] = 'Martes';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Miércoles';
$labels['thursday'] = 'Xueves';
$labels['friday'] = 'Vienres';
$labels['saturday'] = 'Sábadu';
+
+// months short
$labels['jan'] = 'Xin';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Och';
$labels['nov'] = 'Pay';
$labels['dec'] = 'Avi';
+
+// months long
$labels['longjan'] = 'Xineru';
$labels['longfeb'] = 'Febreru';
$labels['longmar'] = 'Marzu';
@@ -97,19 +118,22 @@ $labels['longsep'] = 'Setiembre';
$labels['longoct'] = 'Ochobre';
$labels['longnov'] = 'Payares';
$labels['longdec'] = 'Avientu';
+
$labels['today'] = 'Güei';
-$labels['refresh'] = 'Refrescar';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Buscar mensaxes nuevos';
$labels['compose'] = 'Escribir un mensaxe';
$labels['writenewmessage'] = 'Facer un mensaxe nuevu';
-$labels['reply'] = 'Responder';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Contestar al mensaxe';
$labels['replytoallmessage'] = 'Contestar a toos';
-$labels['replyall'] = 'Responder a toos';
-$labels['replylist'] = 'Responder a la llista';
-$labels['forward'] = 'Reunviar';
-$labels['forwardinline'] = 'Reunviar direutamente';
-$labels['forwardattachment'] = 'Reunviar como axuntu';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Reunviar mensaxe';
$labels['deletemessage'] = 'Desaniciar mensaxe';
$labels['movemessagetotrash'] = 'Mover mensaxe a la papelera';
@@ -120,241 +144,265 @@ $labels['nextmessage'] = 'Amosar el mensaxe siguiente';
$labels['lastmessage'] = 'Amosar l\'últimu mensaxe';
$labels['backtolist'] = 'Tornar a la llista de mensaxes';
$labels['viewsource'] = 'Amosar el códigu';
-$labels['mark'] = 'Marcar';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Marcar mensaxes';
$labels['markread'] = 'Como lleíu';
$labels['markunread'] = 'Como non lleíu';
-$labels['markflagged'] = 'Como etiquetáu';
-$labels['markunflagged'] = 'Como non etiquetáu';
-$labels['moreactions'] = 'Más aiciones...';
-$labels['more'] = 'Más';
-$labels['back'] = 'Volver';
-$labels['options'] = 'Opciones';
-$labels['select'] = 'Escoyer';
+$labels['markflagged'] = 'Como marcáu';
+$labels['markunflagged'] = 'Como non marcáu';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
+$labels['select'] = 'Escueye';
$labels['all'] = 'Toos';
-$labels['none'] = 'Dengún';
-$labels['currpage'] = 'Páxina actual';
+$labels['none'] = 'Nengún';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Ensin lleer';
-$labels['flagged'] = 'Etiquetaos';
+$labels['flagged'] = 'Marcáu';
$labels['unanswered'] = 'Ensin contestar';
-$labels['withattachment'] = 'Con axuntu';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Desaniciáu';
-$labels['undeleted'] = 'Non desaniciáu';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Invertir';
$labels['filter'] = 'Filtru';
-$labels['list'] = 'Llista';
-$labels['threads'] = 'Filos';
-$labels['expand-all'] = 'Espander toos';
-$labels['expand-unread'] = 'Espander non lleíos';
-$labels['collapse-all'] = 'Contrayer toos';
-$labels['threaded'] = 'Encadenaos';
-$labels['autoexpand_threads'] = 'Espander filos de mensaxes';
-$labels['do_expand'] = 'tolos filos';
-$labels['expand_only_unread'] = 'namái con mensaxes non lleíos';
-$labels['fromto'] = 'Remitente/Destinatariu';
-$labels['flag'] = 'Etiqueta';
-$labels['attachment'] = 'Axuntu';
-$labels['nonesort'] = 'Dengún';
-$labels['sentdate'] = 'Data d\'unviu';
-$labels['arrival'] = 'Data de llegada';
-$labels['asc'] = 'ascendente';
-$labels['desc'] = 'descendente';
-$labels['listcolumns'] = 'Llistar columnes';
-$labels['listsorting'] = 'Columna de llistáu';
-$labels['listorder'] = 'Orde de llistáu';
-$labels['listmode'] = 'Mou de vista de llista';
-$labels['folderactions'] = 'Aiciones de bandexa...';
+$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'] = 'Nengún';
+$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'] = 'Compautar';
$labels['empty'] = 'Vaciar';
-$labels['importmessages'] = 'Importar mensaxes';
+
$labels['quota'] = 'Espaciu en discu';
$labels['unknown'] = 'desconocíu';
$labels['unlimited'] = 'ensin llímite';
-$labels['quicksearch'] = 'Gueta rápida';
-$labels['resetsearch'] = 'Anovar la gueta';
+
+$labels['quicksearch'] = 'Búsqueda rápida';
+$labels['resetsearch'] = 'Anovar la búsqueda';
$labels['searchmod'] = 'Guetar modificadores';
-$labels['msgtext'] = 'Mensaxe';
-$labels['body'] = 'Cuerpu';
-$labels['type'] = 'Tipu';
-$labels['namex'] = 'Nome';
-$labels['openinextwin'] = 'Abrir nuna ventana nueva';
+$labels['msgtext'] = 'Mensax completu';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Abrir en una ventana nueva';
$labels['emlsave'] = 'Baxar (.eml)';
-$labels['changeformattext'] = 'Amosar en formatu de testu planu';
-$labels['changeformathtml'] = 'Amosar en formatu HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Editar como nuevu';
-$labels['send'] = 'Unviar';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Unviar el mensaxe yá';
$labels['savemessage'] = 'Guardar como borrador';
-$labels['addattachment'] = 'Axuntar un ficheru';
+$labels['addattachment'] = 'Amestar un archivu';
$labels['charset'] = 'Codificación';
-$labels['editortype'] = 'Tipu d\'editor';
+$labels['editortype'] = 'Tipo d\'editor';
$labels['returnreceipt'] = 'Avisu de recibu';
-$labels['dsn'] = 'Entrega de notificaciones d\'estáu';
-$labels['mailreplyintro'] = 'El $date, $sender escribió:';
-$labels['originalmessage'] = 'Mensaxe orixinal';
-$labels['editidents'] = 'Editar identidaes';
-$labels['spellcheck'] = 'Correutor ortográficu';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Siguir cola edición';
-$labels['revertto'] = 'Revertir a';
-$labels['attach'] = 'Axuntar';
+$labels['revertto'] = 'Desfacer a';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Axuntos';
$labels['upload'] = 'Xubir';
-$labels['uploadprogress'] = '$percent ($current de $total)';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Zarrar';
-$labels['messageoptions'] = 'Opciones de mensaxe...';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Baxu';
$labels['lowest'] = 'Mui baxu';
$labels['normal'] = 'Normal';
$labels['high'] = 'Altu';
$labels['highest'] = 'Mui altu';
+
$labels['nosubject'] = '(ensin asuntu)';
$labels['showimages'] = 'Amosar imáxenes';
$labels['alwaysshow'] = 'Amosar siempre les imáxenes de $sender';
-$labels['isdraft'] = 'Esti mensaxe ye un borrador.';
-$labels['andnmore'] = '$nr más...';
-$labels['togglemoreheaders'] = 'Amosar más testeres del mensaxe';
-$labels['togglefullheaders'] = 'Amosar o anubrir testeres de mensaxes';
+$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'] = 'Testu';
-$labels['savesentmessagein'] = 'Guardar mensaxe unviáu en';
-$labels['dontsave'] = 'nun guardar';
+$labels['savesentmessagein'] = 'Guardar mensaxe unviau en';
+$labels['dontsave'] = 'Desanicialu';
$labels['maxuploadsize'] = 'El tamañu másimu pa un ficheru ye $size';
+
$labels['addcc'] = 'Amestar Cc';
-$labels['addbcc'] = 'Amestar Cct';
+$labels['addbcc'] = 'Amestar Bcc';
$labels['addreplyto'] = 'Amestar Rempuesta pa';
-$labels['addfollowupto'] = 'Amestar Siguir a';
-$labels['mdnrequest'] = 'El qu\'unvia esti mensaxe quier que lu avises cuando lleas el corréu. ¿Quies avisalu?';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'El qu\'unvia esti mensaxe quier que lo avises cuando lleas el corréu. ¿Quies avisalo?';
$labels['receiptread'] = 'Avisu de llectura';
$labels['yourmessage'] = 'Esto ye un avisu de llectura del to mensaxe';
-$labels['receiptnote'] = 'Nota: Esti avisu namás quier dicir que\'l to mensaxe amosóse nel equipu del receutor. Nun hai forma de garantizate que lu lleera o que atalantara\'l conteníu del to mensaxe.';
+$labels['receiptnote'] = 'Nota: Esti avisu namás quier dicir que\'l to mensaxe amosośe nel equipu del receptor. Nun hai forma de garantizate que lo lleera o que pescanciara\'l to mensaxe.';
+
+// address boook
$labels['name'] = 'Nome completu';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Apellíu';
-$labels['middlename'] = 'Segundu nome';
-$labels['nameprefix'] = 'Prefixu';
-$labels['namesuffix'] = 'Sufixu';
-$labels['nickname'] = 'Nomatu';
-$labels['jobtitle'] = 'Tratamientu';
-$labels['department'] = 'Departamentu';
-$labels['gender'] = 'Sexu';
-$labels['maidenname'] = 'Apellíu de soltera';
+$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'] = 'Corréu';
-$labels['phone'] = 'Teléfonu';
-$labels['address'] = 'Direición';
-$labels['street'] = 'Cai';
-$labels['locality'] = 'Ciudá';
-$labels['zipcode'] = 'Códigu postal';
-$labels['region'] = 'Estáu/Provincia';
-$labels['country'] = 'País';
-$labels['birthday'] = 'Cumpleaños';
-$labels['anniversary'] = 'Santu';
-$labels['website'] = 'Páxina web';
-$labels['instantmessenger'] = 'Mensaxería nel intre';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Notes';
-$labels['male'] = 'home';
-$labels['female'] = 'muyer';
-$labels['manager'] = 'Direutor';
-$labels['assistant'] = 'Auxiliar';
-$labels['spouse'] = 'Cónyugue';
-$labels['allfields'] = 'Tolos campos';
-$labels['search'] = 'Guetar';
-$labels['advsearch'] = 'Gueta avanzada';
-$labels['advanced'] = 'Avanzaes';
-$labels['other'] = 'Otru';
-$labels['typehome'] = 'Casa';
-$labels['typework'] = 'Trabayu';
-$labels['typeother'] = 'Otru';
-$labels['typemobile'] = 'Móvil';
-$labels['typemain'] = 'Principal';
-$labels['typehomefax'] = 'Fax de casa';
-$labels['typeworkfax'] = 'Fax del trabayu';
-$labels['typecar'] = 'Coche';
-$labels['typepager'] = 'Busca';
-$labels['typevideo'] = 'Videu';
-$labels['typeassistant'] = 'Auxiliar';
-$labels['typehomepage'] = 'Aniciu';
-$labels['typeblog'] = 'Blogue';
-$labels['typeprofile'] = 'Perfil';
-$labels['addfield'] = 'Amestar campu...';
+$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'] = 'Amestar contautu nuevu';
$labels['editcontact'] = 'Editar contautu';
-$labels['contacts'] = 'Contautos';
-$labels['contactproperties'] = 'Propiedaes del contautu';
-$labels['personalinfo'] = 'Información personal';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Encaboxar';
$labels['save'] = 'Guardar';
$labels['delete'] = 'Desaniciar';
-$labels['rename'] = 'Renomar';
-$labels['addphoto'] = 'Amestar';
-$labels['replacephoto'] = 'Trocar';
-$labels['uploadphoto'] = 'Xubir xemeya';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Facer un contautu nuevu';
$labels['deletecontact'] = 'Desaniciar los contautos marcaos';
$labels['composeto'] = 'Unviar mensaxe a';
$labels['contactsfromto'] = 'Contautos $from a $to de $count';
$labels['print'] = 'Imprentar';
$labels['export'] = 'Esportar';
-$labels['exportall'] = 'Esportar too';
-$labels['exportsel'] = 'Esportar lo seleicionao';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Esportar contautos en formatu vCard';
-$labels['newcontactgroup'] = 'Crear un grupu nuevu de contautos';
-$labels['grouprename'] = 'Renomar grupu';
-$labels['groupdelete'] = 'Desaniciar grupu';
-$labels['groupremoveselected'] = 'Desaniciar los contautos seleicionaos del grupu';
-$labels['previouspage'] = 'Amosar páxina previa';
-$labels['firstpage'] = 'Amosar primer páxina';
-$labels['nextpage'] = 'Amosar siguiente páxina';
-$labels['lastpage'] = 'Amosar última páxina';
-$labels['group'] = 'Grupu';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'Amosar grupu anterior';
+$labels['firstpage'] = 'Amosar primer grupu';
+$labels['nextpage'] = 'Amosar siguiente grupu';
+$labels['lastpage'] = 'Amosar l\'últimu grupu';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Llistar miembros del grupu';
$labels['personaladrbook'] = 'Direiciones personales';
-$labels['searchsave'] = 'Guardar gueta';
-$labels['searchdelete'] = 'Desaniciar gueta';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contautos';
$labels['importfromfile'] = 'Importar dende un ficheru:';
-$labels['importtarget'] = 'Amestar contautos a';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Trocar el llibru de direiciones enteru';
-$labels['importgroups'] = 'Importar asignaciones de grupu';
-$labels['importgroupsall'] = 'Toos (crear grupos si ye necesario)';
-$labels['importgroupsexisting'] = 'Namái pa los grupos esistentes';
-$labels['importdesc'] = 'Pues xubir contautos dende una llibreta de direiciones esistente.<br/>Anguaño permitimos la importación dende los formatos de datos <a href="http://es.wikipedia.org/wiki/VCard">vCard</a> o CSV (separtaos per comes).';
+$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'] = 'Fecho';
-$labels['settingsfor'] = 'Axustes pa';
-$labels['about'] = 'Tocante a';
+
+// settings
+$labels['settingsfor'] = 'Configuración pa';
+$labels['about'] = 'About';
$labels['preferences'] = 'Preferencies';
$labels['userpreferences'] = 'Preferencies d\'usuariu';
$labels['editpreferences'] = 'Editar preferencies d\'usuariu';
+
$labels['identities'] = 'Identidaes';
$labels['manageidentities'] = 'Remanar identidaes pa esta cuenta';
-$labels['newidentity'] = 'Identidá nueva';
+$labels['newidentity'] = 'Identidad nueva';
+
$labels['newitem'] = 'Nuevu';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Amosar HTML';
-$labels['defaultcharset'] = 'Xuegu de caráuteres predetermináu';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Mensaxe HTML';
-$labels['messagepart'] = 'Parte';
-$labels['digitalsig'] = 'Robla dixital';
-$labels['dateformat'] = 'Formatu de data';
-$labels['timeformat'] = 'Formatu d\'hora';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Fecha prestosa';
-$labels['setdefault'] = 'Escoyer opción preferida';
+$labels['setdefault'] = 'Escoyer opción preferída';
$labels['autodetect'] = 'Escoyer automáticamente';
-$labels['language'] = 'Llingua';
-$labels['timezone'] = 'Estaya horaria';
+$labels['language'] = 'Idioma';
+$labels['timezone'] = 'Franxa horaria';
$labels['pagesize'] = 'Fileres per páxina';
-$labels['signature'] = 'Robla';
+$labels['signature'] = 'Firma';
$labels['dstactive'] = 'Cambéu horariu';
-$labels['showinextwin'] = 'Abrir mensaxe nuna ventana nueva';
-$labels['composeextwin'] = 'Escribir nuna ventana nueva';
-$labels['htmleditor'] = 'Facer el mensaxe en HTML';
-$labels['htmlonreply'] = 'namái en rempuesta a un mensaxe HTML';
-$labels['htmlonreplyandforward'] = 'en reunviu o rempuesta al mensaxe HTML';
-$labels['htmlsignature'] = 'Robla HTML';
-$labels['showemail'] = 'Amosar direición de corréu-e al visualizar el nome';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Facer el mensaxe n\'HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'Firma HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Entever';
$labels['skin'] = 'Estilu';
$labels['logoutclear'] = 'Vaciar la papelera al zarrar la sesión';
@@ -363,71 +411,71 @@ $labels['uisettings'] = 'Interfaz d\'usuariu';
$labels['serversettings'] = 'Configuración del sirvidor';
$labels['mailboxview'] = 'Vista del buzón';
$labels['mdnrequests'] = 'Avisos d\'unvios';
-$labels['askuser'] = 'entrugame';
+$labels['askuser'] = 'preguntar al usuariu';
$labels['autosend'] = 'unviar de secute';
-$labels['autosendknown'] = 'unviar acuse de recibu a los mios contautos, col restu entrugame';
-$labels['autosendknownignore'] = 'unviar acuse de recibu a los mios contautos, non a los demás';
-$labels['ignore'] = 'inorar';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ignoralos';
$labels['readwhendeleted'] = 'Marcar el mensaxe como lleíu al desanicialu';
$labels['flagfordeletion'] = 'Marcar el mensaxe pa desaniciase en cuenta de desanicialu dafechu';
$labels['skipdeleted'] = 'Nun amosar los mensaxes desaniciaos';
-$labels['deletealways'] = 'Si falla el treslladar los mensaxes a la Papelera, desanicialos';
-$labels['deletejunk'] = 'Desaniciar direutamente el correú de Puxarra';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Amosar imáxenes remotes';
$labels['fromknownsenders'] = 'de contautos conocíos';
$labels['always'] = 'siempre';
-$labels['showinlineimages'] = 'Amosar imáxenes axuntes embaxo\'l mensaxe';
+$labels['showinlineimages'] = 'Amosar imáxenes axuntes embaxu\'l mensaxe';
$labels['autosavedraft'] = 'Guardar borrador de secute';
$labels['everynminutes'] = 'cada $n minutu/os';
-$labels['refreshinterval'] = 'Anovar (comprobar mensaxes nuevos, etc.)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nunca';
-$labels['immediately'] = 'darréu';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'Vista de mensaxes';
$labels['messagescomposition'] = 'Edición de mensaxes';
$labels['mimeparamfolding'] = 'Nomes d\'axuntos';
$labels['2231folding'] = 'Too RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Too RFC 2047 (otros)';
-$labels['force7bit'] = 'Usar codificación MIME pa caráuteres de 8 bits';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Opciones avanzaes';
$labels['focusonnewmessage'] = 'Poner el focu nos mensaxes nuevos';
$labels['checkallfolders'] = 'Guetar mensaxes nuevos en toles bandexes';
$labels['displaynext'] = 'Depués de mover/desaniciar amosar el mensaxe que sigue darréu';
-$labels['defaultfont'] = 'Tipu de lletra predeterminada del mensaxe HTML';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Opciones principales';
-$labels['browseroptions'] = 'Opciones del navegador';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Seición';
-$labels['maintenance'] = 'Caltenimientu';
+$labels['maintenance'] = 'Mantenimientu';
$labels['newmessage'] = 'Mensax nuevu';
-$labels['signatureoptions'] = 'Opciones de robla';
-$labels['whenreplying'] = 'Al responder';
-$labels['replyempty'] = 'nun citar el mensaxe orixinal';
-$labels['replytopposting'] = 'empezar un mensaxe nuevu encima del orixinal';
-$labels['replybottomposting'] = 'empezar un mensaxe nuevu debaxo del orixinal';
-$labels['replyremovesignature'] = 'Desaniciar la robla orixinal del mensaxe al responder';
-$labels['autoaddsignature'] = 'Amestar robla automáticamente';
-$labels['newmessageonly'] = 'namái mensaxe nuevu';
-$labels['replyandforwardonly'] = 'namái rempuestes y reunvios';
-$labels['insertsignature'] = 'Inxertar robla';
-$labels['previewpanemarkread'] = 'Marcar mensaxe previsualizáu como lleíu';
-$labels['afternseconds'] = 'dempués de $n segundos';
-$labels['reqmdn'] = 'Solicitar siempre un acuse de recibu';
-$labels['reqdsn'] = 'Solicitar siempre la entrega de notificaciones d\'estáu';
-$labels['replysamefolder'] = 'Allugar les rempuestes na bandexa del mensaxe que se respuende';
-$labels['defaultabook'] = 'Llibreta de direiciones predeterminada';
-$labels['autocompletesingle'] = 'Omitir direiciones de corréu alternatives n\'autocompletáu';
-$labels['listnamedisplay'] = 'Llistar contautos como';
-$labels['spellcheckbeforesend'] = 'Comprobar ortografía enantes d\'unviar un mensaxe';
-$labels['spellcheckoptions'] = 'Opciones d\'ortografía';
-$labels['spellcheckignoresyms'] = 'Inorar pallabres con símbolos';
-$labels['spellcheckignorenums'] = 'Inorar pallabres con númberos';
-$labels['spellcheckignorecaps'] = 'Inorar pallabres con too mayúscules';
-$labels['addtodict'] = 'Amestar al diccionariu';
-$labels['mailtoprotohandler'] = 'Rexistrar controlador de protocolu pa enllaces \'mailto:\'';
-$labels['standardwindows'] = 'Xestionar ventanes emerxentes como ventanes estándar';
-$labels['forwardmode'] = 'Reunviu de mensaxes';
-$labels['inline'] = 'en llinia';
-$labels['asattachment'] = 'como axuntu';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Bandexa';
$labels['folders'] = 'Bandexes';
$labels['foldername'] = 'Nome de bandexa';
@@ -437,47 +485,54 @@ $labels['create'] = 'Facer';
$labels['createfolder'] = 'Facer una bandexa nueva';
$labels['managefolders'] = 'Alministrar bandexes';
$labels['specialfolders'] = 'Bandexes especiales';
-$labels['properties'] = 'Propiedaes';
-$labels['folderproperties'] = 'Propiedaes de la bandexa';
-$labels['parentfolder'] = 'Bandexa contenedora';
-$labels['location'] = 'Llocalización';
-$labels['info'] = 'Información';
-$labels['getfoldersize'] = 'Clic pa saber el tamañu de la bandexa';
-$labels['changesubscription'] = 'Clic pa camudar soscripción';
-$labels['foldertype'] = 'Tipu de bandexa';
-$labels['personalfolder'] = 'Bandexa privada';
-$labels['otherfolder'] = 'Bandexa d\'otru usuariu';
-$labels['sharedfolder'] = 'Bandexa pública';
+$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'] = 'Ordenar por';
-$labels['sortasc'] = 'Orde ascendente';
-$labels['sortdesc'] = 'Orde descendente';
-$labels['undo'] = 'Desfacer';
-$labels['installedplugins'] = 'Complementos instalaos';
-$labels['plugin'] = 'Complementu';
-$labels['version'] = 'Versión';
-$labels['source'] = 'Orixe';
-$labels['license'] = 'Llicencia';
-$labels['support'] = 'Obtener soporte';
+$labels['sortasc'] = 'Orden ascendente';
+$labels['sortdesc'] = 'Orden descendente';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
-$labels['english'] = 'Inglés';
-$labels['westerneuropean'] = 'Européu occidental';
-$labels['easterneuropean'] = 'Européu oriental';
-$labels['southeasterneuropean'] = 'Européu suroriental';
-$labels['baltic'] = 'Bálticu';
-$labels['cyrillic'] = 'Cirílicu';
-$labels['arabic'] = 'Ãrabe';
-$labels['greek'] = 'Griegu';
-$labels['hebrew'] = 'Hebréu';
-$labels['turkish'] = 'Turcu';
-$labels['nordic'] = 'Nórdicu';
-$labels['thai'] = 'Tailandés';
-$labels['celtic'] = 'Celta';
-$labels['vietnamese'] = 'Vietnamín';
-$labels['japanese'] = 'Xaponés';
-$labels['korean'] = 'Coreanu';
-$labels['chinese'] = 'Chinu';
+$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/ast/messages.inc b/program/localization/ast/messages.inc
index 35a850e57..9e415b8ec 100644
--- a/program/localization/ast/messages.inc
+++ b/program/localization/ast/messages.inc
@@ -15,156 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = '¡Hebo un fallu!';
-$messages['loginfailed'] = 'Contraseña o nome d\'usuariu incorreutu.';
-$messages['cookiesdisabled'] = 'El to navegador nun aceuta "cookies';
-$messages['sessionerror'] = 'La to sesión nun val o caducó.';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'La clave nun val';
+$messages['cookiesdisabled'] = 'El to navegador nun acepta "cookies';
+$messages['sessionerror'] = 'La to sesión nun val';
$messages['storageerror'] = 'Fallu de conexón col sirvidor IMAP';
$messages['servererror'] = '¡Fallu del sirvidor!';
-$messages['servererrormsg'] = 'Fallu de sirvidor: $msg';
-$messages['dberror'] = '¡Fallu na base de datos!';
-$messages['requesttimedout'] = 'Caducó\'l tiempu de rempuesta.';
-$messages['errorreadonly'] = 'Imposible facer la operación. La bandexa ye de namái-llectura.';
-$messages['errornoperm'] = 'Imposible facer la operación. Denegóse\'l permisu.';
-$messages['erroroverquota'] = 'Nun pudo completase la operación. Nun queda espaciu nel discu.';
-$messages['erroroverquotadelete'] = 'Nun queda espaciu nel discu. Usa Shift+Supr pa desaniciar un mensaxe.';
+$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'] = 'Fallu de la solicitú. Nun se guardaron datos.';
-$messages['invalidhost'] = 'Nome de sirvidor inválidu.';
-$messages['nomessagesfound'] = 'Nun s\'atoparon mensaxes na bandexa';
-$messages['loggedout'] = 'Zarraste la sesión. ¡Talluéu!';
+$messages['invalidhost'] = 'Invalid server name.';
+$messages['nomessagesfound'] = 'Nun doi con mensaxes';
+$messages['loggedout'] = 'Zarraste la sesión.';
$messages['mailboxempty'] = 'La to cuenta nun tien mensaxes';
-$messages['refreshing'] = 'Anovando...';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Cargando...';
-$messages['uploading'] = 'Xubiendo ficheru';
-$messages['uploadingmany'] = 'Xubiendo ficheros...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Cargando datos...';
$messages['checkingmail'] = 'A la gueta de mensaxes nuevos...';
$messages['sendingmessage'] = 'Unviando mensaxe...';
-$messages['messagesent'] = 'Unvióse\'l mensaxe.';
+$messages['messagesent'] = 'Unviose\'l mensaxe';
$messages['savingmessage'] = 'Guardar mensaxe...';
$messages['messagesaved'] = 'El mensaxe guardóse en borradores';
-$messages['successfullysaved'] = 'Guardóse correchamente';
-$messages['addedsuccessfully'] = 'El contautu amestóse correchamente a la llibreta de direiciones';
-$messages['contactexists'] = 'Yá hai un contautu con esa direición de corréu-e.';
-$messages['contactnameexists'] = 'Yá esiste un contautu col mesmu nome.';
-$messages['blockedimages'] = 'Pa protexer la to privacidá, torgáronse les imáxenes esternes nesti mensaxe.';
-$messages['encryptedmessage'] = 'Esti ye un mensaxe cifráu y nun soi a amosalu. ¡Sentímoslo!';
-$messages['nocontactsfound'] = 'Nun doi con dengún contautu';
-$messages['contactnotfound'] = 'Nun s\'atopa\'l contautu solicitáu.';
-$messages['contactsearchonly'] = 'Introduz dalgún criteriu pa guetar contautos';
-$messages['sendingfailed'] = 'Falló l\'unviu del mensaxe';
+$messages['successfullysaved'] = 'Guardose correchamente';
+$messages['addedsuccessfully'] = 'El contautu amestose correchamente a la llibreta de direiciones';
+$messages['contactexists'] = 'Yá hai un contuaut con es direición de corréu';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
+$messages['blockedimages'] = 'Pa protexer la to privacidá, torgáronse les imáxenes esternes n\'esti mensaxe';
+$messages['encryptedmessage'] = 'Esti ye un mensaxe cifráu y nun soi a amosalu.';
+$messages['nocontactsfound'] = 'Nun doi con nengún contautu';
+$messages['contactnotfound'] = 'Nun doi col contautu que pides';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
+$messages['sendingfailed'] = 'Falló l\'unvio del mensaxe';
$messages['senttooquickly'] = 'Por favor espera $sec segundu/os enantes d\'unviar esti mensaxe.';
-$messages['errormoving'] = 'Nun pudo movese el/los mensaxe(s).';
-$messages['errorcopying'] = 'Nun pudo copiase el/los mensaxe(s).';
-$messages['errordeleting'] = 'Nun pudo desaniciase el/los mensaxe(s)';
-$messages['errormarking'] = 'Nun pudo marcase el/los mensaxe(s)';
-$messages['deletecontactconfirm'] = '¿Daveres que quies desaniciar el contautu(os) seleicionáu(os)?';
-$messages['deletegroupconfirm'] = '¿Daveres que quies desaniciar el grupu seleicionáu?';
+$messages['errorsavingsent'] = 'Di con un fallu al guardar el mensaxe';
+$messages['errorsaving'] = 'Falló al guardase';
+$messages['errormoving'] = 'Nun fui a mover el mensaxe';
+$messages['errorcopying'] = 'Could not copy the message(s).';
+$messages['errordeleting'] = 'Nun fui a desaniciar el mensaxe';
+$messages['errormarking'] = 'Nun se puede marcar el mensaxe';
+$messages['deletecontactconfirm'] = '¿Tas seguru de desaniciar los contautos que marcaste?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = '¿Tas seguru de desaniciar los mensaxes que marcaste?';
-$messages['deletefolderconfirm'] = '¿Daveres que quies desaniciar esta bandexa?';
-$messages['purgefolderconfirm'] = '¿Daveres que quies desaniciar tolos mensaxes d\'esta bandexa?';
-$messages['contactdeleting'] = 'Desaniciando contautu(os)...';
-$messages['groupdeleting'] = 'Desaniciando grupu...';
+$messages['deletefolderconfirm'] = '¿Tas seguru de desaniciar esta bandexa?';
+$messages['purgefolderconfirm'] = '¿Tas seguru de desaniciar tolos mensaxes d\'esta bandexa?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'Desaniciando la bandexa...';
$messages['foldermoving'] = 'Moviendo la bandexa...';
-$messages['foldersubscribing'] = 'Soscribiendo bandexa...';
-$messages['folderunsubscribing'] = 'Desoscribiendo bandexa...';
-$messages['formincomplete'] = 'Tienes de rellenar tolos campos del formulariu.';
-$messages['noemailwarning'] = 'Por favor, introduz un corréu válidu.';
-$messages['nonamewarning'] = 'Por favor, introduz un nome.';
-$messages['nopagesizewarning'] = 'Por favor, introduz un tamañu de páxina.';
-$messages['nosenderwarning'] = 'Por favor introduz un corréu dende onde unviar mensaxes';
-$messages['norecipientwarning'] = 'Por favor, introduz polo menos un destinatariu';
-$messages['nosubjectwarning'] = 'El campo "Asuntu" ta vacíu. ¿Quies rellenalu agora?';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
+$messages['formincomplete'] = 'Tienes de rellenar tolos campos del formulariu';
+$messages['noemailwarning'] = 'Por favor, dame un corréu válidu';
+$messages['nonamewarning'] = 'Por favor, dame\'l to nome';
+$messages['nopagesizewarning'] = 'Por favor, dame un tamañu de páxina';
+$messages['nosenderwarning'] = 'Por favor dame un corréu dende donde unviar mesaxes';
+$messages['norecipientwarning'] = 'Por favor, dame polo menos un destinatariu';
+$messages['nosubjectwarning'] = 'El campo "Asuntu" ta vacíu. ¿Quiés rellenalu anguaño?';
$messages['nobodywarning'] = '¿Quies unviar esti mensaxe ensin testu?';
-$messages['notsentwarning'] = 'Nun s\'unvió\'l mensaxe. ¿Quies desanicialu?';
-$messages['noldapserver'] = 'Por favor, escueyi un sirvidor LDAP pa buscar.';
-$messages['nosearchname'] = 'Por favor, introduz un nome o una direición de corréu-e.';
-$messages['notuploadedwarning'] = 'Entá nun se xubieron tolos axuntos. Por favor, espera o encaboxa la xuba.';
-$messages['searchsuccessful'] = 'Atopáronse $nr mensaxes.';
-$messages['contactsearchsuccessful'] = 'Atopáronse $nr contautos.';
-$messages['searchnomatch'] = 'Nun s\'atopó dengún resultáu';
+$messages['notsentwarning'] = 'Nun unvie\'l mensaxe. ¿Quies desanicialu?';
+$messages['noldapserver'] = 'Por favor, escueye un sirvidor LDAP pa buscar';
+$messages['nosearchname'] = 'Por favor, dame un nome o una direición de corréu';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = 'Di con $nr mensaxes';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
+$messages['searchnomatch'] = 'Nun di con nengún resultáu';
$messages['searching'] = 'A la gueta...';
$messages['checking'] = 'Comprobando...';
-$messages['nospellerrors'] = 'Nun s\'atoparon errores ortográficos';
-$messages['folderdeleted'] = 'Desanicióse la bandexa correchamente';
-$messages['foldersubscribed'] = 'Soscritu a bandexa correchamente.';
-$messages['folderunsubscribed'] = 'Soscripción a bandexa anulada correchamente.';
-$messages['folderpurged'] = 'Bandexa purgada correutamente.';
-$messages['folderexpunged'] = 'Bandexa compautada correutamente.';
-$messages['deletedsuccessfully'] = 'Desanicióse correchamente';
+$messages['nospellerrors'] = 'Nun di con errores ortográficos';
+$messages['folderdeleted'] = 'Desaniciose la bandexa correchamente';
+$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'] = 'Desaniciose correchamente';
$messages['converting'] = 'Desaniciando\'l formatu del mensaxe...';
-$messages['messageopenerror'] = 'Nun pue descargase\'l mensaxe del sirvidor.';
-$messages['fileuploaderror'] = 'Fallu al xubir ficheros.';
+$messages['messageopenerror'] = 'Nun soi a baxer el mensaxe del sirvidor';
+$messages['fileuploaderror'] = 'Fallu al xubir ficheros';
$messages['filesizeerror'] = 'El ficheru ye más grande de lo permitío ($size)';
-$messages['copysuccess'] = '$nr contautos copiaos correchamente.';
-$messages['movesuccess'] = '$nr contautos movíos correchamente.';
-$messages['copyerror'] = 'Nun pudo copiase dengún contautu.';
-$messages['moveerror'] = 'Nun pudo movese dengún contautu.';
+$messages['copysuccess'] = 'Copiaronse $nr direiciones correchamente';
+$messages['copyerror'] = 'Nun fui a copiar nenguna direición';
$messages['sourceisreadonly'] = 'Esta direición ye de namái-llectura';
-$messages['errorsavingcontact'] = 'Nun pudo guardase la direición del contautu';
-$messages['movingmessage'] = 'Moviendo mensaxe(s)...';
-$messages['copyingmessage'] = 'Copiando mensaxe(s)...';
-$messages['copyingcontact'] = 'Copiando contautu(os)...';
-$messages['movingcontact'] = 'Moviendo contautu(os)...';
-$messages['deletingmessage'] = 'Desaniciando mensaxe(s)...';
-$messages['markingmessage'] = 'Marcando mensaxe(s)...';
-$messages['addingmember'] = 'Amestando contautu(os) al grupu...';
-$messages['removingmember'] = 'Quitando contautu(os) del grupu...';
-$messages['receiptsent'] = 'Unvióse correchamente l\'avisu de llectura.';
-$messages['errorsendingreceipt'] = 'Nun pudo unviase l\'avisu de llectura.';
-$messages['deleteidentityconfirm'] = '¿Daveres que quies desaniciar esta identidá?';
-$messages['nodeletelastidentity'] = 'Nun pue desaniciase esa identidá porque ye la última.';
-$messages['forbiddencharacter'] = 'El nome de la bandexa tien un caráuter non validu.';
-$messages['selectimportfile'] = 'Por favor escueyi\'l ficheru que quies xubir';
-$messages['addresswriterror'] = 'Nun pue escribise na llibreta de direiciones seleicionada.';
-$messages['contactaddedtogroup'] = 'Amestáronse correutamente los contautos a esti grupu.';
-$messages['contactremovedfromgroup'] = 'Desaniciáronse correutamente los contautos a esti grupu.';
-$messages['nogroupassignmentschanged'] = 'Nun hai cambeos n\'asignación de grupos.';
+$messages['errorsavingcontact'] = 'Nun fui a guardar la direición del contautu';
+$messages['movingmessage'] = 'Moviendo\'l mensaxe...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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'] = 'Unviose correchamente l\'avisu de llectura.';
+$messages['errorsendingreceipt'] = 'Nun fui a unviar l\'avisu de llectura.';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
+$messages['nodeletelastidentity'] = 'Nun puedo desaniciar esa identidá porque ye la última.';
+$messages['forbiddencharacter'] = 'El nome de la bandexa tien un caráuter que nun val';
+$messages['selectimportfile'] = 'Por favor escueye el ficheru que quies xubir';
+$messages['addresswriterror'] = 'Nun puedo escribir nel llibru de direiciones qu\'escoyisti';
+$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'] = 'Importando, dame un minutín...';
-$messages['importformaterror'] = '¡La importación falló! El ficheru unviáu nun ye un ficheru válidu d\'importación.';
-$messages['importconfirm'] = '<b>Importáronse correchamente $inserted contautos</b>';
-$messages['importconfirmskipped'] = '<b>Inoraes $skipped entraes esistentes</b>';
-$messages['importmessagesuccess'] = '$nr mensaxes importaos con éxitu';
-$messages['importmessageerror'] = '¡Falló la importación! El ficheru xubíu nun ye un ficheru válidu de mensaxe o buzón de corréu';
-$messages['opnotpermitted'] = '¡Nun tienes permisu pa facelo!';
-$messages['nofromaddress'] = 'El contautu seleicionáu nun tien direición de corréu-e.';
-$messages['editorwarning'] = 'Si pases a editor en mou testu vas perder tol estilu aplicáu al mensaxe. ¿Tas seguru de que quies facelo?';
-$messages['httpreceivedencrypterror'] = 'Hai un fallu grave de configuración. Contauta col alministrador de secute. <b>Nun pue unviase\'l mensaxe</b>';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Importaronse correchamente $inserted contautos, saltáronse $skipped entrase que yá esistíen</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Nun tienes permisu pa facelo.';
+$messages['nofromaddress'] = 'Perdiose la direición de corréu de la identidá qu\'escoyisti';
+$messages['editorwarning'] = 'Si pases a editor en modu testu vas perder tol estilu aplicáu al mensaxe. ¿Tas seguru de que quies facelo?';
+$messages['httpreceivedencrypterror'] = 'Hai un fallu garrafal de configuración. Contauta col alministrador de secute. <b>Nun se pude unviar el mesaxe</b>';
$messages['smtpconnerror'] = 'Fallu SMTP ($code): Fallu de conexón col sirvidor';
$messages['smtpautherror'] = 'Fallu SMTP ($code): Fallu d\'autorización';
-$messages['smtpfromerror'] = 'Fallu SMTP ($code): Fallu al afitar l\'emisor "$from" ($msg)';
+$messages['smtpfromerror'] = 'Fallu SMTP ($code): Fallu al aficar el remitente "$from" ($msg)';
$messages['smtptoerror'] = 'Fallu SMTP ($code): Fallu al amestar el destinatariu "$to" ($msg)';
-$messages['smtprecipientserror'] = 'Fallu SMTP: Nun pue amosase la llista de destinatarios.';
+$messages['smtprecipientserror'] = 'Fallu SMTP: Nun soi a amosar la llista de destinatarios';
$messages['smtperror'] = 'Fallu SMTP: $msg';
-$messages['emailformaterror'] = 'Direición de corréu incorreuta: $email';
-$messages['toomanyrecipients'] = 'Hai munchos destinatarios. Amenorga\'l númberu de destinatarios a $max.';
-$messages['maxgroupmembersreached'] = 'El númberu de miembros del grupu perpasa\'l máximu de $max.';
-$messages['contactdelerror'] = 'Nun pudo desaniciase el/los contautu(os).';
-$messages['contactdeleted'] = 'Contautu(os) desaniciáu(os) correchamente.';
-$messages['contactrestoreerror'] = 'Nun pudieron restaurase los contautos desaniciaos.';
-$messages['contactrestored'] = 'Los contautos restauráronse con éxitu.';
-$messages['groupdeleted'] = 'Grupu desaniciáu correchamente.';
-$messages['grouprenamed'] = 'Grupu renomáu correchamente.';
-$messages['groupcreated'] = 'Grupu creáu correchamente.';
-$messages['savedsearchdeleted'] = 'La busca guardada, desanicióse con éxitu.';
-$messages['savedsearchdeleteerror'] = 'Nun pudo desaniciase la busca guardada.';
-$messages['savedsearchcreated'] = 'Guardóse correchamente la busca.';
-$messages['savedsearchcreateerror'] = 'Nun pudo guardase la busca.';
-$messages['messagedeleted'] = 'Mensaxe(s) desaniciaos correchamente.';
-$messages['messagemoved'] = 'Mensaxe(s) movíos correchamente.';
-$messages['messagecopied'] = 'Mensaxe(s) copiaos correchamente.';
-$messages['messagemarked'] = 'Mensaxe(s) marcaos correchamente.';
-$messages['autocompletechars'] = 'Introduz a lo menso $min caráuteres p\'autocompletar.';
-$messages['autocompletemore'] = 'Atopáronse más coincidencies. Por favor, escribi más caráuteres.';
-$messages['namecannotbeempty'] = 'Hai que poner el nome.';
-$messages['nametoolong'] = 'El nome ye abondo llargu.';
-$messages['folderupdated'] = 'Bandexa anovada correchamente.';
-$messages['foldercreated'] = 'Bandexa creada correchamente.';
-$messages['invalidimageformat'] = 'Nun ye un formatu d\'imaxe válidu.';
-$messages['mispellingsfound'] = 'Deteutáronse fallos ortográficos nel mensaxe.';
-$messages['parentnotwritable'] = 'Nun puede crease/movese la carpeta a la carpeta superior elexida. Nun tienes permisos d\'accesu.';
-$messages['messagetoobig'] = 'Esta parte del mensaxe ye enforma grande pa procesala';
-$messages['attachmentvalidationerror'] = '¡ATENCIÓN! Esti axuntu ye sospechosu porque\'l so tipu nun concasa col tipu declaráu nel mensaxe. Si nun confíes nel so remitente, nun tendríes d\'abrilu nel to navegador porque podría tener conteníu maliciosu.<br/<br/> <em>Esperábase: $expected; atopóse: $detected</em>';
-$messages['noscriptwarning'] = 'Avisu: ¡esti serviciu de webmail necesita Javascript! Pa poder usalu, habilita\'l soporte de Javascript nel to navegador, por favor.';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/az_AZ/labels.inc b/program/localization/az_AZ/labels.inc
index 60930a49d..0cb4b3e82 100644
--- a/program/localization/az_AZ/labels.inc
+++ b/program/localization/az_AZ/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product-a xoş gəldiniz!';
$labels['username'] = 'İstifadəçi adı';
$labels['password'] = 'ÅžifrÉ™';
$labels['server'] = 'Server';
$labels['login'] = 'GiriÅŸ';
+
+// taskbar
$labels['logout'] = 'Çıx';
$labels['mail'] = 'Poçt';
$labels['settings'] = 'Nizamlamalar';
$labels['addressbook'] = 'Ãœnvanlar';
+
+// mailbox names
$labels['inbox'] = 'Gələnlər';
$labels['drafts'] = 'Qaralamalar';
$labels['sent'] = 'Göndərilənlər';
$labels['trash'] = 'Səbət';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Xüsusi qovluqlar üçün real adları göstər';
+
+// message listing
$labels['subject'] = 'Mövzu';
$labels['from'] = 'Kimdən';
$labels['sender'] = 'Göndərən';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Vaciblik';
$labels['organization'] = 'Təşkilat';
$labels['readstatus'] = 'Statusu oxu';
$labels['listoptions'] = 'Siyahı ayarları...';
+
$labels['mailboxlist'] = 'Qovluqlar';
$labels['messagesfromto'] = '$count mesajdan $from - $to arası mesajlar';
$labels['threadsfromto'] = 'Müzakirə: $from - $to Toplam: $count';
$labels['messagenrof'] = 'Məktub: $nr / $count';
$labels['fromtoshort'] = '$from – $to-dan $count';
+
$labels['copy'] = 'Kopyala';
$labels['move'] = 'Köçür';
$labels['moveto'] = 'Burada köçür...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Endir';
$labels['open'] = 'Aç';
$labels['showattachment'] = 'Göstər';
$labels['showanyway'] = 'İstənilən halda göstər';
+
$labels['filename'] = 'Faylın adı';
$labels['filesize'] = 'Faylın ölçüsü';
+
$labels['addtoaddressbook'] = 'Ünvanlara əlavə et';
+
+// weekdays short
$labels['sun'] = 'B';
$labels['mon'] = 'Be';
$labels['tue'] = 'Ç';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Ça';
$labels['thu'] = 'C';
$labels['fri'] = 'Ca';
$labels['sat'] = 'Åž';
+
+// weekdays long
$labels['sunday'] = 'Bazar';
$labels['monday'] = 'Bazar ertəsi';
$labels['tuesday'] = 'Çərçənbə';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Çərşənbə axşamı';
$labels['thursday'] = 'Cümə';
$labels['friday'] = 'Cümə axşamı';
$labels['saturday'] = 'Şənbə';
+
+// months short
$labels['jan'] = 'Yan';
$labels['feb'] = 'Fev';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sen';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Noy';
$labels['dec'] = 'Dek';
+
+// months long
$labels['longjan'] = 'Yanvar';
$labels['longfeb'] = 'Fevral';
$labels['longmar'] = 'Mart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Sentyabr';
$labels['longoct'] = 'Oktyabr';
$labels['longnov'] = 'Noyabr';
$labels['longdec'] = 'Dekabr';
+
$labels['today'] = 'Bu gün';
+
+// toolbar buttons
$labels['refresh'] = 'YenilÉ™';
$labels['checkmail'] = 'Gələnləri yoxla';
$labels['compose'] = 'Məktub yaz';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Daha çox seçim...';
$labels['more'] = 'Daha çox';
$labels['back'] = 'Geri';
$labels['options'] = 'Ayarlar';
+
$labels['select'] = 'Seçin';
$labels['all'] = 'Hamısı';
$labels['none'] = 'Heç biri';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Hazırki səhifəni';
$labels['unread'] = 'Oxunmamışları';
$labels['flagged'] = 'İşarəliləri';
$labels['unanswered'] = 'Cavabsızları';
-$labels['withattachment'] = 'QoÅŸma ilÉ™';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Silinmişləri';
$labels['undeleted'] = 'Silinməyib';
$labels['invert'] = 'İnvertliləri';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Hamısını aç';
$labels['expand-unread'] = 'Oxunmamışları aç';
$labels['collapse-all'] = 'Hamısını bük';
$labels['threaded'] = 'Müzakirə';
+
$labels['autoexpand_threads'] = 'Müzakirəni aç';
$labels['do_expand'] = 'bütün müzakirələr';
$labels['expand_only_unread'] = 'yalnız oxunmamış məktublarla';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Sütunlar';
$labels['listsorting'] = 'Sütunları çeşidlə';
$labels['listorder'] = 'Çeşidləmə qaydası';
$labels['listmode'] = 'Görünüş rejimi';
+
$labels['folderactions'] = 'Qovluq işləri...';
$labels['compact'] = 'Sıx';
$labels['empty'] = 'BoÅŸalt';
-$labels['importmessages'] = 'Mesajların idxalı';
+
$labels['quota'] = 'Disk istifadəsi';
$labels['unknown'] = 'naməlum';
$labels['unlimited'] = 'limitsiz';
+
$labels['quicksearch'] = 'Sürətli axtarış';
$labels['resetsearch'] = 'Axtarışı yenilə';
$labels['searchmod'] = 'Axtarış variantları';
$labels['msgtext'] = 'Bütün məktub';
$labels['body'] = 'Mətn';
-$labels['type'] = 'Növ';
-$labels['namex'] = 'Ad';
+
$labels['openinextwin'] = 'Yeni pəncərədə aç';
$labels['emlsave'] = 'Saxla (.eml)';
$labels['changeformattext'] = 'Sadə mətn formatında göstər';
$labels['changeformathtml'] = 'HTML formatında göstər';
+
+// message compose
$labels['editasnew'] = 'Yeni kimi redaktÉ™ et';
$labels['send'] = 'Göndər';
$labels['sendmessage'] = 'İndi göndər';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Cavab sorÄŸusu';
$labels['dsn'] = 'Çatdırılma statusu haqda bildiriş';
$labels['mailreplyintro'] = '$date tarixdə, $sender yazıb:';
$labels['originalmessage'] = 'Orijinal məktub';
+
$labels['editidents'] = 'İdentifikasiyanı dəyiş';
$labels['spellcheck'] = 'Orfoqrafiya';
$labels['checkspelling'] = 'Orfoqrafiyanı yoxla';
$labels['resumeediting'] = 'Redaktəni davam et';
$labels['revertto'] = 'Dəyişiklikləri ləğv et';
+
$labels['attach'] = 'Fayl əlavə et';
$labels['attachments'] = 'Bərkidilmiş Fayllar';
$labels['upload'] = 'Yüklə';
$labels['uploadprogress'] = '$percent ($current cəmi: $total)';
$labels['close'] = 'BaÄŸla';
$labels['messageoptions'] = 'Məktub xüsusiyyətləri...';
+
$labels['low'] = 'Alçaq';
$labels['lowest'] = 'Çox alçaq';
$labels['normal'] = 'Normal';
$labels['high'] = 'Yüksək';
$labels['highest'] = 'Çox yüksək';
+
$labels['nosubject'] = '(mövzu yoxdur)';
$labels['showimages'] = 'Şəkilləri göstər';
$labels['alwaysshow'] = '$sender-dən olan məktublarda həmişə şəkilləri göstər';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Bu qaralama məktubudur.';
$labels['andnmore'] = 'Daha çox $nr more...';
$labels['togglemoreheaders'] = 'Daha çox məktub';
$labels['togglefullheaders'] = 'Məktubun çiy başlıqlarını keçir';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Mətn';
$labels['savesentmessagein'] = 'Məktubu saxla...';
$labels['dontsave'] = 'saxlama';
$labels['maxuploadsize'] = 'Faylın maksimal ölçüsü: $size';
+
$labels['addcc'] = 'Kopya əlavə et';
$labels['addbcc'] = 'Gizli kopya əlavə et';
$labels['addreplyto'] = 'Yönəltmə əlavə et';
$labels['addfollowupto'] = '"İzlə" əlavə et';
+
+// mdn
$labels['mdnrequest'] = 'Məktubu göndərən onu oxuduğunuz haqda sorğu almaq istəyir. Göndərilsin?';
$labels['receiptread'] = 'Oxunulma haqda soÄŸru';
$labels['yourmessage'] = 'Bu məktubunuzun oxunulduğu haqda sorğudur';
$labels['receiptnote'] = 'Bu sorğu yalnız qəbul edilən tərəfindən məktubun açıldığına göstərir. Onun oxunulduğuna zəmanət vermir.';
+
+// address boook
$labels['name'] = 'Göstərilən ad';
$labels['firstname'] = 'Adı';
$labels['surname'] = 'Soyadı';
@@ -262,6 +301,7 @@ $labels['search'] = 'Axtar';
$labels['advsearch'] = 'Ætraflı axtarış';
$labels['advanced'] = 'ÆlavÉ™';
$labels['other'] = 'BaÅŸqa';
+
$labels['typehome'] = 'Ev';
$labels['typework'] = 'Ä°ÅŸ';
$labels['typeother'] = 'BaÅŸqa';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Köməkçi';
$labels['typehomepage'] = 'Ana səhifə';
$labels['typeblog'] = 'Bloq';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Sahə əlavə et';
$labels['addcontact'] = 'Ünvanlara əlavə et';
$labels['editcontact'] = 'Ünvanı redaktə et';
$labels['contacts'] = 'ÆlaqÉ™lÉ™r';
$labels['contactproperties'] = 'Kontakt xüsusiyyətləri';
$labels['personalinfo'] = 'Şəxsi məlumat';
+
$labels['edit'] = 'RedaktÉ™ et';
$labels['cancel'] = 'Ləğv et';
$labels['save'] = 'Saxla';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Adlandır';
$labels['addphoto'] = 'ÆlavÉ™ et';
$labels['replacephoto'] = 'Adı dəyiş';
$labels['uploadphoto'] = 'Şəkil yüklə';
+
$labels['newcontact'] = 'Yeni ünvan kartı əlavə et';
$labels['deletecontact'] = 'Seçilmiş ünvanları sil';
$labels['composeto'] = 'Seçilmiş ünvanlara məktub yaz';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'Ãœnvanlar qrupunu yarat';
$labels['grouprename'] = 'Qruğun adını dəyişdir';
$labels['groupdelete'] = 'Qrupu sil';
$labels['groupremoveselected'] = 'Qrupdan seçilmiş kontaktları sil';
+
$labels['previouspage'] = 'ÆvvÉ™lkini göstÉ™r';
$labels['firstpage'] = 'Birincini göstər';
$labels['nextpage'] = 'Sonrakını göstər';
$labels['lastpage'] = 'Sonuncunu göstər';
+
$labels['group'] = 'Qrup';
$labels['groups'] = 'Qruplar';
-$labels['listgroup'] = 'Qrup üzvlərinin siyahısı';
$labels['personaladrbook'] = 'Şəxsi ünvanlar';
+
$labels['searchsave'] = 'SorÄŸunu saxla';
$labels['searchdelete'] = 'SorÄŸunu sil';
+
$labels['import'] = 'Ä°dxal';
$labels['importcontacts'] = 'Ünvanların idxalı';
$labels['importfromfile'] = 'Fayldan idxal:';
+$labels['importtarget'] = 'ÆlaqÉ™ kitabçasına yeni kontaktları É™lavÉ™ et';
$labels['importreplace'] = 'Ünvan kitabçasını dəyiş';
$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';
+
+// settings
$labels['settingsfor'] = 'Nizamlamaları';
$labels['about'] = 'Haqqında';
$labels['preferences'] = 'Nizamlamalar';
$labels['userpreferences'] = 'İstifadəçi nizamlamaları';
$labels['editpreferences'] = 'İstifadəçi nizamlamalarını redaktə et';
+
$labels['identities'] = 'Kimliklər';
$labels['manageidentities'] = 'Bu hesab üçün kimlikləri idarə et';
$labels['newidentity'] = 'Yeni kimlik';
+
$labels['newitem'] = 'Yeni maddÉ™';
$labels['edititem'] = 'Maddəni redaktə et';
+
$labels['preferhtml'] = 'HTML-də göstər';
$labels['defaultcharset'] = 'İlkin vəziyyətdəki kodlaşdırma';
$labels['htmlmessage'] = 'HTML məktub';
@@ -350,7 +402,7 @@ $labels['htmleditor'] = 'HTML-dÉ™ mesaj yaz';
$labels['htmlonreply'] = 'yalnız HTML mesajlar ilə cavab';
$labels['htmlonreplyandforward'] = 'HTML məktuba cavab və yönəltmə zamanı';
$labels['htmlsignature'] = 'HTML imza';
-$labels['showemail'] = 'E-poçt ünvanları displey adları ilə göstər';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Prevyu paneli göstər';
$labels['skin'] = 'Ä°nterfeys stili';
$labels['logoutclear'] = 'Poçtdan çıxan zaman səbəti təmizlə';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Rəqəmlər ilə sözləri keç';
$labels['spellcheckignorecaps'] = 'Böyük hərfləri olan sözlərdən keç';
$labels['addtodict'] = 'Lüğətə əlavə et';
$labels['mailtoprotohandler'] = 'mailto: keçid üçün protokol qeyd et';
-$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['folder'] = 'Qovluq';
$labels['folders'] = 'Qovluqlar';
$labels['foldername'] = 'Qovluq adı';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'Qovluq növü';
$labels['personalfolder'] = 'Gizli qovluq';
$labels['otherfolder'] = 'Başqa istifadəçilərin qovluğu';
$labels['sharedfolder'] = 'Ä°ctimai qovluq';
+
$labels['sortby'] = 'Çeşidlə';
$labels['sortasc'] = 'Azdan çoxa';
$labels['sortdesc'] = 'Çoxdan aza';
$labels['undo'] = 'Ləğv et';
+
$labels['installedplugins'] = 'Yazılmış qoşmalar';
$labels['plugin'] = 'QoÅŸma';
$labels['version'] = 'Versiya';
$labels['source'] = 'Mənbə';
$labels['license'] = 'Lisenziya';
$labels['support'] = 'Dəstək';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Ä°ngilis dili';
$labels['westerneuropean'] = 'Qərbi Avropa';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'Vyetnamca';
$labels['japanese'] = 'Yaponca';
$labels['korean'] = 'Koreya';
$labels['chinese'] = 'Çincə';
+
?>
diff --git a/program/localization/az_AZ/messages.inc b/program/localization/az_AZ/messages.inc
index ddab8d702..418f270be 100644
--- a/program/localization/az_AZ/messages.inc
+++ b/program/localization/az_AZ/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Xəta baş verdi!';
$messages['loginfailed'] = 'GiriÅŸ uÄŸursuz oldu.';
$messages['cookiesdisabled'] = 'Sizin brauzer kukiləri qəbul etmir.';
@@ -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əktub saxlanılan zaman xəta baş verdi';
+$messages['errorsaving'] = 'Saxlanma prosesi zamanı problem 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ı';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Məktubun formatlaşması silinir...';
$messages['messageopenerror'] = 'Məktubu serverdən yükləmək alınmır';
$messages['fileuploaderror'] = 'Fayl yüklənilmədi';
$messages['filesizeerror'] = 'Yüklənilən fayl maksimal ölçüdən çoxdur - $size';
-$messages['copysuccess'] = '$nr kontaktlar uğurlar kopyalanmışdır.';
-$messages['movesuccess'] = '$nr kontaktlar uğurla köçürülmüşdür.';
-$messages['copyerror'] = 'Heç bir kontaktı kopyalamaq olmur.';
-$messages['moveerror'] = 'Heç bir kontaktı köçürmək alınmır.';
+$messages['copysuccess'] = '$nr ünvan kopyalandı';
+$messages['copyerror'] = 'Ünvanları kopyalamaq alınmır';
$messages['sourceisreadonly'] = 'Verilən ünvanlar mənbəyi yalnız oxunmaq üçün';
$messages['errorsavingcontact'] = 'ÆlaqÉ™ni ünvanda saxlamaq mümkün deyil';
$messages['movingmessage'] = 'Məktub köçürülür...';
$messages['copyingmessage'] = 'Məktub kopyalanır...';
$messages['copyingcontact'] = 'Kontakt(lar)ın kopyalanması...';
-$messages['movingcontact'] = 'Kontak(lar)ın köçürülməsi...';
$messages['deletingmessage'] = 'Məktub(lar) silinir...';
$messages['markingmessage'] = 'Məktub(lar) işarələnir...';
$messages['addingmember'] = 'Kontakt(lar)ın qrupa əlavə edilməsi...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'İdxal gedir, lütfən gözləyin...';
$messages['importformaterror'] = 'İdxal xətası. Yüklənilən fayl naməlum məlumat formatına malikdir.';
$messages['importconfirm'] = '<b>$inserted ünvanlar müvəffəqiyyətlə idxal edildi, mövcud $skipped buraxılıb</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Buraxılmış $skipped mövcud daxillər</b>';
-$messages['importmessagesuccess'] = '$nr məktublar uğurla idxal edildi';
-$messages['importmessageerror'] = 'İdxal alınmadı! Yüklənilmiş fayl düzgün məktub və ya poçt faylı deyil';
$messages['opnotpermitted'] = 'ÆmÉ™liyyat qadaÄŸandır!';
$messages['nofromaddress'] = 'Seçilmiş kimlikdə e-poçt ünvanları yoxdur';
$messages['editorwarning'] = 'Adi mətn redaktoruna keçid, bütün mətn formatlarının itkisinə gətirəcək. Davam edilsin?';
@@ -140,6 +139,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 baş verdi. 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ı';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Qovluğu seçilmiş ana qovluğa köçürmək/
$messages['messagetoobig'] = 'Məktubun bir hissəsi emal üçün böyükdür.';
$messages['attachmentvalidationerror'] = 'DÄ°QQÆT! Bu qoÅŸma şübhÉ™lidir, çünki mÉ™ktubda deyilÉ™n növlÉ™ eyni deyil. ÆgÉ™r siz göndÉ™rÉ™ güvÉ™nmirsinizsÉ™, brauzerdÉ™ bunu açmayın. TÉ™rkibi tÉ™hlükÉ™li ola bilÉ™r.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Xəbərdarlıq: Bu vebmeyl xidməti Javascript tələb edir! Funksiyanı istifadə etmək üçün lütfən, brauzerinizin ayarlarında Javascript-i yandırın.';
+
?>
diff --git a/program/localization/be_BE/labels.inc b/program/localization/be_BE/labels.inc
index 549c315a6..a5489a454 100644
--- a/program/localization/be_BE/labels.inc
+++ b/program/localization/be_BE/labels.inc
@@ -15,477 +15,524 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Вітаем у $product';
$labels['username'] = 'КарыÑтальнік';
$labels['password'] = 'Пароль';
$labels['server'] = 'Сервер';
$labels['login'] = 'Уваход';
+
+// taskbar
$labels['logout'] = 'Выхад';
$labels['mail'] = 'Пошта';
$labels['settings'] = 'ÐаÑтаўленні';
$labels['addressbook'] = 'ÐдраÑÐ½Ð°Ñ ÐºÐ½Ñ–Ð³Ð°';
+
+// mailbox names
$labels['inbox'] = 'ÐтрыманыÑ';
$labels['drafts'] = 'Чарнавікі';
$labels['sent'] = 'ДаÑланыÑ';
$labels['trash'] = 'Сметніца';
$labels['junk'] = 'Спам';
-$labels['show_real_foldernames'] = 'Паказваць ÑÐ°Ð¿Ñ€Ð°ÑžÐ´Ð½Ñ‹Ñ Ð½Ð°Ð·Ð²Ñ‹ Ð´Ð»Ñ Ð°Ð´Ð¼Ñ‹Ñловых папак';
+
+// message listing
$labels['subject'] = 'ТÑма';
$labels['from'] = 'Ðд каго';
-$labels['sender'] = 'Ðдпраўнік';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Каму';
-$labels['cc'] = 'КопіÑ';
-$labels['bcc'] = 'Ð¡Ñ…Ð°Ð²Ð°Ð½Ð°Ñ ÐºÐ¾Ð¿Ñ–Ñ';
-$labels['replyto'] = 'Ðдказаць-на';
-$labels['followupto'] = 'Групавы-адказ-на';
+$labels['cc'] = 'ÐšÐ¾Ð¿Ñ–Ñ (СС)';
+$labels['bcc'] = 'Сх.ÐºÐ¾Ð¿Ñ–Ñ (ВСС)';
+$labels['replyto'] = 'Ðдказаць на';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Дата';
$labels['size'] = 'Памер';
$labels['priority'] = 'ПрыÑрытÑÑ‚';
-$labels['organization'] = 'УÑтанова';
+$labels['organization'] = 'Organization';
$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['move'] = 'ПерамÑÑціць';
-$labels['moveto'] = 'ПерамÑÑціць у...';
-$labels['download'] = 'СцÑгнуць';
-$labels['open'] = 'Ðдкрыць';
-$labels['showattachment'] = 'Паказаць';
-$labels['showanyway'] = 'УÑÑ‘ адно паказваць';
-$labels['filename'] = 'Ðазва файла';
-$labels['filesize'] = 'Памер файла';
-$labels['addtoaddressbook'] = 'Дадаць у адраÑную кнігу';
-$labels['sun'] = 'нд';
-$labels['mon'] = 'пн';
-$labels['tue'] = 'аў';
-$labels['wed'] = 'ÑÑ€';
-$labels['thu'] = 'чц';
-$labels['fri'] = 'пт';
-$labels['sat'] = 'Ñб';
-$labels['sunday'] = 'нÑдзелÑ';
-$labels['monday'] = 'панÑдзелак';
-$labels['tuesday'] = 'аўторак';
-$labels['wednesday'] = 'Ñерада';
-$labels['thursday'] = 'чацвер';
-$labels['friday'] = 'пÑтніца';
-$labels['saturday'] = 'Ñубота';
-$labels['jan'] = 'Ñту';
-$labels['feb'] = 'лют';
-$labels['mar'] = 'Ñак';
-$labels['apr'] = 'кра';
-$labels['may'] = 'май';
-$labels['jun'] = 'чÑÑ€';
-$labels['jul'] = 'ліп';
-$labels['aug'] = 'жні';
-$labels['sep'] = 'вер';
-$labels['oct'] = 'каÑ';
-$labels['nov'] = 'ліÑ';
-$labels['dec'] = 'Ñне';
-$labels['longjan'] = 'Ñтудзень';
-$labels['longfeb'] = 'люты';
-$labels['longmar'] = 'Ñакавік';
-$labels['longapr'] = 'краÑавік';
-$labels['longmay'] = 'май';
-$labels['longjun'] = 'чÑрвень';
-$labels['longjul'] = 'ліпень';
-$labels['longaug'] = 'жнівень';
-$labels['longsep'] = 'вераÑень';
-$labels['longoct'] = 'каÑтрычнік';
-$labels['longnov'] = 'ліÑтапад';
-$labels['longdec'] = 'Ñнежань';
-$labels['today'] = 'ÑённÑ';
-$labels['refresh'] = 'Ðбнавіць';
-$labels['checkmail'] = 'Праверыць Ð½Ð¾Ð²Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–';
-$labels['compose'] = 'СклаÑці';
-$labels['writenewmessage'] = 'СклаÑці новае паведамленне';
-$labels['reply'] = 'Ðдказаць';
-$labels['replytomessage'] = 'Ðдказаць адпраўніку';
-$labels['replytoallmessage'] = 'Ðдказаць па ÑпіÑе альбо адпраўніку Ñ– ÑžÑім атрымальнікам';
-$labels['replyall'] = 'Ðдказаць уÑім';
-$labels['replylist'] = 'Ðдказаць у ÑÐ¿Ñ–Ñ Ñ€Ð°ÑÑылкі';
-$labels['forward'] = 'ПераÑлаць';
-$labels['forwardinline'] = 'ПераÑлаць у целе ліÑта';
-$labels['forwardattachment'] = 'ПераÑлаць Ñк далучÑнне';
-$labels['forwardmessage'] = 'ПераÑлаць гÑтае паведамленне';
-$labels['deletemessage'] = 'Выдаліць паведамленне';
-$labels['movemessagetotrash'] = 'ПерамÑÑціць паведамленне Ñž Ñметніцу';
-$labels['printmessage'] = 'Раздрукаваць гÑтае паведамленне';
-$labels['previousmessage'] = 'Паказаць папÑÑ€ÑднÑе паведамленне';
-$labels['firstmessage'] = 'Паказаць першае паведамленне';
-$labels['nextmessage'] = 'Паказаць наÑтупнае паведамленне';
-$labels['lastmessage'] = 'Паказаць апошнÑе паведамленне';
-$labels['backtolist'] = 'Ðазад да ÑпіÑа паведамленнÑÑž';
-$labels['viewsource'] = 'Паказаць жарало';
-$labels['mark'] = 'Пазначыць';
-$labels['markmessages'] = 'Пазначыць паведамленні';
-$labels['markread'] = 'Як прачытаныÑ';
-$labels['markunread'] = 'Як непрачытаныÑ';
-$labels['markflagged'] = 'УÑтанавіць флаг';
-$labels['markunflagged'] = 'ЗнÑць флаг';
-$labels['moreactions'] = 'Больш дзеÑннÑÑž...';
-$labels['more'] = 'Больш';
-$labels['back'] = 'Ðазад';
-$labels['options'] = 'Параметры';
-$labels['select'] = 'Выбраць';
-$labels['all'] = 'УÑе';
-$labels['none'] = 'Жаднага';
-$labels['currpage'] = 'БÑÐ³ÑƒÑ‡Ð°Ñ Ñтаронка';
-$labels['unread'] = 'ÐепрачытаныÑ';
-$labels['flagged'] = 'З флагам';
-$labels['unanswered'] = 'ÐеадказаныÑ';
-$labels['withattachment'] = 'З далучÑннÑмі';
-$labels['deleted'] = 'ВыдаленыÑ';
-$labels['undeleted'] = 'ÐÑвыдаленыÑ';
-$labels['invert'] = 'Інвертаваць';
-$labels['filter'] = 'Фільтр';
-$labels['list'] = 'СпіÑ';
-$labels['threads'] = 'Ðбмеркаванні';
-$labels['expand-all'] = 'Развінуць уÑÑ‘';
-$labels['expand-unread'] = 'Развінуць непрачытаныÑ';
-$labels['collapse-all'] = 'Звінуць уÑÑ‘';
-$labels['threaded'] = 'Ðбмеркаванні';
-$labels['autoexpand_threads'] = 'Развінуць абмеркаванні';
-$labels['do_expand'] = 'уÑе абмеркаванні';
-$labels['expand_only_unread'] = 'толькі з непрачытанымі паведамленнÑмі';
-$labels['fromto'] = 'Ðд/Да';
-$labels['flag'] = 'Флаг';
-$labels['attachment'] = 'ДалучÑнне';
-$labels['nonesort'] = 'ÐдÑутнічае';
-$labels['sentdate'] = 'Дата адпраўкі';
-$labels['arrival'] = 'Дата атрыманнÑ';
-$labels['asc'] = 'на ўзраÑтанне';
-$labels['desc'] = 'на змÑншчÑнне';
-$labels['listcolumns'] = 'Слупкі';
-$labels['listsorting'] = 'Сартаваць паводле';
-$labels['listorder'] = 'Парадак ÑартаваннÑ';
-$labels['listmode'] = 'Тып ÑпіÑу';
-$labels['folderactions'] = 'Ðперацыі з папкай...';
-$labels['compact'] = 'СціÑнуць';
-$labels['empty'] = 'Спаражніць';
-$labels['importmessages'] = 'Імпартаваць паведамленні';
-$labels['quota'] = 'Квота';
-$labels['unknown'] = 'невÑдома';
-$labels['unlimited'] = 'без абмежаваннÑÑž';
-$labels['quicksearch'] = 'Хуткі пошук';
-$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['sendmessage'] = 'Ðдправіць паведамленне';
-$labels['savemessage'] = 'Захаваць Ñк чарнавік';
-$labels['addattachment'] = 'Далучыць файл';
-$labels['charset'] = 'Кадзіроўка';
-$labels['editortype'] = 'РÑдактар';
-$labels['returnreceipt'] = 'Пацверджанне атрыманнÑ';
-$labels['dsn'] = 'ÐпавÑшчÑнне пра даÑтаўку';
-$labels['mailreplyintro'] = '$sender піÑаў $date:';
-$labels['originalmessage'] = 'Ðрыгінальнае паведамленне';
-$labels['editidents'] = 'РÑдагаваць тоеÑнаÑці';
-$labels['spellcheck'] = 'ПравапіÑ';
-$labels['checkspelling'] = 'Праверыць правапіÑ';
-$labels['resumeediting'] = 'ПрацÑгнуць Ñ€Ñдагаванне';
-$labels['revertto'] = 'Ðдкаціцца на';
-$labels['responses'] = 'Ðдказы';
-$labels['insertresponse'] = 'УÑтавіць адказ';
-$labels['manageresponses'] = 'Кіраваць адказамі';
-$labels['savenewresponse'] = 'Захаваць новы адказ';
-$labels['editresponses'] = 'РÑдагаваць адказы';
-$labels['editresponse'] = 'РÑдагаваць адказ';
-$labels['responsename'] = 'Ðазва';
-$labels['responsetext'] = 'ТÑкÑÑ‚ адказу';
-$labels['attach'] = 'Далучыць';
-$labels['attachments'] = 'ДалучÑнні';
-$labels['upload'] = 'Ðпублікаваць';
-$labels['uploadprogress'] = '$percent ($current з $total)';
-$labels['close'] = 'Закрыць';
-$labels['messageoptions'] = 'Параметры паведамленнÑ...';
-$labels['low'] = 'Ðізкі';
-$labels['lowest'] = 'Ðайнізшы';
-$labels['normal'] = 'Звычайны';
-$labels['high'] = 'Ð’Ñ‹Ñокі';
-$labels['highest'] = 'Ðайвышшы';
-$labels['nosubject'] = '(без Ñ‚Ñмы)';
-$labels['showimages'] = 'Паказваць відарыÑÑ‹';
-$labels['alwaysshow'] = 'ЗаўÑёды паказваць відарыÑÑ‹ ад $sender';
-$labels['isdraft'] = 'ГÑта чарнавік.';
-$labels['andnmore'] = 'ÑÑˆÑ‡Ñ $nr...';
-$labels['togglemoreheaders'] = 'Паказаць больш загалоўкаў паведамленнÑ';
-$labels['togglefullheaders'] = 'Паказаць Ð½ÐµÐ°Ð¿Ñ€Ð°Ñ†Ð°Ð²Ð°Ð½Ñ‹Ñ Ð·Ð°Ð³Ð°Ð»Ð¾ÑžÐºÑ– паведамленнÑ';
+$labels['listoptions'] = 'List options...';
+
+$labels['mailboxlist'] = 'ТÑчкі';
+$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';
+
+// weekdays short
+$labels['sun'] = 'Sun';
+$labels['mon'] = 'Mon';
+$labels['tue'] = 'Tue';
+$labels['wed'] = 'Wed';
+$labels['thu'] = 'Thu';
+$labels['fri'] = 'Fri';
+$labels['sat'] = 'Sat';
+
+// weekdays long
+$labels['sunday'] = 'Sunday';
+$labels['monday'] = 'Monday';
+$labels['tuesday'] = 'Tuesday';
+$labels['wednesday'] = 'Wednesday';
+$labels['thursday'] = 'Thursday';
+$labels['friday'] = 'Friday';
+$labels['saturday'] = 'Saturday';
+
+// months short
+$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';
+
+// months long
+$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';
+
+// toolbar buttons
+$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['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['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$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['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'] = 'Звычайны Ñ‚ÑкÑÑ‚';
-$labels['savesentmessagein'] = 'Захаваць паведамленне ў';
-$labels['dontsave'] = 'не захоўваць';
-$labels['maxuploadsize'] = 'МакÑімальна дазволены памер файла — $size';
-$labels['addcc'] = 'КопіÑ';
-$labels['addbcc'] = 'Ð¡Ñ…Ð°Ð²Ð°Ð½Ð°Ñ ÐºÐ¾Ð¿Ñ–Ñ';
-$labels['addreplyto'] = 'Ðдказаць-на';
-$labels['addfollowupto'] = 'Групавы-адказ-на';
-$labels['mdnrequest'] = 'Ðдпраўнік пажадаў даведацца аб прачытанні гÑтага паведамленнÑ. ÐпавÑÑціць адпраўніка?';
-$labels['receiptread'] = 'Пацверджанне Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð½Ð½Ñ (прачытаннÑ)';
-$labels['yourmessage'] = 'ГÑта пацверджанне аб атрыманні вашага паведамленнÑ';
-$labels['receiptnote'] = 'Заўвага: ГÑтае пацверджанне значыць адно, што паведамленне было адлюÑтравана на Ñкране кампутара адраÑата. ÐÑма гарантыі, што атрымальнік прачытаў альбо зразумеў змеÑÑ‚ паведамленнÑ.';
-$labels['name'] = 'Ð­ÐºÑ€Ð°Ð½Ð½Ð°Ñ Ð½Ð°Ð·Ð²Ð°';
-$labels['firstname'] = 'ІмÑ';
-$labels['surname'] = 'Прозвішча';
-$labels['middlename'] = 'Другое імÑ';
-$labels['nameprefix'] = 'ПрÑфікÑ';
-$labels['namesuffix'] = 'СуфікÑ';
-$labels['nickname'] = 'ÐœÑнушка';
-$labels['jobtitle'] = 'ПаÑада';
-$labels['department'] = 'Ðддзел';
-$labels['gender'] = 'Пол';
-$labels['maidenname'] = 'ДзÑвоцкае прозвішча';
-$labels['email'] = 'Эл. пошта';
-$labels['phone'] = 'ТÑлефон';
-$labels['address'] = 'ÐдраÑ';
-$labels['street'] = 'Вуліца';
-$labels['locality'] = 'Горад';
-$labels['zipcode'] = 'ІндÑкÑ';
-$labels['region'] = 'РÑгіён';
-$labels['country'] = 'Краіна';
-$labels['birthday'] = 'Дзень народзінаў';
-$labels['anniversary'] = 'Юбілей';
-$labels['website'] = 'Ð’Ñб-Ñайт';
+$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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
+$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'] = 'ZIP Code';
+$labels['region'] = 'State/Province';
+$labels['country'] = 'Country';
+$labels['birthday'] = 'Birthday';
+$labels['anniversary'] = 'Anniversary';
+$labels['website'] = 'Website';
$labels['instantmessenger'] = 'IM';
-$labels['notes'] = 'Зацемкі';
-$labels['male'] = 'мужчына';
-$labels['female'] = 'жанчына';
-$labels['manager'] = 'Кіраўнік';
-$labels['assistant'] = 'ÐÑÑ–ÑÑ‚Ñнт';
-$labels['spouse'] = 'Жонка';
-$labels['allfields'] = 'УÑе палі';
-$labels['search'] = 'Пошук';
-$labels['advsearch'] = 'Пашыраны пошук';
-$labels['advanced'] = 'Дадаткова';
-$labels['other'] = 'Іншае';
-$labels['typehome'] = 'Дом';
-$labels['typework'] = 'Праца';
-$labels['typeother'] = 'Іншае';
-$labels['typemobile'] = 'Мабільны';
-$labels['typemain'] = 'ÐÑноўны';
-$labels['typehomefax'] = 'Дамашні факÑ';
-$labels['typeworkfax'] = 'Працоўны факÑ';
-$labels['typecar'] = 'Ðўта';
-$labels['typepager'] = 'ПÑйджар';
-$labels['typevideo'] = 'ВідÑа';
-$labels['typeassistant'] = 'ÐÑÑ–ÑÑ‚Ñнт';
-$labels['typehomepage'] = 'ДамашнÑÑ Ñтаронка';
-$labels['typeblog'] = 'Блог';
-$labels['typeprofile'] = 'Профіль';
-$labels['addfield'] = 'Дадаць поле...';
-$labels['addcontact'] = 'Дадаць новы кантакт';
-$labels['editcontact'] = 'РÑдагаваць кантакт';
-$labels['contacts'] = 'Кантакты';
-$labels['contactproperties'] = 'УлаÑціваÑці кантакта';
-$labels['personalinfo'] = 'ÐÑабіÑÑ‚Ñ‹Ñ Ð·Ð²ÐµÑткі';
-$labels['edit'] = 'РÑдагаваць';
-$labels['cancel'] = 'СкаÑаваць';
-$labels['save'] = 'Захаваць';
-$labels['delete'] = 'Выдаліць';
-$labels['rename'] = 'Пераназваць';
-$labels['addphoto'] = 'Дадаць';
-$labels['replacephoto'] = 'ЗамÑніць';
-$labels['uploadphoto'] = 'Ðпублікаваць фота';
-$labels['newcontact'] = 'Стварыць новую картку кантакта';
-$labels['deletecontact'] = 'Выдаліць абраных кантактаў';
-$labels['composeto'] = 'СклаÑці ліÑÑ‚ да';
-$labels['contactsfromto'] = 'Кантакты $from—$to з $count';
-$labels['print'] = 'Друкаваць';
-$labels['export'] = 'ЭкÑпарт';
-$labels['exportall'] = 'ЭкÑпартаваць уÑÑ‘';
-$labels['exportsel'] = 'ЭкÑпартаваць абранае';
-$labels['exportvcards'] = 'ЭкÑпартаваць кантакты Ñž фармаце vCard';
-$labels['newcontactgroup'] = 'Стварыць новую групу кантактаў';
-$labels['grouprename'] = 'Пераназваць групу';
-$labels['groupdelete'] = 'Выдаліць групу';
-$labels['groupremoveselected'] = 'Выдаліць абраных кантакаў з групы';
-$labels['previouspage'] = 'ПапÑÑ€ÑднÑÑ Ñтаронка';
-$labels['firstpage'] = 'ÐŸÐµÑ€ÑˆÐ°Ñ Ñтаронка';
-$labels['nextpage'] = 'ÐаÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñтаронка';
-$labels['lastpage'] = 'ÐпошнÑÑ Ñтаронка';
-$labels['group'] = 'Група';
-$labels['groups'] = 'Групы';
-$labels['listgroup'] = 'Паказаць ÑÑброў групы';
-$labels['personaladrbook'] = 'ÐÑабіÑÑ‚Ñ‹Ñ Ð°Ð´Ñ€Ð°ÑÑ‹';
-$labels['searchsave'] = 'Захаваць запытанне';
-$labels['searchdelete'] = 'Выдаліць запытанне';
-$labels['import'] = 'Імпарт';
-$labels['importcontacts'] = 'Імпартаваць кантакты';
-$labels['importfromfile'] = 'Імпартаваць з файла:';
-$labels['importtarget'] = 'Дадаць канактаў у';
-$labels['importreplace'] = 'ЗамÑніць адраÑную кнігу цалкам';
-$labels['importgroups'] = 'Імпартаваць прызначÑнні групы';
-$labels['importgroupsall'] = 'УÑе (Ñтварыць групы пры неабходнаÑці)';
-$labels['importgroupsexisting'] = 'Толькі Ð´Ð»Ñ Ñ–Ñнуючых груп';
-$labels['importdesc'] = 'Кантакты можна загрузіць з Ñ–Ñнуючай адраÑнай кнігі.<br/>Ðа дадзены момант падтрымліваюцца адраÑÑ‹ Ñž фарматах <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> Ñ– CSV (значÑнні праз коÑку).';
-$labels['done'] = 'Гатова';
-$labels['settingsfor'] = 'ÐаÑтаўленні длÑ';
-$labels['about'] = 'ÐпіÑанне';
-$labels['preferences'] = 'Параметры';
-$labels['userpreferences'] = 'Параметры карыÑтальніка';
-$labels['editpreferences'] = 'РÑдагаваць параметры карыÑтальніка';
-$labels['identities'] = 'ТоеÑнаÑці';
-$labels['manageidentities'] = 'Парадкаваць тоеÑнаÑці Ð´Ð»Ñ Ð³Ñтага ўліковага запіÑу';
-$labels['newidentity'] = 'ÐÐ¾Ð²Ð°Ñ Ñ‚Ð¾ÐµÑнаÑць';
-$labels['newitem'] = 'Ðовы Ñлемент';
-$labels['edititem'] = 'РÑдагаваць Ñлемент';
-$labels['preferhtml'] = 'Паказаць HTML';
-$labels['defaultcharset'] = 'Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ ÐºÐ°Ð´Ð·Ñ–Ñ€Ð¾ÑžÐºÐ°';
-$labels['htmlmessage'] = 'Паведамленне ў HTML';
-$labels['messagepart'] = 'ЧаÑць';
-$labels['digitalsig'] = 'Электронны подпіÑ';
-$labels['dateformat'] = 'Фармат даты';
-$labels['timeformat'] = 'Фармат чаÑу';
-$labels['prettydate'] = 'Даты ў зручным фармаце';
-$labels['setdefault'] = 'Зрабіць Ñтандартам';
-$labels['autodetect'] = 'Ðўтаматычна';
-$labels['language'] = 'Мова';
-$labels['timezone'] = 'ЧаÑÐ°Ð²Ð°Ñ Ð·Ð¾Ð½Ð°';
-$labels['pagesize'] = 'Радкоў на Ñтаронку';
-$labels['signature'] = 'ПодпіÑ';
-$labels['dstactive'] = 'Летні/зімовы чаÑ';
-$labels['showinextwin'] = 'Ðдкрываць паведамленні Ñž новым акне';
-$labels['composeextwin'] = 'Складаць у новым акне';
-$labels['htmleditor'] = 'Складаць паведамленні ў HTML';
-$labels['htmlonreply'] = 'у адказ на паведамленні ў HTML';
-$labels['htmlonreplyandforward'] = 'пры пераÑылцы альбо Ñž адказ на паведамленні Ñž HTML';
-$labels['htmlsignature'] = 'ÐŸÐ¾Ð´Ð¿Ñ–Ñ Ñƒ HTML';
-$labels['showemail'] = 'Паказваць Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты разам з Ñкраннай назвай';
-$labels['previewpane'] = 'ПанÑль праглÑду';
-$labels['skin'] = 'ТÑма інтÑрфейÑу';
-$labels['logoutclear'] = 'Ðчышчаць Сметніцу па выхадзе';
-$labels['logoutcompact'] = 'СціÑкаць ÐÑ‚Ñ€Ñ‹Ð¼Ð°Ð½Ñ‹Ñ Ð¿Ð° выхадзе';
-$labels['uisettings'] = 'ІнтÑÑ€Ñ„ÐµÐ¹Ñ ÐºÐ°Ñ€Ñ‹Ñтальніка';
-$labels['serversettings'] = 'ÐаÑтаўленні Ñервера';
-$labels['mailboxview'] = 'ВыглÑд Ñкрынкі';
-$labels['mdnrequests'] = 'Пры запытанні пацверджаннÑÑž аб атрыманні';
-$labels['askuser'] = 'Ñпытаць мÑне';
-$labels['autosend'] = 'адправіць пацверджанне';
-$labels['autosendknown'] = 'адпраўлÑць пацверджанне маім кантактам, іначай Ñпытаць';
-$labels['autosendknownignore'] = 'адпраўлÑць пацверджанне маім кантактам, іначай ігнараваць';
-$labels['ignore'] = 'ігнараваць';
-$labels['readwhendeleted'] = 'Пазначаць паведамленне Ñк прачытанае па выдаленні';
-$labels['flagfordeletion'] = 'Толькі пазначаць паведамленне на выдаленне, не выдалÑць';
-$labels['skipdeleted'] = 'Ðе паказваць Ð²Ñ‹Ð´Ð°Ð»ÐµÐ½Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–';
-$labels['deletealways'] = 'Як не ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð¼ÑÑціць паведамленні Ñž Сметніцу, выдаліць Ñ–Ñ…';
-$labels['deletejunk'] = 'Ðдразу выдалÑць паведамленні Ñž Спаме';
-$labels['showremoteimages'] = 'Паказваць Ð²Ð¾Ð½ÐºÐ°Ð²Ñ‹Ñ Ð²Ñ–Ð´Ð°Ñ€Ñ‹ÑÑ‹';
-$labels['fromknownsenders'] = 'ад вÑдомых адпраўнікоў';
-$labels['always'] = 'заўÑёды';
-$labels['showinlineimages'] = 'Паказваць Ð´Ð°Ð»ÑƒÑ‡Ð°Ð½Ñ‹Ñ Ð²Ñ–Ð´Ð°Ñ€Ñ‹ÑÑ‹ пад паведамленнем';
-$labels['autosavedraft'] = 'Ðўтаматычна захоўваць чарнавікі';
-$labels['everynminutes'] = 'ÐºÐ¾Ð¶Ð½Ñ‹Ñ $n мінут(аў)';
-$labels['refreshinterval'] = 'Ðбнаўленне (праверка новых паведамленнÑÑž Ñ– г. д.)';
-$labels['never'] = 'ніколі';
-$labels['immediately'] = 'імгненна';
-$labels['messagesdisplaying'] = 'ÐдлюÑтраванне паведамленнÑÑž';
-$labels['messagescomposition'] = 'Складанне паведамленнÑÑž';
-$labels['mimeparamfolding'] = 'Ðазвы далучÑннÑÑž';
-$labels['2231folding'] = 'Поўны RFC 2231 (Thunderbird)';
+$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['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 new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
+$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'] = 'Поўны RFC 2047 (інш.)';
-$labels['force7bit'] = 'Ужываць MIME-кадзіроўку Ð´Ð»Ñ 8-бітных знакаў';
-$labels['advancedoptions'] = 'Ð”Ð°Ð´Ð°Ñ‚ÐºÐ¾Ð²Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹';
-$labels['focusonnewmessage'] = 'Ðктываваць акно браўзера пры новым паведамленні';
-$labels['checkallfolders'] = 'ПравÑраць уÑе папкі на Ð½Ð¾Ð²Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ–';
-$labels['displaynext'] = 'Па выдаленні/перамÑшчÑнні Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÐ°Ð·Ð²Ð°Ñ†ÑŒ наÑтупнае паведамленне';
-$labels['defaultfont'] = 'Стандартны шрыфт Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ Ñž HTML';
-$labels['mainoptions'] = 'ÐÑÐ½Ð¾ÑžÐ½Ñ‹Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ‹';
-$labels['browseroptions'] = 'Параметры браўзера';
-$labels['section'] = 'СекцыÑ';
-$labels['maintenance'] = 'ÐбÑлугоўванне';
-$labels['newmessage'] = 'Ðовае паведамленне';
-$labels['signatureoptions'] = 'Параметры подпіÑу';
-$labels['whenreplying'] = 'Ðдказваючы';
-$labels['replyempty'] = 'не цытаваць зыходнае паведамленне';
-$labels['replytopposting'] = 'пачынаць новае паведамленне над цытаваным';
-$labels['replybottomposting'] = 'пачынаць новае паведамленне пад цытаваным';
-$labels['replyremovesignature'] = 'Ðдказваючы, выдаліць Ñтары Ð¿Ð¾Ð´Ð¿Ñ–Ñ Ð· паведамленнÑ';
-$labels['autoaddsignature'] = 'Ðўтаматычна дадаваць подпіÑ';
-$labels['newmessageonly'] = 'толькі Ñž новых паведамленнÑÑ…';
-$labels['replyandforwardonly'] = 'толькі Ñž адказах Ñ– пераÑылках';
-$labels['insertsignature'] = 'УÑтавіць подпіÑ';
-$labels['previewpanemarkread'] = 'Пазначаць Ð¿Ñ€Ð°Ð³Ð»ÐµÐ´Ð¶Ð°Ð½Ñ‹Ñ Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ– Ñк прачытаныÑ';
-$labels['afternseconds'] = 'паÑÐ»Ñ $n Ñекунд';
-$labels['reqmdn'] = 'ЗаўÑёды запытваць пацверджанне аб атрыманні';
-$labels['reqdsn'] = 'ЗаўÑёды запытваць апавÑшчÑнне аб даÑтаўцы';
-$labels['replysamefolder'] = 'Складваць адказы Ñž папку зыходнага паведамленнÑ';
-$labels['defaultabook'] = 'Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð°Ð´Ñ€Ð°ÑÐ½Ð°Ñ ÐºÐ½Ñ–Ð³Ð°';
-$labels['autocompletesingle'] = 'ПрапуÑкаць альтÑÑ€Ð½Ð°Ñ‚Ñ‹ÑžÐ½Ñ‹Ñ Ð°Ð´Ñ€Ð°ÑÑ‹ пры аўдадапаўненні';
-$labels['listnamedisplay'] = 'Выводзіць ÑÐ¿Ñ–Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚Ð°Ñž Ñк';
-$labels['spellcheckbeforesend'] = 'ПравÑраць Ð¿Ñ€Ð°Ð²Ð°Ð¿Ñ–Ñ Ð¿ÐµÑ€Ð°Ð´ адпраўкай';
-$labels['spellcheckoptions'] = 'Параметры праверкі правапіÑу';
-$labels['spellcheckignoresyms'] = 'Ігнараваць Ñловы з Ñімваламі';
-$labels['spellcheckignorenums'] = 'Ігнараваць Ñловы з лікамі';
-$labels['spellcheckignorecaps'] = 'Ігнараваць Ñловы з уÑімі літарамі Ñž верхнім Ñ€ÑгіÑтры';
-$labels['addtodict'] = 'Дадаць у Ñлоўнік';
-$labels['mailtoprotohandler'] = 'ЗарÑгіÑтраваць апрацоўніка Ð´Ð»Ñ ÑпаÑылак mailto:';
-$labels['standardwindows'] = 'УÑпрымаць вокны-бурбалкі Ñк Ð·Ð²Ñ‹Ñ‡Ð°Ð¹Ð½Ñ‹Ñ Ð²Ð¾ÐºÐ½Ñ‹';
-$labels['forwardmode'] = 'ПераÑылка паведамленнÑÑž';
-$labels['inline'] = 'у Ñ‚ÑкÑце';
-$labels['asattachment'] = 'Ñк далучÑнне';
-$labels['folder'] = 'Папка';
-$labels['folders'] = 'Папкі';
-$labels['foldername'] = 'Ðазва папкі';
-$labels['subscribed'] = 'ПадпіÑанаÑ';
-$labels['messagecount'] = 'Паведамленні';
-$labels['create'] = 'Стварыць';
-$labels['createfolder'] = 'Стварыць новую папку';
-$labels['managefolders'] = 'Парадкаваць папкі';
-$labels['specialfolders'] = 'ÐдмыÑÐ»Ð¾Ð²Ñ‹Ñ Ð¿Ð°Ð¿ÐºÑ–';
-$labels['properties'] = 'УлаÑціваÑці';
-$labels['folderproperties'] = 'УлаÑціваÑці папкі';
-$labels['parentfolder'] = 'БацькоўÑÐºÐ°Ñ Ð¿Ð°Ð¿ÐºÐ°';
-$labels['location'] = 'РазмÑшчÑнне';
-$labels['info'] = 'ЗвеÑткі';
-$labels['getfoldersize'] = 'ПÑтрыкніце, каб даведацца памер папкі';
-$labels['changesubscription'] = 'ПÑтрыкніце, каб змÑніць падпіÑку';
-$labels['foldertype'] = 'Тып папкі';
-$labels['personalfolder'] = 'ÐÑабіÑÑ‚Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°';
-$labels['otherfolder'] = 'Папка іншага карыÑтальніка';
-$labels['sharedfolder'] = 'ÐŸÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°';
-$labels['sortby'] = 'Сартаваць паводле';
-$labels['sortasc'] = 'Сартаваць на ўзраÑтанне';
-$labels['sortdesc'] = 'Сартаваць на змÑншчÑнне';
-$labels['undo'] = 'ÐдмÑніць';
-$labels['installedplugins'] = 'УÑÑ‚Ð°Ð½Ð¾ÑžÐ»ÐµÐ½Ñ‹Ñ Ð¿Ð»Ð°Ð³Ñ–Ð½Ñ‹';
-$labels['plugin'] = 'Плагін';
-$labels['version'] = 'ВерÑÑ–Ñ';
-$labels['source'] = 'Крыніца';
-$labels['license'] = 'ЛіцÑнзіÑ';
-$labels['support'] = 'Падтрымка';
-$labels['B'] = 'Б';
-$labels['KB'] = 'КБ';
-$labels['MB'] = 'МБ';
-$labels['GB'] = 'ГБ';
-$labels['unicode'] = 'Юнікод';
-$labels['english'] = 'англійÑкаÑ';
-$labels['westerneuropean'] = 'заходне-еўрапейÑкаÑ';
-$labels['easterneuropean'] = 'уÑходне-еўрапейÑкаÑ';
-$labels['southeasterneuropean'] = 'паўднёва-еўрапейÑкаÑ';
-$labels['baltic'] = 'балтыйÑкаÑ';
-$labels['cyrillic'] = 'кірыліца';
-$labels['arabic'] = 'арабÑкаÑ';
-$labels['greek'] = 'грÑцкаÑ';
-$labels['hebrew'] = 'габрÑйÑкаÑ';
-$labels['turkish'] = 'турÑцкаÑ';
-$labels['nordic'] = 'паўночнаÑ';
-$labels['thai'] = 'тайÑкаÑ';
-$labels['celtic'] = 'кельцкаÑ';
-$labels['vietnamese'] = 'в\'етнамÑкаÑ';
-$labels['japanese'] = 'ÑпонÑкаÑ';
-$labels['korean'] = 'карÑйÑкаÑ';
-$labels['chinese'] = 'кітайÑкаÑ';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
+$labels['folder'] = 'Folder';
+$labels['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';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/be_BE/messages.inc b/program/localization/be_BE/messages.inc
index 5833fd8a4..73cdb3ed8 100644
--- a/program/localization/be_BE/messages.inc
+++ b/program/localization/be_BE/messages.inc
@@ -15,161 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'ЗдарылаÑÑ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°!';
-$messages['loginfailed'] = 'Ðе ўдалоÑÑ ÑžÐ²Ð°Ð¹Ñці.';
-$messages['cookiesdisabled'] = 'Ваш браўзер не падтрымлівае кукіÑ.';
-$messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð½ÐµÐ²Ð°Ð»Ñ–Ð´Ð½Ð°Ñ Ð°Ð»ÑŒÐ±Ð¾ ÑаÑтарÑла.';
-$messages['storageerror'] = 'Ðе ўдалоÑÑ Ð·Ð»ÑƒÑ‡Ñ‹Ñ†Ñ†Ð° з Ñерверам-Ñховішчам.';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Збой уваходу.';
+$messages['cookiesdisabled'] = 'Ваш азіральнік не падтрымлівае кукіÑ.';
+$messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð½Ðµ дзейÑÐ½Ð°Ñ Ñ†Ñ– ÑаÑтарÑла.';
+$messages['storageerror'] = 'Connection to storage server failed.';
$messages['servererror'] = 'Памылка Ñервера!';
$messages['servererrormsg'] = 'Памылка Ñервера: $msg';
$messages['dberror'] = 'Памылка базы даных!';
-$messages['requesttimedout'] = 'Ð§Ð°Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñу выйшаў';
-$messages['errorreadonly'] = 'Ðе ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ аперацыю. Папка даÑтупна толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ.';
-$messages['errornoperm'] = 'Ðе ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ аперацыю. Ðдмоўлена Ñž доÑтупе.';
-$messages['erroroverquota'] = 'Ðе ўдалоÑÑ Ð²Ñ‹ÐºÐ°Ð½Ð°Ñ†ÑŒ аперацыю. ÐÑма Ñвабоднай праÑторы на дыÑку.';
-$messages['erroroverquotadelete'] = 'ÐÑма Ñвабоднай праÑторы на дыÑку. ÐаціÑніце SHIFT+DEL, каб выдаліць паведамленне.';
-$messages['invalidrequest'] = 'Ðевалідны запроÑ! Ð”Ð°Ð´Ð·ÐµÐ½Ñ‹Ñ Ð½Ðµ захаваныÑ.';
-$messages['invalidhost'] = 'ÐÑÑлушнае Ñ–Ð¼Ñ Ñервера.';
-$messages['nomessagesfound'] = 'ПаведамленнÑÑž у гÑтай Ñкрынцы не знойдзена';
-$messages['loggedout'] = 'СеÑÑ–Ñ ÑкаÑавана. Да пабачÑннÑ!';
-$messages['mailboxempty'] = 'У Ñкрынцы пуÑта.';
-$messages['refreshing'] = 'ÐбнаўлÑецца...';
-$messages['loading'] = 'Загружаецца...';
-$messages['uploading'] = 'Файл зацÑгваецца...';
-$messages['uploadingmany'] = 'Файлы зацÑгваюцца...';
-$messages['loadingdata'] = 'Загружаюцца даныÑ...';
-$messages['checkingmail'] = 'Праверка новых паведамленнÑÑž...';
-$messages['sendingmessage'] = 'Паведамленне адпраўлÑецца...';
-$messages['messagesent'] = 'Паведамленні адпраўлены.';
-$messages['savingmessage'] = 'Паведамленне захоўваецца...';
-$messages['messagesaved'] = 'Паведамленне захавана ў Чарнавікі.';
-$messages['successfullysaved'] = 'Захавана.';
-$messages['savingresponse'] = 'ТÑкÑÑ‚ адказу захоўваецца...';
-$messages['deleteresponseconfirm'] = 'Ðапраўду выдаліць Ñ‚ÑкÑÑ‚ адказу?';
-$messages['addedsuccessfully'] = 'Кантакт дададзены Ñž адраÑную кнігу.';
-$messages['contactexists'] = 'Кантакт з такім Ñамым адраÑам Ñл. пошты ўжо Ñ–Ñнуе.';
-$messages['contactnameexists'] = 'Кантакт з такім Ñамым імем ужо Ñ–Ñнуе.';
-$messages['blockedimages'] = 'Ð”Ð·ÐµÐ»Ñ Ð·Ð°Ð±ÐµÑпÑчÑÐ½Ð½Ñ Ð²Ð°ÑˆÐ°Ð¹ прыватнаÑці Ð·Ð½ÐµÑˆÐ½Ñ–Ñ Ð²Ñ–Ð´Ð°Ñ€Ñ‹ÑÑ‹ Ñž гÑтым паведамленні заблакіраваныÑ.';
-$messages['encryptedmessage'] = 'ГÑта зашыфраванае паведамленне. Яно не можа быць адлюÑтравана. Выбачайце!';
-$messages['nocontactsfound'] = 'Кантактаў не знойдзена.';
-$messages['contactnotfound'] = 'Запытаны кантакт не знойдзены.';
-$messages['contactsearchonly'] = 'Задайце выраз Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÐ° кантактаў';
-$messages['sendingfailed'] = 'Ðе ўдалоÑÑ Ð°Ð´Ð¿Ñ€Ð°Ð²Ñ–Ñ†ÑŒ паведамленне.';
-$messages['senttooquickly'] = 'Пачакайце $sec Ñекунд(Ñ‹) перад адпраўкай гÑтага паведамленнÑ.';
-$messages['errorsavingsent'] = 'Ðе ўдалоÑÑ Ð·Ð°Ñ…Ð°Ð²Ð°Ñ†ÑŒ адпраўленае паведамленне.';
-$messages['errorsaving'] = 'Ðе ўдалоÑÑ Ð·Ð°Ñ…Ð°Ð²Ð°Ñ†ÑŒ.';
-$messages['errormoving'] = 'Ðе ўдалоÑÑ Ð¿ÐµÑ€Ð°Ð¼ÑÑціць паведамленнÑ(Ñž).';
-$messages['errorcopying'] = 'Ðе ўдалоÑÑ ÑкапіÑваць паведамленнÑ(Ñž).';
-$messages['errordeleting'] = 'Ðе ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ паведамленнÑ(Ñž).';
-$messages['errormarking'] = 'Ðе ўдалоÑÑ Ð¿Ð°Ð·Ð½Ð°Ñ‡Ñ‹Ñ†ÑŒ паведамленнÑ(Ñž).';
-$messages['deletecontactconfirm'] = 'Ðапраўду выдаліць абраны(Ñ) кантакты?';
-$messages['deletegroupconfirm'] = 'Ðапраўду выдаліць абраную групу?';
-$messages['deletemessagesconfirm'] = 'Ðапраўду выдаліць абранае(Ñ‹Ñ) паведамленне?';
-$messages['deletefolderconfirm'] = 'Ðапраўду выдаліць гÑтую папку?';
-$messages['purgefolderconfirm'] = 'Ðапраўду выдаліць уÑе паведамленні з гÑтай папкі?';
-$messages['contactdeleting'] = 'Кантакт(Ñ‹) выдалÑюцца...';
-$messages['groupdeleting'] = 'Група выдалÑецца...';
-$messages['folderdeleting'] = 'Папка выдалÑецца...';
-$messages['foldermoving'] = 'Папка перамÑшчаецца...';
-$messages['foldersubscribing'] = 'Папка падпіÑваецца...';
-$messages['folderunsubscribing'] = 'Папка адпіÑваецца...';
-$messages['formincomplete'] = 'ФармулÑÑ€ запоўнены не да канца.';
-$messages['noemailwarning'] = 'Задайце Ñлушны Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты.';
-$messages['nonamewarning'] = 'Задайце імÑ.';
-$messages['nopagesizewarning'] = 'Задайце памер Ñтаронкі.';
-$messages['nosenderwarning'] = 'Задайце Ð°Ð´Ñ€Ð°Ñ Ñл. пошты адпраўніка.';
-$messages['norecipientwarning'] = 'Задайце хацÑ-б аднаго атрымальніка.';
-$messages['nosubjectwarning'] = 'ТÑма ліÑта не зададзена. Ці жадаеце задаць Ñе зараз?';
-$messages['nobodywarning'] = 'Ðдправіць гÑта паведамленне без Ñ‚ÑкÑту?';
-$messages['notsentwarning'] = 'Паведамленне не адпраўлена. Жадаеце ÑкаÑаваць Ñваё паведамленне?';
-$messages['noldapserver'] = 'Задайце ldap-Ñервер Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ.';
-$messages['nosearchname'] = 'Задайце Ñ–Ð¼Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚Ð° альбо Ð°Ð´Ñ€Ð°Ñ Ñлектроннай пошты.';
-$messages['notuploadedwarning'] = 'Ðе ÑžÑе далучÑнні пакуль ÑÑˆÑ‡Ñ Ð·Ð°Ñ†ÑгнутыÑ. Пачакайце альбо ÑкаÑуйце аперацыю.';
-$messages['searchsuccessful'] = 'Знойдзена $nr паведамленнÑÑž.';
-$messages['contactsearchsuccessful'] = 'Знойдзена $nr кантактаў.';
-$messages['searchnomatch'] = 'Пошук не даў выніку.';
-$messages['searching'] = 'Ідзе пошук...';
-$messages['checking'] = 'Ідзе праверка...';
-$messages['nospellerrors'] = 'Памылак правапіÑÐ°Ð½Ð½Ñ Ð½Ðµ выÑўлена.';
-$messages['folderdeleted'] = 'Папка выдалена.';
-$messages['foldersubscribed'] = 'Папка падпіÑана.';
-$messages['folderunsubscribed'] = 'Папка адпіÑана.';
-$messages['folderpurged'] = 'Папка ачышчана.';
-$messages['folderexpunged'] = 'Папка ÑціÑнута. ';
-$messages['deletedsuccessfully'] = 'Выдалена.';
-$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'] = 'Кантакт(ы) дадаюцца ў групу...';
-$messages['removingmember'] = 'Кантакт(Ñ‹) выдалÑюцца з групы...';
-$messages['receiptsent'] = 'Пацверджанне аб прачытанні адпраўлена.';
-$messages['errorsendingreceipt'] = 'Ðе ўдалоÑÑ Ð°Ð´Ð¿Ñ€Ð°Ð²Ñ–Ñ†ÑŒ пацверджаннÑ.';
-$messages['deleteidentityconfirm'] = 'Ðапраўду выдаліць гÑтую тоеÑнаÑць?';
-$messages['nodeletelastidentity'] = 'ГÑтую тоеÑнаÑць выдаліць нÑможна, бо апошнÑÑ.';
-$messages['forbiddencharacter'] = 'Ðазва папкі змÑшчае забаронены знак.';
-$messages['selectimportfile'] = 'ÐбÑрыце файл да зацÑгваннÑ.';
-$messages['addresswriterror'] = 'ÐÐ±Ñ€Ð°Ð½Ð°Ñ Ð°Ð´Ñ€Ð°ÑÐ½Ð°Ñ ÐºÐ½Ñ–Ð³Ð° Ñ‘Ñць толькі-длÑ-чытаннÑ.';
-$messages['contactaddedtogroup'] = 'Кантакты дададзены ў групу.';
-$messages['contactremovedfromgroup'] = 'Кантакты Ð²Ñ‹Ð´Ð°Ð»ÐµÐ½Ñ‹Ñ Ð· групы.';
-$messages['nogroupassignmentschanged'] = 'УÑе прызначÑнні групы заÑталіÑÑ Ð±ÐµÐ· зменаў.';
-$messages['importwait'] = 'Ідзе імпартаванне. Чакайце...';
-$messages['importformaterror'] = 'Імпартаванне не ўдалоÑÑ! Загружаны файл не ўтрымоўвае Ñлушных даных на імпарт.';
-$messages['importconfirm'] = '<b>$inserted кантактаў імпартаваныÑ</b>';
-$messages['importconfirmskipped'] = '<b>Прапушчана $skipped Ñ–Ñнуючых запіÑаў</b>';
-$messages['importmessagesuccess'] = '$nr паведамленнÑÑž імпартавана';
-$messages['importmessageerror'] = 'Ðе ўдалоÑÑ Ñ–Ð¼Ð¿Ð°Ñ€Ñ‚Ð°Ð²Ð°Ñ†ÑŒ! Загружаны файл не Ñ‘Ñць Ñлушным паведамленнем альбо файлам паштовай Ñкрынкі';
-$messages['opnotpermitted'] = 'ÐÐ¿ÐµÑ€Ð°Ñ†Ñ‹Ñ Ð½Ðµ дазволенаÑ!';
-$messages['nofromaddress'] = 'У абранай тоеÑнаÑці не Ñтае адраÑу Ñл. пошты.';
-$messages['editorwarning'] = 'Змена Ñ€Ñдактара прывÑдзе да Ñтраты фарматаваннÑ. ПрацÑгнуць?';
-$messages['httpreceivedencrypterror'] = 'Ð’Ð°Ð¶Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° Ñž канфігурацыі. Ðеадкладна ÑкантактуйцеÑÑ Ð· адмініÑтратарам. <b>Паведамленне не можа быць адпраўлена.</b>';
-$messages['smtpconnerror'] = 'Памылка SMTP ($code): Ðе ўдалоÑÑ Ð·Ð»ÑƒÑ‡Ñ‹Ñ†Ñ†Ð° з Ñерверам.';
-$messages['smtpautherror'] = 'Памылка SMTP ($code): ÐўтÑÑ‚Ñ‹Ñ„Ñ–ÐºÐ°Ñ†Ñ‹Ñ Ð½Ðµ ўдалаÑÑ.';
-$messages['smtpfromerror'] = 'Памылка SMTP ($code): Ðе ўдалоÑÑ Ð·Ð°Ð´Ð°Ñ†ÑŒ адпраўніка "$from" ($msg).';
-$messages['smtptoerror'] = 'Памылка STMP ($code): Ðе ўдалоÑÑ Ð·Ð°Ð´Ð°Ñ†ÑŒ атрымальніка "$to" ($msg).';
-$messages['smtprecipientserror'] = 'Памылка STMP: Ðе ўдалоÑÑ Ð¿Ñ€Ð°Ñ‡Ñ‹Ñ‚Ð°Ñ†ÑŒ ÑÐ¿Ñ–Ñ Ð°Ñ‚Ñ€Ñ‹Ð¼Ð°Ð»ÑŒÐ½Ñ–ÐºÐ°Ñž.';
-$messages['smtperror'] = 'Памылка SMTP: $msg';
-$messages['emailformaterror'] = 'ÐÑÑлушны Ð°Ð´Ñ€Ð°Ñ Ñл. пошты: $email';
-$messages['toomanyrecipients'] = 'Замнога атрымальнікаў. Зменшыце лік атрымальнікаў да $max.';
-$messages['maxgroupmembersreached'] = 'Лік ÑÑброў групы перавышае макÑімум — $max.';
-$messages['internalerror'] = 'Ð£Ð½ÑƒÑ‚Ñ€Ð°Ð½Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ°. ПаÑпрабуйце ÑÑˆÑ‡Ñ Ñ€Ð°Ð·.';
-$messages['contactdelerror'] = 'Ðе ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ кантакта(Ñž).';
-$messages['contactdeleted'] = 'Кантакт(ы) выдалены.';
-$messages['contactrestoreerror'] = 'Ðе ўдалоÑÑ Ð°Ð´Ð½Ð°Ð²Ñ–Ñ†ÑŒ Ð²Ñ‹Ð´Ð°Ð»ÐµÐ½Ñ‹Ñ ÐºÐ°Ð½Ñ‚Ð°ÐºÑ‚(Ñ‹).';
-$messages['contactrestored'] = 'Кантакт(ы) адноўлены.';
-$messages['groupdeleted'] = 'Група выдалена.';
-$messages['grouprenamed'] = 'Група перайменавана.';
-$messages['groupcreated'] = 'Група Ñтворана.';
-$messages['savedsearchdeleted'] = 'Захаванае запытанне выдалена.';
-$messages['savedsearchdeleteerror'] = 'Ðе ўдалоÑÑ Ð²Ñ‹Ð´Ð°Ð»Ñ–Ñ†ÑŒ захаванае запытанне.';
-$messages['savedsearchcreated'] = 'Захаванае запытанне Ñтворана.';
-$messages['savedsearchcreateerror'] = 'Ðе ўдалоÑÑ Ñтварыць захаванае запытанне.';
-$messages['messagedeleted'] = 'Паведамленні(е) выдалены.';
-$messages['messagemoved'] = 'Паведамленні(е) перамешчаны.';
-$messages['messagecopied'] = 'Паведамленні(е) ÑкапіÑваны.';
-$messages['messagemarked'] = 'Паведамленні(е) пазначаны.';
-$messages['autocompletechars'] = 'УвÑдзіце мінімум $min знакаў Ð´Ð»Ñ Ð°ÑžÑ‚Ð°Ð´Ð°Ð¿Ð°ÑžÐ½ÐµÐ½Ð½Ñ.';
-$messages['autocompletemore'] = 'Больш адпаведных запіÑаў знойдзена. УвÑдзіце больш знакаў.';
-$messages['namecannotbeempty'] = 'Ðазва не можа быць пуÑтой.';
-$messages['nametoolong'] = 'Ðазва задаўгаÑ.';
-$messages['folderupdated'] = 'Папка абноўлена.';
-$messages['foldercreated'] = 'Папка Ñтворана.';
-$messages['invalidimageformat'] = 'ÐÑÑлушны фармат відарыÑу.';
-$messages['mispellingsfound'] = 'У паведамленні выÑўлены правапіÑÐ½Ñ‹Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÑ–.';
-$messages['parentnotwritable'] = 'Ðе ўдалоÑÑ Ñтварыць/перамÑÑціць папку Ñž абраным меÑцы. ÐÑма доÑтупу.';
-$messages['messagetoobig'] = 'ГÑÑ‚Ð°Ñ Ñ‡Ð°Ñць Ð¿Ð°Ð²ÐµÐ´Ð°Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÑлікаÑ, каб Ñе апрацаваць.';
-$messages['attachmentvalidationerror'] = 'УВÐГÐ! ГÑтае далучÑнне Ñ‘Ñць падазроным, бо тып Ñгоны не Ñупадае з заÑўленым тыпам у паведамленні. Калі вы не давÑраеце гÑтаму адпраўніку, не адчынÑйце Ñго Ñž браўзеры, таму што Ñно можа ўтрымліваць шкоднае змеÑціва.<br/><br/><em>Чаканы: $expected; знойдзены: $detected<em>';
-$messages['noscriptwarning'] = 'Увага: Служба вымагае Javascript’у! Каб карыÑтацца ёй, Ñ‚Ñ€Ñба ўключыць Javascript у наÑтаўленнÑÑ… браўзера.';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Ðемагчыма выканаць аперацыю. ТÑчка даÑтупна толькі Ð´Ð»Ñ Ñ‡Ñ‹Ñ‚Ð°Ð½Ð½Ñ.';
+$messages['errornoperm'] = 'Ðемагчыма выканаць аперацыю. Ðдмоўлена Ñž доÑтупе.';
+$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'] = 'Ðе дзейÑны запыт! Ð”Ð°Ð½Ñ‹Ñ Ð½Ðµ захаваныÑ.';
+$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['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 occured while saving sent message.';
+$messages['errorsaving'] = 'An error occured 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['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 addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ber/labels.inc b/program/localization/ber/labels.inc
index 939405707..1128b0d4b 100644
--- a/program/localization/ber/labels.inc
+++ b/program/localization/ber/labels.inc
@@ -13,5 +13,6 @@
+-----------------------------------------------------------------------+
*/
+$labels = array();
$labels['username'] = 'Izwel n';
diff --git a/program/localization/bg_BG/labels.inc b/program/localization/bg_BG/labels.inc
index 0394f19b9..6542cfc53 100644
--- a/program/localization/bg_BG/labels.inc
+++ b/program/localization/bg_BG/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добре дошли в $product';
$labels['username'] = 'Потребител';
$labels['password'] = 'Парола';
$labels['server'] = 'Сървър';
$labels['login'] = 'Вход';
+
+// taskbar
$labels['logout'] = 'Изход';
-$labels['mail'] = 'Поща';
+$labels['mail'] = 'КутиÑ';
$labels['settings'] = 'ÐаÑтройки';
$labels['addressbook'] = 'ÐдреÑна книга';
-$labels['inbox'] = 'Вх. поща';
+
+// mailbox names
+$labels['inbox'] = 'ВходÑщи';
$labels['drafts'] = 'Чернови';
$labels['sent'] = 'Изпратени';
$labels['trash'] = 'Кошче';
$labels['junk'] = 'Спам';
-$labels['show_real_foldernames'] = 'Показва иÑтинÑките имена на Ñлужебните папки';
+
+// message listing
$labels['subject'] = 'Заглавие';
$labels['from'] = 'От';
$labels['sender'] = 'Подател';
@@ -43,22 +52,28 @@ $labels['size'] = 'Размер';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'ОрганизациÑ';
$labels['readstatus'] = 'Статут (прочетено/ново)';
-$labels['listoptions'] = 'ÐаÑтройки на ÑпиÑък...';
+$labels['listoptions'] = 'Показване на възможни опции';
+
$labels['mailboxlist'] = 'Папки';
-$labels['messagesfromto'] = 'ПиÑма $from до $to от $count';
-$labels['threadsfromto'] = 'КореÑпонденции $from до $to от $count';
-$labels['messagenrof'] = 'ПиÑмо $nr от $count';
+$labels['messagesfromto'] = 'Ð¡ÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ $from до $to от $count';
+$labels['threadsfromto'] = 'Ð¡ÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ $from до $to от $count';
+$labels['messagenrof'] = 'Съобщение $nr от $count';
$labels['fromtoshort'] = '$from – $to от $count';
+
$labels['copy'] = 'Копиране';
$labels['move'] = 'ПремеÑтване';
-$labels['moveto'] = 'ПремеÑти във...';
+$labels['moveto'] = 'ПремеÑти в...';
$labels['download'] = 'Изтегли';
$labels['open'] = 'Отвори';
$labels['showattachment'] = 'Показване';
$labels['showanyway'] = 'Показване въпреки това';
+
$labels['filename'] = 'Име на файла';
$labels['filesize'] = 'Размер на файла';
+
$labels['addtoaddressbook'] = 'Добави в адреÑната книга';
+
+// weekdays short
$labels['sun'] = 'Ðед';
$labels['mon'] = 'Пон';
$labels['tue'] = 'Вто';
@@ -66,6 +81,8 @@ $labels['wed'] = 'СрÑ';
$labels['thu'] = 'Чет';
$labels['fri'] = 'Пет';
$labels['sat'] = 'Съб';
+
+// weekdays long
$labels['sunday'] = 'ÐеделÑ';
$labels['monday'] = 'Понеделник';
$labels['tuesday'] = 'Вторник';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'СрÑда';
$labels['thursday'] = 'Четвъртък';
$labels['friday'] = 'Петък';
$labels['saturday'] = 'Събота';
+
+// months short
$labels['jan'] = 'Яну';
$labels['feb'] = 'Фев';
$labels['mar'] = 'Мар';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Сеп';
$labels['oct'] = 'Окт';
$labels['nov'] = 'Ðое';
$labels['dec'] = 'Дек';
+
+// months long
$labels['longjan'] = 'Януари';
$labels['longfeb'] = 'Февруари';
$labels['longmar'] = 'Март';
@@ -97,157 +118,167 @@ $labels['longsep'] = 'Септември';
$labels['longoct'] = 'Октомври';
$labels['longnov'] = 'Ðоември';
$labels['longdec'] = 'Декември';
+
$labels['today'] = 'ДнеÑ';
-$labels['refresh'] = 'Обнови';
-$labels['checkmail'] = 'Провери за нова поща';
-$labels['compose'] = 'Ðапиши';
+
+// toolbar buttons
+$labels['refresh'] = 'ОпреÑнÑване';
+$labels['checkmail'] = 'Провери за нови пиÑма';
+$labels['compose'] = 'Ðово пиÑмо';
$labels['writenewmessage'] = 'Създай ново пиÑмо';
$labels['reply'] = 'Отговор';
-$labels['replytomessage'] = 'Отговори на подателÑ';
-$labels['replytoallmessage'] = 'Отговори на Ð¿Ð¾Ð´Ð°Ñ‚ÐµÐ»Ñ Ð¸ вÑички получатели';
+$labels['replytomessage'] = 'Отговори на пиÑмото';
+$labels['replytoallmessage'] = 'Отговор до Ð¿Ð¾Ð´Ð°Ñ‚ÐµÐ»Ñ Ð¸ вÑички получатели';
$labels['replyall'] = 'Отговор на вÑички';
-$labels['replylist'] = 'Отговор на ÑпиÑък';
-$labels['forward'] = 'Препрати';
-$labels['forwardinline'] = 'Като цитат в пиÑмото';
-$labels['forwardattachment'] = 'Като прикачен файл';
+$labels['replylist'] = 'СпиÑък за отговор';
+$labels['forward'] = 'Препращане';
+$labels['forwardinline'] = 'Препрати като чаÑÑ‚ от Ñъобщението';
+$labels['forwardattachment'] = 'Препрати като прикачен файл';
$labels['forwardmessage'] = 'Препрати пиÑмото';
$labels['deletemessage'] = 'Изтрий пиÑмото';
-$labels['movemessagetotrash'] = 'ПремеÑти пиÑмото в Кошче';
-$labels['printmessage'] = 'Печат на пиÑмото';
+$labels['movemessagetotrash'] = 'ПремеÑти пиÑмото в кошчето';
+$labels['printmessage'] = 'Разпечатай пиÑмото';
$labels['previousmessage'] = 'Предишно пиÑмо';
$labels['firstmessage'] = 'Първо пиÑмо';
$labels['nextmessage'] = 'Следващо пиÑмо';
$labels['lastmessage'] = 'ПоÑледно пиÑмо';
$labels['backtolist'] = 'Обратно към ÑпиÑъка';
-$labels['viewsource'] = 'Изходен код';
-$labels['mark'] = 'Маркирай';
+$labels['viewsource'] = 'Виж като код';
+$labels['mark'] = 'Маркирарне';
$labels['markmessages'] = 'Маркирай пиÑмата';
$labels['markread'] = 'Като прочетени';
$labels['markunread'] = 'Като нови';
$labels['markflagged'] = 'Като отбелÑзани';
$labels['markunflagged'] = 'Като неотбелÑзани';
-$labels['moreactions'] = 'Допълнителни дейÑтвиÑ...';
-$labels['more'] = 'Още';
+$labels['moreactions'] = 'Повече дейÑтвиÑ...';
+$labels['more'] = 'Повече';
$labels['back'] = 'Ðазад';
$labels['options'] = 'Опции';
+
$labels['select'] = 'Избери';
$labels['all'] = 'Ð’Ñички';
-$labels['none'] = 'ОÑтави без избор';
-$labels['currpage'] = 'Ð’Ñички на Ñтраницата';
-$labels['unread'] = 'Само нови';
-$labels['flagged'] = 'Само отбелÑзани';
-$labels['unanswered'] = 'Само без отговор';
+$labels['none'] = 'ÐÑма';
+$labels['currpage'] = 'Страница';
+$labels['unread'] = 'Ðови';
+$labels['flagged'] = 'ОтбелÑзано';
+$labels['unanswered'] = 'Без отговор';
$labels['withattachment'] = 'С прикачен файл';
-$labels['deleted'] = 'Ð’Ñички изтрити';
-$labels['undeleted'] = 'Които не Ñа изтрити';
-$labels['invert'] = 'Които не Ñа избрани';
+$labels['deleted'] = 'Изтрито';
+$labels['undeleted'] = 'Ðе е изтрит';
+$labels['invert'] = 'Инвертирай';
$labels['filter'] = 'Филтър';
$labels['list'] = 'СпиÑък';
-$labels['threads'] = 'КореÑпонденции';
-$labels['expand-all'] = 'Разгъни вÑички';
-$labels['expand-unread'] = 'Разгъни непрочетените';
-$labels['collapse-all'] = 'Сгъни вÑички';
-$labels['threaded'] = 'Групирани по кореÑпонденции';
-$labels['autoexpand_threads'] = 'Разгъни кореÑпонденции';
-$labels['do_expand'] = 'вÑички кореÑпонденции';
-$labels['expand_only_unread'] = 'Ñамо Ñ Ð½ÐµÐ¿Ñ€Ð¾Ñ‡ÐµÑ‚ÐµÐ½Ð¸ пиÑма';
-$labels['fromto'] = 'От/Получател';
-$labels['flag'] = 'ОтбелÑзано';
+$labels['threads'] = 'СъобщениÑ';
+$labels['expand-all'] = 'ОтварÑне на вÑички';
+$labels['expand-unread'] = 'ОтварÑне на непрочетени';
+$labels['collapse-all'] = 'ЗатварÑне на вÑички';
+$labels['threaded'] = 'Ð¡ÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð¾Ñ‚Ð³Ð¾Ð²Ð¾Ñ€Ð¸';
+
+$labels['autoexpand_threads'] = 'ОтварÑне на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ отговори';
+$labels['do_expand'] = 'вÑички отговори';
+$labels['expand_only_unread'] = 'Ñамо Ñ Ð½ÐµÐ¿Ñ€Ð¾Ñ‡ÐµÑ‚ÐµÐ½Ð¸ ÑъобщениÑ';
+$labels['fromto'] = 'Изпращащ/Получаващ';
+$labels['flag'] = 'Флаг';
$labels['attachment'] = 'Прикачен файл';
-$labels['nonesort'] = 'ÐÑма';
+$labels['nonesort'] = 'Ðикакъв';
$labels['sentdate'] = 'Дата на изпращане';
-$labels['arrival'] = 'Дата на получаване';
-$labels['asc'] = 'нараÑтваща';
-$labels['desc'] = 'намалÑваща';
-$labels['listcolumns'] = 'Колони на ÑпиÑък';
-$labels['listsorting'] = 'Подреди по колона';
-$labels['listorder'] = 'ПоÑока на подреждане';
-$labels['listmode'] = 'Изглед на ÑпиÑък';
+$labels['arrival'] = 'Дата на приÑтигане';
+$labels['asc'] = 'възходÑщ';
+$labels['desc'] = 'низходÑщ';
+$labels['listcolumns'] = 'Колони за ÑпиÑък';
+$labels['listsorting'] = 'Колона за Ñортиране';
+$labels['listorder'] = 'Режим на Ñортиране';
+$labels['listmode'] = 'Кратък ÑпиÑък';
+
$labels['folderactions'] = 'ДейÑÑ‚Ð²Ð¸Ñ Ð·Ð° папки...';
-$labels['compact'] = 'Уплътни данни';
+$labels['compact'] = 'Свиване';
$labels['empty'] = 'Изпразни';
-$labels['importmessages'] = 'Импорт на пиÑма';
+
$labels['quota'] = 'Използвано мÑÑто';
$labels['unknown'] = 'нÑма информациÑ';
-$labels['unlimited'] = 'без ограничение';
+$labels['unlimited'] = 'нÑма ограничение';
+
$labels['quicksearch'] = 'Бързо Ñ‚ÑŠÑ€Ñене';
-$labels['resetsearch'] = 'ИзчиÑти филтър и покажи вÑичко';
-$labels['searchmod'] = 'Филтър по';
-$labels['msgtext'] = 'ЦÑлото пиÑмо';
+$labels['resetsearch'] = 'ИзчиÑти Ñ‚ÑŠÑ€Ñенето и покажи вÑички пиÑма';
+$labels['searchmod'] = 'ТърÑене във';
+$labels['msgtext'] = 'ЦÑлото Ñъобщение';
$labels['body'] = 'ОÑновен текÑÑ‚';
-$labels['type'] = 'Тип';
-$labels['namex'] = 'Име';
+
$labels['openinextwin'] = 'Отвори в нов прозорец';
$labels['emlsave'] = 'Изтегли като .eml';
-$labels['changeformattext'] = 'Покажи в текÑтов формат';
+$labels['changeformattext'] = 'Покажи в опроÑтен текÑтов формат';
$labels['changeformathtml'] = 'Покажи в HTML формат';
-$labels['editasnew'] = 'Редактирай като ново';
-$labels['send'] = 'Изпрати';
+
+// message compose
+$labels['editasnew'] = 'Промени като ново';
+$labels['send'] = 'Изпращане';
$labels['sendmessage'] = 'Изпрати пиÑмото';
$labels['savemessage'] = 'Запиши в Чернови';
-$labels['addattachment'] = 'Прикачване на файл';
-$labels['charset'] = 'Кодова таблица';
+$labels['addattachment'] = 'Прикачи файл';
+$labels['charset'] = 'Кодировка';
$labels['editortype'] = 'Вид редактор';
$labels['returnreceipt'] = 'Обратна разпиÑка';
-$labels['dsn'] = 'ÐÐ¾Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€Ð¸ доÑтавка';
+$labels['dsn'] = 'Информиране при доÑтавка';
$labels['mailreplyintro'] = 'Ðа $date, $sender напиÑа:';
-$labels['originalmessage'] = 'Оригинално пиÑмо';
-$labels['editidents'] = 'Промени ÑамоличноÑти';
-$labels['spellcheck'] = 'ПравопиÑ';
-$labels['checkspelling'] = 'Проверка на правопиÑа';
+$labels['originalmessage'] = 'Първоначалното Ñъобщение';
+
+$labels['editidents'] = 'Редактиране на ÑамоличноÑти';
+$labels['spellcheck'] = 'Спелуване';
+$labels['checkspelling'] = 'Провери правопиÑа';
$labels['resumeediting'] = 'Продължи черновата';
$labels['revertto'] = 'Върни Ñе към';
-$labels['responses'] = 'Отговори';
-$labels['insertresponse'] = 'Вмъкване на отговори';
-$labels['manageresponses'] = 'ÐаÑтройка на отговори';
-$labels['savenewresponse'] = 'Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° нов отговор';
-$labels['editresponses'] = 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° отговори';
-$labels['editresponse'] = 'Ð ÐµÐ´Ð°ÐºÑ†Ð¸Ñ Ð½Ð° отговор';
-$labels['responsename'] = 'Име';
-$labels['responsetext'] = 'ТекÑÑ‚ на отговор';
-$labels['attach'] = 'Прикачи';
+
+$labels['attach'] = 'Прикачване';
$labels['attachments'] = 'Прикачени файлове';
$labels['upload'] = 'Качи';
$labels['uploadprogress'] = '$percent ($current от $total)';
$labels['close'] = 'Затвори';
-$labels['messageoptions'] = 'ÐаÑтройки на пиÑма...';
+$labels['messageoptions'] = 'ÐаÑтройки на ÑъобщениÑ...';
+
$labels['low'] = 'ÐиÑък';
$labels['lowest'] = 'Ðай-ниÑък';
$labels['normal'] = 'Ðормален';
$labels['high'] = 'ВиÑок';
$labels['highest'] = 'Ðай-виÑок';
+
$labels['nosubject'] = '(нÑма заглавие)';
$labels['showimages'] = 'Показвай изображениÑ';
-$labels['alwaysshow'] = 'Винаги показвай Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ $sender';
-$labels['isdraft'] = 'Това е чернова';
-$labels['andnmore'] = 'още $nr...';
-$labels['togglemoreheaders'] = 'Покажи още заглавни блокове';
-$labels['togglefullheaders'] = 'Изходни заглавни блокове';
+$labels['alwaysshow'] = 'Винаги показвай Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾Ñ‚ $';
+$labels['isdraft'] = 'Това Ñъобщение е чернова';
+$labels['andnmore'] = '$nr повече...';
+$labels['togglemoreheaders'] = 'Показва още ÑъобщениÑ';
+$labels['togglefullheaders'] = 'Само новите ÑъобщениÑ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ТекÑтово';
-$labels['savesentmessagein'] = 'Запази Ñлед изпращане в';
-$labels['dontsave'] = 'не запазвай';
-$labels['maxuploadsize'] = 'МакÑимален размер на файл е $size';
+$labels['savesentmessagein'] = 'Запази Ñъобщението в';
+$labels['dontsave'] = 'Ðе ÑъхранÑвай';
+$labels['maxuploadsize'] = 'МакÑимално позволен размер $size';
+
$labels['addcc'] = 'Копие до';
$labels['addbcc'] = 'Скрито копие до';
-$labels['addreplyto'] = 'Отговор до';
-$labels['addfollowupto'] = 'Препращане към';
-$labels['mdnrequest'] = 'ПодателÑÑ‚ е поиÑкал да бъде уведомен, че Ñте го прочели това пиÑмо. Желаете ли да изпратите обратна разпиÑка?';
+$labels['addreplyto'] = 'Отговор на';
+$labels['addfollowupto'] = 'ДобавÑне на препращане към';
+
+// mdn
+$labels['mdnrequest'] = 'ПодателÑÑ‚ на пиÑмото е пожелал да бъде уведомен, че Ñте го прочели. Желаете ли да изпратите обратна разпиÑка?';
$labels['receiptread'] = 'Обратна разпиÑка (прочетено)';
-$labels['yourmessage'] = 'Това е обратна разпиÑка отноÑно пиÑмото Ви';
-$labels['receiptnote'] = 'Забележка: Тази разпиÑка потвърждава Ñамо, че пиÑмото е било визуализирано на екрана на получателÑÑ‚. ÐÑма никаква гаранциÑ, че той е разбрал и/или дори прочел неговото Ñъдържание.';
+$labels['yourmessage'] = 'Това е обратна разпиÑка за пиÑмото Ви';
+$labels['receiptnote'] = 'Забележка: Тази разпиÑка потвърждава Ñамо, че пиÑмото е било показано на компютъра на получателÑÑ‚. ÐÑма никаква гаранциÑ, че получателÑÑ‚ е прочел и/или разбрал Ñъдържанието на пиÑмото.';
+
+// address boook
$labels['name'] = 'Екранно име';
$labels['firstname'] = 'Име';
$labels['surname'] = 'ФамилиÑ';
$labels['middlename'] = 'Презиме';
-$labels['nameprefix'] = 'Титла';
-$labels['namesuffix'] = 'ÐаÑтавка';
+$labels['nameprefix'] = 'ПредÑтавка (Титла)';
+$labels['namesuffix'] = 'ÐаÑтавка (Титла)';
$labels['nickname'] = 'ПÑевдоним';
$labels['jobtitle'] = 'ДлъжноÑÑ‚';
$labels['department'] = 'Отдел';
$labels['gender'] = 'Пол';
-$labels['maidenname'] = 'Бащино име';
-$labels['email'] = 'E-mail';
+$labels['maidenname'] = 'Бащино фамилиÑ';
+$labels['email'] = 'E-Mail';
$labels['phone'] = 'Телефон';
$labels['address'] = 'ÐдреÑ';
$labels['street'] = 'Улица';
@@ -256,99 +287,108 @@ $labels['zipcode'] = 'ПощенÑки код';
$labels['region'] = 'ОблаÑÑ‚';
$labels['country'] = 'Държава';
$labels['birthday'] = 'Рожден ден';
-$labels['anniversary'] = 'Дата годишнина';
+$labels['anniversary'] = 'Годишнина';
$labels['website'] = 'Сайт';
-$labels['instantmessenger'] = 'Чат';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Бележки';
-$labels['male'] = 'мъж';
-$labels['female'] = 'жена';
+$labels['male'] = 'Мъж';
+$labels['female'] = 'Жена';
$labels['manager'] = 'Мениджър';
$labels['assistant'] = 'ÐÑиÑтент';
$labels['spouse'] = 'Съпруг(а)';
$labels['allfields'] = 'Ð’Ñички полета';
$labels['search'] = 'ТърÑене';
$labels['advsearch'] = 'Разширено Ñ‚ÑŠÑ€Ñене';
-$labels['advanced'] = 'ТърÑи';
+$labels['advanced'] = 'Разширени';
$labels['other'] = 'Други';
-$labels['typehome'] = 'Домашен';
-$labels['typework'] = 'Служебен';
-$labels['typeother'] = 'Друг';
-$labels['typemobile'] = 'Мобилен';
-$labels['typemain'] = 'ОÑновен';
+
+$labels['typehome'] = 'Ðачало';
+$labels['typework'] = 'Работа';
+$labels['typeother'] = 'Други';
+$labels['typemobile'] = 'Мобилни';
+$labels['typemain'] = 'Главни';
$labels['typehomefax'] = 'Домашен факÑ';
$labels['typeworkfax'] = 'Служебен факÑ';
-$labels['typecar'] = 'В колата';
+$labels['typecar'] = 'Ðвтомобил';
$labels['typepager'] = 'Пейджър';
-$labels['typevideo'] = 'Ð¡ÑŠÑ Ð²Ð¸Ð´ÐµÐ¾';
-$labels['typeassistant'] = 'Ðа аÑиÑтент';
-$labels['typehomepage'] = 'Личен';
+$labels['typevideo'] = 'Видео';
+$labels['typeassistant'] = 'ÐÑиÑтент';
+$labels['typehomepage'] = 'Ðачална Ñтраница';
$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профил';
-$labels['addfield'] = 'Друго поле...';
-$labels['addcontact'] = 'Добави нов контакт';
-$labels['editcontact'] = 'Редактирай контакт';
+
+$labels['addfield'] = 'Добави поле';
+$labels['addcontact'] = 'ДобавÑне';
+$labels['editcontact'] = 'ПромÑна';
$labels['contacts'] = 'Контакти';
-$labels['contactproperties'] = 'Данни на контакт';
+$labels['contactproperties'] = 'СвойÑтва на контакт';
$labels['personalinfo'] = 'Лична информациÑ';
+
$labels['edit'] = 'Редактирай';
$labels['cancel'] = 'Отказ';
-$labels['save'] = 'ЗапиÑ';
+$labels['save'] = 'Запиши';
$labels['delete'] = 'Изтрий';
$labels['rename'] = 'Преименувай';
$labels['addphoto'] = 'Добави';
$labels['replacephoto'] = 'Замени';
$labels['uploadphoto'] = 'Качване на Ñнимка';
+
$labels['newcontact'] = 'Ðов контакт';
-$labels['deletecontact'] = 'Изтрий избраните контакти';
+$labels['deletecontact'] = 'Изтрий маркираните контакти';
$labels['composeto'] = 'Ðапиши пиÑмо до';
$labels['contactsfromto'] = 'Контакти $from до $to от $count';
-$labels['print'] = 'Печат';
-$labels['export'] = 'ЕкÑпорт';
-$labels['exportall'] = 'ЕкÑпортиране на вÑичко';
+$labels['print'] = 'Разпечатай';
+$labels['export'] = 'ИзнаÑÑне';
+$labels['exportall'] = 'ЕкÑпортиране';
$labels['exportsel'] = 'ЕкÑпортиране на избраното';
-$labels['exportvcards'] = 'ЕкÑпорт във vCard формат';
-$labels['newcontactgroup'] = 'Ðова група контракти';
-$labels['grouprename'] = 'Преименувай групата';
-$labels['groupdelete'] = 'Изтрий групата';
-$labels['groupremoveselected'] = 'Премахни избраните контакти от групата';
-$labels['previouspage'] = 'Предишна Ñтраница';
+$labels['exportvcards'] = 'ИзнаÑÑне във vCard формат';
+$labels['newcontactgroup'] = 'Създаване на нова група';
+$labels['grouprename'] = 'Преименувай група';
+$labels['groupdelete'] = 'Изтриване на група';
+$labels['groupremoveselected'] = 'Премахване на избраните контакти от група';
+
+$labels['previouspage'] = 'Предна Ñтраница';
$labels['firstpage'] = 'Първа Ñтраница';
$labels['nextpage'] = 'Следваща Ñтраница';
$labels['lastpage'] = 'ПоÑледна Ñтраница';
+
$labels['group'] = 'Група';
$labels['groups'] = 'Групи';
-$labels['listgroup'] = 'Покажи членове на групата';
$labels['personaladrbook'] = 'Лични адреÑи';
-$labels['searchsave'] = 'Запази филтър';
-$labels['searchdelete'] = 'Изтрий филтър';
-$labels['import'] = 'Импорт';
-$labels['importcontacts'] = 'Импортиране на контакти';
-$labels['importfromfile'] = 'Импорт от файл:';
-$labels['importtarget'] = 'Добави контакти към';
-$labels['importreplace'] = 'Замени цÑлата адреÑна книга';
-$labels['importgroups'] = 'Импорт на задачи на група';
-$labels['importgroupsall'] = 'Ð’Ñички (Ñъздава групи ако е необходимо)';
-$labels['importgroupsexisting'] = 'Само за ÑъщеÑтвуващите групи';
-$labels['importdesc'] = 'Можете да качвате контакти от ÑъщеÑтвуваща адреÑна книга.<br/>Ð’ момента поддържаме импорт на адреÑи от файловите формати <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> или CSV (comma-separated).';
-$labels['done'] = 'Готово';
+
+$labels['searchsave'] = 'Запази Ñ‚ÑŠÑ€Ñенето';
+$labels['searchdelete'] = 'Изтрий Ñ‚ÑŠÑ€Ñенето';
+
+$labels['import'] = 'ВнаÑÑне';
+$labels['importcontacts'] = 'ВнаÑÑне';
+$labels['importfromfile'] = 'ВнаÑÑне от файл';
+$labels['importtarget'] = 'Добави нови контакти в книгата Ñ Ð°Ð´Ñ€ÐµÑи';
+$labels['importreplace'] = 'Замени цÑлата книга Ñ Ð°Ð´Ñ€ÐµÑи';
+$labels['importdesc'] = 'Можете да качвате контакти от ÑъщеÑтвуваща адреÑна книга.<br/>Ð’ момента поддържаме внаÑÑне на адреÑи от файловите формати <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> или CSV (comma-separated).';
+$labels['done'] = 'Извършено';
+
+// settings
$labels['settingsfor'] = 'ÐаÑтройки за';
$labels['about'] = 'ОтноÑно';
$labels['preferences'] = 'ÐаÑтройки';
$labels['userpreferences'] = 'ПотребителÑки наÑтройки';
$labels['editpreferences'] = 'Редактирай потребителÑките наÑтройки';
-$labels['identities'] = 'СамоличноÑти';
-$labels['manageidentities'] = 'ÐаÑтройка на ÑамоличноÑти за този акаунт';
+
+$labels['identities'] = 'СамоличноÑÑ‚';
+$labels['manageidentities'] = 'ПромÑна на ÑамоличноÑтите за този акаунт';
$labels['newidentity'] = 'Ðова ÑамоличноÑÑ‚';
+
$labels['newitem'] = 'Ðова ÑамоличноÑÑ‚';
-$labels['edititem'] = 'Редактирай ÑамоличноÑÑ‚';
-$labels['preferhtml'] = 'Покажи първо HTML верÑиÑ';
-$labels['defaultcharset'] = 'Кодова таблица по подразбиране';
-$labels['htmlmessage'] = 'HTML пиÑмо';
+$labels['edititem'] = 'Редактиране на ÑамоличноÑÑ‚';
+
+$labels['preferhtml'] = 'Показвай първо HTML верÑиÑ';
+$labels['defaultcharset'] = 'Подразбиращо Ñе кодиране';
+$labels['htmlmessage'] = 'HTML Ñъобщение';
$labels['messagepart'] = 'ЧаÑÑ‚';
$labels['digitalsig'] = 'Показва подпиÑ';
-$labels['dateformat'] = 'Формат на дати';
-$labels['timeformat'] = 'Формат на време';
-$labels['prettydate'] = 'Удобни дати';
+$labels['dateformat'] = 'Формат на датата';
+$labels['timeformat'] = 'Формат на времето';
+$labels['prettydate'] = 'Кратки дати';
$labels['setdefault'] = 'По подразбиране';
$labels['autodetect'] = 'Ðвтоматично';
$labels['language'] = 'Език';
@@ -356,120 +396,126 @@ $labels['timezone'] = 'ЧаÑова зона';
$labels['pagesize'] = 'Редове на Ñтраница';
$labels['signature'] = 'ПодпиÑ';
$labels['dstactive'] = 'Маркирай при лÑтно време';
-$labels['showinextwin'] = 'ОтварÑй пиÑмата в отделен прозорец';
-$labels['composeextwin'] = 'ПиÑане на ново пиÑмо в отделен прозорец';
-$labels['htmleditor'] = 'ПиÑане на ново пиÑмо като HTML';
-$labels['htmlonreply'] = 'Ñамо при отговор на HTML пиÑмо';
-$labels['htmlonreplyandforward'] = 'Ñамо при препращане или отговор на HTML пиÑмо';
+$labels['showinextwin'] = 'ОтварÑне на Ñъобщението в нов прозорец';
+$labels['composeextwin'] = 'Ðово пиÑмо в прозорец';
+$labels['htmleditor'] = 'ПиÑане на Ñъобщениe като HTML';
+$labels['htmlonreply'] = 'Ñамо при отговор на HTML ÑъбощениÑ';
+$labels['htmlonreplyandforward'] = 'Ñамо при препращане или отговор на HTML Ñъобщение';
$labels['htmlsignature'] = 'HTML подпиÑ';
$labels['showemail'] = 'Показва email Ð°Ð´Ñ€ÐµÑ Ñ ÐµÐºÑ€Ð°Ð½Ð½Ð¾Ñ‚Ð¾ име';
-$labels['previewpane'] = 'Показване на панел за преглед';
-$labels['skin'] = 'Изглед на потребителÑки интерфейÑ';
-$labels['logoutclear'] = 'При изход изтрий вÑичко от Кошче';
-$labels['logoutcompact'] = 'При изход уплътни данни във Вх. поща';
+$labels['previewpane'] = 'Панел за преглед';
+$labels['skin'] = 'СмÑна изгледа на интерфейÑа';
+$labels['logoutclear'] = 'ИзчиÑти кошчето при изход';
+$labels['logoutcompact'] = 'Упллътни ВходÑщи при изход';
$labels['uisettings'] = 'ПотребителÑки интерфейÑ';
$labels['serversettings'] = 'ÐаÑтройки на Ñървъра';
-$labels['mailboxview'] = 'Изглед на пощенÑка кутиÑ';
-$labels['mdnrequests'] = 'При иÑкане за обратна разпиÑка';
-$labels['askuser'] = 'задай въпроÑ';
-$labels['autosend'] = 'изпрати автоматично винаги';
-$labels['autosendknown'] = 'изпрати автоматично Ñамо на моите контакти, иначе задай въпроÑ';
-$labels['autosendknownignore'] = 'изпрати автоматично Ñамо на моите контакти, иначе отхвърли';
-$labels['ignore'] = 'отхвърли';
-$labels['readwhendeleted'] = 'Маркирай като прочетено при изтриване';
-$labels['flagfordeletion'] = 'Отбележи пиÑмото за изтриване';
-$labels['skipdeleted'] = 'Ðе показвай изтритите пиÑма';
-$labels['deletealways'] = 'При неуÑпешно меÑтене на пиÑмо в Кошче, изтрий директно';
-$labels['deletejunk'] = 'Ð’ папка Спам изтривай пиÑмата без меÑтене в Кошче';
-$labels['showremoteimages'] = 'Покажи вградени изображениÑ';
-$labels['fromknownsenders'] = 'от познати податели';
-$labels['always'] = 'винаги';
-$labels['showinlineimages'] = 'Покажи прикачените Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñлед пиÑмото';
+$labels['mailboxview'] = 'Преглед на КутиÑ';
+$labels['mdnrequests'] = 'Уведомление на подателÑ';
+$labels['askuser'] = 'Задай въпроÑ';
+$labels['autosend'] = 'Изпрати автоматично';
+$labels['autosendknown'] = 'да Ñе изпрати обратна разпиÑка на моите контакти и да Ñе пита при външни контакти';
+$labels['autosendknownignore'] = 'да Ñе изпрати обратна разпиÑка на моите контакти, а на външни не';
+$labels['ignore'] = 'Отхвърли';
+$labels['readwhendeleted'] = 'Отбележи като прочетено при изтриване';
+$labels['flagfordeletion'] = 'Отбележи Ñъобщението за изтриване';
+$labels['skipdeleted'] = 'Ðе показвай изтритите ÑъобщениÑ';
+$labels['deletealways'] = 'При неуÑпешно премеÑтване на Ñъобщение в Кошчето, да Ñе изтрие';
+$labels['deletejunk'] = 'МеÑтене на изтритите ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² кошчето';
+$labels['showremoteimages'] = 'Покажи блокираните изображениÑ';
+$labels['fromknownsenders'] = 'Oт познати податели';
+$labels['always'] = 'Винаги';
+$labels['showinlineimages'] = 'Покажи прикачените Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñлед Ñъобщението';
$labels['autosavedraft'] = 'Ðвтоматично запиÑвай чернова';
-$labels['everynminutes'] = 'през $n минути';
-$labels['refreshinterval'] = 'ПроверÑвай за нова поща';
+$labels['everynminutes'] = 'вÑеки $n минути';
+$labels['refreshinterval'] = 'ОпреÑнÑване (проверка за нови ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸ Ñ‚.н.)';
$labels['never'] = 'никога';
-$labels['immediately'] = 'веднага';
-$labels['messagesdisplaying'] = 'Показване на пиÑма';
-$labels['messagescomposition'] = 'ПиÑане на пиÑма';
-$labels['mimeparamfolding'] = 'Имена на прикачени файлове';
+$labels['immediately'] = 'Веднага';
+$labels['messagesdisplaying'] = 'Показване на ÑъбщениÑта';
+$labels['messagescomposition'] = 'ПиÑане на ÑъобщениÑ';
+$labels['mimeparamfolding'] = 'ДобавÑне име на прикрепените файлове';
$labels['2231folding'] = 'Според RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Според RFC 2047 (други)';
$labels['force7bit'] = 'Използване на MIME кодиране за 8-битови Ñимволи';
-$labels['advancedoptions'] = 'Разширени наÑтройки';
+$labels['advancedoptions'] = 'ÐаÑтройки за напреднали';
$labels['focusonnewmessage'] = 'Премигване на прозореца при ново пиÑмо';
-$labels['checkallfolders'] = 'Проверка за нови пиÑма във вÑички папки ';
-$labels['displaynext'] = 'След изтриване/премеÑтване на пиÑмо покажи Ñледващото в ÑпиÑъка';
-$labels['defaultfont'] = 'Шрифт по подразбиране за HTML пиÑма';
+$labels['checkallfolders'] = 'Провери вÑички папки за нови пиÑма';
+$labels['displaynext'] = 'След изтриване / премини към Ñледващото пиÑмо';
+$labels['defaultfont'] = 'Шрифт по подразбиране за HTML ÑъобщениÑта';
$labels['mainoptions'] = 'ОÑновни наÑтройки';
-$labels['browseroptions'] = 'ÐаÑтройки на текущ браузър';
+$labels['browseroptions'] = 'ÐаÑтройки на четеца';
$labels['section'] = 'СекциÑ';
-$labels['maintenance'] = 'Поддръжка папки';
-$labels['newmessage'] = 'Ðови пиÑма';
+$labels['maintenance'] = 'Поддръжка';
+$labels['newmessage'] = 'Ðово Ñъобщение';
$labels['signatureoptions'] = 'ÐаÑтройки на подпиÑ';
-$labels['whenreplying'] = 'При отговор на пиÑмо';
-$labels['replyempty'] = 'не цитирай оригиналното пиÑмо';
-$labels['replytopposting'] = 'започни новото пиÑмо над цитата (top-posting)';
-$labels['replybottomposting'] = 'започни новото пиÑмо Ñлед цитата (bottom-posting)';
-$labels['replyremovesignature'] = 'При отговор на пиÑмо премахни Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ';
-$labels['autoaddsignature'] = 'Ðвтоматично добавÑй подпиÑ';
-$labels['newmessageonly'] = 'Ñамо на нови пиÑма';
+$labels['whenreplying'] = 'При отговор';
+$labels['replyempty'] = 'да не Ñе цитира оригиналното Ñъобщение';
+$labels['replytopposting'] = 'започване на ново Ñъобщение преди Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚';
+$labels['replybottomposting'] = 'започване на ново Ñъобщение Ñлед Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ‚ÐµÐºÑÑ‚';
+$labels['replyremovesignature'] = 'Премахване на Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ Ñъобщението при отговор';
+$labels['autoaddsignature'] = 'Ðвтоматично добавÑне на подпиÑ';
+$labels['newmessageonly'] = 'Ñамо на нови ÑъобщениÑ';
$labels['replyandforwardonly'] = 'Ñамо на отговори и препратени';
$labels['insertsignature'] = 'Вмъкване на подпиÑ';
-$labels['previewpanemarkread'] = 'Маркиране на прегледаните пиÑма като прочетени';
+$labels['previewpanemarkread'] = 'Маркиране на прегледаните ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ñ‚Ð¾ прочетени';
$labels['afternseconds'] = 'Ñлед $n Ñекунди';
-$labels['reqmdn'] = 'Винаги изиÑквай обратна разпиÑка';
-$labels['reqdsn'] = 'Винаги изиÑквай ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ñтавка на пиÑмото';
-$labels['replysamefolder'] = 'ПоÑтави отговор в папка на пиÑмото, на което Ñе отговарÑ';
+$labels['reqmdn'] = 'Винаги връщай обратна разпиÑка';
+$labels['reqdsn'] = 'Винаги изиÑквай отговор при доÑтавка на Ñъобщение';
+$labels['replysamefolder'] = 'ПоÑтави отговора в папката на Ñъобщението, на което Ñе отговарÑ';
$labels['defaultabook'] = 'ÐдреÑна книга по подразбиране';
-$labels['autocompletesingle'] = 'ПропуÑни алтернативни e-mail адреÑи при автоматично попълване';
-$labels['listnamedisplay'] = 'Форматирай ÑпиÑък Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð¸ като';
-$labels['spellcheckbeforesend'] = 'Провери за правопиÑни грешки преди изпращане на пиÑмото';
+$labels['autocompletesingle'] = 'ПропуÑни алтернативните email адреÑи при автоматично попълване';
+$labels['listnamedisplay'] = 'Показване на контактите като';
+$labels['spellcheckbeforesend'] = 'Провери за правопиÑни грешки преди изпращане на Ñъобщението';
$labels['spellcheckoptions'] = 'ÐаÑтройки на проверката за правопиÑ';
$labels['spellcheckignoresyms'] = 'Игнорирай думи Ñъдържащи Ñимволи';
$labels['spellcheckignorenums'] = 'Игнорирай думи Ñъдържащи чиÑла';
$labels['spellcheckignorecaps'] = 'Игнорирай думи Ñъдържащи единÑтвено главни букви';
$labels['addtodict'] = 'Добави в речника';
-$labels['mailtoprotohandler'] = 'РегиÑтрирай RoundCube като интернет приложение, което обработва mailto: връзките в браузъра';
-$labels['standardwindows'] = 'Обработва изÑкачащи прозорци като Ñтандартни прозорци';
-$labels['forwardmode'] = 'Препращай пиÑмата';
-$labels['inline'] = 'цитирани в пиÑмото';
+$labels['mailtoprotohandler'] = 'РегиÑтриран протокол за mailto: връзките';
+$labels['forwardmode'] = 'Препращане на ÑъобщениÑ';
+$labels['inline'] = 'вградено';
$labels['asattachment'] = 'като прикачен файл';
+
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Име на папката';
-$labels['subscribed'] = 'Ðбониран';
+$labels['subscribed'] = 'Използвай';
$labels['messagecount'] = 'ПиÑма';
$labels['create'] = 'Създай';
-$labels['createfolder'] = 'Ðова папка';
-$labels['managefolders'] = 'Управление на папките';
+$labels['createfolder'] = 'Ðаправи нова папка';
+$labels['managefolders'] = 'ÐаÑтройки на папките';
$labels['specialfolders'] = 'Служебни папки';
-$labels['properties'] = 'Данни';
+$labels['properties'] = 'СвойÑтва';
$labels['folderproperties'] = 'СвойÑтва на папката';
-$labels['parentfolder'] = 'ОÑновна папка';
+$labels['parentfolder'] = 'РодителÑка папка';
$labels['location'] = 'МеÑтоположение';
$labels['info'] = 'ИнформациÑ';
-$labels['getfoldersize'] = 'Щракни за размер на папката';
+$labels['getfoldersize'] = 'Щракни за големина на папката';
$labels['changesubscription'] = 'Щракни за промÑна на абонамент';
$labels['foldertype'] = 'Вид на папката';
$labels['personalfolder'] = 'Лична папка';
$labels['otherfolder'] = 'Папка на друг потребител';
$labels['sharedfolder'] = 'Публична папка';
+
$labels['sortby'] = 'Сортирай по';
-$labels['sortasc'] = 'Сортирай нараÑтващо';
-$labels['sortdesc'] = 'Сортирай намалÑващо';
+$labels['sortasc'] = 'Сортирай възходÑщо';
+$labels['sortdesc'] = 'Сортирай низходÑщо';
$labels['undo'] = 'Отмени';
+
$labels['installedplugins'] = 'ИнÑталирани добавки';
$labels['plugin'] = 'Добавки';
$labels['version'] = 'ВерÑиÑ';
$labels['source'] = 'Източник';
$labels['license'] = 'Лиценз';
$labels['support'] = 'Поддръжка';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Уникод';
$labels['english'] = 'ÐнглийÑки';
$labels['westerneuropean'] = 'Западна Европа';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'ВиетнамÑки';
$labels['japanese'] = 'ЯпонÑки';
$labels['korean'] = 'КорейÑки';
$labels['chinese'] = 'КитайÑки';
+
?>
diff --git a/program/localization/bg_BG/messages.inc b/program/localization/bg_BG/messages.inc
index 48e1fbcc0..219772e74 100644
--- a/program/localization/bg_BG/messages.inc
+++ b/program/localization/bg_BG/messages.inc
@@ -15,161 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Възникна грешка!';
-$messages['loginfailed'] = 'ÐеуÑпешно уÑтановÑване на ÑамоличноÑÑ‚.';
-$messages['cookiesdisabled'] = 'ВашиÑÑ‚ браузър не приема cookies.';
-$messages['sessionerror'] = 'Ðевалидна или изтекла ÑеÑиÑ.';
-$messages['storageerror'] = 'ÐеуÑпешно Ñвързване към Ñървър Ñ Ð´Ð°Ð½Ð½Ð¸.';
-$messages['servererror'] = 'Сървърна грешка!';
+$messages['loginfailed'] = 'ÐеуÑпешен вход';
+$messages['cookiesdisabled'] = 'ВашиÑÑ‚ браузър не приема cookies';
+$messages['sessionerror'] = 'Ðевалидна или изтекла ÑеÑиÑ';
+$messages['storageerror'] = 'ÐеуÑпешно Ñвързване към IMAP Ñървъра';
+$messages['servererror'] = 'Грешка!';
$messages['servererrormsg'] = 'Сървърна грешка: $msg';
-$messages['dberror'] = 'Грешка в база данни!';
-$messages['requesttimedout'] = 'Изтекло време за изпълнение на заÑвката';
-$messages['errorreadonly'] = 'Ðевъзможно изпълнение на операциÑта. Папката е Ñ Ð¿Ñ€Ð°Ð²Ð° Ñамо за четене.';
-$messages['errornoperm'] = 'Ðевъзможно изпълнение на операциÑта. Отказани права за доÑтъп.';
-$messages['erroroverquota'] = 'Ðевъзможно извършване на операциÑта. ÐÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво.';
-$messages['erroroverquotadelete'] = 'ÐÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво. Ползвайте Shift+Del за да изтриете пиÑма.';
+$messages['dberror'] = 'Грешка Ñ Ð±Ð°Ð·Ð°Ñ‚Ð° данни!';
+$messages['requesttimedout'] = 'ЗаÑвката е Ñ Ð¸Ð·Ñ‚ÐµÐºÐ»Ð¾ време';
+$messages['errorreadonly'] = 'ОперациÑта не може да бъде изпълнена. Папката е Ñ Ð¿Ñ€Ð°Ð²Ð° Ñамо за четене';
+$messages['errornoperm'] = 'ОперациÑта не може да бъде изпълнена. Отказани права за доÑтъп';
+$messages['erroroverquota'] = 'Ðевъзможно извършване на дейÑтвието, нÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво.';
+$messages['erroroverquotadelete'] = 'ÐÑма доÑтатъчно Ñвободно диÑково проÑтранÑтво. Ползвайте SHIFT+DEL за да изтриете Ñъобщение.';
$messages['invalidrequest'] = 'Ðевалидна заÑвка! Данните не Ñа Ñъхранени.';
-$messages['invalidhost'] = 'Ðевалидно име на Ñървър.';
-$messages['nomessagesfound'] = 'ÐÑма пиÑма.';
-$messages['loggedout'] = 'СеÑиÑта е прекратена уÑпешно. Довиждане до ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð¿ÑŠÑ‚!';
-$messages['mailboxempty'] = 'ПощенÑката ÐºÑƒÑ‚Ð¸Ñ Ðµ празна.';
-$messages['refreshing'] = 'ОбновÑване...';
+$messages['invalidhost'] = 'Ðевалидно име на Ñървър';
+$messages['nomessagesfound'] = 'ÐÑма ÑъобщениÑ';
+$messages['loggedout'] = 'Довиждане!';
+$messages['mailboxempty'] = 'КутиÑта е празна';
+$messages['refreshing'] = 'ОпреÑнÑване...';
$messages['loading'] = 'Зареждане...';
-$messages['uploading'] = 'Качване на файл...';
-$messages['uploadingmany'] = 'Качване на файлове...';
+$messages['uploading'] = 'Качване на файла...';
+$messages['uploadingmany'] = 'Качване на файловете...';
$messages['loadingdata'] = 'Зареждане на данни...';
$messages['checkingmail'] = 'Проверка за нови пиÑма...';
-$messages['sendingmessage'] = 'Изпращане на пиÑмо...';
-$messages['messagesent'] = 'ПиÑмото е изпратено уÑпешно.';
-$messages['savingmessage'] = 'ЗапиÑване на пиÑмо...';
-$messages['messagesaved'] = 'ПиÑмото е запиÑано в Чернови.';
-$messages['successfullysaved'] = 'УÑпешен запиÑ.';
-$messages['savingresponse'] = 'ЗапиÑване текÑÑ‚ на отговор...';
-$messages['deleteresponseconfirm'] = 'Желаете ли да изтриете текÑÑ‚ за отговор?';
-$messages['addedsuccessfully'] = 'Контактът е добавен в адреÑната книга.';
-$messages['contactexists'] = 'Вече ÑъщеÑтвува контакт Ñ Ñ‚Ð¾Ð·Ð¸ e-mail адреÑ.';
-$messages['contactnameexists'] = 'Вече ÑъщеÑтвува контакт Ñ Ñ‚Ð¾Ð²Ð° име.';
+$messages['sendingmessage'] = 'Изпращане на пиÑмото...';
+$messages['messagesent'] = 'ПиÑмото е изпратено уÑпешно';
+$messages['savingmessage'] = 'ЗапиÑване на пиÑмото...';
+$messages['messagesaved'] = 'ПиÑмото е запиÑано в Чернови';
+$messages['successfullysaved'] = 'ЗапиÑано';
+$messages['addedsuccessfully'] = 'Контакта е добавен в адреÑната книга';
+$messages['contactexists'] = 'Контакт Ñ Ñ‚Ð¾Ð·Ð¸ e-mail Ð°Ð´Ñ€ÐµÑ Ð²ÐµÑ‡Ðµ ÑъщеÑтува';
+$messages['contactnameexists'] = 'Контакт ÑÑŠÑ Ñъщото име вече ÑъщеÑтвува';
$messages['blockedimages'] = 'С оглед на Вашата ÑигурноÑÑ‚, изображениÑта в това пиÑмо Ñа блокирани.';
$messages['encryptedmessage'] = 'Това е кодирано пиÑмо и не може да бъде показано. СъжалÑваме!';
-$messages['nocontactsfound'] = 'ÐÑма намерени контакти.';
-$messages['contactnotfound'] = 'ТърÑениÑÑ‚ контакт не е намерен.';
-$messages['contactsearchonly'] = 'Използвайте полето за да Ñ‚ÑŠÑ€Ñите контакти';
-$messages['sendingfailed'] = 'ÐеуÑпешно изпращане на пиÑмо.';
-$messages['senttooquickly'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ $sec Ñекунди преди да изпратите пиÑмото.';
-$messages['errorsavingsent'] = 'Възникна грешка при запиÑване на изпратеното пиÑмо.';
-$messages['errorsaving'] = 'Възникна грешка при запиÑването.';
-$messages['errormoving'] = 'ПиÑмото не може да бъде премеÑтено.';
-$messages['errorcopying'] = 'ПиÑмото не може да бъде копирано.';
-$messages['errordeleting'] = 'ПиÑмото не може да бъде изтрито.';
-$messages['errormarking'] = 'ПиÑмото не може да бъде маркирано.';
-$messages['deletecontactconfirm'] = 'Желаете ли да изтриете маркираните контакти?';
-$messages['deletegroupconfirm'] = 'Желаете ли да изтриете избраната група?';
-$messages['deletemessagesconfirm'] = 'Желаете ли да изтриете маркираните пиÑма?';
-$messages['deletefolderconfirm'] = 'Желаете ли да изтриете тази папка?';
-$messages['purgefolderconfirm'] = 'Желаете ли да изтриете вÑички пиÑма в тази папка?';
-$messages['contactdeleting'] = 'Изтриване на контакти...';
+$messages['nocontactsfound'] = 'ÐÑма намерени контакти';
+$messages['contactnotfound'] = 'ИÑканиÑÑ‚ контакт не е намерен';
+$messages['contactsearchonly'] = 'Въведете нещо в полето за Ñ‚ÑŠÑ€Ñене за да Ñ‚ÑŠÑ€Ñите контакти';
+$messages['sendingfailed'] = 'Изпращането неуÑпешно';
+$messages['senttooquickly'] = 'МолÑ, изчакайте $sec Ñекунда(и) преди да изпратите Ñъобщението';
+$messages['errorsavingsent'] = 'Възникна грешка при запиÑването на Ñъобщението';
+$messages['errorsaving'] = 'Възникна грешка при запиÑването';
+$messages['errormoving'] = 'ПиÑмото не може да бъде премеÑтено';
+$messages['errorcopying'] = 'СъобщениÑта не могат да бъдат копирани';
+$messages['errordeleting'] = 'ПиÑмото не може да бъде изтрито';
+$messages['errormarking'] = 'Съобщението не може да бъде маркирано';
+$messages['deletecontactconfirm'] = 'ИÑкате ли да изтриете маркираните контакти?';
+$messages['deletegroupconfirm'] = 'ИÑкате ли да изтриете избраната група?';
+$messages['deletemessagesconfirm'] = 'ИÑкате ли да изтриете маркираните ÑъобщениÑ?';
+$messages['deletefolderconfirm'] = 'ИÑкате ли да изтриете тази папка?';
+$messages['purgefolderconfirm'] = 'ИÑкате ли да изтриете вÑички пиÑма в тази папка?';
+$messages['contactdeleting'] = 'Изтриване на контакт(и)...';
$messages['groupdeleting'] = 'Изтриване на група...';
$messages['folderdeleting'] = 'Изтриване на папка...';
$messages['foldermoving'] = 'ПремеÑтване на папка...';
-$messages['foldersubscribing'] = 'Ðбониране за папка...';
-$messages['folderunsubscribing'] = 'ОтпиÑване от папка...';
-$messages['formincomplete'] = 'Ðе Ñте попълнили вÑички полета.';
-$messages['noemailwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ валиден e-mail адреÑ.';
-$messages['nonamewarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име.';
-$messages['nopagesizewarning'] = 'Въведете брой редове на Ñтраница.';
-$messages['nosenderwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ валиден e-mail Ð°Ð´Ñ€ÐµÑ Ð½Ð° подателÑ.';
-$messages['norecipientwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ поне един получател.';
-$messages['nosubjectwarning'] = 'Полето "Заглавие" е празно. Желаете ли да въведете заглавие Ñега?';
+$messages['foldersubscribing'] = 'Ðбониране...';
+$messages['folderunsubscribing'] = 'ОтпиÑване на папка...';
+$messages['formincomplete'] = 'Ðе Ñте попълнили вÑички полета';
+$messages['noemailwarning'] = 'МолÑ, въведете валиден e-mail адреÑ';
+$messages['nonamewarning'] = 'МолÑ, въведете име';
+$messages['nopagesizewarning'] = 'Въведете брой редове на Ñтраница';
+$messages['nosenderwarning'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ валиден e-mail Ð°Ð´Ñ€ÐµÑ Ð½Ð° подателÑ';
+$messages['norecipientwarning'] = 'Въведете поне един получател';
+$messages['nosubjectwarning'] = 'Полето "Заглавие" е празно. ИÑкате ли да въведете заглавие?';
$messages['nobodywarning'] = 'Изпрати това пиÑмо без текÑÑ‚?';
-$messages['notsentwarning'] = 'ПиÑмото не е изпратено. Желаете ли да бъде унищожено?';
-$messages['noldapserver'] = 'Изберете LDAP Ñървър за Ñ‚ÑŠÑ€Ñене.';
-$messages['nosearchname'] = 'ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ име на контакта или e-mail адреÑ.';
+$messages['notsentwarning'] = 'ПиÑмото не е изпратено. ИÑкате ли да бъде унищожено?';
+$messages['noldapserver'] = 'Изберете LDAP Ñървър за Ñ‚ÑŠÑ€Ñене';
+$messages['nosearchname'] = 'МолÑ, въведете Име на контакта или e-mail адреÑ';
$messages['notuploadedwarning'] = 'Ð’Ñе още не Ñа качени вÑички прикачени файлове. ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ или откажете качването.';
-$messages['searchsuccessful'] = '$nr пиÑма намерени.';
-$messages['contactsearchsuccessful'] = '$nr контакта намерени.';
-$messages['searchnomatch'] = 'ÐÑма ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñ‚ÑŠÑ€Ñенето.';
+$messages['searchsuccessful'] = '$nr намерени пиÑма';
+$messages['contactsearchsuccessful'] = '$nr намерени контакти.';
+$messages['searchnomatch'] = 'ТърÑенето не откри ÑъвпадениÑ';
$messages['searching'] = 'ТърÑене...';
$messages['checking'] = 'Проверка...';
-$messages['nospellerrors'] = 'Ðе Ñа открити правопиÑни грешки.';
-$messages['folderdeleted'] = 'Папката е изтрита уÑпешно.';
-$messages['foldersubscribed'] = 'Ðбонирането за папката е уÑпешно.';
-$messages['folderunsubscribed'] = 'ОтпиÑването от папката е уÑпешно.';
-$messages['folderpurged'] = 'Папката е изпразнена уÑпешно.';
-$messages['folderexpunged'] = 'УплътнÑване данни на папката е уÑпешно.';
-$messages['deletedsuccessfully'] = 'Изтриването е уÑпешно.';
-$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'] = 'ДобавÑне на контакти в групата...';
-$messages['removingmember'] = 'Премахване на контакти от групата...';
-$messages['receiptsent'] = 'Обратната разпиÑка е изпратена уÑпешно.';
-$messages['errorsendingreceipt'] = 'Ðевъзможно изпращането на обратна разпиÑка.';
+$messages['nospellerrors'] = 'Ðе Ñа открити правопиÑни грешки';
+$messages['folderdeleted'] = 'Папката е изтрита';
+$messages['foldersubscribed'] = 'Ðбонирането уÑпешно';
+$messages['folderunsubscribed'] = 'ОтпиÑването уÑпешно';
+$messages['folderpurged'] = 'Папката е изпразнена';
+$messages['folderexpunged'] = 'УплътнÑването уÑпешно';
+$messages['deletedsuccessfully'] = 'Изтриването е уÑпешно';
+$messages['converting'] = 'Премахване форматирането на пиÑмото...';
+$messages['messageopenerror'] = 'ПиÑмото не може да бъде заредено от Ñървъра';
+$messages['fileuploaderror'] = 'Грешка при прикачването на файла';
+$messages['filesizeerror'] = 'ПрикачениÑÑ‚ файл надвишава лимита от $size';
+$messages['copysuccess'] = 'УÑпешно копирани $nr адреÑа';
+$messages['copyerror'] = 'Грешка при копирането на адреÑите';
+$messages['sourceisreadonly'] = 'Този източник на адреÑи е Ñамо за четене';
+$messages['errorsavingcontact'] = 'Грешка при запиÑването на адреÑа';
+$messages['movingmessage'] = 'ПремеÑтване на Ñъобщение...';
+$messages['copyingmessage'] = 'Копиране на Ñъобщение(Ñ)...';
+$messages['copyingcontact'] = 'Копиране на контакт(и)...';
+$messages['deletingmessage'] = 'Изтриване на Ñъобщение(Ñ)...';
+$messages['markingmessage'] = 'Маркиране на Ñъобщение(Ñ)...';
+$messages['addingmember'] = 'ДобавÑне на контакт(и) в групата...';
+$messages['removingmember'] = 'Премахване на контакт(и) от групата...';
+$messages['receiptsent'] = 'Обратната разпиÑка е изпратена.';
+$messages['errorsendingreceipt'] = 'Грешка при изпращането на обратна разпиÑка.';
$messages['deleteidentityconfirm'] = 'ÐаиÑтина ли желаете да изтриете тази ÑамоличноÑÑ‚?';
-$messages['nodeletelastidentity'] = 'Ðевъзможно изтриване на тази ÑамоличноÑÑ‚, Ñ‚Ñ€Ñбва да имате поне една.';
-$messages['forbiddencharacter'] = 'Името на папка Ñъдържа непозволени Ñимволи.';
-$messages['selectimportfile'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ файл за качване.';
-$messages['addresswriterror'] = 'Избраната адреÑна книга не може да бъде модифицирана.';
-$messages['contactaddedtogroup'] = 'Контактите бÑха добавени към групата уÑпешно.';
-$messages['contactremovedfromgroup'] = 'Контактите бÑха премахнати от групата уÑпешно.';
-$messages['nogroupassignmentschanged'] = 'ÐÑма променени групови задачи.';
-$messages['importwait'] = 'Импортиране, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...';
-$messages['importformaterror'] = 'ÐеуÑпешен импорт! Данните в качениÑÑ‚ файл не Ñа във валиден формат.';
+$messages['nodeletelastidentity'] = 'Ðе можете да изтриете тази ÑамоличноÑÑ‚, Ñ‚Ñ€Ñбва да имате поне една.';
+$messages['forbiddencharacter'] = 'Името на папката Ñъдържа непозволени Ñимволи';
+$messages['selectimportfile'] = 'ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ файл за качване';
+$messages['addresswriterror'] = 'Избраната адреÑна книга не може да бъде запиÑвана';
+$messages['contactaddedtogroup'] = 'Контактите бÑха уÑпешно добавени към групата';
+$messages['contactremovedfromgroup'] = 'Контактите бÑха уÑпешно премахнати от групата';
+$messages['nogroupassignmentschanged'] = 'ÐÑма променени групи.';
+$messages['importwait'] = 'Импорт, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ...';
+$messages['importformaterror'] = 'Импорта пропадна! КачениÑÑ‚ файл не е Ñ Ð²Ð°Ð»Ð¸Ð´Ð½Ð¸ данни.';
$messages['importconfirm'] = '<b>УÑпешно Ñа импортирани $inserted контакта, вече ÑъщеÑтвуващите $skipped контакта Ñа пропуÑнати</b>:<p><em>$names</em></p>';
-$messages['importconfirmskipped'] = '<b>ПропуÑнати Ñа $skipped ÑъщеÑтвуващи запиÑи</b>';
-$messages['importmessagesuccess'] = 'УÑпешно импортирани $nr пиÑма';
-$messages['importmessageerror'] = 'ÐеуÑпешен импорт! КачениÑÑ‚ файл не е валиден файл на пиÑма или пощенÑка кутиÑ';
-$messages['opnotpermitted'] = 'Ðепозволена операциÑ!';
-$messages['nofromaddress'] = 'ЛипÑва e-mail Ð°Ð´Ñ€ÐµÑ Ð·Ð° избраната ÑамоличноÑÑ‚.';
-$messages['editorwarning'] = 'Превключването на редактора в текÑтов режим ще доведе до загуба на форматирането на текÑта. Сигурни ли Ñте, че желаете да продължите?';
-$messages['httpreceivedencrypterror'] = 'Фатална конфигурационна грешка. ÐœÐ¾Ð»Ñ Ñвържете Ñе Ñ Ð’Ð°ÑˆÐ¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратор. <b>ПиÑмото не може да бъде изпратено.</b>';
-$messages['smtpconnerror'] = 'SMTP грешка ($code): ÐÑма връзка ÑÑŠÑ Ñървъра.';
-$messages['smtpautherror'] = 'SMTP грешка ($code): Грешни потребител/парола.';
-$messages['smtpfromerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо от "$from" ($msg).';
-$messages['smtptoerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо до "$to" ($msg).';
-$messages['smtprecipientserror'] = 'SMTP грешка: Ðе може да бъде обработен ÑпиÑъка Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ð¸.';
+$messages['importconfirmskipped'] = 'b>СъщеÑтвуващите запиÑи $skipped Ñа пропуÑнати</b>';
+$messages['opnotpermitted'] = 'ОперациÑта не е позволена!';
+$messages['nofromaddress'] = 'ЛипÑва e-mail Ð°Ð´Ñ€ÐµÑ Ð·Ð° избраната ÑамоличноÑÑ‚';
+$messages['editorwarning'] = 'Превключването на редактора в текÑтов режим ще доведе до загуба на форматирането на текÑа. Сигурни ли Ñте, че иÑкате да продължите?';
+$messages['httpreceivedencrypterror'] = 'Фатална конфигурационна грешка. МолÑ, Ñвържете Ñе веднага Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора. <b>Съобщението Ви не може да бъде изпратено.</b>';
+$messages['smtpconnerror'] = 'SMTP грешка ($code): ÐÑма връзка ÑÑŠÑ Ñървъра';
+$messages['smtpautherror'] = 'SMTP грешка ($code): Грешни потребител/парола';
+$messages['smtpfromerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо от "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP грешка ($code): Ðе може да бъде изпратено пиÑмо до "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP грешка: Ðе може да бъде обработен ÑпиÑъка Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ð¸';
$messages['smtperror'] = 'SMTP грешка: $msg';
$messages['emailformaterror'] = 'Ðевалиден e-mail адреÑ: $email';
$messages['toomanyrecipients'] = 'Прекалено много адреÑи за изпращане (макÑимум: $max).';
-$messages['maxgroupmembersreached'] = 'БроÑÑ‚ на членовете на групата е повече от макÑималниÑ: $max.';
-$messages['internalerror'] = 'Възникна вътрешна грешка. ÐœÐ¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново.';
-$messages['contactdelerror'] = 'Ðевъзможно изтриване на контакти.';
-$messages['contactdeleted'] = 'Контактът беше изтрит уÑпешно.';
-$messages['contactrestoreerror'] = 'ÐеуÑпешно възÑтановÑване на изтрите контакти.';
-$messages['contactrestored'] = 'Контактът е възÑтановен уÑпешно.';
-$messages['groupdeleted'] = 'Групата беше изтрита уÑпешно.';
-$messages['grouprenamed'] = 'Групата беше преименувана уÑпешно.';
-$messages['groupcreated'] = 'Групата беше Ñъздадена уÑпешно.';
-$messages['savedsearchdeleted'] = 'Запазаните филтри Ñа изтрити уÑпешно.';
-$messages['savedsearchdeleteerror'] = 'Ðевъзможно изтриване на запазените филтри.';
-$messages['savedsearchcreated'] = 'Запазените филтри Ñа Ñъздадени уÑпешно.';
-$messages['savedsearchcreateerror'] = 'Ðевъзможно Ñъздаване на запазен филтър.';
-$messages['messagedeleted'] = 'ПиÑмото е изтрито уÑпешно.';
-$messages['messagemoved'] = 'ПиÑмото е премеÑтено уÑпешно.';
-$messages['messagecopied'] = 'ПиÑмото е копирано уÑпешно.';
-$messages['messagemarked'] = 'ПиÑмото е маркирано уÑпешно.';
-$messages['autocompletechars'] = 'Въведете минимум $min знака, за да започне автоматичното попълване.';
-$messages['autocompletemore'] = 'Ðамерените ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ñа прекалено много. ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ повече текÑÑ‚.';
-$messages['namecannotbeempty'] = 'Полето за име не може да бъде празно.';
-$messages['nametoolong'] = 'Името е прекалено дълго.';
-$messages['folderupdated'] = 'Папката е модифицирана уÑпешно.';
-$messages['foldercreated'] = 'Папката е Ñъздадена уÑпешно.';
-$messages['invalidimageformat'] = 'Ðевалиден формат на изображението.';
-$messages['mispellingsfound'] = 'Ð’ пиÑмото Ñа намерени правопиÑни грешки.';
-$messages['parentnotwritable'] = 'ÐеуÑпешно Ñъздаването/премеÑтването на папка в избраната оÑновна папка. ÐÑма права за доÑтъп.';
-$messages['messagetoobig'] = 'ПиÑмото е прекалено голÑмо, за да бъде обработено.';
-$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! ПрикачениÑÑ‚ файл е опаÑен, защото типът му не Ñъвпада Ñ Ñ‚Ð¾Ð·Ð¸, който е деклариран в пиÑмото.<br/><br/><em>Очакван тип: $expected; открит тип: $detected</em>';
-$messages['noscriptwarning'] = 'Ð’ÐИМÐÐИЕ! Тази пощенÑка уÑлуга изиÑква JavaScript за да функционира коректно. ÐœÐ¾Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÑ‚Ðµ поддръжката на JavaScript в наÑтройките на Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð±Ñ€Ð°ÑƒÐ·ÑŠÑ€.';
+$messages['maxgroupmembersreached'] = 'Ð‘Ñ€Ð¾Ñ Ð½Ð° членовете на групата е повече от макÑималниÑ: $max.';
+$messages['internalerror'] = 'Възникна вътрешна грешка. ÐœÐ¾Ð»Ñ Ð¾Ð¿Ð¸Ñ‚Ð°Ð¹Ñ‚Ðµ отново';
+$messages['contactdelerror'] = 'Ðе мога да Ð¸Ð·Ñ‚Ñ€Ð¸Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°';
+$messages['contactdeleted'] = 'Контактът беше изтрит';
+$messages['contactrestoreerror'] = 'ÐеуÑпешно възÑтановÑване на изтрите контакт(и).';
+$messages['contactrestored'] = 'Контактът(-ите) Ñа възÑтановени уÑпешно';
+$messages['groupdeleted'] = 'Групата беше изтрита';
+$messages['grouprenamed'] = 'Групата беше преименувана';
+$messages['groupcreated'] = 'Групата беше Ñъздадена';
+$messages['savedsearchdeleted'] = 'Запазаните Ñ‚ÑŠÑ€ÑÐµÐ½Ð¸Ñ Ñа изтрити уÑпешно.';
+$messages['savedsearchdeleteerror'] = 'Изтриването на запазените Ñ‚ÑŠÑ€ÑÐµÐ½Ð¸Ñ Ðµ неуÑпешно.';
+$messages['savedsearchcreated'] = 'Запазените Ñ‚ÑŠÑ€ÑÐµÐ½Ð¸Ñ Ñа Ñъздадени уÑпешно.';
+$messages['savedsearchcreateerror'] = 'Създаването на запазено Ñ‚ÑŠÑ€Ñене е неуÑпешно';
+$messages['messagedeleted'] = 'Съобщението беше изтрито';
+$messages['messagemoved'] = 'Съобщението беше премеÑтено';
+$messages['messagecopied'] = 'Съобщението беше копирано';
+$messages['messagemarked'] = 'Съобщението беше маркирано';
+$messages['autocompletechars'] = 'Въведете минимум $min знака, за да започне автоматичното попълване';
+$messages['autocompletemore'] = 'Ðамерените ÑÑŠÐ²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ñа прекалено много. ÐœÐ¾Ð»Ñ Ð½Ð°Ð¿Ð¸ÑˆÐµÑ‚Ðµ още Ñимволи.';
+$messages['namecannotbeempty'] = 'Полето за име не може да бъде празно';
+$messages['nametoolong'] = 'Името е прекалено дълго';
+$messages['folderupdated'] = 'Папката е обновена';
+$messages['foldercreated'] = 'Папката е Ñъздадена';
+$messages['invalidimageformat'] = 'Ðевалиден формат на изображението';
+$messages['mispellingsfound'] = 'Ð’ Ñъобщението Ñа намерени правопиÑни грешки.';
+$messages['parentnotwritable'] = 'Създаването/премеÑтването на папка в избраната родителÑка папка е неуÑпешно. ÐÑма права за доÑтъп.';
+$messages['messagetoobig'] = 'Съобщението е прекалено голÑмо, за да бъде обработено.';
+$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! ПрикачениÑÑ‚ файл е опаÑен, защото типа му не Ñъвпада Ñ Ñ‚Ð¾Ð·Ð¸ деклариран в Ñъобщението.<br/><br/><em>Очакван: $expected; открит: $detected</em>';
+$messages['noscriptwarning'] = 'Ð’ÐИМÐÐИЕ! Тази пощенÑка уÑлуга изиÑква JavaScript за да функционира, Ð¼Ð¾Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÑ‚Ðµ поддръжката на JavaScript в наÑтройките на браузъра Ви.';
+
?>
diff --git a/program/localization/bn_BD/labels.inc b/program/localization/bn_BD/labels.inc
index c0b7ad3a7..a0866a3a7 100644
--- a/program/localization/bn_BD/labels.inc
+++ b/program/localization/bn_BD/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'সà§à¦¬à¦¾à¦—তম';
$labels['username'] = 'গà§à¦°à¦¾à¦¹à¦• নাম (username)';
$labels['password'] = 'গোপোন শবà§à¦¦ (password)';
$labels['server'] = 'সারভার';
$labels['login'] = 'পà§à¦°à¦¬à§‡à¦¶';
+
+// taskbar
$labels['logout'] = 'পà§à¦°à¦¸à§à¦¥à¦¾à¦¨';
$labels['mail'] = 'ই-মেইল';
$labels['settings'] = 'বà§à¦¯à¦¾à¦•à§à¦¤à¦¿à¦—ত খà§à¦Ÿà¦¿à¦¨à¦¾à¦Ÿà¦¿';
$labels['addressbook'] = 'ঠিকানার বই';
+
+// mailbox names
$labels['inbox'] = 'পà§à¦°à¦§à¦¾à¦¨ বাকà§à¦¸';
$labels['drafts'] = 'খসড়া';
$labels['sent'] = 'পà§à¦°à§‡à¦°à¦¿à¦¤(পাঠানো মেইল)';
$labels['trash'] = 'ডাসà§à¦Ÿà¦¬à¦¿à¦¨';
$labels['junk'] = 'আজেবাজে মেইল';
+
+// message listing
$labels['subject'] = 'বিষয়';
$labels['from'] = 'পà§à¦°à§‡à¦°à¦•';
+$labels['sender'] = 'Sender';
$labels['to'] = 'পà§à¦°à¦¾à¦ªà¦•';
$labels['cc'] = 'অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা';
$labels['bcc'] = 'নাজানিয়ে অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা';
$labels['replyto'] = 'উতà§à¦¤à¦° পাঠানোর ঠিকানা';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'তারিখ';
$labels['size'] = 'সাইজ';
$labels['priority'] = 'গà§à¦°à§à¦¤à§à¦¬';
$labels['organization'] = 'কোমà§à¦ªà¦¾à¦¨à¦¿';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
$labels['messagesfromto'] = '$count মেইলের মধà§à¦¯à§‡, $from হতে $to দেখানো হচà§à¦›à§‡';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$nr #মেইল/চিঠি , $count à¦à¦° মধà§à¦¯à§‡';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা';
+$labels['move'] = 'Move';
$labels['moveto'] = 'সরিয়ে ফেলà§à¦¨..';
$labels['download'] = 'ডাউনলোড';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ফাইলের নাম';
$labels['filesize'] = 'ফাইলের সাইজ';
+
$labels['addtoaddressbook'] = 'ঠিকানার বইতে ঢà§à¦•à¦¾à¦¨';
+
+// weekdays short
$labels['sun'] = 'রবি';
$labels['mon'] = 'সোম';
$labels['tue'] = 'মঙà§à¦—ল';
@@ -55,6 +81,8 @@ $labels['wed'] = 'বà§à¦§';
$labels['thu'] = 'বৃহ:';
$labels['fri'] = 'শà§à¦•à§à¦°';
$labels['sat'] = 'শনি';
+
+// weekdays long
$labels['sunday'] = 'রবিবার';
$labels['monday'] = 'সোমবার';
$labels['tuesday'] = 'মঙà§à¦—লবার';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'বà§à¦§à¦¬à¦¾à¦°';
$labels['thursday'] = 'বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°';
$labels['friday'] = 'শà§à¦•à§à¦°à¦¬à¦¾à¦°';
$labels['saturday'] = 'শনিবার';
+
+// months short
$labels['jan'] = 'জানà§à§Ÿà¦¾à¦°à¦¿';
$labels['feb'] = 'ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿';
$labels['mar'] = 'মারà§à¦š';
@@ -74,6 +104,8 @@ $labels['sep'] = 'সেপà§à¦¤à§‡à¦®à¦¬à¦¾à¦°';
$labels['oct'] = 'অষà§à¦Ÿà¦¬à¦¾à¦°';
$labels['nov'] = 'নবেমবার';
$labels['dec'] = 'দিশেমবার';
+
+// months long
$labels['longjan'] = 'জানà§à§Ÿà¦¾à¦°à¦¿';
$labels['longfeb'] = 'ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿';
$labels['longmar'] = 'মারà§à¦š';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'সেপà§à¦¤à§‡à¦®à¦¬à¦¾à¦° (September)';
$labels['longoct'] = 'অষà§à¦Ÿà¦¬à¦¾à¦° (October)';
$labels['longnov'] = 'নবেমবার (November)';
$labels['longdec'] = 'দিশেমবার (December)';
+
$labels['today'] = 'আজকে';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'দেখà§à¦¨ নতà§à¦¨ কোনো মেইল/চিঠি à¦à¦²à§‹ কিনা';
$labels['compose'] = 'নতà§à¦¨ মেইল/চিঠি লিখà§à¦¨';
$labels['writenewmessage'] = 'নতà§à¦¨ মেইল/চিঠি লিখà§à¦¨';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'শà§à¦§à§ পà§à¦°à§‡à¦°à¦•à§‡à¦° কাছে উতà§à¦¤à¦° পাঠান';
$labels['replytoallmessage'] = 'পà§à¦°à§‡à¦°à¦• ও à¦à¦‡ চিঠির অনà§à¦¯à¦¾à¦¨à§à¦¯ পà§à¦°à¦¾à¦ªà¦•à¦¦à§‡à¦° কাছে উতà§à¦¤à¦° পাঠান';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'মেইল/চিঠি à¦à¦—িয়ে দিন';
$labels['deletemessage'] = 'মেইল/চিঠি ছিড়ে ফেলà§à¦¨';
$labels['movemessagetotrash'] = 'মেইল/চিঠি ডাসà§à¦Ÿà¦¬à¦¿à¦¨à§‡ ফেলà§à¦¨';
@@ -102,98 +144,250 @@ $labels['nextmessage'] = 'পরের মেইল/চিঠিটি দà
$labels['lastmessage'] = 'শেষ মেইল/চিঠিটি দেখà§à¦¨';
$labels['backtolist'] = 'মেইল/চিঠির তালিকায় ফিরে যান';
$labels['viewsource'] = 'মূল উৎসদেখà§à¦¨';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'মেইল/চিঠি (গà§à¦²à§‹)';
$labels['markread'] = 'পড়া শেষ (read)';
$labels['markunread'] = 'নাদেখা (unread)';
$labels['markflagged'] = 'দাগানো (flagged)';
$labels['markunflagged'] = 'দাগহীন (unflagged)';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'বেছেনিন';
$labels['all'] = 'সবগà§à¦²à§‹';
$labels['none'] = 'কোনোটাই না';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'নাদেখা (unread)';
$labels['flagged'] = 'দাগানো (flagged)';
$labels['unanswered'] = 'উতà§à¦¤à¦° না দেওয়া গà§à¦²à§‹';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['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'] = 'কোনোটাই না';
+$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'] = 'টাইটকরà§à¦¨';
$labels['empty'] = 'খালিকরà§à¦¨';
+
$labels['quota'] = 'ডিসà§à¦• ঠখালি যায়গা';
$labels['unknown'] = 'অজানা';
$labels['unlimited'] = 'সীমাহীন';
+
$labels['quicksearch'] = 'à¦à¦Ÿà¦•à¦°à§‡ খোজা';
$labels['resetsearch'] = 'নতà§à¦¨à¦•à¦°à§‡ খà§à¦œà§à¦¨';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'নতà§à¦¨ উইনà§à¦¡à§‹ তে দেখà§à¦¨';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'à¦à¦–à§à¦¨à¦¿ মেইল / চিঠিটি পাঠান';
$labels['savemessage'] = 'খসড়া হিসাবে জমা করে রাখà§à¦¨';
$labels['addattachment'] = 'à¦à¦•à¦Ÿà¦¾ ফাইল জà§à§œà§‡ দিন চিঠির সাথে';
$labels['charset'] = 'Charset';
$labels['editortype'] = 'Editor type';
$labels['returnreceipt'] = 'ফিরতি রসিদ';
+$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['attach'] = 'Attach';
$labels['attachments'] = 'জà§à§œà§‡ দেওয়া ফাইল (Attachments)';
$labels['upload'] = 'উঠায় দেন';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'বনà§à¦§ করà§à¦¨';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Low';
$labels['lowest'] = 'Lowest';
$labels['normal'] = 'Normal';
$labels['high'] = 'High';
$labels['highest'] = 'Highest';
+
$labels['nosubject'] = '(বিষয়হীন)';
$labels['showimages'] = 'ছবি দেখান';
$labels['alwaysshow'] = 'সবসময় $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'] = 'খালি লেখা দেখà§à¦¨';
$labels['savesentmessagein'] = 'পাঠানো চিঠি/মেইল জমা করà§à¦¨ >>';
$labels['dontsave'] = 'জমিয়ে রাখা লাগবে না';
$labels['maxuploadsize'] = 'ফাইল উঠানোর সরà§à¦¬à§‹à¦šà§à¦š সাইজ $size';
+
$labels['addcc'] = 'অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা ঢà§à¦•à¦¾à¦¨';
$labels['addbcc'] = 'নাজানিয়ে অনà§à¦²à¦¿à¦ªà¦¿à¦° ঠিকানা ঢà§à¦•à¦¾à¦¨';
$labels['addreplyto'] = 'উতà§à¦¤à¦° পাঠানোর ঠিকানা ঢà§à¦•à¦¾à¦¨';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'পà§à¦°à¦¾à¦ªà¦• আপনার কাছে মেইল/চিঠিটা যে পেয়েছেন তার ফিরতি রসিদ চেয়েছেন। আপনি কি ফিরতি রসিদ টা পাঠাবেন?';
$labels['receiptread'] = 'মেইল/চিঠি যে পেয়েছেন তার ফিরতি রসিদ';
$labels['yourmessage'] = 'নিচে রয়েছে আপনার চিঠিটা যে পà§à¦°à¦¾à¦ªà¦• পেয়েছেন তার রসিদ';
$labels['receiptnote'] = 'à¦à¦‡ রসিদ খালি à¦à¦¤à¦Ÿà§à¦•à§ পà§à¦°à¦®à¦¾à¦¨ করে যে পà§à¦°à¦¾à¦ªà¦• চিঠিটি পেয়েছেন। কিনà§à¦¤à§ তিনি ঠিকমতো পড়তে পেরেছেন কিনা অথবা তিনি পড়ে বà§à¦à¦¤à§‡ পেরেছেন কিনা তার কোনো পà§à¦°à¦®à¦¾à¦¨ নেই।';
+
+// address boook
$labels['name'] = 'নাম';
$labels['firstname'] = 'নামের পà§à¦°à¦¥à¦®à¦¾à¦‚শ';
$labels['surname'] = 'নামের শেষাংশ';
+$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'] = 'ই-মেইল/চিঠি';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'নতà§à¦¨ ঠিকানা ঢà§à¦•à¦¾à¦¨';
$labels['editcontact'] = 'à¦à¦•à¦Ÿà¦¾ ঠিকানা বদলান';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'বদলান';
$labels['cancel'] = 'বাতিল';
$labels['save'] = 'জমা দিন';
$labels['delete'] = 'ফেলে দিন';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'à¦à¦•à¦Ÿà¦¾ নতà§à¦¨ ঠিকানার কারà§à¦¡ বানান';
$labels['deletecontact'] = 'বেছে নেওয়া ঠিকানা গà§à¦²à§‹ ফেলে দিন';
$labels['composeto'] = 'চিঠি পাঠাবেন কার কাছে?';
$labels['contactsfromto'] = '$count ঠিকানার মধà§à¦¯à§‡ $from থেকে $to টা';
$labels['print'] = 'পà§à¦°à¦¿à¦¨à§à¦Ÿ করà§à¦¨';
$labels['export'] = 'রপà§à¦¤à¦¾à¦¨à¦¿ করà§à¦¨';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'রপà§à¦¤à¦¾à¦¨à¦¿ করà§à¦¨ vCard আকারে';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'আগের গà§à¦²à§‹ দেখান';
$labels['firstpage'] = 'পà§à¦°à¦¥à¦® গà§à¦²à§‹ দেখান';
$labels['nextpage'] = 'পরের গà§à¦²à§‹ দেখান';
$labels['lastpage'] = 'শেষের গà§à¦²à§‹ দেখান';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'গà§à¦°à§à¦ª';
$labels['personaladrbook'] = 'নিজের ঠিকানা';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'আমদানি করà§à¦¨';
$labels['importcontacts'] = 'ঠিকানা আমদানি করà§à¦¨';
$labels['importfromfile'] = 'ফাইলের থেকে ঠিকানা আমদানি করà§à¦¨';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'পà§à¦°à§‹ ঠিকানার বইটি খালি করে নতà§à¦¨ ঠিকানা গà§à¦²à§‹ ভরà§à¦¨';
+$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'] = 'শেষ';
+
+// settings
$labels['settingsfor'] = 'খà§à¦Ÿà¦¿à¦¨à¦¾à¦Ÿà¦¿';
+$labels['about'] = 'About';
$labels['preferences'] = 'পছনà§à¦¦';
$labels['userpreferences'] = 'গà§à¦°à¦¾à¦¹à¦• পছনà§à¦¦';
$labels['editpreferences'] = 'গà§à¦°à¦¾à¦¹à¦• পছনà§à¦¦ বদলান';
+
$labels['identities'] = 'পরিচিতি';
$labels['manageidentities'] = 'à¦à¦‡ অà§à¦¯à¦¾à¦•à¦‰à¦¨à§à¦Ÿà§‡à¦° "পরচিতি" বদলান';
$labels['newidentity'] = 'নতà§à¦¨ পরিচিতি';
+
$labels['newitem'] = 'নতà§à¦¨ জিনিষ';
$labels['edititem'] = 'জিনিষ বদলান';
+
$labels['preferhtml'] = 'HTML ঠদেখি';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML মেইল/চিঠি';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'তারিখ ভালো করে দেখা যাবে';
$labels['setdefault'] = 'à¦à¦‡à¦Ÿà¦¾à¦‡ আসল';
$labels['autodetect'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° নিজেনিজি বেছে নেবে';
@@ -202,8 +396,13 @@ $labels['timezone'] = 'সময়ভিতà§à¦¤à¦¿à¦• à¦à¦²à¦¾à¦•à¦¾';
$labels['pagesize'] = 'পà§à¦°à¦¤à¦¿ পৃষà§à¦ à¦¾à§Ÿ লাইন সংখà§à¦¯à¦¾';
$labels['signature'] = 'সà§à¦¬à¦¾à¦•à§à¦·à¦°';
$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML ঠমেইল/চিঠি লিখà§à¦¨';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML ঠসà§à¦¬à¦¾à¦•à§à¦·à¦°';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'ছোটোকরে দেখার জায়গা';
$labels['skin'] = 'মেইলবকà§à¦¸ à¦à¦° পà§à¦°à§‹à¦Ÿà¦¾à¦° চেহারা';
$labels['logoutclear'] = 'বেরহবার সময় ডাসà§à¦Ÿà¦¬à¦¿à¦¨ অটোমেটিক খালি হবে';
@@ -214,26 +413,69 @@ $labels['mailboxview'] = 'মেইলবকà§à¦¸ দেখার কায়দà
$labels['mdnrequests'] = 'পà§à¦°à§‡à¦°à¦• নোটিশ পাঠালে কি করা হবে?';
$labels['askuser'] = 'আমি গà§à¦°à¦¾à¦¹à¦•, আমাকে জিজà§à¦žà¦¾à¦¸à¦¾ করà§à¦¨';
$labels['autosend'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° নিজেনিজি ফিরতি নোটিশ পাঠায় দেবে';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'পাতà§à¦¤à¦¾ দেওয়া হবেনা';
$labels['readwhendeleted'] = 'ফেলে দেবার সময় মেইল/চিঠি পড়া হয়ে গেছে হিসাবে ধরে নেওয়া হবে';
$labels['flagfordeletion'] = 'à¦à¦•à§‡à¦¬à¦¾à¦°à§‡à¦‡ ফেলে না দিয়ে মেইল/চিঠি গà§à¦²à§‹à¦•à§‡ দাগিয়ে রাখà§à¦¨ ফেলে দেবার জনà§à¦¯à§‡';
$labels['skipdeleted'] = 'ফেলে দেওয়া মেইল/চিঠি দেখানোর দরকার নেই';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'মেইলে অনà§à¦¯ ওয়েবসাইট থেকে আসা ছবি থাকলে তা দেখা যাবে';
$labels['fromknownsenders'] = 'পরিচিত পà§à¦°à§‡à¦°à¦• à¦à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡';
$labels['always'] = 'সবসময়';
$labels['showinlineimages'] = 'মেইলের সাথে জোড়া লাগানো ছবি, মেইলের নিচে দেখা যাবে';
$labels['autosavedraft'] = 'নিজেনিজি খসড়া জমা হয়ে যাবে';
$labels['everynminutes'] = 'পà§à¦°à¦¤à¦¿ $n মিনিটে';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'কখোনোই না';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'মেইল/চিঠি দেখা যাচà§à¦›à§‡';
$labels['messagescomposition'] = 'মেইল/চিঠি লেখা হচà§à¦›à§‡';
$labels['mimeparamfolding'] = 'জà§à§œà§‡ দেওয়া জিনিষের নাম';
$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'] = 'জটিল বিষয়';
$labels['focusonnewmessage'] = 'নতà§à¦¨ মেইল à¦à¦²à§‡à¦‡ তা হাইলাইট হয়ে যাবে';
$labels['checkallfolders'] = 'সবগà§à¦²à§‹ মেইলবকà§à¦¸à§‡ নতà§à¦¨ চিঠি খোজা হবে';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
$labels['folders'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
$labels['foldername'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° নাম';
@@ -243,11 +485,54 @@ $labels['create'] = 'পà§à¦°à¦¸à§à¦¤à§à¦¤ করà§à¦¨';
$labels['createfolder'] = 'নতà§à¦¨ ফোলà§à¦¡à¦¾à¦° / মেইলবকà§à¦¸ পà§à¦°à¦¸à§à¦¤à§à¦¤ করà§à¦¨';
$labels['managefolders'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ গà§à¦²à§‹ কে গà§à¦›à¦¾à¦¨';
$labels['specialfolders'] = 'বিশেষ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸';
+$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'] = 'সাজান';
$labels['sortasc'] = 'কম থেকে বেশি হিসাবে সাজান';
$labels['sortdesc'] = 'বেশি থেকে কম হিসাবে সাজান';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'বাইট';
$labels['KB'] = 'কিলোবাইট';
$labels['MB'] = 'মেগাবাইট';
$labels['GB'] = 'গিগাবাইট';
+
+// character sets
+$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/bn_BD/messages.inc b/program/localization/bn_BD/messages.inc
index ac744edee..44d5fcc60 100644
--- a/program/localization/bn_BD/messages.inc
+++ b/program/localization/bn_BD/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'ঢোকা গেল না';
$messages['cookiesdisabled'] = 'আপনার বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°, কà§à¦•à¦¿ গà§à¦°à¦¹à¦¨ করে না';
$messages['sessionerror'] = 'আপনার সেশন শেষ';
$messages['storageerror'] = 'মেইল সারভার à¦à¦° সাথে যোগাযোগ করা গেল না';
+$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'] = 'à¦à¦‡ মেইলবকà§à¦¸à§‡ কোনো চিঠি নাই';
$messages['loggedout'] = 'আপনের সেশন ঠিকঠাক মতো শেষ হইছে। শà§à¦­à¦¬à¦¿à¦¦à¦¾à§Ÿà¥¤';
$messages['mailboxempty'] = 'মেইলবকà§à¦¸ খালি';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° কাজ করতেছে . .';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'কমà§à¦ªà§à¦Ÿà¦¾à¦° তথà§à¦¯ আনছে আপনার জনà§à¦¯..';
$messages['checkingmail'] = 'নতà§à¦¨ চিঠি আসছে কিনা তা দেখা হচà§à¦›à§‡';
$messages['sendingmessage'] = 'চিঠি পাঠায় দেওয়া হচà§à¦›à§‡';
@@ -32,20 +48,31 @@ $messages['messagesaved'] = 'চিঠি খসড়া হিসাবে জম
$messages['successfullysaved'] = 'ঠিকঠাকমতো জমা হয়ে গিয়েছে';
$messages['addedsuccessfully'] = 'নতà§à¦¨ ঠিকানা ঠিকঠাক মতো ঢোকানো হয়ে গেছে';
$messages['contactexists'] = 'à¦à¦•à¦‡ ই-মেইল ঠআরেকটা নাম ঠিকানা তালিকায় আছে';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'আপনার গোপনীয়তা রকà§à¦·à¦¾à¦° জনà§à¦¯ আমরা ছবি গà§à¦²à§‹ সরিয়ে রেখেছি';
$messages['encryptedmessage'] = 'à¦à¦Ÿà¦¾ à¦à¦•à¦Ÿà¦¿ গোপন (encrypted) চিঠি। à¦à¦Ÿà¦¾ আপনাকে দেখানো যাবে না। দà§à§à¦ƒà¦–িত।';
$messages['nocontactsfound'] = 'কোনো ঠিকানা পাওয়া গেলনা। দà§à§à¦ƒà¦–িত।';
$messages['contactnotfound'] = 'আপনি যে ঠিকানা খà§à¦œà¦›à§‡à¦¨ সেটা পাওয়া গেল না';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'চিঠি পাঠানো গেলনা';
$messages['senttooquickly'] = 'à¦à¦‡ চিঠি পাঠানোর আগে, দয়া করে $sec সেকেনà§à¦¡';
+$messages['errorsavingsent'] = 'পà§à¦°à§‡à¦°à¦¿à¦¤ চিঠি হিসাবে জমা রাখার সময় à¦à¦•à¦Ÿà¦¾ à¦à¦¾à¦®à§‡à¦²à¦¾ হয়েছে';
+$messages['errorsaving'] = 'জমা করার সময় à¦à¦•à¦Ÿà¦¾ à¦à¦¾à¦®à§‡à¦²à¦¾ হয়েছে';
$messages['errormoving'] = 'চিঠিটা সরানো গেলো না';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'চিঠিটা ফেলানো গেলো না';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ঠিকানা(গà§à¦²à§‹) ফেলো দিতে চান?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'আপনি কি আসলেই à¦à¦‡ চিঠি(গà§à¦²à§‹) ফেলো দিতে চান?';
$messages['deletefolderconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলো দিতে চান?';
$messages['purgefolderconfirm'] = 'আপনি কি আসলেই à¦à¦‡ ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ à¦à¦° সব চিঠি ফেলো দিতে চান?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ফেলে দেওয়া হচà§à¦›à§‡';
$messages['foldermoving'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ সরানো হচà§à¦›à§‡';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'আপনি সবগà§à¦²à§‹ জিনিষ লেখেননি';
$messages['noemailwarning'] = 'à¦à¦•à¦Ÿà¦¿ সঠিক ই-মেইল লিখà§à¦¨';
$messages['nonamewarning'] = 'দয়া করে নামটি লিখà§à¦¨';
@@ -57,29 +84,88 @@ $messages['nobodywarning'] = 'কোনো কিছৠনা লিখেই à
$messages['notsentwarning'] = 'চিঠি পাঠানো হয়নি। চিঠিটা কি বাতিল করে দেবেন?';
$messages['noldapserver'] = 'দয়া করে à¦à¦•à¦Ÿà¦¿ à¦à¦²à§à¦¡à¦¾à¦ª সারভার বেছে নিন সারà§à¦š করার জনà§à¦¯à§‡';
$messages['nosearchname'] = 'দয়া করে à¦à¦•à¦œà¦¨à§‡à¦° নাম অথবা ই-মেইল লিখà§à¦¨';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr টা চিঠি পাওয়া গেছে';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'খà§à¦œà§‡ কিছৠপাওয়া গেলোনা';
$messages['searching'] = 'খà§à¦œà¦›à¦¿ ....';
$messages['checking'] = 'দেখছি ...';
$messages['nospellerrors'] = 'No spelling errors found';
$messages['folderdeleted'] = 'ফোলà§à¦¡à¦¾à¦°/মেইলবকà§à¦¸ ঠিকঠাকমতো ফেলানো হয়ে গেছে';
+$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'] = 'ঠিকঠাকমতো ফেলানো হয়ে গেছে';
$messages['converting'] = 'বিনà§à¦¯à¦¾à¦¸ (formatting) সরানো হচà§à¦›à§‡ ..';
$messages['messageopenerror'] = 'সারভার থেকে চিঠি আনা গেলোনা';
$messages['fileuploaderror'] = 'ফাইলটা সারভারে উঠানো গেলোনা';
$messages['filesizeerror'] = 'যে ফাইলটা উঠানোর চেষà§à¦Ÿà¦¾ করলেন সেটি সরà§à¦¬à§‹à¦šà§à¦š সাইজ $size à¦à¦° থেকে বেশি';
+$messages['copysuccess'] = 'ঠিকঠাকমতো $nr ঠিকানা নকল করে নেওয়া গেছে';
+$messages['copyerror'] = 'কোনো ঠিকানা তোলা গেলোনা';
$messages['sourceisreadonly'] = 'à¦à¦‡à¦ à¦¿à¦•à¦¾à¦¨à¦¾à¦Ÿà¦¾ খালি পড়ার জনà§à¦¯à§‡';
$messages['errorsavingcontact'] = 'ঠিকানা জমা রাখা গেলোনা';
$messages['movingmessage'] = 'চিঠি সরানো হচà§à¦›à§‡..';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'ঠিকঠাক মতো ফিরতি রশিদ পাঠানো হয়েছে';
$messages['errorsendingreceipt'] = 'রশিদ পাঠানো গেলোনা';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'আপনি à¦à¦‡ পরিচিতি ফেলতে পারবেন না কারন à¦à¦‡à¦Ÿà¦¾à§Ÿ বরà§à¦¤à¦®à¦¾à¦¨à§‡ আপনার à¦à¦•à¦®à¦¾à¦¤à§à¦° পরিচিতি।';
$messages['forbiddencharacter'] = 'ফোলà§à¦¡à¦¾à¦° à¦à¦° নামের মধà§à¦¯à§‡ নিষিদà§à¦§ অকà§à¦·à¦° আছে';
$messages['selectimportfile'] = 'à¦à¦•à¦Ÿà¦¾ ফাইল বেছে নিন তোলার জনà§à¦¯';
$messages['addresswriterror'] = 'বেছে নেওয়া ঠিকানার বইটিতে লেখাযায় না';
+$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'] = 'আমদানি করা হচà§à¦›à§‡à¥¤ à¦à¦•à¦Ÿà§ অপেকà§à¦·à¦¾ করà§à¦¨...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>ঠিকমতো $inserted ঠিকানা আমদানি করা গেছে, $skipped ঠিকানা আগের থেকেই ছিলো বলে তাদের টা যা ছিলো তাই রাখা হয়েছে</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'à¦à¦‡ কাজটা করার অনà§à¦®à¦¤à¦¿ নাই আপনার';
$messages['nofromaddress'] = 'বেছে নেওয়া যে পরিচিতিটা, তাতে ই-মেইল নেই';
$messages['editorwarning'] = 'যদি আপনি শà§à¦§à§ লেখার সà§à¦Ÿà¦¾à¦‡à¦²à§‡ যান তাহলে বরà§à¦¤à¦®à¦¾à¦¨à§‡à¦° কোনো বিনà§à¦¯à¦¾à¦¸ হারিয়ে যাবে';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/br/labels.inc b/program/localization/br/labels.inc
index d503d1f4c..537a887df 100644
--- a/program/localization/br/labels.inc
+++ b/program/localization/br/labels.inc
@@ -15,46 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Degemer mat war $product';
$labels['username'] = 'Anv an arveriad';
$labels['password'] = 'Ger-Tremen';
$labels['server'] = 'Dafariad';
$labels['login'] = 'Kennaskañ';
+
+// taskbar
$labels['logout'] = 'Digennaskañ';
$labels['mail'] = 'Postel elektronek';
$labels['settings'] = 'Arventennoù';
$labels['addressbook'] = 'Karned chomlec\'hioù';
+
+// mailbox names
$labels['inbox'] = 'Boest degemer';
$labels['drafts'] = 'Brouilhedoù';
$labels['sent'] = 'Kaset';
$labels['trash'] = 'Pod-lastez';
$labels['junk'] = 'Stroboù';
+
+// message listing
$labels['subject'] = 'Sujed';
$labels['from'] = 'Eus';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Da';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Cci';
$labels['replyto'] = 'Respont-da';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Deiz';
$labels['size'] = 'Ment';
$labels['priority'] = 'Kentwir';
$labels['organization'] = 'Aozadur';
$labels['readstatus'] = 'Stad al lenn';
$labels['listoptions'] = 'Dibarzhioù ar roll...';
+
$labels['mailboxlist'] = 'Teuliadoù';
$labels['messagesfromto'] = 'Kemennadoù eus $from da $to war $count';
$labels['threadsfromto'] = 'Sujedoù $from da $to war $count';
$labels['messagenrof'] = 'Kemennad $nr war $count';
$labels['fromtoshort'] = '$from - $to war $count';
+
$labels['copy'] = 'Eilañ';
$labels['move'] = 'Dilec\'hiañ';
$labels['moveto'] = 'Dilec\'hiañ da...';
$labels['download'] = 'Pellgargañ';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Diskouez';
$labels['showanyway'] = 'Diskouez anezhañ memestra';
+
$labels['filename'] = 'Anv ar restr';
$labels['filesize'] = 'Ment ar restr';
+
$labels['addtoaddressbook'] = 'Ouzhpennañ er c\'harned chomlec\'hioù';
+
+// weekdays short
$labels['sun'] = 'Sul';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Meu';
@@ -62,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Yao';
$labels['fri'] = 'Gwe';
$labels['sat'] = 'Sad';
+
+// weekdays long
$labels['sunday'] = 'Sul';
$labels['monday'] = 'Lun';
$labels['tuesday'] = 'Meurzh';
@@ -69,6 +90,8 @@ $labels['wednesday'] = 'Merc\'her';
$labels['thursday'] = 'Yaou';
$labels['friday'] = 'Gwener';
$labels['saturday'] = 'Sadorn';
+
+// months short
$labels['jan'] = 'Gen';
$labels['feb'] = 'C\'hwe';
$labels['mar'] = 'Meu';
@@ -81,6 +104,8 @@ $labels['sep'] = 'Gwe';
$labels['oct'] = 'Her';
$labels['nov'] = 'Du';
$labels['dec'] = 'Ker';
+
+// months long
$labels['longjan'] = 'Genver';
$labels['longfeb'] = 'C\'hwevrer';
$labels['longmar'] = 'Meurzh';
@@ -93,7 +118,10 @@ $labels['longsep'] = 'Gwengolo';
$labels['longoct'] = 'Here';
$labels['longnov'] = 'Du';
$labels['longdec'] = 'Kerzu';
+
$labels['today'] = 'Hiziv';
+
+// toolbar buttons
$labels['refresh'] = 'Azgrenaat';
$labels['checkmail'] = 'Gwiriañ kemennadoù nevez';
$labels['compose'] = 'Skrivañ ur c\'hemennad nevez';
@@ -103,8 +131,12 @@ $labels['replytomessage'] = 'Respont d\'ar kaser';
$labels['replytoallmessage'] = 'Respont d\'an holl';
$labels['replyall'] = 'Respont d\'an holl';
$labels['replylist'] = 'Respont d\'ar roll';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Treuzkas ar c\'hemennad';
$labels['deletemessage'] = 'Dilec\'hiañ ar c\'hemennad er pod-lastez';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'Moulañ ar c\'hemennad-se';
$labels['previousmessage'] = 'Gwelout ar c"hemennad a-raok';
$labels['firstmessage'] = 'Gwelout ar c\'hemennad kentañ';
@@ -112,93 +144,395 @@ $labels['nextmessage'] = 'Gwelout ar c\'hemennad da heul';
$labels['lastmessage'] = 'Gwelout ar c\'hemennad diwezhañ';
$labels['backtolist'] = 'Distreiñ el listenn kemennadoù';
$labels['viewsource'] = 'Gwelout an tarzh';
+$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'] = 'Diuzañ';
$labels['all'] = 'An holl';
$labels['none'] = 'Ebet';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Na lennet';
+$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'] = 'Ebet';
+$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'] = 'Stummaat';
$labels['empty'] = 'Skarzhañ';
+
$labels['quota'] = 'Implijadur pladenn';
$labels['unknown'] = 'Dianav';
$labels['unlimited'] = 'didermen';
+
$labels['quicksearch'] = 'Klask prim';
$labels['resetsearch'] = 'Aderaouekaat ar glask';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Kas ar c\'hemennad diouzhtu';
$labels['savemessage'] = 'Gwarediñ ar brouilhed-se';
$labels['addattachment'] = 'Stagañ ur restr';
$labels['charset'] = 'Engodadur';
$labels['editortype'] = 'Furmad aozer';
$labels['returnreceipt'] = 'Testeni degemer';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Gwiriañ ar reizhskrivadur';
$labels['resumeediting'] = 'Distreiñ en aozer';
$labels['revertto'] = 'Distreiñ en/r';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Restroù staget';
$labels['upload'] = 'Stagañ';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Serriñ';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Izel';
$labels['lowest'] = 'An izelañ';
$labels['normal'] = 'Reizh';
$labels['high'] = 'Uhel';
$labels['highest'] = 'An uhelañ';
+
$labels['nosubject'] = '(n\'eus ket sujed)';
$labels['showimages'] = 'Diskouez ar skeudennoù';
+$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'] = 'testenn kriz';
+$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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
$labels['name'] = 'Anv da ziskouez';
$labels['firstname'] = 'Raganv';
$labels['surname'] = 'Anv';
+$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'] = 'Postel elektronek';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Ouzhpennañ an darempred diuzet en hor c\'harned chomlec\'hioù';
$labels['editcontact'] = 'Cheñch an darempred';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Cheñch';
$labels['cancel'] = 'Nullañ';
$labels['save'] = 'Gwarediñ';
$labels['delete'] = 'Dilemel';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Krouiñ un darempred nevez';
$labels['deletecontact'] = 'Dilemel an darempredoù diuzet';
$labels['composeto'] = 'Skrivañ ur c\'hemennad ouzh';
$labels['contactsfromto'] = 'Darempredoù eus $from ouzh $to war $count';
$labels['print'] = 'Moulañ';
$labels['export'] = 'Ezporzhiañ';
+$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'] = 'Diskouez pajenn a-raok';
$labels['firstpage'] = 'Gwelout ar bajenn gentañ';
$labels['nextpage'] = 'Diskouez pajenn da heul';
$labels['lastpage'] = 'Gwelout ar bajenn diwezhañ';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Strolladoù';
$labels['personaladrbook'] = 'Chomlec\'h personel';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Arventennoù evit';
+$labels['about'] = 'About';
$labels['preferences'] = 'Dibarzhioù';
$labels['userpreferences'] = 'Dibarzhioù implijer';
$labels['editpreferences'] = 'Cheñch dibarzhioù implijer';
+
$labels['identities'] = 'Identelezhioù';
$labels['manageidentities'] = 'Merañ an identelezhioù evit ar c\'hont-se';
$labels['newidentity'] = 'Identelezh nevez';
+
$labels['newitem'] = 'Elfenn nevez';
$labels['edititem'] = 'Cheñch an elfenn';
+
$labels['preferhtml'] = 'Diskouez en HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Kemennad en HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Diskouez berr deizioù';
$labels['setdefault'] = 'Arventennoù dre ziouer';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Yezh';
$labels['timezone'] = 'Gwerzhid-eur';
$labels['pagesize'] = 'Niver a linenn dre bajenn';
$labels['signature'] = 'Sinadur';
$labels['dstactive'] = 'Eur an hañv';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Sevel ur c\'hemennad er furmad HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Sinadur HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Diskouez panel alberz';
+$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'] = 'Gwarediñ emgefre brouilhedoù';
$labels['everynminutes'] = 'Bep $n munutoù';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'ebet';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Renkell';
$labels['folders'] = 'Teuliadoù';
$labels['foldername'] = 'Anv ar renkell';
$labels['subscribed'] = 'Koumananer';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'Krouiñ';
$labels['createfolder'] = 'Krouiñ ur renkell nevez';
$labels['managefolders'] = 'Aozañ ar renkelloù';
+$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'] = 'Rummañ dre';
$labels['sortasc'] = 'Rumm diagentad';
$labels['sortdesc'] = 'Rumm diskennad';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/br/messages.inc b/program/localization/br/messages.inc
index 7f724a24d..c1988577d 100644
--- a/program/localization/br/messages.inc
+++ b/program/localization/br/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Degouezhet ez eus bet ur fazi !';
$messages['loginfailed'] = 'C\'hwitadenn war kennaskañ';
$messages['cookiesdisabled'] = 'N\'eus ket c\'hoant toupinoù Hor merder';
@@ -23,10 +25,20 @@ $messages['storageerror'] = 'C\'hwitadenn war kennaskañ ouzh an dafariad mirout
$messages['servererror'] = 'Fazi dafariad !';
$messages['servererrormsg'] = 'Fazi dafariad : $msg';
$messages['dberror'] = 'Fazi stlennvon !';
+$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'] = 'Kemennadoù ebet er voest lizhiri';
$messages['loggedout'] = 'Digevreet hoc\'h eus mat. Kenavo !';
$messages['mailboxempty'] = 'Boest lizhiri dileun';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'O kargañ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'O kargañ roadennoù...';
$messages['checkingmail'] = 'O Gwiriañ kemennadoù nevez...';
$messages['sendingmessage'] = 'O kas ar c\'hemennad...';
@@ -36,38 +48,124 @@ $messages['messagesaved'] = 'Kemennad gwaredet dindan Brouilhedoù';
$messages['successfullysaved'] = 'Gwarediñ graet';
$messages['addedsuccessfully'] = 'Darempred ouzhpennet er c\'harned chomlec\'hioù';
$messages['contactexists'] = 'Bout a ra un darempred gant memes postel elektronek';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Evit gwarantiñ hoc\'h buhez prevez, stanket eo bet skeudennoù pell er c\'hemennad-se.';
$messages['encryptedmessage'] = 'Rineget eo ar c\'hemennad, ha ne c\'hall ket bezañ diskouez. Ma Digarezit !';
$messages['nocontactsfound'] = 'N\'eo ket bet kavet darempred ebet';
$messages['contactnotfound'] = 'N\'eo ket bet kavet an darempred goulennet';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'N\'eo ket bet kaset ar c\'hemennad';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Fazi en deus graet reuz en hoc\'h gwarediñ';
$messages['errormoving'] = 'N\'eus ket tu da zilec\'hiañ ar c\'hemennad';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'N\'eus ket tu da zilemel ar c\'hemennad';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'C\'hoant hoc\'h eus da zilemel an darempred(où) diuzet ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'C\'hoant hoc\'h eus da zilemel ar c\'hemennad(où) diuzet ?';
$messages['deletefolderconfirm'] = 'C\'hoant hoc\'h eus da skarzhañ ar renkell-se ?';
$messages['purgefolderconfirm'] = 'C\'hoant hoc\'h eus da skarzhañ an holl kemennad eus ar renkell-se ?';
+$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'] = 'N\'eo ket leuniet ar furmskrid penn-da-benn';
$messages['noemailwarning'] = 'Termenit ur postel elektronek mat mar plij ganeoc\'h';
$messages['nonamewarning'] = 'Termenit un anv mar plij ganeoc\'h';
$messages['nopagesizewarning'] = 'Termenit ur ment pajenn mar plij ganeoc\'h';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Ouzhpennit ur resever da nebeutañ mar plij ganeoc\'h';
$messages['nosubjectwarning'] = 'Dileun eo ar maezienn « Sujed » . C\'hoant hoc\'h eus da leuniañ anezhiñ diouzhtu ?';
$messages['nobodywarning'] = 'Kas ar c\'hemennad hep testenn ?';
$messages['notsentwarning'] = 'N\'eo ket bet kaset ar c\'hemennad. C\'hoant hoc\'h eus dilezel ar c\'hemennad-se ?';
$messages['noldapserver'] = 'Dizuit ur servijer LDAP evit ar glask';
$messages['nosearchname'] = 'Skrivit un anv darempred pe ur postel elektronek';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr kemennad kavet';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Disoc\'h ebet gant ar glask';
$messages['searching'] = 'O klask...';
$messages['checking'] = 'O gwiriañ...';
$messages['nospellerrors'] = 'Fazi ebet kavet';
$messages['folderdeleted'] = 'Renkell skarzhet';
+$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'] = 'Dilemet mat';
$messages['converting'] = 'O tilemel furmaozañ...';
$messages['messageopenerror'] = 'N\'us ket tu da gargañ ar c\'hemennad adalek ar servijer';
$messages['fileuploaderror'] = 'Fazi o treuzkas ar restr';
$messages['filesizeerror'] = 'Re vras eo ar restr treuzkaset $size';
+$messages['copysuccess'] = 'Kopiañ mat $nr chomlec\'h';
+$messages['copyerror'] = 'Ne c\'hall ket kopiañ chomlec\'hioù';
$messages['sourceisreadonly'] = 'Lenn hepken eo an tarzh chomlec\'h se';
$messages['errorsavingcontact'] = 'Ne c\'haller ket gwarediñ chomlec\'h darempred';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/bs_BA/labels.inc b/program/localization/bs_BA/labels.inc
index df58d8d60..5afdcad1f 100644
--- a/program/localization/bs_BA/labels.inc
+++ b/program/localization/bs_BA/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Dobrodošli u $product';
$labels['username'] = 'Korisnik';
$labels['password'] = 'Å ifra';
$labels['server'] = 'Server';
$labels['login'] = 'Prijava';
+
+// taskbar
$labels['logout'] = 'Odjava';
$labels['mail'] = 'Email';
$labels['settings'] = 'Podešavanja';
$labels['addressbook'] = 'Adresar';
+
+// mailbox names
$labels['inbox'] = 'SanduÄe';
$labels['drafts'] = 'Skice';
$labels['sent'] = 'Poslano';
$labels['trash'] = 'Smeće';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Prikaži prava imena specijalnih foldera';
+
+// message listing
$labels['subject'] = 'Naslov';
$labels['from'] = 'Od';
$labels['sender'] = 'Pošiljalac';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'Status poruke';
$labels['listoptions'] = 'Izlistaj opcije...';
+
$labels['mailboxlist'] = 'Folderi';
$labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count';
$labels['threadsfromto'] = 'Teme od $from do $to od ukupno $count';
$labels['messagenrof'] = 'Poruka broj $nr od $count';
$labels['fromtoshort'] = '$from – $to od ukupno $count';
+
$labels['copy'] = 'Kopiraj';
$labels['move'] = 'Premjesti';
$labels['moveto'] = 'Premjesti u...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Preuzmi';
$labels['open'] = 'Otvori';
$labels['showattachment'] = 'Prikaži';
$labels['showanyway'] = 'Ipak prikaži';
+
$labels['filename'] = 'Ime datoteke';
$labels['filesize'] = 'VeliÄina datoteke';
+
$labels['addtoaddressbook'] = 'Dodaj u adresar';
+
+// weekdays short
$labels['sun'] = 'Ned';
$labels['mon'] = 'Pon';
$labels['tue'] = 'Uto';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Sri';
$labels['thu'] = 'ÄŒet';
$labels['fri'] = 'Pet';
$labels['sat'] = 'Sub';
+
+// weekdays long
$labels['sunday'] = 'Nedjelja';
$labels['monday'] = 'Ponedjeljak';
$labels['tuesday'] = 'Utorak';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Srijeda';
$labels['thursday'] = 'ÄŒetvrtak';
$labels['friday'] = 'Petak';
$labels['saturday'] = 'Subota';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Mart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Septembar';
$labels['longoct'] = 'Oktobar';
$labels['longnov'] = 'Novembar';
$labels['longdec'] = 'Decembar';
+
$labels['today'] = 'Danas';
+
+// toolbar buttons
$labels['refresh'] = 'Osvježi';
$labels['checkmail'] = 'Provjeri ima li novih poruka';
$labels['compose'] = 'Nova poruka';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Više akcija...';
$labels['more'] = 'Više';
$labels['back'] = 'Nazad';
$labels['options'] = 'Opcije';
+
$labels['select'] = 'Odaberi';
$labels['all'] = 'Sve';
$labels['none'] = 'Ništa';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Proširi sve';
$labels['expand-unread'] = 'ProÅ¡iri neproÄitane';
$labels['collapse-all'] = 'Zatvori sve';
$labels['threaded'] = 'Teme';
+
$labels['autoexpand_threads'] = 'Proširi teme poruka';
$labels['do_expand'] = 'sve teme';
$labels['expand_only_unread'] = 'samo sa neproÄitanim porukama';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Lista kolona';
$labels['listsorting'] = 'Sortiranje kolona';
$labels['listorder'] = 'Raspored sortiranja';
$labels['listmode'] = 'NaÄin prikaza liste';
+
$labels['folderactions'] = 'Akcije za foldere...';
$labels['compact'] = 'Optimiziraj';
$labels['empty'] = 'Isprazni';
-$labels['importmessages'] = 'Uvezi poruke';
+
$labels['quota'] = 'Zauzeće diska';
$labels['unknown'] = 'nepoznato';
$labels['unlimited'] = 'neograniÄeno';
+
$labels['quicksearch'] = 'Brza pretraga';
$labels['resetsearch'] = 'Resetuj pretragu';
$labels['searchmod'] = 'Modifikacija pretrage';
$labels['msgtext'] = 'Cijela poruka';
$labels['body'] = 'Tijelo';
-$labels['type'] = 'Vrsta';
-$labels['namex'] = 'Ime';
+
$labels['openinextwin'] = 'Otvori u novom prozoru';
$labels['emlsave'] = 'Preuzmi (.eml)';
$labels['changeformattext'] = 'Prikaži kao obiÄni tekst';
$labels['changeformathtml'] = 'Prikaži kao HTML';
+
+// message compose
$labels['editasnew'] = 'Uredi kao novo';
$labels['send'] = 'Pošalji';
$labels['sendmessage'] = 'Pošalji poruku';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Potvrda o prispijeću poruke';
$labels['dsn'] = 'Obavještenje o statusu dostave';
$labels['mailreplyintro'] = '$date, $sender je napisao/la:';
$labels['originalmessage'] = 'Originalna poruka';
+
$labels['editidents'] = 'Uredi identitete';
-$labels['spellcheck'] = 'Pravopis';
+$labels['spellcheck'] = 'Spelovanje';
$labels['checkspelling'] = 'Provjera pravopisa';
$labels['resumeediting'] = 'Nastavi uređivanje';
$labels['revertto'] = 'Vrati na';
+
$labels['attach'] = 'Priloži';
$labels['attachments'] = 'Prilozi';
$labels['upload'] = 'Dodaj';
$labels['uploadprogress'] = '$percent ($current od $total)';
$labels['close'] = 'Zatvori';
$labels['messageoptions'] = 'Opcije poruke...';
+
$labels['low'] = 'Nizak';
$labels['lowest'] = 'Najniži';
$labels['normal'] = 'Normalan';
$labels['high'] = 'Visok';
$labels['highest'] = 'Najveći';
+
$labels['nosubject'] = '(bez naslova)';
$labels['showimages'] = 'Prikaži slike';
$labels['alwaysshow'] = 'Uvijek prikaži slike od $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Ovo je skica.';
$labels['andnmore'] = 'još $nr...';
$labels['togglemoreheaders'] = 'Prikaži još zaglavlja poruka';
$labels['togglefullheaders'] = 'Aktiviranje izvornih zaglavlja poruka';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ObiÄni tekst';
$labels['savesentmessagein'] = 'SaÄuvaj poslane poruke u';
$labels['dontsave'] = 'ne snimaj';
$labels['maxuploadsize'] = 'Maksimalna dozvoljena veliÄina datoteke je $size';
+
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj odgovor na';
$labels['addfollowupto'] = 'Dodaj praćenje za';
+
+// mdn
$labels['mdnrequest'] = 'PoÅ¡iljaoc ove poruke je tražio da bude obavijeÅ¡ten kada proÄitate ovu poruku. Želite li obavijestiti poÅ¡iljaoca?';
$labels['receiptread'] = 'Povratnica (proÄitano)';
$labels['yourmessage'] = 'Ovo je povratnica vaše poruke';
$labels['receiptnote'] = 'Napomena: Ova povratnica samo potvrÄ‘uje da je poruka bila prikazana na raÄunaru primaoca. Nema garancija da je primaoc proÄitao ili razumio sadržaj poruke.';
+
+// address boook
$labels['name'] = 'Ime za prikaz';
$labels['firstname'] = 'Ime';
$labels['surname'] = 'Prezime';
@@ -262,6 +301,7 @@ $labels['search'] = 'Pretraga';
$labels['advsearch'] = 'Napredna pretraga';
$labels['advanced'] = 'Napredno';
$labels['other'] = 'Ostalo';
+
$labels['typehome'] = 'Kućni broj';
$labels['typework'] = 'Poslovni broj';
$labels['typeother'] = 'Ostalo';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Pomoćnik';
$labels['typehomepage'] = 'PoÄetna stranica';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj polje...';
$labels['addcontact'] = 'Dodaj novi kontakt';
$labels['editcontact'] = 'Uredi kontakt';
$labels['contacts'] = 'Kontakti';
$labels['contactproperties'] = 'Svojstva kontakta';
$labels['personalinfo'] = 'LiÄni podaci';
+
$labels['edit'] = 'Uredi';
$labels['cancel'] = 'Otkaži';
$labels['save'] = 'SaÄuvaj';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Preimenuj';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Zamijeni';
$labels['uploadphoto'] = 'Dodaj fotografiju';
+
$labels['newcontact'] = 'Dodaj novi kontakt';
$labels['deletecontact'] = 'Obriši odabrane kontakte';
$labels['composeto'] = 'Napiši email za';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Kreiraj novu grupu kontakata';
$labels['grouprename'] = 'Preimenuj grupu';
$labels['groupdelete'] = 'Obriši grupu';
$labels['groupremoveselected'] = 'Ukloni odabrane kontakte iz grupe';
+
$labels['previouspage'] = 'Prikaži prethodnu stranicu';
$labels['firstpage'] = 'Prikaži prvu stranicu';
$labels['nextpage'] = 'Prikaži sljedeću stranicu';
$labels['lastpage'] = 'Prikaži zadnju stranicu';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupe';
-$labels['listgroup'] = 'Izlistaj Älanove grupe';
$labels['personaladrbook'] = 'LiÄne adrese';
+
$labels['searchsave'] = 'SaÄuvaj pretragu';
$labels['searchdelete'] = 'Obriši pretragu';
+
$labels['import'] = 'Uvoz';
$labels['importcontacts'] = 'Uvoz kontakata';
$labels['importfromfile'] = 'Uvoz iz datoteke:';
-$labels['importtarget'] = 'Dodaj kontakte u';
+$labels['importtarget'] = 'Dodaj novi kontakt u adresar:';
$labels['importreplace'] = 'Zamijeni cijeli adresar';
-$labels['importgroups'] = 'Uvezi grupne zadatke';
-$labels['importgroupsall'] = 'Sve (kreiraj grupe ako je potrebno)';
-$labels['importgroupsexisting'] = 'Samo za postojeće grupe';
$labels['importdesc'] = 'Kontakte možete dodati iz postojećeg adresara.<br/>Trenutno podržavamo uvoz adresara u formatima <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ili CSV (comma-separated).';
$labels['done'] = 'Završeno';
+
+// settings
$labels['settingsfor'] = 'Podešavanja za';
$labels['about'] = 'Informacije';
$labels['preferences'] = 'Podešavanja';
$labels['userpreferences'] = 'KorisniÄke opcije';
$labels['editpreferences'] = 'Uredi korisniÄke opcije';
+
$labels['identities'] = 'Identiteti';
$labels['manageidentities'] = 'Podesi identitete za ovaj raÄun';
$labels['newidentity'] = 'Dodaj identitet';
+
$labels['newitem'] = 'Nova stavka';
$labels['edititem'] = 'Uredi stavku';
+
$labels['preferhtml'] = 'Prikaži HTML';
$labels['defaultcharset'] = 'Glavni skup znakova';
$labels['htmlmessage'] = 'HTML poruke';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Zanemari rijeÄi sa brojevima';
$labels['spellcheckignorecaps'] = 'Zanemari rijeÄi napisane velikim slovima';
$labels['addtodict'] = 'Dodaj u rjeÄnik';
$labels['mailtoprotohandler'] = 'Registruj upravljaÄ protokola za mailto: linkovi';
-$labels['standardwindows'] = 'Tretiraj popup-ove kao standardne prozore';
$labels['forwardmode'] = 'Prosljeđivanje poruka';
$labels['inline'] = 'u istom redu';
$labels['asattachment'] = 'kao prilog';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folderi';
$labels['foldername'] = 'Naziv foldera';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Vrsta foldera';
$labels['personalfolder'] = 'Privatni folder';
$labels['otherfolder'] = 'Folder drugog korisnika';
$labels['sharedfolder'] = 'Javni folder';
+
$labels['sortby'] = 'Sortiraj po';
$labels['sortasc'] = 'Sortiraj uzlazno';
$labels['sortdesc'] = 'Sortiraj silazno';
$labels['undo'] = 'Nazad';
+
$labels['installedplugins'] = 'Instalirani plugini';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Verzija';
$labels['source'] = 'Izvorni kod';
$labels['license'] = 'Licenca';
$labels['support'] = 'Podrška';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unikod';
$labels['english'] = 'engleski';
$labels['westerneuropean'] = 'Zapadna Evropa';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'vijetnamski';
$labels['japanese'] = 'japanski';
$labels['korean'] = 'korejski';
$labels['chinese'] = 'kineski';
+
?>
diff --git a/program/localization/bs_BA/messages.inc b/program/localization/bs_BA/messages.inc
index 9e0f083ff..7a1b26168 100644
--- a/program/localization/bs_BA/messages.inc
+++ b/program/localization/bs_BA/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Desila se greška!';
$messages['loginfailed'] = 'Prijava nije uspjela.';
$messages['cookiesdisabled'] = 'VaÅ¡ preglednik ne prihvata kolaÄiće.';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Uklanjam formatiranje...';
$messages['messageopenerror'] = 'Nije moguće uÄitati poruku sa servera.';
$messages['fileuploaderror'] = 'Dodavanje datoteke nije uspjelo.';
$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veliÄina je $size.';
-$messages['copysuccess'] = 'Uspješno kopirano $nr kontakata.';
-$messages['movesuccess'] = 'Uspješno premješteno $nr kontakata.';
-$messages['copyerror'] = 'Nije moguće kopirati kontakte.';
-$messages['moveerror'] = 'Nije moguće premjestiti kontakte.';
+$messages['copysuccess'] = 'Uspješno kopirano $n adresa.';
+$messages['copyerror'] = 'Nije moguće kopirati adrese.';
$messages['sourceisreadonly'] = 'Ovaj izvor adresa je samo za Äitanje.';
$messages['errorsavingcontact'] = 'Nije moguće saÄuvati kontakt adresu.';
$messages['movingmessage'] = 'Premještam poruke...';
$messages['copyingmessage'] = 'Kopiram poruke...';
$messages['copyingcontact'] = 'Kopiram kontakte...';
-$messages['movingcontact'] = 'Premještam kontakte...';
$messages['deletingmessage'] = 'Brišem poruke...';
$messages['markingmessage'] = 'OznaÄavam poruke...';
$messages['addingmember'] = 'Dodajem kontakte u grupu...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Uvoz u toku, molimo saÄekajte...';
$messages['importformaterror'] = 'Uvoz nije uspio! Dodana datoteka nije u ispravnom formatu za uvoz podataka.';
$messages['importconfirm'] = '<b>Uspješno je uvezeno $inserted kontakata</b>';
$messages['importconfirmskipped'] = '<b>PreskoÄeno $skipped postojećih unosa</b>';
-$messages['importmessagesuccess'] = 'Uspješno uvezeno $nr poruka';
-$messages['importmessageerror'] = 'Uvoz nije uspio! Dodana datoteke nije ispravna datoteka sa porukama';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
$messages['nofromaddress'] = 'U odabrani identitet nije upisana email adresa.';
$messages['editorwarning'] = 'Prebacivanje u obiÄni tekstualni ureÄ‘ivaÄ Ä‡e prouzrokovati gubljenje formatiranja teksta. Želite li nastaviti?';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Nije moguće kreirati/premjestiti folder u oda
$messages['messagetoobig'] = 'Dio poruke je prevelik za procesiranje.';
$messages['attachmentvalidationerror'] = 'UPOZORENJE! Ovaj prilog je sumnjiv zbog toga Å¡to se njegov tip ne poklapa s tipom navedenim u poruci. Ako nemate povjerenja u poÅ¡iljaova, ne biste trebali da otvarate ovaj prilog u vaÅ¡em browseru jer bi on mogao da sadrži zlonamjerni sadržaj.<br/><br/><em>OÄekivano: $expected; pronaÄ‘eno: $detected</em>';
$messages['noscriptwarning'] = 'Upozorenje! Ovom webmail servisu je potreban Javascript! Da biste ga mogli koristiti, prvo je potrebno da omogućite Javascript u postavkama vašeg browsera.';
+
?>
diff --git a/program/localization/ca_ES/labels.inc b/program/localization/ca_ES/labels.inc
index a93b18434..3be753b68 100644
--- a/program/localization/ca_ES/labels.inc
+++ b/program/localization/ca_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvingut a $product';
$labels['username'] = 'Nom d\'usuari';
$labels['password'] = 'Contrasenya';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entra';
+
+// taskbar
$labels['logout'] = 'Tanca sessió';
$labels['mail'] = 'Correu';
$labels['settings'] = 'Configuració';
$labels['addressbook'] = 'Contactes';
+
+// mailbox names
$labels['inbox'] = 'Safata d\'entrada';
$labels['drafts'] = 'Esborranys';
$labels['sent'] = 'Enviats';
$labels['trash'] = 'Paperera';
$labels['junk'] = 'Correu brossa';
-$labels['show_real_foldernames'] = 'Mostra els noms reals a les carpetes especials';
+
+// message listing
$labels['subject'] = 'Assumpte';
$labels['from'] = 'Remitent';
$labels['sender'] = 'Remitent';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritat';
$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['threadsfromto'] = 'Fils $from a $to de $count';
$labels['messagenrof'] = 'Missatge $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Copia';
$labels['move'] = 'Mou';
$labels['moveto'] = 'Mou a...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Descarrega';
$labels['open'] = 'Obre';
$labels['showattachment'] = 'Mostra';
$labels['showanyway'] = 'Mostra-ho de totes maneres';
+
$labels['filename'] = 'Nom del fitxer';
$labels['filesize'] = 'Mida del fitxer';
+
$labels['addtoaddressbook'] = 'Afegeix a contactes';
+
+// weekdays short
$labels['sun'] = 'Diu';
$labels['mon'] = 'Dll';
$labels['tue'] = 'Dmt';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Dmc';
$labels['thu'] = 'Dij';
$labels['fri'] = 'Div';
$labels['sat'] = 'Dis';
+
+// weekdays long
$labels['sunday'] = 'Diumenge';
$labels['monday'] = 'Dilluns';
$labels['tuesday'] = 'Dimarts';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Dimecres';
$labels['thursday'] = 'Dijous';
$labels['friday'] = 'Divendres';
$labels['saturday'] = 'Dissabte';
+
+// months short
$labels['jan'] = 'gen';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'set';
$labels['oct'] = 'oct';
$labels['nov'] = 'nov';
$labels['dec'] = 'des';
+
+// months long
$labels['longjan'] = 'gener';
$labels['longfeb'] = 'febrer';
$labels['longmar'] = 'març';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'setembre';
$labels['longoct'] = 'octubre';
$labels['longnov'] = 'novembre';
$labels['longdec'] = 'desembre';
+
$labels['today'] = 'Avui';
+
+// toolbar buttons
$labels['refresh'] = 'Actualitza';
$labels['checkmail'] = 'Recupera missatges nous';
$labels['compose'] = 'Escriu un missatge';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Més accions...';
$labels['more'] = 'Més';
$labels['back'] = 'Torna';
$labels['options'] = 'Opcions';
+
$labels['select'] = 'Selecciona';
$labels['all'] = 'Tots';
$labels['none'] = 'Cap';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandeix tots';
$labels['expand-unread'] = 'Expandeix No llegits';
$labels['collapse-all'] = 'Redueix tots';
$labels['threaded'] = 'Encadenat';
+
$labels['autoexpand_threads'] = 'Expandeix els missatges encadenats';
$labels['do_expand'] = 'tots els fils de discusió';
$labels['expand_only_unread'] = 'només amb missatges no llegits';
@@ -163,26 +189,29 @@ $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['compact'] = 'Compacta';
$labels['empty'] = 'Buida';
-$labels['importmessages'] = 'Importa missatges';
+
$labels['quota'] = 'Ús del disc';
$labels['unknown'] = 'desconegut';
$labels['unlimited'] = 'il·limitat';
+
$labels['quicksearch'] = 'Cerca ràpida';
$labels['resetsearch'] = 'Neteja cerca';
$labels['searchmod'] = 'Cerca modificadors';
$labels['msgtext'] = 'Missatge sencer';
$labels['body'] = 'Cos';
-$labels['type'] = 'Tipus';
-$labels['namex'] = 'Nom';
+
$labels['openinextwin'] = 'Obre a una nova finestra';
$labels['emlsave'] = 'Descarrega (.eml)';
$labels['changeformattext'] = 'Mostra en format de text net';
$labels['changeformathtml'] = 'Mostra en format HTML';
+
+// message compose
$labels['editasnew'] = 'Edita com a nou';
-$labels['send'] = 'Envia';
+$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Envia el missatge';
$labels['savemessage'] = 'Desa aquest esborrany';
$labels['addattachment'] = 'Adjunta un fitxer';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Confirmació de recepció';
$labels['dsn'] = 'Notificació d\'estat de lliurament';
$labels['mailreplyintro'] = 'A $date, $sender escrigué:';
$labels['originalmessage'] = 'Missatge Original';
+
$labels['editidents'] = 'Edita identitats';
$labels['spellcheck'] = 'Ortografia';
$labels['checkspelling'] = 'Comprova l\'ortografia';
$labels['resumeediting'] = 'Reprèn l\'edició';
$labels['revertto'] = 'Torna a';
+
$labels['attach'] = 'Adjunta';
$labels['attachments'] = 'Adjuncions';
$labels['upload'] = 'Afegeix';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Tanca';
$labels['messageoptions'] = 'Opcions de missatge...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'La més baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'La més alta';
+
$labels['nosubject'] = '(sense assumpte)';
$labels['showimages'] = 'Mostra les imatges';
$labels['alwaysshow'] = 'Mostra sempre les imatges de $sender';
@@ -215,19 +248,25 @@ $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['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['addcc'] = 'Afegeix Cc';
$labels['addbcc'] = 'Afegeix Bcc';
$labels['addreplyto'] = 'Afegeix Respon-A';
$labels['addfollowupto'] = 'Afegir Seguiment-A';
+
+// mdn
$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['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.';
+
+// address boook
$labels['name'] = 'Nom a mostrar';
$labels['firstname'] = 'Nom';
$labels['surname'] = 'Cognom';
@@ -262,6 +301,7 @@ $labels['search'] = 'Cerca';
$labels['advsearch'] = 'Cerca Avançada';
$labels['advanced'] = 'Paràmetres avançats';
$labels['other'] = 'Un altre';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Feina';
$labels['typeother'] = 'Un altre';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Pàgina Inicial';
$labels['typeblog'] = 'Bloc';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Afegeix camp...';
$labels['addcontact'] = 'Afegeix un nou contacte';
$labels['editcontact'] = 'Edita el contacte';
$labels['contacts'] = 'Contactes';
$labels['contactproperties'] = 'Propietats del contacte';
$labels['personalinfo'] = 'Informació personal';
+
$labels['edit'] = 'Edita';
$labels['cancel'] = 'Cancel·la';
$labels['save'] = 'Desa';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Reanomena';
$labels['addphoto'] = 'Afegeix';
$labels['replacephoto'] = 'Reemplaça';
$labels['uploadphoto'] = 'Puja una fotografia';
+
$labels['newcontact'] = 'Crea un nou contacte';
$labels['deletecontact'] = 'Suprimeix els contactes seleccionats';
$labels['composeto'] = 'Redacta correu per a';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Crea un nou grup de contactes';
$labels['grouprename'] = 'Reanomena el grup';
$labels['groupdelete'] = 'Suprimeix el grup';
$labels['groupremoveselected'] = 'Suprimeix els contactes seleccionats del grup';
+
$labels['previouspage'] = 'Mostra la pàgina anterior';
$labels['firstpage'] = 'Mostra la primera pàgina';
$labels['nextpage'] = 'Mostra la pàgina següent';
$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['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['importtarget'] = 'Afegeix contactes nous a la llibreta d\'adreces:';
$labels['importreplace'] = 'Reemplaça la llibreta d\'adreçes 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['done'] = 'Fet';
+
+// settings
$labels['settingsfor'] = 'Configuració per a';
$labels['about'] = 'Quant a';
$labels['preferences'] = 'Preferències';
$labels['userpreferences'] = 'Preferències de l\'usuari';
$labels['editpreferences'] = 'Edita les preferències de l\'usuari';
+
$labels['identities'] = 'Identitats';
$labels['manageidentities'] = 'Gestiona les identitats per a aquest compte';
$labels['newidentity'] = 'Nova identitat';
+
$labels['newitem'] = 'Nou element';
$labels['edititem'] = 'Edita l\'element';
+
$labels['preferhtml'] = 'Mostra HTML';
$labels['defaultcharset'] = 'Joc de caràcters per defecte';
$labels['htmlmessage'] = 'Missatge HTML';
@@ -348,13 +396,13 @@ $labels['timezone'] = 'Fus horari';
$labels['pagesize'] = 'Files per pàgina';
$labels['signature'] = 'Signatura';
$labels['dstactive'] = 'Horari d\'estiu';
-$labels['showinextwin'] = 'Obre el missatge en una nova finestra';
-$labels['composeextwin'] = 'Redacta en una nova finestra';
+$labels['showinextwin'] = 'Obrir el missatge en una nova finestra';
+$labels['composeextwin'] = 'Redactar 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['htmlsignature'] = 'Signatura en HTML';
-$labels['showemail'] = 'Mostra l\'adreça electrònica amb el nom';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Mostra el panell de previsualització';
$labels['skin'] = 'Aparença d\'interfície';
$labels['logoutclear'] = 'Buida la paperera al tancar la sessió';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignora paraules amb números';
$labels['spellcheckignorecaps'] = 'Ignora paraules amb lletres capitalitzades';
$labels['addtodict'] = 'Afegeix al diccionari';
$labels['mailtoprotohandler'] = 'Registra controlador de protocol pels enllaços mailto:';
-$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['folder'] = 'Carpeta';
$labels['folders'] = 'Carpetes';
$labels['foldername'] = 'Nom de la carpeta';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Tipus de Carpeta';
$labels['personalfolder'] = 'Carpeta privada';
$labels['otherfolder'] = 'Carpeta d\'un altre usuari';
$labels['sharedfolder'] = 'Carpeta pública';
+
$labels['sortby'] = 'Ordena per';
$labels['sortasc'] = 'Ordena ascendentment';
$labels['sortdesc'] = 'Ordena descendentment';
$labels['undo'] = 'Desfés';
+
$labels['installedplugins'] = 'Connectors Instal·lats';
$labels['plugin'] = 'Complement';
$labels['version'] = 'Versió';
$labels['source'] = 'Font';
$labels['license'] = 'Llicència';
$labels['support'] = 'Obtingueu ajuda';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Anglès';
$labels['westerneuropean'] = 'Europeu occidental';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonès';
$labels['korean'] = 'Coreà';
$labels['chinese'] = 'Xinès';
+
?>
diff --git a/program/localization/ca_ES/messages.inc b/program/localization/ca_ES/messages.inc
index 5f5854de8..70c3fbd0c 100644
--- a/program/localization/ca_ES/messages.inc
+++ b/program/localization/ca_ES/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Hi ha hagut un error!';
$messages['loginfailed'] = 'L\'accés ha fallat.';
$messages['cookiesdisabled'] = 'El vostre navegador no accepta cookies.';
@@ -54,8 +56,8 @@ $messages['contactnotfound'] = 'No s\'ha trobat el contacte sol·licitat.';
$messages['contactsearchonly'] = 'Introduïu termes de cerca per trobar contactes';
$messages['sendingfailed'] = 'Error enviant el missatge.';
$messages['senttooquickly'] = 'Si us plau, espereu $sec segon(s) abans d\'enviar aquest missatge.';
-$messages['errorsavingsent'] = 'S\'ha produït un error mentre es desava el missatge enviat.';
-$messages['errorsaving'] = 'S\'ha produït un error mentre es desava.';
+$messages['errorsavingsent'] = 'Hi ha hagut un error mentre es desava el missatge enviat.';
+$messages['errorsaving'] = 'Hi ha hagut un error mentre s\'estava desant.';
$messages['errormoving'] = 'No s\'ha pogut moure el(s) missatge(s).';
$messages['errorcopying'] = 'No s\'ha pogut copiar el(s) missatge(s).';
$messages['errordeleting'] = 'No s\'ha pogut suprimir el(s) missatge(s).';
@@ -99,16 +101,13 @@ $messages['converting'] = 'S\'està traient el format del missatge...';
$messages['messageopenerror'] = 'No s\'ha pogut carregar el missatge del servidor.';
$messages['fileuploaderror'] = 'La pujada del fitxer ha fallat.';
$messages['filesizeerror'] = 'El fitxer pujat excedeix la mida màxima de $size.';
-$messages['copysuccess'] = 'S\'han copiat $nr contactes correctament.';
-$messages['movesuccess'] = 'S\'han mogut $nr contactes correctament.';
-$messages['copyerror'] = 'No s\'ha pogut copiar cap contacte.';
-$messages['moveerror'] = 'No s\'ha pogut moure cap contacte.';
+$messages['copysuccess'] = 'S\'han copiat $nr adreces correctament.';
+$messages['copyerror'] = 'No s\'ha pogut copiar cap adreça.';
$messages['sourceisreadonly'] = 'Aquesta adreça és només de lectura.';
$messages['errorsavingcontact'] = 'No s\'ha pogut desar l\'adreça de contacte.';
$messages['movingmessage'] = 'S\'està movent missatge(s)...';
$messages['copyingmessage'] = 'S\'està copiant missatge(s)...';
$messages['copyingcontact'] = 'S\'està copiant contacte(s)...';
-$messages['movingcontact'] = 'S\'estan movent els contacte(s)...';
$messages['deletingmessage'] = 'S\'està suprimint missatge(s)...';
$messages['markingmessage'] = 'S\'està marcant missatge(s)...';
$messages['addingmember'] = 'S\'està afegint contacte(s) al grup...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'S\'està important, espereu si us plau...';
$messages['importformaterror'] = 'La importació ha fallat. El fitxer pujat no és un fitxer de dades vàlid.';
$messages['importconfirm'] = '<b>S\'han importat $inserted contactes correctament</b>';
$messages['importconfirmskipped'] = '<b>S\'han descartat $skipped entrades ja existents</b>';
-$messages['importmessagesuccess'] = '<b>S\'han importat $nr missatges correctament</b>';
-$messages['importmessageerror'] = 'La importació ha fallat. El fitxer que heu pujat no és un fitxer de missatges vàlid o no és un fitxer de bústia.';
$messages['opnotpermitted'] = 'Operació no permesa!';
$messages['nofromaddress'] = 'Falta l\'adreça de correu a la identitat seleccionada.';
$messages['editorwarning'] = 'Si canvieu a l\'editor de text pla perdreu tot el format del text. Voleu continuar?';
@@ -142,7 +139,7 @@ $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['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['internalerror'] = 'Hi ha hagut un error intern. Si us plau torneu-ho a provar.';
$messages['contactdelerror'] = 'No s\'han pogut suprimir el(s) contacte(s).';
$messages['contactdeleted'] = 'Contacte(s) suprimit(s) correctament.';
$messages['contactrestoreerror'] = 'No s\'ha pogut restaurar el(s) contacte(s) suprimit(s).';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'No s\'ha pogut crear/moure la carpeta dins de
$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.';
+
?>
diff --git a/program/localization/cs_CZ/labels.inc b/program/localization/cs_CZ/labels.inc
index aac514ec5..8fb7ffade 100644
--- a/program/localization/cs_CZ/labels.inc
+++ b/program/localization/cs_CZ/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Vítejte v $product';
$labels['username'] = 'Uživatel';
$labels['password'] = 'Heslo';
$labels['server'] = 'Server';
$labels['login'] = 'Přihlásit';
+
+// taskbar
$labels['logout'] = 'Odhlásit';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Nastavení';
$labels['addressbook'] = 'Adresář';
+
+// mailbox names
$labels['inbox'] = 'Příchozí pošta';
$labels['drafts'] = 'Rozepsané';
$labels['sent'] = 'Odeslané';
$labels['trash'] = 'Koš';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Zobrazit skuteÄná jména speciálních složek';
+
+// message listing
$labels['subject'] = 'Předmět';
$labels['from'] = 'Odesílatel';
$labels['sender'] = 'Odesílatel';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorita';
$labels['organization'] = 'Organizace';
$labels['readstatus'] = 'PÅ™eÄteno';
$labels['listoptions'] = 'Seznam možností ...';
+
$labels['mailboxlist'] = 'Složky';
$labels['messagesfromto'] = 'Zprávy $from až $to z celkem $count';
$labels['threadsfromto'] = 'Konverzace $from až $to z celkem $count';
$labels['messagenrof'] = 'Zpráva $nr z $count';
$labels['fromtoshort'] = '$from - $to z $count';
+
$labels['copy'] = 'Kopírovat';
$labels['move'] = 'Přesunout';
$labels['moveto'] = 'přesunout do...';
@@ -56,9 +67,13 @@ $labels['download'] = 'stáhnout';
$labels['open'] = 'Otevřít';
$labels['showattachment'] = 'Zobrazit';
$labels['showanyway'] = 'Přesto zobrazit';
+
$labels['filename'] = 'Jméno přílohy';
$labels['filesize'] = 'Velikost přílohy';
+
$labels['addtoaddressbook'] = 'Přidat do adresáře';
+
+// weekdays short
$labels['sun'] = 'Ne';
$labels['mon'] = 'Po';
$labels['tue'] = 'Út';
@@ -66,6 +81,8 @@ $labels['wed'] = 'St';
$labels['thu'] = 'ÄŒt';
$labels['fri'] = 'Pá';
$labels['sat'] = 'So';
+
+// weekdays long
$labels['sunday'] = 'Neděle';
$labels['monday'] = 'Pondělí';
$labels['tuesday'] = 'Úterý';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Středa';
$labels['thursday'] = 'ÄŒtvrtek';
$labels['friday'] = 'Pátek';
$labels['saturday'] = 'Sobota';
+
+// months short
$labels['jan'] = 'Led';
$labels['feb'] = 'Úno';
$labels['mar'] = 'Bře';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Zář';
$labels['oct'] = 'Říj';
$labels['nov'] = 'Lis';
$labels['dec'] = 'Pro';
+
+// months long
$labels['longjan'] = 'Leden';
$labels['longfeb'] = 'Únor';
$labels['longmar'] = 'Březen';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Září';
$labels['longoct'] = 'Říjen';
$labels['longnov'] = 'Listopad';
$labels['longdec'] = 'Prosinec';
+
$labels['today'] = 'Dnes';
+
+// toolbar buttons
$labels['refresh'] = 'Obnovit';
$labels['checkmail'] = 'Zkontrolovat nové zprávy';
$labels['compose'] = 'Napsat zprávu';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Další akce...';
$labels['more'] = 'Více';
$labels['back'] = 'Zpět';
$labels['options'] = 'Možnosti';
+
$labels['select'] = 'Vybrat';
$labels['all'] = 'VÅ¡e';
$labels['none'] = 'Nic';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Rozbalit všechny';
$labels['expand-unread'] = 'Rozbalit nepÅ™eÄtené';
$labels['collapse-all'] = 'Sbalit všechny';
$labels['threaded'] = 'Spojovat do konverzací';
+
$labels['autoexpand_threads'] = 'Rozbalit konverzace';
$labels['do_expand'] = 'všechny konverzace';
$labels['expand_only_unread'] = 'pouze s nepÅ™eÄtenými zprávami';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Seznam sloupců';
$labels['listsorting'] = 'Třídění sloupců';
$labels['listorder'] = 'Uspořádání';
$labels['listmode'] = 'Režim zobrazení seznamu';
+
$labels['folderactions'] = 'Akce se složkou...';
$labels['compact'] = 'Zmenšit';
$labels['empty'] = 'Vymazat';
-$labels['importmessages'] = 'Import zpráv';
+
$labels['quota'] = 'Využití schránky';
$labels['unknown'] = 'neznámý';
$labels['unlimited'] = 'neomezený';
+
$labels['quicksearch'] = 'Rychlé vyhledávání';
$labels['resetsearch'] = 'Zrušit vyhledávání';
$labels['searchmod'] = 'Parametry hledání';
$labels['msgtext'] = 'Celá zpráva';
$labels['body'] = 'Tělo';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Jméno';
+
$labels['openinextwin'] = 'Otevřít v novém okně';
$labels['emlsave'] = 'Stáhnout (.eml)';
$labels['changeformattext'] = 'Zobrazit v textovém formátu';
$labels['changeformathtml'] = 'Zobrazit v HTML formátu';
+
+// message compose
$labels['editasnew'] = 'Upravit jako novou';
$labels['send'] = 'Odeslat';
$labels['sendmessage'] = 'Odeslat zprávu nyní';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'DoruÄenka';
$labels['dsn'] = 'Stav doruÄení';
$labels['mailreplyintro'] = 'Dne $date, $sender napsal:';
$labels['originalmessage'] = 'Původní zpráva';
+
$labels['editidents'] = 'Editovat identity';
$labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Zkontrolovat pravopis';
$labels['resumeediting'] = 'PokraÄovat v úpravách';
$labels['revertto'] = 'Přejít na';
-$labels['responses'] = 'Odpovědi';
-$labels['insertresponse'] = 'Vložit odpověd';
-$labels['manageresponses'] = 'Spravovat odpovědí';
-$labels['savenewresponse'] = 'Uložit novou odpovÄ›Ä';
-$labels['editresponses'] = 'Upravit odpovědi';
-$labels['editresponse'] = 'Upravit odpovÄ›Ä';
-$labels['responsename'] = 'Název';
-$labels['responsetext'] = 'Text odpovědi';
+
$labels['attach'] = 'Přiložit';
$labels['attachments'] = 'Přílohy';
$labels['upload'] = 'Nahrát';
$labels['uploadprogress'] = '$percent ($current z $total)';
$labels['close'] = 'Zavřít';
$labels['messageoptions'] = 'Nastavení zprávy...';
+
$labels['low'] = 'Nízká';
$labels['lowest'] = 'Nejnižší';
$labels['normal'] = 'Normální';
$labels['high'] = 'Vysoká';
$labels['highest'] = 'Nejvyšší';
+
$labels['nosubject'] = '(bez predmetu)';
$labels['showimages'] = 'Zobrazit obrázky';
$labels['alwaysshow'] = 'Vždy ukazovat obrázky od $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Toto je šablona zprávy.';
$labels['andnmore'] = '$nr dalších...';
$labels['togglemoreheaders'] = 'Zobrazit více hlaviÄek zprávy';
$labels['togglefullheaders'] = 'PÅ™epnout skuteÄné hlaviÄky zprávy';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Prostý text';
$labels['savesentmessagein'] = 'Ukládat odeslané zprávy v';
$labels['dontsave'] = 'neukládat';
$labels['maxuploadsize'] = 'Maximální povolená velikost souboru je $size';
+
$labels['addcc'] = 'Přidat pole "Kopie';
$labels['addbcc'] = 'Přidat pole "Skrytá kopie';
$labels['addreplyto'] = 'PÅ™idat pole "OdpovÄ›Ä';
$labels['addfollowupto'] = 'Přidat pole "Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Odesílatel této zprávy si přeje být upozorněn na to, že jste zprávu obdrželi. Chcete přijetí zprávy potvrdit?';
$labels['receiptread'] = 'Potvrzení o přijetí zprávy';
$labels['yourmessage'] = 'Toto je potvrzení o přijetí Vaší zprávy';
$labels['receiptnote'] = 'Poznámka: Toto potvrzení negarantuje, že zpráva byla příjemce pÅ™eÄtena a že porozumÄ›l jejímu obsahu.';
+
+// address boook
$labels['name'] = 'Zobrazit jméno';
$labels['firstname'] = 'Jméno';
$labels['surname'] = 'Příjmení';
@@ -270,6 +301,7 @@ $labels['search'] = 'Hledat';
$labels['advsearch'] = 'PokroÄilé vyhledávání';
$labels['advanced'] = 'PokroÄilé';
$labels['other'] = 'Ostatní';
+
$labels['typehome'] = 'Domací';
$labels['typework'] = 'Pracovní';
$labels['typeother'] = 'Ostatní';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Domácí stránka';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Přidat položku';
$labels['addcontact'] = 'Přidat kontakt';
$labels['editcontact'] = 'Upravit kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Vlastnosti kontaktu';
$labels['personalinfo'] = 'Osobní informace';
+
$labels['edit'] = 'Upravit';
$labels['cancel'] = 'Konec';
$labels['save'] = 'Uložit';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Přejmenovat';
$labels['addphoto'] = 'Přidat';
$labels['replacephoto'] = 'Změnit';
$labels['uploadphoto'] = 'Nahrát fotku';
+
$labels['newcontact'] = 'Vytvořit nový kontakt';
$labels['deletecontact'] = 'Smazat vybrané kontakty';
$labels['composeto'] = 'Poslat e-mail';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Vytvořit novou skupinu kontaktů';
$labels['grouprename'] = 'Přejmenovat skupinu';
$labels['groupdelete'] = 'Smazat skupinu';
$labels['groupremoveselected'] = 'Odstranit oznaÄené kontakty ze skupiny';
+
$labels['previouspage'] = 'Předchozí';
$labels['firstpage'] = 'Zobrazit první zprávy';
$labels['nextpage'] = 'Další';
$labels['lastpage'] = 'Zobrazit poslední zprávy';
+
$labels['group'] = 'Skupina';
$labels['groups'] = 'Skupiny';
-$labels['listgroup'] = ' Seznam Älenů skupiny';
$labels['personaladrbook'] = 'Osobní kontakty';
+
$labels['searchsave'] = 'Uložit hledání';
$labels['searchdelete'] = 'Smazat hledání';
+
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Importovat kontakty';
$labels['importfromfile'] = 'Importovat ze souboru';
-$labels['importtarget'] = 'Přidat kontakty k';
+$labels['importtarget'] = 'Přidat nové kontakty do seznamu kontaktů:';
$labels['importreplace'] = 'Nahradit celý seznam kontaktů';
-$labels['importgroups'] = 'Importovat přiřazení do skupin';
-$labels['importgroupsall'] = 'Vše (vytvořit skupiny v případě potřeby)';
-$labels['importgroupsexisting'] = 'Pouze pro existující skupiny';
$labels['importdesc'] = 'Můžete nahrát kontakty z existujícího adresáře kontaktů.<br/>Momentálně podporujeme kontakty ve formátu <a href="http://cs.wikipedia.org/wiki/VCard">vCard</a> nebo CSV (comma-separated).';
$labels['done'] = 'Hotovo';
+
+// settings
$labels['settingsfor'] = 'Nastavení pro';
$labels['about'] = 'O programu';
$labels['preferences'] = 'Vlastnosti';
$labels['userpreferences'] = 'Vlastnosti uživatele';
$labels['editpreferences'] = 'Upravit vlastnosti uživatele';
+
$labels['identities'] = 'Profily';
$labels['manageidentities'] = 'Spravovat profily u tohoto úÄtu';
$labels['newidentity'] = 'Nový profil';
+
$labels['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upravit položku';
+
$labels['preferhtml'] = 'Upřednostňovat HTML zobrazení';
$labels['defaultcharset'] = 'Výchozí kódování';
$labels['htmlmessage'] = 'HTML zpráva';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Vytvářet HTML zprávy';
$labels['htmlonreply'] = 'jen při odpovědi na HTML zprávy';
$labels['htmlonreplyandforward'] = 'při přeposlání nebo odpovědi na HTML zprávu';
$labels['htmlsignature'] = 'HTML podpis';
-$labels['showemail'] = 'Zobrazit e-mailovou adresu se skuteÄným jménem';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Zobrazit panel náhledu';
$labels['skin'] = 'Vzhled';
$labels['logoutclear'] = 'Vyprázdnit koš při odhlášení';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorovat slova obsahující Äísla';
$labels['spellcheckignorecaps'] = 'Ignorovat slova psaná velkými písmeny';
$labels['addtodict'] = 'Přidat do slovníku';
$labels['mailtoprotohandler'] = 'Zaregistrovat handler pro odkazy „mailto:“';
-$labels['standardwindows'] = 'Zacházet s vyskakovacími okny jako se standardními okny';
$labels['forwardmode'] = 'Přeposlat zprávu';
$labels['inline'] = 'vloženě';
$labels['asattachment'] = 'jako přílohu';
+
$labels['folder'] = 'Složka';
$labels['folders'] = 'Složky';
$labels['foldername'] = 'Jméno složky';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Typ složky';
$labels['personalfolder'] = 'Soukromá složka';
$labels['otherfolder'] = 'Složky ostatních uživatelů';
$labels['sharedfolder'] = 'Sdílená složka';
+
$labels['sortby'] = 'Seřadit podle';
$labels['sortasc'] = 'Seřadit vzestupně';
$labels['sortdesc'] = 'Seřadit sestupně';
$labels['undo'] = 'Vrátit zpět';
+
$labels['installedplugins'] = 'Nainstalované pluginy';
$labels['plugin'] = 'Zásuvný modul';
$labels['version'] = 'Verze';
$labels['source'] = 'Zdroj';
$labels['license'] = 'Licence';
$labels['support'] = 'Podpora';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'AngliÄtina';
$labels['westerneuropean'] = 'Západní Evropa';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamština';
$labels['japanese'] = 'Japonština';
$labels['korean'] = 'Korejština';
$labels['chinese'] = 'Čínština';
+
?>
diff --git a/program/localization/cs_CZ/messages.inc b/program/localization/cs_CZ/messages.inc
index 2e3a75c52..9800b2412 100644
--- a/program/localization/cs_CZ/messages.inc
+++ b/program/localization/cs_CZ/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Došlo k chybě!';
$messages['loginfailed'] = 'Přihlášení selhalo';
$messages['cookiesdisabled'] = 'Váš prohlížeÄ nepodporuje cookies, které jsou pro pÅ™ihlášení nezbytné';
@@ -22,7 +24,7 @@ $messages['sessionerror'] = 'Vaše přihlášení je neplatné nebo vypršelo';
$messages['storageerror'] = 'Připojení na IMAP server selhalo';
$messages['servererror'] = 'Chyba serveru!';
$messages['servererrormsg'] = 'Chyba serveru: $msg';
-$messages['dberror'] = 'Chyba databáze!';
+$messages['dberror'] = 'Chyba v databázi!';
$messages['requesttimedout'] = 'Došlo k vypršení požadavku';
$messages['errorreadonly'] = 'Příkaz nelze provést, složka je urÄena jen ke Ätení.';
$messages['errornoperm'] = 'Příkaz nelze provést, nemáte oprávnění.';
@@ -31,7 +33,7 @@ $messages['erroroverquotadelete'] = 'Není volné místo na disku. Použijte SHI
$messages['invalidrequest'] = 'Nesprávný požadavek. Data nebyla uložena.';
$messages['invalidhost'] = 'Špatné jméno serveru.';
$messages['nomessagesfound'] = 'Ve schránce nebyla nalezena žádná zpráva';
-$messages['loggedout'] = 'Byli jste úspěšně odhlášeni. Na shledanou!';
+$messages['loggedout'] = 'Byli jste úspěšně odhlášeni. Nashledanou!';
$messages['mailboxempty'] = 'Schránka je prázdná';
$messages['refreshing'] = 'Obnovuji...';
$messages['loading'] = 'NaÄítám...';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Zpráva byla odeslána';
$messages['savingmessage'] = 'Ukládám zprávu...';
$messages['messagesaved'] = 'Zpráva uložena do Rozepsané';
$messages['successfullysaved'] = 'Uloženo';
-$messages['savingresponse'] = 'Ukládám text odpovědi...';
-$messages['deleteresponseconfirm'] = 'Opravdu chcete odstranit tento text odpovědi?';
$messages['addedsuccessfully'] = 'Kontakt byl úspěšně přidán do adresáře';
$messages['contactexists'] = 'Kontakt se zadanou e-mailovou adresou již existuje';
$messages['contactnameexists'] = 'Kontakt se stejným jménem již existuje';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Odstraňuji formátování ze zprávy...';
$messages['messageopenerror'] = 'Nemohu naÄíst zprávu ze serveru';
$messages['fileuploaderror'] = 'Nahrávání souboru selhalo';
$messages['filesizeerror'] = 'Soubor přesáhl maximální velikost $size';
-$messages['copysuccess'] = 'Úspěšně zkopírováno $nr kontaktů.';
-$messages['movesuccess'] = 'Úspěšně přesunuto $nr kontaktů.';
-$messages['copyerror'] = 'Kontakty nelze kopírovat.';
-$messages['moveerror'] = 'Kontakty nelze přesunout.';
+$messages['copysuccess'] = 'Úspěšně zkopírováno $nr adres';
+$messages['copyerror'] = 'Nemohu zkopírovat žádnou adresu';
$messages['sourceisreadonly'] = 'Tento zdroj adres je pouze pro Ätení';
$messages['errorsavingcontact'] = 'Nemohu uložit adresu kontaktu';
$messages['movingmessage'] = 'Přesouvám zprávu...';
$messages['copyingmessage'] = 'Kopíruji zprávu...';
$messages['copyingcontact'] = 'Kopíruji kontakty...';
-$messages['movingcontact'] = 'Přesouvání kontaktů()...';
$messages['deletingmessage'] = 'Odstraňuji zprávu...';
$messages['markingmessage'] = 'OznaÄuji zprávu...';
$messages['addingmember'] = 'Přidávám kontakty do skupiny...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importuji, prosím Äekejte...';
$messages['importformaterror'] = 'Import se nezdařil! Typ souboru není podporován.';
$messages['importconfirm'] = 'ÚspěšnÄ› naimportováno $inserted kontaktů, $skipped existujících záznamů pÅ™eskoÄeno: $names';
$messages['importconfirmskipped'] = '<b>PÅ™eskoÄeno $skipped existujících položek</b>';
-$messages['importmessagesuccess'] = 'Úspěšně naimportováno $nr zpráv';
-$messages['importmessageerror'] = 'Import se nezdařil! Nahraný soubor není platnou zprávou nebo souborem mailboxu';
$messages['opnotpermitted'] = 'Operace není povolena!';
$messages['nofromaddress'] = 'ChybÄ›jící e-mailová adresa v oznaÄeném profilu';
$messages['editorwarning'] = 'PÅ™epnutím do režimu prostého textu ztratíte veÅ¡keré formátování. Chcete pokraÄovat?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'Chyba SMTP: $msg';
$messages['emailformaterror'] = 'Neplatná e-mailová adresa: $email';
$messages['toomanyrecipients'] = 'PříliÅ¡ mnoho příjemců. Změňte poÄet příjemců na $max.';
$messages['maxgroupmembersreached'] = 'PoÄet Älenských skupin dosáhl maximum z $max';
-$messages['internalerror'] = 'Došlo k interní chybě. Zkuste to prosím znovu.';
+$messages['internalerror'] = 'Došlo k interní chybě. Zkuste to znovu';
$messages['contactdelerror'] = 'Kontakty nelze odstranit';
$messages['contactdeleted'] = 'Kontakty byly odstraněny';
$messages['contactrestoreerror'] = 'Nelze obnovit smazané kontakty';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Nelze vytvořit/přesunout složku do vybrané
$messages['messagetoobig'] = 'Část zprávy je příliš velká pro zpracování.';
$messages['attachmentvalidationerror'] = 'Varování: Tato příloha je podezÅ™elá, protože její typ se neshoduje s typem uvedeným ve zprávÄ›. Pokud nedůvěřujete odesílateli, nemÄ›li byste přílohu otevírat v prohlížeÄi, protože může obsahovat Å¡kodlivý obsah.<br/><br/><em>OÄekáváno: $expected; nalezeno: $detected</em>';
$messages['noscriptwarning'] = 'UpozornÄ›ní: Tato emailová aplikace vyžaduje Javascript! Prosím, zapnÄ›te Javascript v nastavení prohlížeÄe.';
+
?>
diff --git a/program/localization/cy_GB/labels.inc b/program/localization/cy_GB/labels.inc
index 37ee5bbc1..3e4f136bc 100644
--- a/program/localization/cy_GB/labels.inc
+++ b/program/localization/cy_GB/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Croeso i $product';
$labels['username'] = 'Enw defnyddiwr';
$labels['password'] = 'Cyfrinair';
$labels['server'] = 'Gweinydd';
$labels['login'] = 'Mewngofnodi';
+
+// taskbar
$labels['logout'] = 'Allgofnodi';
$labels['mail'] = 'E-bost';
$labels['settings'] = 'Gosodiadau Personol';
$labels['addressbook'] = 'Llyfr Cyfeiriadau';
+
+// mailbox names
$labels['inbox'] = 'Mewnflwch';
$labels['drafts'] = 'Drafftiau';
$labels['sent'] = 'Danfonwyd';
$labels['trash'] = 'Sbwriel';
$labels['junk'] = 'Sothach';
-$labels['show_real_foldernames'] = 'Dangos enwau go-iawn ar gyfer ffolderi arbennig';
+
+// message listing
$labels['subject'] = 'Pwnc';
$labels['from'] = 'Anfonwr';
$labels['sender'] = 'Anfonwr';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Blaenoriaeth';
$labels['organization'] = 'Enw\'r Sefydliad';
$labels['readstatus'] = 'Statws darllen';
$labels['listoptions'] = 'Dewisiadau rhestr...';
+
$labels['mailboxlist'] = 'Ffolderi';
$labels['messagesfromto'] = 'Negeseuon $from i $to o $count';
$labels['threadsfromto'] = 'Edefau $from i $to o $count';
$labels['messagenrof'] = 'Neges $nr o $count';
$labels['fromtoshort'] = '$from - $to o $count';
+
$labels['copy'] = 'Copio';
$labels['move'] = 'Symud';
$labels['moveto'] = 'Symud i...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Llwytho lawr';
$labels['open'] = 'Agor';
$labels['showattachment'] = 'Dangos';
$labels['showanyway'] = 'Dangos beth bynnag';
+
$labels['filename'] = 'Enw ffeil';
$labels['filesize'] = 'Maint ffeil';
+
$labels['addtoaddressbook'] = 'Ychwanegu i\'r llyfr cyfeiriadau';
+
+// weekdays short
$labels['sun'] = 'Sul';
$labels['mon'] = 'Llun';
$labels['tue'] = 'Maw';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Iau';
$labels['fri'] = 'Gwe';
$labels['sat'] = 'Sad';
+
+// weekdays long
$labels['sunday'] = 'Dydd Sul';
$labels['monday'] = 'Dydd Llun';
$labels['tuesday'] = 'Dydd Mawrth';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Dydd Mercher';
$labels['thursday'] = 'Dydd Iau';
$labels['friday'] = 'Dydd Gwener';
$labels['saturday'] = 'Dydd Sadwrn';
+
+// months short
$labels['jan'] = 'Ion';
$labels['feb'] = 'Chwe';
$labels['mar'] = 'Maw';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Med';
$labels['oct'] = 'Hyd';
$labels['nov'] = 'Tach';
$labels['dec'] = 'Rhag';
+
+// months long
$labels['longjan'] = 'Ionawr';
$labels['longfeb'] = 'Chwefror';
$labels['longmar'] = 'Mawrth';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Medi';
$labels['longoct'] = 'Hydref';
$labels['longnov'] = 'Tachwedd';
$labels['longdec'] = 'Rhagfyr';
+
$labels['today'] = 'Heddiw';
+
+// toolbar buttons
$labels['refresh'] = 'Ail-ofyn';
$labels['checkmail'] = 'Edrych am negeseuon newydd';
$labels['compose'] = 'Ysgrifennu neges';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mwy o weithredoedd...';
$labels['more'] = 'Mwy';
$labels['back'] = 'Yn ôl';
$labels['options'] = 'Dewisiadau';
+
$labels['select'] = 'Dewis';
$labels['all'] = 'Popeth';
$labels['none'] = 'Dim';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Ehangu Popeth';
$labels['expand-unread'] = 'Ehangu Negeseuon Heb eu darllen';
$labels['collapse-all'] = 'Crebachu Popeth';
$labels['threaded'] = 'Edafedd';
+
$labels['autoexpand_threads'] = 'Ehangu edefau neges';
$labels['do_expand'] = 'pob edefyn';
$labels['expand_only_unread'] = 'dim ond gyda negeseuon heb eu darllen';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Rhestr colofnau';
$labels['listsorting'] = 'Colofn trefnu';
$labels['listorder'] = 'Trefn didoli';
$labels['listmode'] = 'Golwg rhestr';
+
$labels['folderactions'] = 'Gweithredoedd ffolder...';
$labels['compact'] = 'Crynhoi';
$labels['empty'] = 'Gwagio';
-$labels['importmessages'] = 'Mewnforio negeseuon';
+
$labels['quota'] = 'Defnydd';
$labels['unknown'] = 'anhysbys';
$labels['unlimited'] = 'diderfyn';
+
$labels['quicksearch'] = 'Chwiliad cyflym';
$labels['resetsearch'] = 'Ail-osod chwiliad';
$labels['searchmod'] = 'Addasyddion chwilio';
$labels['msgtext'] = 'Y neges yn llawn';
$labels['body'] = 'Corff';
-$labels['type'] = 'Math';
-$labels['namex'] = 'Enw';
+
$labels['openinextwin'] = 'Agor mewn ffenest newydd';
$labels['emlsave'] = 'Llwytho lawr (.eml)';
$labels['changeformattext'] = 'Dangos mewn fformat testun plaen';
$labels['changeformathtml'] = 'Dangos mewn fformat HTML';
+
+// message compose
$labels['editasnew'] = 'Golygu fel neges newydd';
$labels['send'] = 'Anfon';
$labels['sendmessage'] = 'Danfon nawr';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Cadarnhau derbyn';
$labels['dsn'] = 'Hysbysiad statws danfon';
$labels['mailreplyintro'] = 'Ar $date, ysgrifennodd $sender:';
$labels['originalmessage'] = 'Neges Wreiddiol';
+
$labels['editidents'] = 'Golygu personoliaethau';
$labels['spellcheck'] = 'Sillafu';
$labels['checkspelling'] = 'Gwirio sillafu';
$labels['resumeediting'] = 'Ail-ddechrau golygu';
$labels['revertto'] = 'Dychwelyd i';
+
$labels['attach'] = 'Atodi';
$labels['attachments'] = 'Atodiadau';
$labels['upload'] = 'Llwytho fyny';
$labels['uploadprogress'] = '$percent ($current o $total)';
$labels['close'] = 'Cau';
$labels['messageoptions'] = 'Dewisiadau neges...';
+
$labels['low'] = 'Isel';
$labels['lowest'] = 'Isaf';
$labels['normal'] = 'Cyffredin';
$labels['high'] = 'Uchel';
$labels['highest'] = 'Uchaf';
+
$labels['nosubject'] = '(dim pwnc)';
$labels['showimages'] = 'Dangos lluniau';
$labels['alwaysshow'] = 'Dangos lluniau bob amser o $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Mae hwn yn neges ddrafft';
$labels['andnmore'] = '$nr mwy...';
$labels['togglemoreheaders'] = 'Dangos fwy o benynnau\'r neges';
$labels['togglefullheaders'] = 'Toglo penawdau llawn y neges';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testun plaen';
$labels['savesentmessagein'] = 'Cadw negeseuon a ddanfonir yn';
$labels['dontsave'] = 'peidio cadw';
$labels['maxuploadsize'] = 'Y maint ffeil uchaf a ganiateir yw $size';
+
$labels['addcc'] = 'Ychwanegu Cc';
$labels['addbcc'] = 'Ychwanegu Bcc';
$labels['addreplyto'] = 'Ychwanegu Ateb-I';
$labels['addfollowupto'] = 'Ychwanegu Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Mae anfonwr y neges hwn wedi gofyn am hysbysiad eich bod wedi darllen y neges. Hoffech chi hysbysu\'r anfonwr?';
$labels['receiptread'] = 'Cadarnhad Derbyn (darllenwyd)';
$labels['yourmessage'] = 'Mae hwn yn gadarnhad o dderbyn eich neges';
$labels['receiptnote'] = 'Nodyn: Mae\'r cadarnhad hwn yn cydnabod fod y neges wedi ei ddangos ar gyfrifiadur y derbynnydd. \'Does dim sicrwydd fod y derbynydd wedi darllen neu ddeall cynnwys y neges.';
+
+// address boook
$labels['name'] = 'Enw ddangosir';
$labels['firstname'] = 'Enw cyntaf';
$labels['surname'] = 'Enw olaf';
@@ -262,6 +301,7 @@ $labels['search'] = 'Chwilio';
$labels['advsearch'] = 'Chwilio Uwch';
$labels['advanced'] = 'Uwch';
$labels['other'] = 'Arall';
+
$labels['typehome'] = 'Cartref';
$labels['typework'] = 'Gwaith';
$labels['typeother'] = 'Arall';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Cynorthwyydd';
$labels['typehomepage'] = 'Gwefan';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Proffil';
+
$labels['addfield'] = 'Ychwanegu maes...';
$labels['addcontact'] = 'Ychwanegu cyswllt newydd';
$labels['editcontact'] = 'Golygu cyswllt';
$labels['contacts'] = 'Cysylltiadau';
$labels['contactproperties'] = 'Nodweddion cyswllt';
$labels['personalinfo'] = 'Gwybodaeth bersonol';
+
$labels['edit'] = 'Golygu';
$labels['cancel'] = 'Canslo';
$labels['save'] = 'Cadw';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Ail-enwi';
$labels['addphoto'] = 'Ychwanegu';
$labels['replacephoto'] = 'Amnewid';
$labels['uploadphoto'] = 'Llwytho fyny llun';
+
$labels['newcontact'] = 'Creu cerdyn cyswllt newydd';
$labels['deletecontact'] = 'Dileu y cysylltiadau a ddewiswyd';
$labels['composeto'] = 'Ysgrifennu neges at';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Creu grŵp cysylltiadau newydd';
$labels['grouprename'] = 'Ail-enwi grŵp';
$labels['groupdelete'] = 'Dileu grŵp';
$labels['groupremoveselected'] = 'Dileu y cysylltiadau dewiswyd o\'r grŵp';
+
$labels['previouspage'] = 'Dangos y set flaenorol';
$labels['firstpage'] = 'Dangos y set gyntaf';
$labels['nextpage'] = 'Dangos y set nesaf';
$labels['lastpage'] = 'Dangos y set olaf';
+
$labels['group'] = 'Grŵp';
$labels['groups'] = 'Grwpiau';
-$labels['listgroup'] = 'Rhestru aelodau\'r grŵp';
$labels['personaladrbook'] = 'Cyfeiriadau Personol';
+
$labels['searchsave'] = 'Cadw chwiliad';
$labels['searchdelete'] = 'Dileu chwiliad';
+
$labels['import'] = 'Mewnforio';
$labels['importcontacts'] = 'Mewnforio cysylltiadau';
$labels['importfromfile'] = 'Mewnforio o ffeil:';
-$labels['importtarget'] = 'Ychwanegu cysylltiadau i';
+$labels['importtarget'] = 'Ychwanegu cysylltiadau newydd i\'r llyfr cyfeiriad:';
$labels['importreplace'] = 'Dileu y llyfr cyfeiriadau cyfan wrth lwytho';
-$labels['importgroups'] = 'Mewnforio penodiadau grŵp';
-$labels['importgroupsall'] = 'Holl (creu grwpiau os oes angen)';
-$labels['importgroupsexisting'] = 'Dim ond ar gyfer grwpiau sy\'n bodoli';
$labels['importdesc'] = 'Fe allwch chi lwytho fyny cysylltiadau o lyfr cyfeiriadau presennol.<br/>Ar hyn o bryd, rydym yn cefnogi mewnforio cyfeiriadau o\'r fformatau <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> neu CSV.';
$labels['done'] = 'Wedi gorffen';
+
+// settings
$labels['settingsfor'] = 'Gosodiadau ar gyfer';
$labels['about'] = 'Amdan';
$labels['preferences'] = 'Dewisiadau';
$labels['userpreferences'] = 'Dewisiadau\'r defnyddiwr';
$labels['editpreferences'] = 'Golygu dewisiadau\'r defnyddiwr';
+
$labels['identities'] = 'Personoliaethau';
$labels['manageidentities'] = 'Rheoli personoliaethau ar gyfer y cyfri hwn';
$labels['newidentity'] = 'Personoliaeth newydd';
+
$labels['newitem'] = 'Eitem newydd';
$labels['edititem'] = 'Golygu eitem';
+
$labels['preferhtml'] = 'Dangos HTML';
$labels['defaultcharset'] = 'Set Nodau Diofyn';
$labels['htmlmessage'] = 'Neges HTML';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'Ysgrifennu negeseuon HTML';
$labels['htmlonreply'] = 'wrth ateb i neges HTML yn unig';
$labels['htmlonreplyandforward'] = 'wrth ddanfon ymlaen neu ymateb i neges HTML';
$labels['htmlsignature'] = 'Llofnod HTML';
-$labels['showemail'] = 'Dangos cyfeiriad ebost gyda\'r enw gweledig';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Dangos ffenest rhagolwg';
$labels['skin'] = 'Croen rhyngwyneb';
$labels['logoutclear'] = 'Clirio\'r Sbwriel wrth allgofnodi';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Anwybyddu geiriau gyda rhifau';
$labels['spellcheckignorecaps'] = 'Anwybyddu geiriau sy\'n briflythrennau yn gyfangwbl';
$labels['addtodict'] = 'Ychwanegu i\'r geiriadur';
$labels['mailtoprotohandler'] = 'Cofrestru trafodwr protocol ar gyfer dolenni mailto:';
-$labels['standardwindows'] = 'Trin ffenestri naid fel ffenestri arferol';
$labels['forwardmode'] = 'Danfon neges ymlaen';
$labels['inline'] = 'mewnlin';
$labels['asattachment'] = 'fel atodiad';
+
$labels['folder'] = 'Ffolder';
$labels['folders'] = 'Ffolderi';
$labels['foldername'] = 'Enw ffolder';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Math Ffolder';
$labels['personalfolder'] = 'Ffolder Preifat';
$labels['otherfolder'] = 'Ffolder Defnyddiwr Arall';
$labels['sharedfolder'] = 'Ffolder Cyhoeddus';
+
$labels['sortby'] = 'Trefnu yn ôl';
$labels['sortasc'] = 'Trefn esgynnol';
$labels['sortdesc'] = 'Trefn ddisgynnol';
$labels['undo'] = 'Dad-wneud';
+
$labels['installedplugins'] = 'Ategynnau wedi eu gosod';
$labels['plugin'] = 'Ategyn';
$labels['version'] = 'Fersiwn';
$labels['source'] = 'Ffynhonnell';
$labels['license'] = 'Trwydded';
$labels['support'] = 'Gofyn am gymorth';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Saesneg';
$labels['westerneuropean'] = 'Gorllewin Ewropeaidd';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Fietnamaidd';
$labels['japanese'] = 'Japaneaidd';
$labels['korean'] = 'Corëeg';
$labels['chinese'] = 'Tsieineaidd';
+
?>
diff --git a/program/localization/cy_GB/messages.inc b/program/localization/cy_GB/messages.inc
index be6c4dac6..edadc3b45 100644
--- a/program/localization/cy_GB/messages.inc
+++ b/program/localization/cy_GB/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Fe gafwyd gwall!';
$messages['loginfailed'] = 'Methwyd a\'ch mewngofnodi';
$messages['cookiesdisabled'] = 'Nid yw eich porwr yn derbyn cwcis';
@@ -54,7 +56,7 @@ $messages['contactnotfound'] = 'Ni gafwyd hyd i\'r cysylltiad gofynnwyd amdano';
$messages['contactsearchonly'] = 'Rhowch dermau chwilio i ganfod cysylltiadau';
$messages['sendingfailed'] = 'Methwyd danfon y neges';
$messages['senttooquickly'] = 'Arhoswch $sec eiliad cyn danfon y neges';
-$messages['errorsavingsent'] = 'Fe gafwyd gwall wrth gadw\'r neges ddanfonwyd.';
+$messages['errorsavingsent'] = 'Fe gafwyd gwall wrth cadw\'r neges ddanfonwyd';
$messages['errorsaving'] = 'Fe gafwyd gwall wrth gadw';
$messages['errormoving'] = 'Methwyd symud y neges';
$messages['errorcopying'] = 'Methwyd copïo\'r neges(euon)';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Yn cael gwared a\'r fformatio...';
$messages['messageopenerror'] = 'Methwyd llwytho\'r neges o\'r gweinydd';
$messages['fileuploaderror'] = 'Methwyd llwytho\'r ffeil i fyny';
$messages['filesizeerror'] = 'Mae\'r ffeil a lwythyd fyny yn fwy na\'r maint uchaf ganiateir o $size';
-$messages['copysuccess'] = 'Copïwyd $nr cyswllt yn llwyddiannus';
-$messages['movesuccess'] = 'Symudwyd $nr cyswllt yn llwyddiannus.';
-$messages['copyerror'] = 'Methwyd copïo unrhyw gysylltiadau.';
-$messages['moveerror'] = 'Methwyd symud unrhyw gysylltiadau.';
+$messages['copysuccess'] = 'Copïwyd $nr cyfeiriad yn llwyddiannus';
+$messages['copyerror'] = 'Methwyd copïo unrhyw gyfeiriad';
$messages['sourceisreadonly'] = 'Mae ffynhonnell y cyfeiriadau i\'w ddarllen yn unig';
$messages['errorsavingcontact'] = 'Methwyd cadw cyfeiriad y cyswllt';
$messages['movingmessage'] = 'Yn symud neges...';
$messages['copyingmessage'] = 'Yn copïo\'r neges';
$messages['copyingcontact'] = 'Yn copïo cyswllt/cysylltiadau...';
-$messages['movingcontact'] = 'Yn symud cyswllt/cysylltiadau...';
$messages['deletingmessage'] = 'Yn dileu neges(euon)...';
$messages['markingmessage'] = 'Yn marcio neges(euon)...';
$messages['addingmember'] = 'Yn ychwanegu cyswllt/cysylltiadau i\'r grŵp...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Yn mewnforio, arhoswch os gwelwch yn dda...';
$messages['importformaterror'] = 'Methwyd mewnforio! Nid yw\'r ffeil a lwythwyd yn ffeil ddata dilys.';
$messages['importconfirm'] = '<b>Fe mewnforiwyd $inserted cyswllt yn llwyddiannus, anwybyddwyd $skipped cofnod presennol</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Neidiwyd $skipped cofnod oedd yn bodoli</b>';
-$messages['importmessagesuccess'] = 'Mewnforiwyd $nr neges yn llwyddiannus';
-$messages['importmessageerror'] = 'Methwyd mewnforio! Nid yw\'r ffeil a lwythwyd yn ffeil neges neu blwch ebost dilys';
$messages['opnotpermitted'] = 'Ni chaniateir y weithred!';
$messages['nofromaddress'] = 'Cyfeiriad e-bost ar goll yn y personoliaeth a ddewiswyd';
$messages['editorwarning'] = 'Mi fydd newid i\'r golygydd testun plaen yn golygu byddwch chi\'n colli unrhyw arddulliau yn eich testun. Hoffech chi barhau?';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Methwyd creu/symud ffolder i\'r ffolder rhiant
$messages['messagetoobig'] = 'Mae darn y neges yn rhy fawr i\'w brosesu.';
$messages['attachmentvalidationerror'] = 'RHYBUDD! Mae\'r atodiad yn amheus oherwydd nid yw ei fath yn gymharu\'r gyda\'r math ddatganwyd yn y neges. Os nad ydych yn ymddiried yn y danfonwr, ni ddylech agor hwn yn y porwr oherwydd fe all gynnwys ffeil maleisus.<br></br><em>Disgwylwyd:$expected;canfuwyd:$detected</em>';
$messages['noscriptwarning'] = 'Rhybudd: Mae\'r gwasanaeth gwebost angen Javascript i weithio! Er mwyn ei ddefnyddio, galluogwch Javascript yng ngosodiadau eich porwr.';
+
?>
diff --git a/program/localization/da_DK/labels.inc b/program/localization/da_DK/labels.inc
index 53d32090c..02d7dd9e3 100644
--- a/program/localization/da_DK/labels.inc
+++ b/program/localization/da_DK/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkommen til $product';
$labels['username'] = 'Brugernavn';
$labels['password'] = 'Adgangskode';
$labels['server'] = 'Server';
$labels['login'] = 'Log på';
+
+// taskbar
$labels['logout'] = 'Log af';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Indstillinger';
$labels['addressbook'] = 'Adressebog';
+
+// mailbox names
$labels['inbox'] = 'Indbakke';
$labels['drafts'] = 'Kladder';
$labels['sent'] = 'Sendt post';
$labels['trash'] = 'Papirkurv';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Vis rigtige navne for specielle mapper';
+
+// message listing
$labels['subject'] = 'Emne';
$labels['from'] = 'Afsender';
$labels['sender'] = 'Afsender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Firma';
$labels['readstatus'] = 'Læst status';
$labels['listoptions'] = 'Listeindstillinger';
+
$labels['mailboxlist'] = 'Mapper';
$labels['messagesfromto'] = 'Besked $from til $to af $count';
$labels['threadsfromto'] = 'Tråd $from til $to af $count';
$labels['messagenrof'] = 'Besked $nr af $count';
$labels['fromtoshort'] = '$from – $to af $count';
+
$labels['copy'] = 'Kopiér';
$labels['move'] = 'Flyt';
$labels['moveto'] = 'Flyt til...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Ã…ben';
$labels['showattachment'] = 'Vis';
$labels['showanyway'] = 'Vis alligevel';
+
$labels['filename'] = 'Filnavn';
$labels['filesize'] = 'Filstørrelse';
+
$labels['addtoaddressbook'] = 'Tilføj til adressebog';
+
+// weekdays short
$labels['sun'] = 'Søn';
$labels['mon'] = 'Man';
$labels['tue'] = 'Tir';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Ons';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lør';
+
+// weekdays long
$labels['sunday'] = 'Søndag';
$labels['monday'] = 'Mandag';
$labels['tuesday'] = 'Tirsdag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Onsdag';
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Lørdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Marts';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'I dag';
+
+// toolbar buttons
$labels['refresh'] = 'Opdatér';
$labels['checkmail'] = 'Se efter nye beskeder';
$labels['compose'] = 'Ny besked';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Flere funktioner...';
$labels['more'] = 'Mere';
$labels['back'] = 'Tilbage';
$labels['options'] = 'Indstillinger';
+
$labels['select'] = 'Vælg';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Udfold alle';
$labels['expand-unread'] = 'Udfold ulæste';
$labels['collapse-all'] = 'Fold alle';
$labels['threaded'] = 'Trådet';
+
$labels['autoexpand_threads'] = 'Udfold besked tråde';
$labels['do_expand'] = 'alle tråde';
$labels['expand_only_unread'] = 'kun dem med ulæste beskeder';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Vist kolonne';
$labels['listsorting'] = 'Sorteringskolonne';
$labels['listorder'] = 'Sorter efter';
$labels['listmode'] = 'Listevisningsmode';
+
$labels['folderactions'] = 'Mappehandlinger...';
$labels['compact'] = 'Ryd op';
$labels['empty'] = 'Tøm';
-$labels['importmessages'] = 'Importer beskeder';
+
$labels['quota'] = 'Diskforbrug';
$labels['unknown'] = 'ukendt';
$labels['unlimited'] = 'ubegrænset';
+
$labels['quicksearch'] = 'Hurtigsøg';
$labels['resetsearch'] = 'Nulstil søgning';
$labels['searchmod'] = 'Søgeparametre';
$labels['msgtext'] = 'Hele beskeden';
$labels['body'] = 'Body';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Navn';
+
$labels['openinextwin'] = 'Ã…bn i nyt vindue';
$labels['emlsave'] = 'Download (.eml)';
$labels['changeformattext'] = 'Vis i ren tekst format';
$labels['changeformathtml'] = 'Vis i HTML format';
+
+// message compose
$labels['editasnew'] = 'Redigér som ny';
$labels['send'] = 'Send';
$labels['sendmessage'] = 'Send besked';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Anmod om kvittering ved læst';
$labels['dsn'] = 'Anmod om leveringsstatus';
$labels['mailreplyintro'] = '$sender skrev den $date:';
$labels['originalmessage'] = 'Original besked';
+
$labels['editidents'] = 'Ret identiteter';
$labels['spellcheck'] = 'Stav';
$labels['checkspelling'] = 'Stavekontrol';
$labels['resumeediting'] = 'Genoptag redigering';
$labels['revertto'] = 'Vend tilbage til';
-$labels['responses'] = 'Svar';
-$labels['insertresponse'] = 'Indsæt et svar';
-$labels['manageresponses'] = 'Administrer svar';
-$labels['savenewresponse'] = 'Gem et nyt svar';
-$labels['editresponses'] = 'Rediger svar';
-$labels['editresponse'] = 'Rediger svar';
-$labels['responsename'] = 'Navn';
-$labels['responsetext'] = 'Svartekst';
+
$labels['attach'] = 'Vedhæft';
$labels['attachments'] = 'Vedhæftninger';
$labels['upload'] = 'Overfør';
$labels['uploadprogress'] = '$percent ($current af $total)';
$labels['close'] = 'Luk';
$labels['messageoptions'] = 'Beskedmuligheder...';
+
$labels['low'] = 'Lav';
$labels['lowest'] = 'Lavest';
$labels['normal'] = 'Normal';
$labels['high'] = 'Høj';
$labels['highest'] = 'Højest';
+
$labels['nosubject'] = '(intet emne)';
$labels['showimages'] = 'Vis billeder';
$labels['alwaysshow'] = 'Vis altid billeder fra $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Dette er en kladde.';
$labels['andnmore'] = '$nr yderligere...';
$labels['togglemoreheaders'] = 'Vis yderligere headers';
$labels['togglefullheaders'] = 'Ændre rå brevhoveder';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Almindelig tekst';
$labels['savesentmessagein'] = 'Gem afsendt besked i';
$labels['dontsave'] = 'gem ikke';
$labels['maxuploadsize'] = 'Maksimale tilladte filstørrelse er $size';
+
$labels['addcc'] = 'Tilføj Cc';
$labels['addbcc'] = 'Tilføj Bcc';
$labels['addreplyto'] = 'Tilføj Svar-Til adresse';
$labels['addfollowupto'] = 'Tilføj følg-op adresse';
+
+// mdn
$labels['mdnrequest'] = 'Afsenderen af denne besked har bedt om at modtage en bekræftelse når du læser beskeden. Vil du sende kvittering for læsning?';
$labels['receiptread'] = 'Send kvittering for læsning';
$labels['yourmessage'] = 'Dette er en kvittering for at din besked er blevet vist';
$labels['receiptnote'] = 'Bemærk: Denne kvittering bekræfter udelukkende at beskeden blev vist på modtagerens computer. Der er ingen garanti for at modtageren har læst eller forstået beskedens indhold.';
+
+// address boook
$labels['name'] = 'Vist navn';
$labels['firstname'] = 'Fornavn';
$labels['surname'] = 'Efternavn';
@@ -270,6 +301,7 @@ $labels['search'] = 'Søg';
$labels['advsearch'] = 'Avanceret søg';
$labels['advanced'] = 'Avanceret';
$labels['other'] = 'Andet';
+
$labels['typehome'] = 'Hjem';
$labels['typework'] = 'Arbejde';
$labels['typeother'] = 'Andet';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Hjemmeside';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Tilføj felt...';
$labels['addcontact'] = 'Tilføj ny kontakt';
$labels['editcontact'] = 'Redigér kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Kontaktegenskaber';
$labels['personalinfo'] = 'Personlig information';
+
$labels['edit'] = 'Redigér';
$labels['cancel'] = 'Annullér';
$labels['save'] = 'Gem';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Omdøb';
$labels['addphoto'] = 'Tilføj';
$labels['replacephoto'] = 'Erstat';
$labels['uploadphoto'] = 'Overfør billede';
+
$labels['newcontact'] = 'Opret nyt kontaktkort';
$labels['deletecontact'] = 'Slet valgte kontakter';
$labels['composeto'] = 'Skriv besked til';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Opret ny kontaktgruppe';
$labels['grouprename'] = 'Omdøb gruppe';
$labels['groupdelete'] = 'Slet gruppe';
$labels['groupremoveselected'] = 'Fjern markerede kontakter fra gruppen';
+
$labels['previouspage'] = 'Vis den forrige side';
$labels['firstpage'] = 'Vis første side';
$labels['nextpage'] = 'Vis næste side';
$labels['lastpage'] = 'Vis sidste side';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Grupper';
-$labels['listgroup'] = 'Vis gruppemedlemmer';
$labels['personaladrbook'] = 'Personlige adresser';
+
$labels['searchsave'] = 'Gem søgning';
$labels['searchdelete'] = 'Slet søgning';
+
$labels['import'] = 'Importér';
$labels['importcontacts'] = 'Importér kontakter';
$labels['importfromfile'] = 'Importér fra fil:';
-$labels['importtarget'] = 'Tilføj kontakter til';
+$labels['importtarget'] = 'Tilføj nye kontakter til adressebogen:';
$labels['importreplace'] = 'Overskriv hele adressebogen';
-$labels['importgroups'] = 'Importer gruppetildelinger';
-$labels['importgroupsall'] = 'Alle (opret grupper hvis nødvendigt)';
-$labels['importgroupsexisting'] = 'Kun for eksisterende grupper';
$labels['importdesc'] = 'Du kan uploade kontakter fra en eksisterende adressebog. <br/>I øjeblikket supportere vi import af adresser fra <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> og CSV (komma-separeret) data format.';
$labels['done'] = 'Færdig';
+
+// settings
$labels['settingsfor'] = 'Indstillinger for';
$labels['about'] = 'Om';
$labels['preferences'] = 'Indstillinger';
$labels['userpreferences'] = 'Brugerindstillinger';
$labels['editpreferences'] = 'Redigér brugerindstillinger';
+
$labels['identities'] = 'Identiteter';
$labels['manageidentities'] = 'Styr identiteterne for denne konto';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Nyt punkt';
$labels['edititem'] = 'Redigér punkt';
+
$labels['preferhtml'] = 'Vis HTML';
$labels['defaultcharset'] = 'Standard tegnkodning';
$labels['htmlmessage'] = 'HTML-besked';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Skriv HTML-besked';
$labels['htmlonreply'] = 'kun når jeg besvarer HTML-beskeder';
$labels['htmlonreplyandforward'] = 'ved videresendelse eller besvarelse af HTML beskeder';
$labels['htmlsignature'] = 'HTML-signatur';
-$labels['showemail'] = 'Vis email-adresse med vist navn';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Forhåndsvisning';
$labels['skin'] = 'Brugerflade';
$labels['logoutclear'] = 'Tøm Papirkurv når jeg logger af';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorer ord med tal';
$labels['spellcheckignorecaps'] = 'Ignorer ord hvor alle bogstaver er versaler';
$labels['addtodict'] = 'Tilføj til ordbog';
$labels['mailtoprotohandler'] = 'Registrer håndtering af \'mailto:\' links';
-$labels['standardwindows'] = 'Behandl popups som standardvinduer';
$labels['forwardmode'] = 'Videresendelse af besked';
$labels['inline'] = 'inline';
$labels['asattachment'] = 'som vedhæftning';
+
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenavn';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Mappetype';
$labels['personalfolder'] = 'Privat mappe';
$labels['otherfolder'] = 'Anden brugers mappe';
$labels['sharedfolder'] = 'Offentlig mappe';
+
$labels['sortby'] = 'Sortér efter';
$labels['sortasc'] = 'Ældste først';
$labels['sortdesc'] = 'Nyeste først';
$labels['undo'] = 'Fortryd';
+
$labels['installedplugins'] = 'Installerede udvidelser';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Kilde';
$labels['license'] = 'Licens';
$labels['support'] = 'FÃ¥ support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'kB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Vesteuropæisk';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/da_DK/messages.inc b/program/localization/da_DK/messages.inc
index 1e4635b8d..9a0b8e4a5 100644
--- a/program/localization/da_DK/messages.inc
+++ b/program/localization/da_DK/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Der opstod en fejl!';
$messages['loginfailed'] = 'Det lykkedes ikke at logge på.';
$messages['cookiesdisabled'] = 'Din browser accepterer ikke cookies.';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Beskeden blev afsendt succesfuldt.';
$messages['savingmessage'] = 'Gemmer besked...';
$messages['messagesaved'] = 'Beskeden er gemt i kladdemappen.';
$messages['successfullysaved'] = 'Gemt succesfuldt';
-$messages['savingresponse'] = 'Gemmer svartekst...';
-$messages['deleteresponseconfirm'] = 'Er du sikker på, at du ønsker at slette svarteksten?';
$messages['addedsuccessfully'] = 'Kontakten blev tilføjet adressebogen.';
$messages['contactexists'] = 'Der er allerede en kontakt med denne e-mailadresse.';
$messages['contactnameexists'] = 'En kontakt med samme navn eksisterer allerede.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Den søgte kontakt blev ikke fundet.';
$messages['contactsearchonly'] = 'Indtast søgeord for at finde kontakter.';
$messages['sendingfailed'] = 'Beskeden kunne ikke sendes.';
$messages['senttooquickly'] = 'Vent venligst $sec sekunder før du sender denne besked.';
-$messages['errorsavingsent'] = 'Der opstod en fejl ved at gemme den sendte besked.';
-$messages['errorsaving'] = 'Der opstod en fejl ved at gemme.';
+$messages['errorsavingsent'] = 'Der opstod en fejl da den sendte besked blev gemt.';
+$messages['errorsaving'] = 'Der opstod en fejl under gemning.';
$messages['errormoving'] = 'Beskeden kunne ikke flyttes.';
$messages['errorcopying'] = 'Beskeden kunne ikke kopieres.';
$messages['errordeleting'] = 'Beskeden kunne ikke slettes.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Fjerner formatering fra besked...';
$messages['messageopenerror'] = 'Beskeden kunne ikke hentes fra serveren.';
$messages['fileuploaderror'] = 'Upload mislykkedes.';
$messages['filesizeerror'] = 'Den indsatte fil fylder mere end det maksimale på $size.';
-$messages['copysuccess'] = '$nr blev kopieret.';
-$messages['movesuccess'] = '$nr kontakter blev flyttet.';
-$messages['copyerror'] = 'Kunne ikke kopiere nogen kontakter.';
-$messages['moveerror'] = 'Kunne ikke flytte nogen kontakter.';
+$messages['copysuccess'] = 'Det lykkedes at kopiere $nr adresser.';
+$messages['copyerror'] = 'Kunne ikke kopiere adresserne.';
$messages['sourceisreadonly'] = 'Denne adressekilde er kun til læsning.';
$messages['errorsavingcontact'] = 'Kunne ikke gemme kontaktadressen.';
$messages['movingmessage'] = 'Flytter besked(er)...';
$messages['copyingmessage'] = 'Kopierer besked(er)...';
$messages['copyingcontact'] = 'Kopierer kontakt(er)...';
-$messages['movingcontact'] = 'Flytter kontakt(er)...';
$messages['deletingmessage'] = 'Sletter besked(er)...';
$messages['markingmessage'] = 'Markerer besked(er)...';
$messages['addingmember'] = 'Tilføjer kontakt(er) til gruppen...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importerer, vent venligst...';
$messages['importformaterror'] = 'Importering mislykkedes! Den uploadede fil indeholder ikke gyldige data til importering.';
$messages['importconfirm'] = '<b>Importerede $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Sprang over $skipped eksisterende kontakter</b>';
-$messages['importmessagesuccess'] = 'Importerede $nr beskeder';
-$messages['importmessageerror'] = 'Import mislykkedes! Den uploadede fil er ikke en gyldig besked eller mailbox-fil';
$messages['opnotpermitted'] = 'Handlingen er ikke tilladt!';
$messages['nofromaddress'] = 'Der mangler en e-mailadresse i den valgte identitet.';
$messages['editorwarning'] = 'Al formatering af teksten forsvinder, hvis der skiftes til ren tekst. Vil du fortsætte?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'SMTP fejl: $msg';
$messages['emailformaterror'] = 'Ugyldig e-mailadresse: $email';
$messages['toomanyrecipients'] = 'For mange modtagere. Reducer antallet af modtagere til $max.';
$messages['maxgroupmembersreached'] = 'Antallet af gruppemedlemmer overstiger maksimum på $max.';
-$messages['internalerror'] = 'En intern fejl opstod. Prøv venligst igen.';
+$messages['internalerror'] = 'Der opstod en intern fejl - prøv venligst igen.';
$messages['contactdelerror'] = 'Kunne ikke slette kontakt(er).';
$messages['contactdeleted'] = 'Kontakt(er) slettet.';
$messages['contactrestoreerror'] = 'Kunne ikke gendanne slettede kontakt(er).';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Kan ikke oprette/flytte mappe ind i valgt mapp
$messages['messagetoobig'] = 'Denne del af beskeden er for stor til at blive behandlet.';
$messages['attachmentvalidationerror'] = 'ADVARSEL! Den vedhæftede fil er mistænkelig - Typen stemmer ikke overens med den oplyste type. Hvis du ikke har tillid til afsender, skal du ikke åbne filen da den kan indholde onsindet indhold. <br/><br/><em>Forventet: $expected; Fundet: $detected</em>';
$messages['noscriptwarning'] = 'Advarsel: Denne webmailclient kræver Javascript! For at kunne bruge den slå venligst Javascripts til i din browserindstillinger.';
+
?>
diff --git a/program/localization/de_CH/labels.inc b/program/localization/de_CH/labels.inc
index b416d0b98..e64859d2c 100644
--- a/program/localization/de_CH/labels.inc
+++ b/program/localization/de_CH/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Willkommen bei $product';
$labels['username'] = 'Benutzername';
$labels['password'] = 'Passwort';
$labels['server'] = 'Server';
$labels['login'] = 'Login';
+
+// taskbar
$labels['logout'] = 'Logout';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Einstellungen';
$labels['addressbook'] = 'Adressbuch';
+
+// mailbox names
$labels['inbox'] = 'Posteingang';
$labels['drafts'] = 'Entwürfe';
$labels['sent'] = 'Gesendet';
$labels['trash'] = 'Gelöscht';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Spezialordner nicht übersetzen';
+
+// message listing
$labels['subject'] = 'Betreff';
$labels['from'] = 'Von';
$labels['sender'] = 'Absender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorität';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Gelesen/Ungelesen';
$labels['listoptions'] = 'Listenoptionen...';
+
$labels['mailboxlist'] = 'Ordner';
$labels['messagesfromto'] = 'Nachrichten $from bis $to von $count';
$labels['threadsfromto'] = 'Konversationen $from bis $to von $count';
$labels['messagenrof'] = 'Nachricht $nr von $count';
$labels['fromtoshort'] = '$from – $to von $count';
+
$labels['copy'] = 'Kopieren';
$labels['move'] = 'Verschieben';
$labels['moveto'] = 'Verschieben nach...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Öffnen';
$labels['showattachment'] = 'Anzeigen';
$labels['showanyway'] = 'Trotzdem anzeigen';
+
$labels['filename'] = 'Dateiname';
$labels['filesize'] = 'Dateigrösse';
+
$labels['addtoaddressbook'] = 'Ins Adressbuch übernehmen';
+
+// weekdays short
$labels['sun'] = 'So';
$labels['mon'] = 'Mo';
$labels['tue'] = 'Di';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mi';
$labels['thu'] = 'Do';
$labels['fri'] = 'Fr';
$labels['sat'] = 'Sa';
+
+// weekdays long
$labels['sunday'] = 'Sonntag';
$labels['monday'] = 'Montag';
$labels['tuesday'] = 'Dienstag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mittwoch';
$labels['thursday'] = 'Donnerstag';
$labels['friday'] = 'Freitag';
$labels['saturday'] = 'Samstag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mär';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'März';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Dezember';
+
$labels['today'] = 'Heute';
+
+// toolbar buttons
$labels['refresh'] = 'Aktualisieren';
$labels['checkmail'] = 'Auf neue Nachrichten prüfen';
$labels['compose'] = 'Schreiben';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mehr ...';
$labels['more'] = 'Mehr';
$labels['back'] = 'Zurück';
$labels['options'] = 'Optionen';
+
$labels['select'] = 'Auswählen';
$labels['all'] = 'Alle';
$labels['none'] = 'Keine';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Alle aufklappen';
$labels['expand-unread'] = 'Ungelesene aufklappen';
$labels['collapse-all'] = 'Alle zuklappen';
$labels['threaded'] = 'Gruppiert';
+
$labels['autoexpand_threads'] = 'Konversationen aufklappen';
$labels['do_expand'] = 'alle';
$labels['expand_only_unread'] = 'nur ungelesene';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Spalten';
$labels['listsorting'] = 'Sortierung';
$labels['listorder'] = 'Ordnung';
$labels['listmode'] = 'Anzeigemodus';
+
$labels['folderactions'] = 'Ordneraktionen...';
$labels['compact'] = 'Packen';
$labels['empty'] = 'Leeren';
-$labels['importmessages'] = 'Nachrichten importieren';
+
$labels['quota'] = 'Verwendeter Speicherplatz';
$labels['unknown'] = 'unbekannt';
$labels['unlimited'] = 'unlimitiert';
+
$labels['quicksearch'] = 'Schnellsuche';
$labels['resetsearch'] = 'Löschen';
$labels['searchmod'] = 'Suchkriterien ändern';
$labels['msgtext'] = 'Ganze Nachricht';
$labels['body'] = 'Inhalt';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Name';
+
$labels['openinextwin'] = 'In neuem Fenster öffnen';
$labels['emlsave'] = 'Herunterladen (.eml)';
$labels['changeformattext'] = 'Als reiner Text anzeigen';
$labels['changeformathtml'] = 'Als original HTML anzeigen';
+
+// message compose
$labels['editasnew'] = 'Als neue Nachricht öffnen';
$labels['send'] = 'Senden';
$labels['sendmessage'] = 'Nachricht jetzt senden';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Empfangsbestätigung (MDN)';
$labels['dsn'] = 'Übermittlungsbestätigung (DSN)';
$labels['mailreplyintro'] = 'Am $date, schrieb $sender:';
$labels['originalmessage'] = 'Originalnachricht';
+
$labels['editidents'] = 'Absender bearbeiten';
$labels['spellcheck'] = 'Rechtschreibung';
$labels['checkspelling'] = 'Rechtschreibung prüfen';
$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
-$labels['responses'] = 'Antworten';
-$labels['insertresponse'] = 'Antwort einfügen';
-$labels['manageresponses'] = 'Antworten verwalten';
-$labels['savenewresponse'] = 'Neue Antwort speichern';
-$labels['editresponses'] = 'Antworten bearbeiten';
-$labels['editresponse'] = 'Antwort bearbeiten';
-$labels['responsename'] = 'Name';
-$labels['responsetext'] = 'Antworttext';
+
$labels['attach'] = 'Anhängen';
$labels['attachments'] = 'Anhänge';
$labels['upload'] = 'Hochladen';
$labels['uploadprogress'] = '$percent ($current von $total)';
$labels['close'] = 'Schliessen';
$labels['messageoptions'] = 'Optionen...';
+
$labels['low'] = 'Niedrig';
$labels['lowest'] = 'Niedrigste';
$labels['normal'] = 'Normal';
$labels['high'] = 'Hoch';
$labels['highest'] = 'Höchste';
+
$labels['nosubject'] = '(kein Betreff)';
$labels['showimages'] = 'Bilder anzeigen';
$labels['alwaysshow'] = 'Bilder von $sender immer zeigen';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Dies ist ein Entwurf';
$labels['andnmore'] = '$nr weitere...';
$labels['togglemoreheaders'] = 'Weitere Kopfzeilen anzeigen';
$labels['togglefullheaders'] = 'Original-Kopfzeilen ein-/ausblenden';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Klartext';
$labels['savesentmessagein'] = 'Nachricht speichern in';
$labels['dontsave'] = 'nicht speichern';
$labels['maxuploadsize'] = 'Maximal erlaubte Dateigrösse ist $size';
+
$labels['addcc'] = 'Cc hinzufügen';
$labels['addbcc'] = 'Bcc hinzufügen';
$labels['addreplyto'] = 'Antwortadresse hinzufügen';
$labels['addfollowupto'] = 'Followup-To hinzufügen';
+
+// mdn
$labels['mdnrequest'] = 'Der Sender dieser Nachricht hat eine Empfangsbestätigung angefordert. Möchten Sie diese jetzt senden?';
$labels['receiptread'] = 'Empfangsbestätigung (gelesen)';
$labels['yourmessage'] = 'Dieses ist eine Empfangsbestätigung für Ihre Nachricht';
$labels['receiptnote'] = 'Hinweis: Der Empfänger hat den Empfang der Nachricht bestätigt. Dieses ist keine Garantie, dass die Nachricht gelesen und verstanden wurde.';
+
+// address boook
$labels['name'] = 'Anzeigename';
$labels['firstname'] = 'Vorname';
$labels['surname'] = 'Nachname';
@@ -270,6 +301,7 @@ $labels['search'] = 'Suche';
$labels['advsearch'] = 'Erweiterte Suche';
$labels['advanced'] = 'Erweitert';
$labels['other'] = 'Andere';
+
$labels['typehome'] = 'Zuhause';
$labels['typework'] = 'Arbeit';
$labels['typeother'] = 'Andere';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Homepage';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Feld hinzufügen...';
$labels['addcontact'] = 'Kontakt hinzufügen';
$labels['editcontact'] = 'Kontakt bearbeiten';
$labels['contacts'] = 'Kontakte';
$labels['contactproperties'] = 'Kontaktdaten';
$labels['personalinfo'] = 'Persönliche Informationen';
+
$labels['edit'] = 'Bearbeiten';
$labels['cancel'] = 'Abbrechen';
$labels['save'] = 'Speichern';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Umbenennen';
$labels['addphoto'] = 'Hinzufügen';
$labels['replacephoto'] = 'Ersetzen';
$labels['uploadphoto'] = 'Bild hochladen';
+
$labels['newcontact'] = 'Neuen Kontakt erfassen';
$labels['deletecontact'] = 'Gewählte Kontakte löschen';
$labels['composeto'] = 'Nachricht verfassen';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Neue Adressgruppe erstellen';
$labels['grouprename'] = 'Gruppe umbenennen';
$labels['groupdelete'] = 'Gruppe löschen';
$labels['groupremoveselected'] = 'Gewählte Kontakte aus Gruppe entfernen';
+
$labels['previouspage'] = 'Eine Seite zurück';
$labels['firstpage'] = 'Erste Seite';
$labels['nextpage'] = 'Nächste Seite';
$labels['lastpage'] = 'Letzte Seite';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Gruppen';
-$labels['listgroup'] = 'Gruppenmitglieder anzeigen';
$labels['personaladrbook'] = 'Persönliches Adressbuch';
+
$labels['searchsave'] = 'Suche speichern';
$labels['searchdelete'] = 'Suche löschen';
+
$labels['import'] = 'Importieren';
$labels['importcontacts'] = 'Adressen importieren';
$labels['importfromfile'] = 'Import aus Datei:';
-$labels['importtarget'] = 'Importieren nach';
+$labels['importtarget'] = 'Neue Kontakte speichern in:';
$labels['importreplace'] = 'Bestehendes Adressbuch komplett ersetzen';
-$labels['importgroups'] = 'Gruppenzuweisungen importieren';
-$labels['importgroupsall'] = 'Alle (nicht vorhandene Gruppen erstellen)';
-$labels['importgroupsexisting'] = 'Für für existierende Gruppen';
$labels['importdesc'] = 'Sie können Kontakte aus einem bestehenden Adressbuch hochladen.rnEs können Adressbücher im <a href="http://de.wikipedia.org/wiki/VCard">vCard</a>- oder CSV-Format importiert werden.';
$labels['done'] = 'Fertig';
+
+// settings
$labels['settingsfor'] = 'Einstellungen für';
$labels['about'] = 'Ãœber';
$labels['preferences'] = 'Einstellungen';
$labels['userpreferences'] = 'Benutzereinstellungen';
$labels['editpreferences'] = 'Einstellungen bearbeiten';
+
$labels['identities'] = 'Absender';
$labels['manageidentities'] = 'Absender für dieses Konto verwalten';
$labels['newidentity'] = 'Neuer Absender';
+
$labels['newitem'] = 'Neuer Eintrag';
$labels['edititem'] = 'Eintrag bearbeiten';
+
$labels['preferhtml'] = 'HTML bevorzugen';
$labels['defaultcharset'] = 'Standard-Zeichensatz';
$labels['htmlmessage'] = 'HTML Nachricht';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Wörter mit Ziffern überspringen';
$labels['spellcheckignorecaps'] = 'Wörter überspringen, die nur aus Grossbuchstaben bestehen';
$labels['addtodict'] = 'Zum Wörterbuch hinzufügen';
$labels['mailtoprotohandler'] = 'Als Empfänger für mailto: Links einrichten';
-$labels['standardwindows'] = 'Popups als normale Browserfenster öffnen';
$labels['forwardmode'] = 'Weiterleiten einer Nachricht';
$labels['inline'] = 'eingebettet';
$labels['asattachment'] = 'als Anhang';
+
$labels['folder'] = 'Ordner';
$labels['folders'] = 'Ordner';
$labels['foldername'] = 'Ordnername';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Ordnertyp';
$labels['personalfolder'] = 'Privater Ordner';
$labels['otherfolder'] = 'Order eines anderen Benutzers';
$labels['sharedfolder'] = 'Öffentlicher Ordner';
+
$labels['sortby'] = 'Sortieren nach';
$labels['sortasc'] = 'aufsteigend sortieren';
$labels['sortdesc'] = 'absteigend sortieren';
$labels['undo'] = 'Rückgängig';
+
$labels['installedplugins'] = 'Installierte Plugins';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Quellcode';
$labels['license'] = 'Lizenz';
$labels['support'] = 'Support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englisch';
$labels['westerneuropean'] = 'Westeuropäisch';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisch';
$labels['japanese'] = 'Japanisch';
$labels['korean'] = 'Koreanisch';
$labels['chinese'] = 'Chinesisch';
+
?>
diff --git a/program/localization/de_CH/messages.inc b/program/localization/de_CH/messages.inc
index 2f3257703..f3697a825 100644
--- a/program/localization/de_CH/messages.inc
+++ b/program/localization/de_CH/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Fehlermeldung';
$messages['loginfailed'] = 'Login fehlgeschlagen';
$messages['cookiesdisabled'] = 'Ihr Browser akzeptiert keine Cookies';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Nachricht erfolgreich gesendet';
$messages['savingmessage'] = 'Nachricht wird gespeichert...';
$messages['messagesaved'] = 'Nachricht als Entwurf gespeichert';
$messages['successfullysaved'] = 'Erfolgreich gespeichert';
-$messages['savingresponse'] = 'Antwort wird gespeichert...';
-$messages['deleteresponseconfirm'] = 'Wollen Sie diese Antwort wirklich löschen?';
$messages['addedsuccessfully'] = 'Kontakt zum Adressbuch hinzugefügt';
$messages['contactexists'] = 'Es existiert bereits ein Kontakt mit dieser E-Mail-Adresse.';
$messages['contactnameexists'] = 'Es existiert bereits ein Kontakt mit diesem Namen';
@@ -57,7 +57,7 @@ $messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte z
$messages['sendingfailed'] = 'Versand der Nachricht fehlgeschlagen';
$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht';
$messages['errorsavingsent'] = 'Beim Speichern der gesendeten Nachricht ist ein Fehler aufgetreten.';
-$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten.';
+$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten';
$messages['errormoving'] = 'Nachricht(en) konnte(n) nicht verschoben werden.';
$messages['errorcopying'] = 'Nachticht(en) konnte(n) nicht kopiert werden.';
$messages['errordeleting'] = 'Nachricht(en) konnte(n) nicht gelöscht werden.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Formatierung wird entfernt...';
$messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden.';
$messages['fileuploaderror'] = 'Der Dateiupload ist fehlgeschlagen.';
$messages['filesizeerror'] = 'Die Datei überschreitet die maximale Grösse von $size.';
-$messages['copysuccess'] = '$nr Kontakt(e) erfolgreich kopiert.';
-$messages['movesuccess'] = '$nr Kontakt(e) erfolgreich verschoben.';
-$messages['copyerror'] = 'Kontakte konnten nicht kopiert werden.';
-$messages['moveerror'] = 'Kontakte konnten nicht verschoben werden.';
+$messages['copysuccess'] = '$nr Adressen erfolgreich kopiert.';
+$messages['copyerror'] = 'Die Adressen konnten nicht kopiert werden.';
$messages['sourceisreadonly'] = 'Das Adressverzeichnis kann nicht verändert werden.';
$messages['errorsavingcontact'] = 'Die Änderungen konnten nicht gespeichert werden.';
$messages['movingmessage'] = 'Nachrichten werden verschoben...';
$messages['copyingmessage'] = 'Nachrichten werden kopiert...';
$messages['copyingcontact'] = 'Kontakte werden kopiert...';
-$messages['movingcontact'] = 'Kontakt(e) werden verschoben...';
$messages['deletingmessage'] = 'Nachrichten werden gelöscht...';
$messages['markingmessage'] = 'Nachrichten werden markiert...';
$messages['addingmember'] = 'Kontakte werden der Gruppe hinzugefügt...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Daten werden importiert, bitte warten...';
$messages['importformaterror'] = 'Import fehlgeschlagen! Die hochgeladene Datei enthält keines der unterstützten Datenformate.';
$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestehende Einträge wurden übersprungen</b>';
-$messages['importmessagesuccess'] = '$nr Nachricht(n) erfolgreich importiert';
-$messages['importmessageerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine E-Mail-Nachricht oder Mailbox-Datei.';
$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität.';
$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Konnte den Ordner nicht erstellen/verschieben.
$messages['messagetoobig'] = 'Die Nachricht ist zu gross und kann nicht verarbeitet werden.';
$messages['attachmentvalidationerror'] = 'WARNUNG! Dieser Anhang ist verdächtig, da sein Dateityp nicht dem entspricht, was in der Nachricht angegeben wird. Wenn Sie dem Absender nicht vertrauen, sollten Sie diesen Anhang nicht im Browser öffnen, da er Ihrem Computer Schaden zuführen könnte. <br/><br/><em>Erwartet: $expected; gefunden: $detected</em>';
$messages['noscriptwarning'] = 'Achtung! Dieser Webmail-Service erfordert Javascript. Um ihn zu benutzten aktivieren Sie Javascript in ihren Browser-Einstellungen.';
+
?>
diff --git a/program/localization/de_DE/labels.inc b/program/localization/de_DE/labels.inc
index e3f4652cc..d497a6bc6 100644
--- a/program/localization/de_DE/labels.inc
+++ b/program/localization/de_DE/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Willkommen bei $product';
$labels['username'] = 'Benutzername';
$labels['password'] = 'Passwort';
$labels['server'] = 'Server';
$labels['login'] = 'Anmelden';
+
+// taskbar
$labels['logout'] = 'Abmelden';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Einstellungen';
$labels['addressbook'] = 'Adressbuch';
+
+// mailbox names
$labels['inbox'] = 'Posteingang';
$labels['drafts'] = 'Entwürfe';
$labels['sent'] = 'Gesendet';
$labels['trash'] = 'Gelöscht';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Echte Namen für Spezialordner anzeigen';
+
+// message listing
$labels['subject'] = 'Betreff';
$labels['from'] = 'Von';
$labels['sender'] = 'Absender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorität';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Gelesen/Ungelesen';
$labels['listoptions'] = 'Listenoptionen...';
+
$labels['mailboxlist'] = 'Ordner';
$labels['messagesfromto'] = 'Nachrichten $from bis $to von $count';
$labels['threadsfromto'] = 'Konversationen $from bis $to von $count';
$labels['messagenrof'] = 'Nachricht $nr von $count';
$labels['fromtoshort'] = '$from – $to von $count';
+
$labels['copy'] = 'Kopieren';
$labels['move'] = 'Verschieben';
$labels['moveto'] = 'Verschieben nach...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Herunterladen';
$labels['open'] = 'Offen';
$labels['showattachment'] = 'Anzeigen';
$labels['showanyway'] = 'Trotzdem anzeigen';
+
$labels['filename'] = 'Dateiname';
$labels['filesize'] = 'Dateigröße';
+
$labels['addtoaddressbook'] = 'Ins Adressbuch übernehmen';
+
+// weekdays short
$labels['sun'] = 'So';
$labels['mon'] = 'Mo';
$labels['tue'] = 'Di';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mi';
$labels['thu'] = 'Do';
$labels['fri'] = 'Fr';
$labels['sat'] = 'Sa';
+
+// weekdays long
$labels['sunday'] = 'Sonntag';
$labels['monday'] = 'Montag';
$labels['tuesday'] = 'Dienstag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mittwoch';
$labels['thursday'] = 'Donnerstag';
$labels['friday'] = 'Freitag';
$labels['saturday'] = 'Samstag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mär';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'März';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Dezember';
+
$labels['today'] = 'Heute';
+
+// toolbar buttons
$labels['refresh'] = 'Aktualisieren';
$labels['checkmail'] = 'Auf neue Nachrichten überprüfen';
$labels['compose'] = 'Schreiben';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mehr...';
$labels['more'] = 'Mehr';
$labels['back'] = 'Zurück';
$labels['options'] = 'Optionen';
+
$labels['select'] = 'Auswahl';
$labels['all'] = 'Alle';
$labels['none'] = 'Keine';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Alle aufklappen';
$labels['expand-unread'] = 'Ungelesene aufklappen';
$labels['collapse-all'] = 'Alle zuklappen';
$labels['threaded'] = 'Gruppiert';
+
$labels['autoexpand_threads'] = 'Konversationen aufklappen';
$labels['do_expand'] = 'alle';
$labels['expand_only_unread'] = 'nur ungelesene';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Spalten';
$labels['listsorting'] = 'Sortierung';
$labels['listorder'] = 'Ordnung';
$labels['listmode'] = 'Anzeigemodus';
+
$labels['folderactions'] = 'Ordneraktionen...';
$labels['compact'] = 'Packen';
$labels['empty'] = 'Leeren';
-$labels['importmessages'] = 'Nachrichten importieren';
+
$labels['quota'] = 'Speicherplatz';
$labels['unknown'] = 'unbekannt';
$labels['unlimited'] = 'unbegrenzt';
+
$labels['quicksearch'] = 'Schnellsuche';
$labels['resetsearch'] = 'Suche zurücksetzen';
$labels['searchmod'] = 'Suchkriterien ändern';
$labels['msgtext'] = 'Nachricht';
$labels['body'] = 'Inhalt';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Name';
+
$labels['openinextwin'] = 'In neuem Fenster öffnen';
$labels['emlsave'] = 'Lokal speichern (.eml)';
$labels['changeformattext'] = 'Als reiner Text anzeigen';
$labels['changeformathtml'] = 'Als original HTML anzeigen';
+
+// message compose
$labels['editasnew'] = 'Als neue Nachricht öffnen';
$labels['send'] = 'Senden';
$labels['sendmessage'] = 'Nachricht jetzt senden';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Empfangsbestätigung (MDN)';
$labels['dsn'] = 'Übermittlungsbestätigung (DSN)';
$labels['mailreplyintro'] = 'Am $date, schrieb $sender:';
$labels['originalmessage'] = 'Originalnachricht';
+
$labels['editidents'] = 'Absender ändern';
$labels['spellcheck'] = 'Rechtschreibung';
$labels['checkspelling'] = 'Rechtschreibung prüfen';
$labels['resumeediting'] = 'Bearbeitung fortsetzen';
$labels['revertto'] = 'Zurück zu';
+
$labels['attach'] = 'Anhängen';
$labels['attachments'] = 'Anhänge';
$labels['upload'] = 'Hochladen';
$labels['uploadprogress'] = '$percent ($current von $total)';
$labels['close'] = 'Schließen';
$labels['messageoptions'] = 'Optionen...';
+
$labels['low'] = 'Niedrig';
$labels['lowest'] = 'Niedrigste';
$labels['normal'] = 'Normal';
$labels['high'] = 'Hoch';
$labels['highest'] = 'Höchste';
+
$labels['nosubject'] = '(kein Betreff)';
$labels['showimages'] = 'Bilder anzeigen';
$labels['alwaysshow'] = 'Bilder von $sender immer zeigen';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Dies ist ein Entwurf';
$labels['andnmore'] = '$nr weitere';
$labels['togglemoreheaders'] = 'Zeige weitere Nachrichten-Header';
$labels['togglefullheaders'] = 'Original-Kopfzeilen ein-/ausblenden';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Nur-Text';
$labels['savesentmessagein'] = 'Nachricht speichern in';
$labels['dontsave'] = 'nicht speichern';
$labels['maxuploadsize'] = 'Maximal erlaubte Dateigröße ist $size';
+
$labels['addcc'] = 'Cc hinzufügen';
$labels['addbcc'] = 'Bcc hinzufügen';
$labels['addreplyto'] = 'Antwortadresse hinzufügen';
$labels['addfollowupto'] = 'Followup-To hinzufügen';
+
+// mdn
$labels['mdnrequest'] = 'Der Sender dieser Nachricht möchte gerne eine Lesebestätigung. Wollen Sie dieses bestätigen?';
$labels['receiptread'] = 'Empfangsbestätigung (gelesen)';
$labels['yourmessage'] = 'Dies ist eine Empfangsbestätigung für Ihre Nachricht';
$labels['receiptnote'] = 'Hinweis: Der Empfänger hat den Empfang der Nachricht bestätigt. Dies ist keine Garantie, dass die Nachricht gelesen und verstanden wurde.';
+
+// address boook
$labels['name'] = 'Angezeigter Name';
$labels['firstname'] = 'Vorname';
$labels['surname'] = 'Nachname';
@@ -262,6 +301,7 @@ $labels['search'] = 'Suche';
$labels['advsearch'] = 'Detaillierte Suche';
$labels['advanced'] = 'Erweitert';
$labels['other'] = 'Andere';
+
$labels['typehome'] = 'Privat';
$labels['typework'] = 'Dienstlich';
$labels['typeother'] = 'Andere';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Assistenz';
$labels['typehomepage'] = 'Internet';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Feld hinzufügen...';
$labels['addcontact'] = 'Kontakt hinzufügen';
$labels['editcontact'] = 'Kontakt bearbeiten';
$labels['contacts'] = 'Kontakte';
$labels['contactproperties'] = 'Kontaktdaten';
$labels['personalinfo'] = 'Persönliche Informationen';
+
$labels['edit'] = 'Bearbeiten';
$labels['cancel'] = 'Abbrechen';
$labels['save'] = 'Speichern';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Umbenennen';
$labels['addphoto'] = 'Kontaktbild hinzufügen';
$labels['replacephoto'] = 'Bild ändern';
$labels['uploadphoto'] = 'Bild hochladen';
+
$labels['newcontact'] = 'Neuen Kontakt erstellen';
$labels['deletecontact'] = 'Gewählte Kontakte löschen';
$labels['composeto'] = 'Nachricht verfassen';
@@ -303,34 +346,41 @@ $labels['newcontactgroup'] = 'Neue Kontaktgruppe erstellen';
$labels['grouprename'] = 'Gruppe umbenennen';
$labels['groupdelete'] = 'Gruppe löschen';
$labels['groupremoveselected'] = 'Gewählte Kontakte aus Gruppe entfernen';
+
$labels['previouspage'] = 'Seite zurück';
$labels['firstpage'] = 'Erste Seite';
$labels['nextpage'] = 'Nächste Seite';
$labels['lastpage'] = 'Letzte Seite';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Gruppen';
-$labels['listgroup'] = 'Gruppenmitglieder auflisten';
$labels['personaladrbook'] = 'Persönliches Adressbuch';
+
$labels['searchsave'] = 'Suchergebnisse speichern';
$labels['searchdelete'] = 'Suchergebnisse löschen';
+
$labels['import'] = 'Importieren';
$labels['importcontacts'] = 'Kontakte importieren';
$labels['importfromfile'] = 'Import aus Datei:';
-$labels['importtarget'] = 'Kontakte hinzufügen zu';
+$labels['importtarget'] = 'Einen neuen Kontakt hinzufügen:';
$labels['importreplace'] = 'Bestehendes Adressbuch komplett ersetzen';
-$labels['importgroupsexisting'] = 'Nur für existierende Gruppen';
$labels['importdesc'] = 'Sie können Kontakte von einem vorhandenen Adressbuch hochladen.<br/>Zur Zeit wird der Import von Adressen im <a href="http://de.wikipedia.org/wiki/VCard">vCard</a> oder <a href="http://de.wikipedia.org/wiki/CSV_(Dateiformat)">CSV</a>Format unterstützt.';
$labels['done'] = 'Fertig';
+
+// settings
$labels['settingsfor'] = 'Einstellungen für';
$labels['about'] = 'Ãœber';
$labels['preferences'] = 'Einstellungen';
$labels['userpreferences'] = 'Benutzereinstellungen';
$labels['editpreferences'] = 'Benutzereinstellungen bearbeiten';
+
$labels['identities'] = 'Identitäten';
$labels['manageidentities'] = 'Absender für dieses Konto verwalten';
$labels['newidentity'] = 'Neuer Absender';
+
$labels['newitem'] = 'Neuer Eintrag';
$labels['edititem'] = 'Eintrag bearbeiten';
+
$labels['preferhtml'] = 'HTML anzeigen';
$labels['defaultcharset'] = 'Standard Zeichensatz';
$labels['htmlmessage'] = 'HTML-Nachricht';
@@ -352,7 +402,7 @@ $labels['htmleditor'] = 'HTML-Nachrichten verfassen';
$labels['htmlonreply'] = 'nur Antworten auf HTML-Nachrichten';
$labels['htmlonreplyandforward'] = 'beim Weiterleiten und Beantworten auf HTML-Nachrichten';
$labels['htmlsignature'] = 'HTML-Signatur';
-$labels['showemail'] = 'E-Mail-Adresse mit dem Display Namen anzeigen';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Nachrichtenvorschau anzeigen';
$labels['skin'] = 'Oberflächendesign';
$labels['logoutclear'] = 'Papierkorb beim Abmelden leeren';
@@ -422,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Wörter mit Ziffern überspringen';
$labels['spellcheckignorecaps'] = 'Wörter überspringen, die nur aus Großbuchstaben bestehen';
$labels['addtodict'] = 'Zum Wörterbuch hinzufügen';
$labels['mailtoprotohandler'] = 'Als Empfänger für mailto: Links einrichten';
-$labels['standardwindows'] = 'Popups als Standard Windows behandeln';
$labels['forwardmode'] = 'Nachrichtenweiterleitung';
$labels['inline'] = 'eingebettet';
$labels['asattachment'] = 'als Anhang';
+
$labels['folder'] = 'Ordner';
$labels['folders'] = 'Ordner';
$labels['foldername'] = 'Ordnername';
@@ -446,20 +496,26 @@ $labels['foldertype'] = 'Ordnertyp';
$labels['personalfolder'] = 'Privater Ordner';
$labels['otherfolder'] = 'Ordner eines anderen Benutzers';
$labels['sharedfolder'] = 'Öffentlicher Ordner';
+
$labels['sortby'] = 'Sortieren nach';
$labels['sortasc'] = 'Aufsteigend sortieren';
$labels['sortdesc'] = 'Absteigend sortieren';
$labels['undo'] = 'Rückgängig machen';
+
$labels['installedplugins'] = 'Installierte Plugins';
$labels['plugin'] = 'Erweiterung';
$labels['version'] = 'Version';
$labels['source'] = 'Quellcode';
$labels['license'] = 'Lizenz';
$labels['support'] = 'Support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englisch';
$labels['westerneuropean'] = 'West Europäisch';
@@ -478,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisch';
$labels['japanese'] = 'Japanisch';
$labels['korean'] = 'Koreanisch';
$labels['chinese'] = 'Chinesisch';
+
?>
diff --git a/program/localization/de_DE/messages.inc b/program/localization/de_DE/messages.inc
index fbc21521a..ba0936d28 100644
--- a/program/localization/de_DE/messages.inc
+++ b/program/localization/de_DE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ein Fehler ist aufgetreten!';
$messages['loginfailed'] = 'Die Anmeldung ist fehlgeschlagen.';
$messages['cookiesdisabled'] = 'Ihr Browser akzeptiert keine Cookies.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Der angeforderte Kontakt wurde nicht gefunden.';
$messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte zu finden.';
$messages['sendingfailed'] = 'Versenden der Nachricht fehlgeschlagen.';
$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht.';
+$messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten.';
+$messages['errorsaving'] = 'Beim Speichern ist ein Fehler aufgetreten.';
$messages['errormoving'] = 'Nachricht(en) konnte(n) nicht verschoben werden.';
$messages['errorcopying'] = 'Nachticht(en) konnte(n) nicht kopiert werden.';
$messages['errordeleting'] = 'Nachricht(en) konnte(n) nicht gelöscht werden.';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Entferne Formatierungen...';
$messages['messageopenerror'] = 'Die Nachricht konnte nicht vom Server geladen werden.';
$messages['fileuploaderror'] = 'Hochladen der Datei fehlgeschlagen.';
$messages['filesizeerror'] = 'Die hochzuladende Datei überschreitet die Maximalgröße von $size.';
-$messages['copysuccess'] = 'Erfolgreich kopiert $ nr Kontakte.';
-$messages['movesuccess'] = 'Erfolgreich verschoben $ nr Kontakte.';
-$messages['copyerror'] = 'Die Kontakte konnten nicht kopiert werden.';
-$messages['moveerror'] = 'Die Kontakte konnten nicht verschoben werden.';
+$messages['copysuccess'] = '$nr Adressen erfolgreich kopiert.';
+$messages['copyerror'] = 'Die Adressen konnten nicht kopiert werden.';
$messages['sourceisreadonly'] = 'Das Adressverzeichnis kann nicht verändert werden.';
$messages['errorsavingcontact'] = 'Die Änderungen konnten nicht gespeichert werden.';
$messages['movingmessage'] = 'Die E-Mail wird verschoben...';
$messages['copyingmessage'] = 'Kopiere Nachrichten...';
$messages['copyingcontact'] = 'Kontakte werden kopiert...';
-$messages['movingcontact'] = 'Kontakt(e) wird verschoben...';
$messages['deletingmessage'] = 'Lösche Nachricht(en)...';
$messages['markingmessage'] = 'Markiere Nachricht(en)...';
$messages['addingmember'] = 'Füge Kontakte der Gruppe hinzu...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Daten werden importiert, bitte warten...';
$messages['importformaterror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine gültige Importdatei.';
$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert.</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestehende Einträge wurden übersprungen.</b>';
-$messages['importmessagesuccess'] = 'Nachrichten $nr erfolgreich importiert';
-$messages['importmessageerror'] = 'Import fehlgeschlagen! Die hochgeladene Datei ist keine gültige Importdatei.';
$messages['opnotpermitted'] = 'Operation nicht erlaubt!';
$messages['nofromaddress'] = 'Fehlende E-Mail-Adresse in ausgewählter Identität.';
$messages['editorwarning'] = 'Beim Wechseln in den Texteditor gehen alle Textformatierungen verloren. Möchten Sie fortfahren?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP Fehler: $msg';
$messages['emailformaterror'] = 'Ungültige E-Mail-Adresse: $email';
$messages['toomanyrecipients'] = 'Zuviele Empfänger. Reduzieren Sie die Anzahl Empfängeradressen auf $max.';
$messages['maxgroupmembersreached'] = 'Die Anzahl Adressen in dieser Gruppe überschreitet das Maximum von $max.';
+$messages['internalerror'] = 'Ein interner Fehler ist aufgetreten. Bitte versuchen es erneut.';
$messages['contactdelerror'] = 'Fehler beim Löschen.';
$messages['contactdeleted'] = 'Kontakt(e) erfolgreich gelöscht.';
$messages['contactrestoreerror'] = 'Konnte die gelöschten Kontakte nicht wiederherstellen.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Konnte den Ordner nicht erstellen/verschieben.
$messages['messagetoobig'] = 'Die Nachricht ist zu gross und kann nicht verarbeitet werden.';
$messages['attachmentvalidationerror'] = 'WARNUNG! Dieser Anhang ist verdächtig, weil sein Typ nicht dem in der Nachricht deklarierten Typ entspricht. Wenn Sie dem Sender nicht trauen, sollten Sie den Anhang nicht öffnen, weil er schadhaften Inhalte beinhalten könnte.<br/><br/><em>Erwartet: $expected; gefunden: $detected</em>';
$messages['noscriptwarning'] = 'Warnung: Dieser Webmail-Service erfordert Javascript. Um ihn zu benutzten aktivieren Sie Javascript in ihren Browser-Einstellungen.';
+
?>
diff --git a/program/localization/el_GR/labels.inc b/program/localization/el_GR/labels.inc
index 2e3ab405c..9f5d81839 100644
--- a/program/localization/el_GR/labels.inc
+++ b/program/localization/el_GR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Καλώς ήÏθατε στο $product';
$labels['username'] = 'Όνομα ΧÏήστη';
$labels['password'] = 'Κωδικός ΠÏόσβασης';
$labels['server'] = 'ΕξυπηÏετητής';
$labels['login'] = 'ΣÏνδεση';
+
+// taskbar
$labels['logout'] = 'ΑποσÏνδεση';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Ρυθμίσεις';
$labels['addressbook'] = 'Επαφές';
+
+// mailbox names
$labels['inbox'] = 'ΕισεÏχόμενα';
$labels['drafts'] = 'ΠÏόχειÏα';
$labels['sent'] = 'Απεσταλμένα';
$labels['trash'] = 'Κάδος ΑποÏÏιμάτων';
$labels['junk'] = 'ΑνεπιθÏμητα';
-$labels['show_real_foldernames'] = 'Εμφάνιση Ï€Ïαγματικών ονομάτων για ειδικοÏÏ‚ φακέλους';
+
+// message listing
$labels['subject'] = 'Θέμα';
$labels['from'] = 'Αποστολέας';
$labels['sender'] = 'Αποστολέας';
@@ -44,11 +53,13 @@ $labels['priority'] = 'ΠÏoτεÏαιότητα';
$labels['organization'] = 'ΟÏγανισμός';
$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['move'] = 'Μετακίνηση';
$labels['moveto'] = 'Μετακίνηση σε...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Λήψη';
$labels['open'] = 'Ανοιγμα';
$labels['showattachment'] = 'Εμφάνιση';
$labels['showanyway'] = 'Εμφάνιση';
+
$labels['filename'] = 'Όνομα αÏχείου';
$labels['filesize'] = 'Μέγεθος αÏχείου';
+
$labels['addtoaddressbook'] = 'ΠÏοσθήκη στο βιβλίο διευθÏνσεων';
+
+// weekdays short
$labels['sun'] = 'ΚυÏ';
$labels['mon'] = 'Δευτ';
$labels['tue'] = 'ΤÏι';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Τετ';
$labels['thu'] = 'Πεμπ';
$labels['fri'] = 'ΠαÏ';
$labels['sat'] = 'Σαβ';
+
+// weekdays long
$labels['sunday'] = 'ΚυÏιακή';
$labels['monday'] = 'ΔευτέÏα';
$labels['tuesday'] = 'ΤÏίτη';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'ΤετάÏτη';
$labels['thursday'] = 'Πέμπτη';
$labels['friday'] = 'ΠαÏασκευή';
$labels['saturday'] = 'Σάββατο';
+
+// months short
$labels['jan'] = 'Ιαν';
$labels['feb'] = 'Φεβ';
$labels['mar'] = 'ΜαÏ';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Σεπ';
$labels['oct'] = 'Οκτ';
$labels['nov'] = 'Îοε';
$labels['dec'] = 'Δεκ';
+
+// months long
$labels['longjan'] = 'ΙανουάÏιος';
$labels['longfeb'] = 'ΦεβÏουάÏιος';
$labels['longmar'] = 'ΜάÏτιος';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'ΣεπτέμβÏιος';
$labels['longoct'] = 'ΟκτώβÏιος';
$labels['longnov'] = 'ÎοέμβÏιος';
$labels['longdec'] = 'ΔεκέμβÏιος';
+
$labels['today'] = 'ΣήμεÏα';
+
+// toolbar buttons
$labels['refresh'] = 'Ανανέωση';
$labels['checkmail'] = 'Έλεγχος για νέα μηνÏματα';
$labels['compose'] = 'ΔημιουÏγία μηνÏματος';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'ΠεÏισσότεÏες ενέÏγειες...';
$labels['more'] = 'ΠεÏισσότεÏα';
$labels['back'] = 'ΕπιστÏοφή';
$labels['options'] = 'Επιλογές';
+
$labels['select'] = 'Επιλέξτε';
$labels['all'] = 'Όλα';
$labels['none'] = 'Κανένα';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Ανάπτυξη όλων';
$labels['expand-unread'] = 'Ανάπτυξη των μη αναγνωσμένων';
$labels['collapse-all'] = 'ΣÏμπτυξη όλων';
$labels['threaded'] = 'Θεματοποιημένα';
+
$labels['autoexpand_threads'] = 'Ανάπτυξη θεματοποιημένων μηνυμάτων';
$labels['do_expand'] = 'όλα τα θέματα';
$labels['expand_only_unread'] = 'μόνο με τα μη αναγνωσμένα μηνÏματα';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Στήλες';
$labels['listsorting'] = 'Ταξινόμηση στηλών';
$labels['listorder'] = 'ΣειÏά ταξινόμησης';
$labels['listmode'] = 'ΠÏοβολή σε λίστα';
+
$labels['folderactions'] = 'ΕνέÏγειες στους φακέλους';
$labels['compact'] = 'Συμπίεση';
$labels['empty'] = 'Άδειασμα';
-$labels['importmessages'] = 'Εισαγωγή μηνυμάτων';
+
$labels['quota'] = 'ΧÏήση δίσκου';
$labels['unknown'] = 'άγνωστο';
$labels['unlimited'] = 'απεÏιόÏιστο';
+
$labels['quicksearch'] = 'ΓÏήγοÏη Αναζήτηση';
$labels['resetsearch'] = 'ΕπαναφοÏά Αναζήτησης';
$labels['searchmod'] = 'Aλλαγή αναζήτησης';
$labels['msgtext'] = 'Σε όλο το μήνυμα';
$labels['body'] = 'Σώμα';
-$labels['type'] = 'Τυπος';
-$labels['namex'] = 'όνομα';
+
$labels['openinextwin'] = 'Άνοιγμα σε νέο παÏάθυÏο';
$labels['emlsave'] = 'Λήψη αÏχείου (.eml)';
$labels['changeformattext'] = 'Εμφάνιση σε μοÏφή Î±Ï€Î»Î¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…';
$labels['changeformathtml'] = 'Εμφάνιση σε μοÏφή HTML';
+
+// message compose
$labels['editasnew'] = 'ΕπεξεÏγασία σαν νέο';
$labels['send'] = 'Αποστολή';
$labels['sendmessage'] = 'Αποστολή μηνÏματος';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'ΑναφοÏά ΠαÏάδοσης';
$labels['dsn'] = 'Κατάσταση αναφοÏάς παÏάδοσης';
$labels['mailreplyintro'] = 'Στις $date, $sender έγÏαψε:';
$labels['originalmessage'] = 'ΑÏχικό μήνυμα';
+
$labels['editidents'] = 'ΕπεξεÏγασία ταυτοτήτων';
$labels['spellcheck'] = 'Συλλαβισμός';
$labels['checkspelling'] = 'Έλεγχος οÏθογÏαφίας';
$labels['resumeediting'] = 'Συνέχεια επεξεÏγασίας';
$labels['revertto'] = 'ΕπαναφοÏά στο';
+
$labels['attach'] = 'ΕπισÏναψη';
$labels['attachments'] = 'Συνημμένα';
$labels['upload'] = 'ΦόÏτωση';
$labels['uploadprogress'] = '$percent ($current από $total)';
$labels['close'] = 'Κλείσιμο';
$labels['messageoptions'] = 'Επιλογές μηνÏματος';
+
$labels['low'] = 'Χαμηλή';
$labels['lowest'] = 'ΧαμηλότεÏη';
$labels['normal'] = 'Κανονική';
$labels['high'] = 'Υψηλή';
$labels['highest'] = 'Μέγιστη δυνατή';
+
$labels['nosubject'] = '(χωÏίς θέμα)';
$labels['showimages'] = 'ΠÏοβολή εικόνων';
$labels['alwaysshow'] = 'Îα Ï€Ïοβάλλονται πάντα οι εικόνες που αποστέλλονται από τον $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Αυτό το μήνυμα έχει σημανθεί σ
$labels['andnmore'] = '$nr πεÏισσότεÏα...';
$labels['togglemoreheaders'] = 'Εμφάνιση πεÏισσότεÏων κεφαλίδων';
$labels['togglefullheaders'] = 'Εμφάνιση ακατέÏγαστων κεφαλίδων μηνÏματος';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Απλό κείμενο';
$labels['savesentmessagein'] = 'Αποθήκευση απεσταλμένου στο φάκελο';
$labels['dontsave'] = 'να μην αποθηκευθεί';
$labels['maxuploadsize'] = 'Το μέγιστο επιτÏεπόμενο μέγεθος αÏχείου είναι $size';
+
$labels['addcc'] = 'ΠÏοσθήκη ΠαÏαλήπτη Κοινοποίησης';
$labels['addbcc'] = 'ΠÏοσθήκη ΠαÏαλήπτη ΚÏυφής Κοινοποίησης';
$labels['addreplyto'] = 'ΠÏοσθήκη Απάντησης-Στο';
$labels['addfollowupto'] = 'ΠÏοσθήκη Σε συνέχεια του';
+
+// mdn
$labels['mdnrequest'] = 'Ο αποστολέας Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μηνÏματος, έχει ζητήσει να ειδοποιηθεί όταν θα το διαβάσετε. Θέλετε να επιτÏέψετε την ενημέÏωσή του;';
$labels['receiptread'] = 'ΑναφοÏά παÏάδοσης (διαβάστε την)';
$labels['yourmessage'] = 'Αυτό είναι μια αναφοÏά παÏάδοσης για το μήνυμά σας';
$labels['receiptnote'] = 'Σημείωση: Αυτή η αναφοÏά επιβεβαιώνει μόνο ότι το μήνυμά σας εμφανίστηκε στον υπολογιστή του παÏαλήπτη. Δεν επιβεβαιώνει ότι ο παÏαλήπτης έχει διαβάσει ή έχει κατανοήσει το πεÏιεχόμενό του.';
+
+// address boook
$labels['name'] = 'Εμφανιζόμενο όνομα';
$labels['firstname'] = 'Όνομα';
$labels['surname'] = 'Επώνυμο';
@@ -262,6 +301,7 @@ $labels['search'] = 'Αναζήτηση';
$labels['advsearch'] = 'ΠÏοηγμένη Αναζήτηση';
$labels['advanced'] = 'ΠÏοχωÏημένες Ïυθμίσεις';
$labels['other'] = 'Άλλα';
+
$labels['typehome'] = 'Οικία';
$labels['typework'] = 'ΕÏγασία';
$labels['typeother'] = 'Άλλα';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Υπάλληλος';
$labels['typehomepage'] = 'ΑÏχική Σελίδα';
$labels['typeblog'] = 'Ιστολόγιο';
$labels['typeprofile'] = 'ΠÏοφίλ';
+
$labels['addfield'] = 'ΠÏοσθήκη πεδίου...';
$labels['addcontact'] = 'ΠÏοσθήκη νέας επαφής';
$labels['editcontact'] = 'ΕπεξεÏγασία επαφής';
$labels['contacts'] = 'Επαφές';
$labels['contactproperties'] = 'Ιδιότητες επαφών';
$labels['personalinfo'] = 'ΠÏοσωπικές πληÏοφοÏίες';
+
$labels['edit'] = 'ΕπεξεÏγασία';
$labels['cancel'] = 'ΑκÏÏωση';
$labels['save'] = 'Αποθήκευση';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Μετονομασία';
$labels['addphoto'] = 'ΠÏοσθήκη';
$labels['replacephoto'] = 'Αντικατάσταση';
$labels['uploadphoto'] = 'ΦόÏτωση εικόνας';
+
$labels['newcontact'] = 'ΔημιουÏγία νέας κάÏτας επαφής';
$labels['deletecontact'] = 'ΔιαγÏαφή επιλεγμένων επαφών';
$labels['composeto'] = 'ΣÏνθεση μηνÏματος Ï€Ïος';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'ΔημιουÏγία νέας Ομάδας επαÏ
$labels['grouprename'] = 'Μετονομασία ομάδας';
$labels['groupdelete'] = 'ΔιαγÏαφή ομάδας';
$labels['groupremoveselected'] = 'ΑφαίÏεση επιλεγμένων επαφών από την ομάδα';
+
$labels['previouspage'] = 'Εμφάνιση Ï€ÏοηγοÏμενης σελίδας';
$labels['firstpage'] = 'Εμφάνιση της Ï€Ïώτης σελίδας';
$labels['nextpage'] = 'Εμφάνιση επόμενης σελίδας';
$labels['lastpage'] = 'Εμφάνιση της τελευταίας σελίδας';
+
$labels['group'] = 'Ομάδα';
$labels['groups'] = 'Ομάδες';
-$labels['listgroup'] = 'Μέλη της ομάδας λίστας';
$labels['personaladrbook'] = 'ΠÏοσωπικές ΔιυθÏνσεις';
+
$labels['searchsave'] = 'Αποθήκευση αναζήτησης';
$labels['searchdelete'] = 'ΔιαγÏαφή αποθηκευμένης αναζήτησης';
+
$labels['import'] = 'Εισαγωγή';
$labels['importcontacts'] = 'Εισαγωγή επαφών';
$labels['importfromfile'] = 'Εισαγωγή από το αÏχείο:';
+$labels['importtarget'] = 'ΠÏοσθήκη νέων επαφών στο βιβλίο διευθÏνσεων:';
$labels['importreplace'] = 'Αντικατάσταση όλου του βιβλίου διευθÏνσεων';
$labels['importdesc'] = 'ΜποÏείτε να ανεβάσετε επαφές από ένα υπάÏχον βιβλίο διευθÏνσεων.<br/>ΥποστηÏίζεται η εισαγωγή διευθÏνσεων από αÏχεία Ï„Ïπου <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ή CSV (διαχωÏισμένα με κόμμα).';
$labels['done'] = 'ΟλοκληÏώθηκε';
+
+// settings
$labels['settingsfor'] = 'Ρυθμίσεις για';
$labels['about'] = 'Σχετικά';
$labels['preferences'] = 'ΠÏοτιμήσεις';
$labels['userpreferences'] = 'ΠÏοτιμήσεις χÏήστη';
$labels['editpreferences'] = 'ΕπεξεÏγασία Ï€Ïοτιμήσεων χÏήστη';
+
$labels['identities'] = 'Ταυτότητες';
$labels['manageidentities'] = 'ΔιαχείÏιση ταυτοτήτων για αυτόν το λογαÏιασμό';
$labels['newidentity'] = 'Îέα ταυτότητα';
+
$labels['newitem'] = 'Îέο αντικείμενο';
$labels['edititem'] = 'ΕπεξεÏγασία αντικειμένου';
+
$labels['preferhtml'] = 'ΠÏοβολή σε HTML';
$labels['defaultcharset'] = 'ΠÏοεπιλεγμένη κωδικοποίηση χαÏακτήÏων';
$labels['htmlmessage'] = 'Μήνυμα σε μοÏφή HTML';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Οι λέξεις που πεÏιέχουν Î
$labels['spellcheckignorecaps'] = 'Οι λέξεις γÏαμμένες με ΚΕΦΑΛΑΙΑ να αγνοοÏνται';
$labels['addtodict'] = 'ΠÏοσθήκη στο λεξικό';
$labels['mailtoprotohandler'] = 'ΚαταχώÏηση διαχείÏισης Ï€Ïωτοκόλλου δεσμών mailto:';
-$labels['standardwindows'] = 'ΧειÏιστείτε τα αναδυόμενα παÏάθυÏα ως Ï€Ïότυπο των Windows';
$labels['forwardmode'] = 'ΠÏοώθηση μηνυμάτων';
$labels['inline'] = 'με εσνωμάτωση';
$labels['asattachment'] = 'σαν επισÏναψη';
+
$labels['folder'] = 'Φάκελος';
$labels['folders'] = 'Φάκελοι';
$labels['foldername'] = 'Όνομα φακέλου';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'ΤÏπος φακέλου';
$labels['personalfolder'] = 'ΠÏοσωπικός φάκελος';
$labels['otherfolder'] = 'Φάκελοι άλλων χÏηστών';
$labels['sharedfolder'] = 'ΚοινόχÏηστος φάκελος';
+
$labels['sortby'] = 'Ταξινόμηση κατά';
$labels['sortasc'] = 'ΑÏξουσα ταξινόμηση';
$labels['sortdesc'] = 'Φθίνουσα ταξινόμηση';
$labels['undo'] = 'ΑναίÏεση';
+
$labels['installedplugins'] = 'Εγκατεστημένα Ï€Ïόσθετα';
$labels['plugin'] = 'ΠÏόσθετο';
$labels['version'] = 'Έκδοση';
$labels['source'] = 'ΠÏοέλευση';
$labels['license'] = 'Άδεια χÏήσης';
$labels['support'] = 'ΥποστήÏιξη';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Αγγλικά';
$labels['westerneuropean'] = 'Δυτικής ΕυÏώπης';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'Βιετναμέζικα';
$labels['japanese'] = 'Ιαπωνικά';
$labels['korean'] = 'ΚοÏεατικά';
$labels['chinese'] = 'Κινεζικά';
+
?>
diff --git a/program/localization/el_GR/messages.inc b/program/localization/el_GR/messages.inc
index be6639d68..dc2499d8b 100644
--- a/program/localization/el_GR/messages.inc
+++ b/program/localization/el_GR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Έχει Ï€ÏοκÏψει κάποιο σφάλμα!';
$messages['loginfailed'] = 'Είσοδος απέτυχε';
$messages['cookiesdisabled'] = 'Ο πεÏιηγητής σας (browser) δεν αποδέχεται cookies';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Η ζητοÏμενη επαφή δεν βÏέθ
$messages['contactsearchonly'] = 'Εισάγετε κάποιους ÏŒÏους Ï€Ïος αναζήτηση';
$messages['sendingfailed'] = 'Αποστολή μηνÏματος απέτυχε';
$messages['senttooquickly'] = 'ΠαÏακαλώ πεÏιμένετε $sec δευτεÏόλεπτα, Ï€Ïιν στείλετε το μήνυμα';
+$messages['errorsavingsent'] = 'ΠαÏουσιάστηκε σφάλμα, κατά την αποθήκευση του απεσταλμένου μηνÏματος';
+$messages['errorsaving'] = 'ΠαÏουσιάστηκε σφάλμα κατά την αποθήκευση';
$messages['errormoving'] = 'Το μήνυμα δε μποÏοÏσε να μετακινηθεί';
$messages['errorcopying'] = 'Δεν είναι δυνατή η αντιγÏαφή του μηνÏματος/των';
$messages['errordeleting'] = 'Το μήνυμα δε μποÏοÏσε να διαγÏαφεί';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Μετακίνηση διαμοÏφώσεων κειÎ
$messages['messageopenerror'] = 'Η φόÏτωση μηνυμάτων από τον διακομιστή απέτυχε';
$messages['fileuploaderror'] = 'Ανέβασμα αÏχείου απέτυχε';
$messages['filesizeerror'] = 'Το ανεβασμένο αÏχείο ξεπεÏνάει το μέγιστο μέγεθος των $size';
-$messages['copysuccess'] = 'Επιτυχής αντιγÏαφή $ επαφών αÏιθ..';
-$messages['movesuccess'] = 'Με επιτυχία μεταφέÏθηκαν $ αÏιθ. επαφές.';
-$messages['copyerror'] = 'Αποτυχία αντιγÏαφής επαφών.';
-$messages['moveerror'] = 'Δεν μποÏοÏσε να κινηθεί καμία επαφή.';
+$messages['copysuccess'] = 'Επιτυχής αντιγÏαφή $nr διευθÏνσεων';
+$messages['copyerror'] = 'Αποτυχία αντιγÏαφής διευθÏνσεων';
$messages['sourceisreadonly'] = 'Η διεÏθυνση έχει μόνο δικαίωμα ανάγνωσης';
$messages['errorsavingcontact'] = 'Αποθήκευση επαφής απέτυχε';
$messages['movingmessage'] = 'Μετακίνηση μηνÏματος...';
$messages['copyingmessage'] = 'ΑντιγÏαφή μηνυμάτων...';
$messages['copyingcontact'] = 'ΑντιγÏαφή επαφών...';
-$messages['movingcontact'] = 'Μετακίνηση επαφής(ων)...';
$messages['deletingmessage'] = 'ΔιαγÏαφή μηνυμάτων...';
$messages['markingmessage'] = 'Σήμανση μηνυμάτων...';
$messages['addingmember'] = 'ΠÏοσθήκη επαφών στην ομάδα...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Εισαγωγή, παÏακαλώ πεÏιμένετ
$messages['importformaterror'] = 'Η εισαγωγή απέτυχε! Το αÏχείο δεν είναι έγκυÏο εισαγωγής δεδομένων.';
$messages['importconfirm'] = '<b>Εισήχθησαν $inserted επαφές με επιτυχία</b>';
$messages['importconfirmskipped'] = '<b>ΠαÏαλήφθηκαν $skipped υπάÏχοντα αντικείμενα</b>';
-$messages['importmessagesuccess'] = 'Επιτυχής εισαγωγή $nr μηνυμάτων';
-$messages['importmessageerror'] = 'Η εισαγωγή απέτυχε! Το αÏχείο δεν είναι έγκυÏο εισαγωγής δεδομένων.';
$messages['opnotpermitted'] = 'Η λειτουÏγία δεν επιτÏέπεται!';
$messages['nofromaddress'] = 'Στην επιλεγμένη ταυτότητα, λείπει η email διεÏθυνση';
$messages['editorwarning'] = 'Η μετάβαση στην επεξεÏγασία Î±Ï€Î»Î¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï… θα Ï€Ïοκαλέσει κατάÏγηση της μοÏφοποίησης. Είστε βέβαιοι πως θέλετε να συνεχίσετε;';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'Σφάλμα SMTP: $msg';
$messages['emailformaterror'] = 'Λανθασμένη διεÏθνση email: $email';
$messages['toomanyrecipients'] = 'Μεγάλο πλήθος αποδεκτών. Μειώστε τον αÏιθμό των αποδεκτών σε $max.';
$messages['maxgroupmembersreached'] = 'Ο αÏιθμός των μελών της ομάδας υπεÏβαίνει τον μέγιστο των $max μελών.';
+$messages['internalerror'] = 'ΠÏοέκυψε ένα εσωτεÏικό σφάλμα. ΠαÏακαλώ δοκιμάστε πάλι.';
$messages['contactdelerror'] = 'Δεν είναι δυνατή η διαγÏαφή της επαφής/ων';
$messages['contactdeleted'] = 'Η επαφή/ές διαγÏάφηκαν με επιτυχία.';
$messages['contactrestoreerror'] = 'Οι διαγÏαφημενη επαφη(ες) δεν μποÏουν να επαναφεÏθουν.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Δεν είναι δυνατή η δημιου
$messages['messagetoobig'] = 'Το τμήμα μήνυματος είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ για επεξεÏγασια. ';
$messages['attachmentvalidationerror'] = 'ΠΡΟΕΙΔΟΠΟΊΗΣΗ! Αυτή η κατάσχεση είναι Ïποπτη, επειδή ο Ï„Ïπος δεν ταιÏιάζει με τον Ï„Ïπο που δηλώνεται στο μήνυμα. Εάν δεν εμπιστεÏεστε τον αποστολέα, δεν θα Ï€Ïέπει να το ανοίγετε στο Ï€ÏόγÏαμμα πεÏιήγησης επειδή μποÏεί να πεÏιέχει κακόβουλο πεÏιεχόμενο.<br/><br/><em>Expected: $expected; found: $detected</em> ';
$messages['noscriptwarning'] = 'ΠÏοειδοποίηση : Αυτή η υπηÏεσία webmail απαιτεί Javascript! Για να ΤΟ χÏησιμοποιήσετε ενεÏγοποιήστε τΟ JavaScript στις Ïυθμίσεις του browser σας. ';
+
?>
diff --git a/program/localization/en_GB/labels.inc b/program/localization/en_GB/labels.inc
index c7778e955..275208a98 100644
--- a/program/localization/en_GB/labels.inc
+++ b/program/localization/en_GB/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Welcome to $product';
$labels['username'] = 'Username';
$labels['password'] = 'Password';
$labels['server'] = 'Server';
$labels['login'] = 'Login';
+
+// taskbar
$labels['logout'] = 'Logout';
$labels['mail'] = 'Mail';
$labels['settings'] = 'Settings';
$labels['addressbook'] = 'Address Book';
+
+// mailbox names
$labels['inbox'] = 'Inbox';
$labels['drafts'] = 'Drafts';
$labels['sent'] = 'Sent';
$labels['trash'] = 'Deleted Items';
$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Subject';
$labels['from'] = 'From';
+$labels['sender'] = 'Sender';
$labels['to'] = 'To';
$labels['cc'] = 'Copy';
$labels['bcc'] = 'Bcc';
@@ -42,20 +53,27 @@ $labels['priority'] = 'Priority';
$labels['organization'] = 'Company';
$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';
+
+// weekdays short
$labels['sun'] = 'Sun';
$labels['mon'] = 'Mon';
$labels['tue'] = 'Tue';
@@ -63,6 +81,8 @@ $labels['wed'] = 'Wed';
$labels['thu'] = 'Thu';
$labels['fri'] = 'Fri';
$labels['sat'] = 'Sat';
+
+// weekdays long
$labels['sunday'] = 'Sunday';
$labels['monday'] = 'Monday';
$labels['tuesday'] = 'Tuesday';
@@ -70,6 +90,8 @@ $labels['wednesday'] = 'Wednesday';
$labels['thursday'] = 'Thursday';
$labels['friday'] = 'Friday';
$labels['saturday'] = 'Saturday';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -82,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'January';
$labels['longfeb'] = 'February';
$labels['longmar'] = 'March';
@@ -94,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'October';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Today';
+
+// toolbar buttons
$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Check for new messages';
$labels['compose'] = 'Compose';
@@ -127,6 +154,7 @@ $labels['moreactions'] = 'More actions...';
$labels['more'] = 'More';
$labels['back'] = 'Back';
$labels['options'] = 'Options';
+
$labels['select'] = 'Select';
$labels['all'] = 'All';
$labels['none'] = 'None';
@@ -134,6 +162,7 @@ $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';
@@ -144,6 +173,7 @@ $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';
@@ -159,18 +189,27 @@ $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['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['openinextwin'] = 'Open in new window';
$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Edit as new';
$labels['send'] = 'Send';
$labels['sendmessage'] = 'Send now';
@@ -182,22 +221,26 @@ $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['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';
@@ -205,19 +248,25 @@ $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';
+
+// mdn
$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
$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.';
+
+// address boook
$labels['name'] = 'Display Name';
$labels['firstname'] = 'First Name';
$labels['surname'] = 'Last Name';
@@ -252,6 +301,7 @@ $labels['search'] = 'Search';
$labels['advsearch'] = 'Advanced Search';
$labels['advanced'] = 'Advanced';
$labels['other'] = 'Other';
+
$labels['typehome'] = 'Home';
$labels['typework'] = 'Work';
$labels['typeother'] = 'Other';
@@ -266,12 +316,14 @@ $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';
@@ -280,45 +332,60 @@ $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 set';
$labels['firstpage'] = 'Show first set';
$labels['nextpage'] = 'Show next set';
$labels['lastpage'] = 'Show last set';
+
$labels['group'] = 'Group';
$labels['groups'] = 'Groups';
$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 new contacts to address book:';
$labels['importreplace'] = 'Replace the entire address book';
$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';
+
+// settings
$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';
@@ -335,6 +402,7 @@ $labels['htmleditor'] = 'Compose HTML messages';
$labels['htmlonreply'] = 'on reply to HTML message only';
$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';
@@ -407,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
$labels['forwardmode'] = 'Messages forwarding';
$labels['inline'] = 'inline';
$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Folders';
$labels['foldername'] = 'Folder name';
@@ -427,20 +496,26 @@ $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'] = 'Licence';
$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'English';
$labels['westerneuropean'] = 'Western European';
@@ -459,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamese';
$labels['japanese'] = 'Japanese';
$labels['korean'] = 'Korean';
$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/en_GB/messages.inc b/program/localization/en_GB/messages.inc
index 5b6a8f7f2..e5c873c94 100644
--- a/program/localization/en_GB/messages.inc
+++ b/program/localization/en_GB/messages.inc
@@ -15,7 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'An error occured.';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred.';
$messages['loginfailed'] = 'Login failed.';
$messages['cookiesdisabled'] = 'Your browser does not accept cookies.';
$messages['sessionerror'] = 'Your session is invalid or has expired.';
@@ -26,6 +28,8 @@ $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.';
@@ -52,6 +56,8 @@ $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).';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Removing formatting...';
$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'File upload failed.';
$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
$messages['sourceisreadonly'] = 'This address book is read-only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(s)...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Incorrect e-mail address: $email';
$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error 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).';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Unable to create/move folder into selected par
$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/csv2vcard.inc b/program/localization/en_US/csv2vcard.inc
index e7b86795b..eb884f59a 100644
--- a/program/localization/en_US/csv2vcard.inc
+++ b/program/localization/en_US/csv2vcard.inc
@@ -5,7 +5,7 @@
| localization/<lang>/csv2vcard.inc |
| |
| Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -91,20 +91,3 @@ $map['work_phone'] = "Work Phone";
$map['work_address'] = "Work Address";
$map['work_country'] = "Work Country";
$map['work_zipcode'] = "Work ZipCode";
-
-// Atmail
-$map['date_of_birth'] = "Date of Birth";
-$map['email'] = "Email";
-$map['home_mobile'] = "Home Mobile";
-$map['home_zip'] = "Home Zip";
-$map['info'] = "Info";
-$map['user_photo'] = "User Photo";
-$map['url'] = "URL";
-$map['work_city'] = "Work City";
-$map['work_company'] = "Work Company";
-$map['work_dept'] = "Work Dept";
-$map['work_fax'] = "Work Fax";
-$map['work_mobile'] = "Work Mobile";
-$map['work_state'] = "Work State";
-$map['work_title'] = "Work Title";
-$map['work_zip'] = "Work Zip";
diff --git a/program/localization/en_US/labels.inc b/program/localization/en_US/labels.inc
index 8f221a3a9..1a753ec12 100644
--- a/program/localization/en_US/labels.inc
+++ b/program/localization/en_US/labels.inc
@@ -5,7 +5,7 @@
| localization/<lang>/labels.inc |
| |
| Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -37,7 +37,6 @@ $labels['drafts'] = 'Drafts';
$labels['sent'] = 'Sent';
$labels['trash'] = 'Trash';
$labels['junk'] = 'Junk';
-$labels['show_real_foldernames'] = 'Show real names for special folders';
// message listing
$labels['subject'] = 'Subject';
@@ -65,7 +64,6 @@ $labels['copy'] = 'Copy';
$labels['move'] = 'Move';
$labels['moveto'] = 'Move to...';
$labels['download'] = 'Download';
-$labels['open'] = 'Open';
$labels['showattachment'] = 'Show';
$labels['showanyway'] = 'Show it anyway';
@@ -163,7 +161,6 @@ $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';
@@ -194,7 +191,6 @@ $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';
@@ -205,13 +201,9 @@ $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';
// message compose
$labels['editasnew'] = 'Edit as new';
@@ -232,15 +224,6 @@ $labels['checkspelling'] = 'Check spelling';
$labels['resumeediting'] = 'Resume editing';
$labels['revertto'] = 'Revert to';
-$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';
@@ -352,8 +335,6 @@ $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';
@@ -367,7 +348,6 @@ $labels['lastpage'] = 'Show last page';
$labels['group'] = 'Group';
$labels['groups'] = 'Groups';
-$labels['listgroup'] = 'List group members';
$labels['personaladrbook'] = 'Personal Addresses';
$labels['searchsave'] = 'Save search';
@@ -376,11 +356,8 @@ $labels['searchdelete'] = 'Delete search';
$labels['import'] = 'Import';
$labels['importcontacts'] = 'Import contacts';
$labels['importfromfile'] = 'Import from file:';
-$labels['importtarget'] = 'Add contacts to';
+$labels['importtarget'] = 'Add new contacts to address book:';
$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';
@@ -419,7 +396,6 @@ $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';
@@ -489,13 +465,9 @@ $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';
diff --git a/program/localization/en_US/messages.inc b/program/localization/en_US/messages.inc
index 033c820d1..a5e3b4ae2 100644
--- a/program/localization/en_US/messages.inc
+++ b/program/localization/en_US/messages.inc
@@ -5,7 +5,7 @@
| localization/<lang>/messages.inc |
| |
| Localization file of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -28,8 +28,6 @@ $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.';
@@ -46,8 +44,6 @@ $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.';
@@ -103,16 +99,13 @@ $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['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
$messages['sourceisreadonly'] = 'This address source is read only.';
$messages['errorsavingcontact'] = 'Could not save the contact address.';
$messages['movingmessage'] = 'Moving message(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...';
@@ -131,8 +124,6 @@ $messages['importwait'] = 'Importing, please wait...';
$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
-$messages['importmessagesuccess'] = 'Successfully imported $nr messages';
-$messages['importmessageerror'] = 'Import failed! The uploaded file is not a valid message or mailbox file';
$messages['opnotpermitted'] = 'Operation not permitted!';
$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
diff --git a/program/localization/eo/labels.inc b/program/localization/eo/labels.inc
index 0a55d36ae..c088fc50e 100644
--- a/program/localization/eo/labels.inc
+++ b/program/localization/eo/labels.inc
@@ -15,23 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bonvenon al $product';
$labels['username'] = 'Uzantnomo';
$labels['password'] = 'Pasvorto';
$labels['server'] = 'Servilo';
$labels['login'] = 'Ensaluti';
+
+// taskbar
$labels['logout'] = 'Elsaluti';
$labels['mail'] = 'RetpoÅto';
$labels['settings'] = 'Agordoj';
$labels['addressbook'] = 'Adresaro';
+
+// mailbox names
$labels['inbox'] = 'Ricevitujo';
$labels['drafts'] = 'Malnetujo';
$labels['sent'] = 'Senditujo';
$labels['trash'] = 'Rubujo';
$labels['junk'] = 'Spamujo';
+
+// message listing
$labels['subject'] = 'Temo';
$labels['from'] = 'Sendanto';
-$labels['sender'] = 'Sendinto';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Ricevanto';
$labels['cc'] = 'Kopio';
$labels['bcc'] = 'Blindkopio';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Prioritato';
$labels['organization'] = 'Organizo';
$labels['readstatus'] = 'Legis statuson';
$labels['listoptions'] = 'List-agordoj...';
+
$labels['mailboxlist'] = 'Dosierujoj';
$labels['messagesfromto'] = 'MesaÄoj ekde $from Äis $to de $count';
$labels['threadsfromto'] = 'Fadenoj $from al $to de $count';
$labels['messagenrof'] = 'MesaÄo $nr-a de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Kopii';
$labels['move'] = 'Movi';
$labels['moveto'] = 'transloku al...';
$labels['download'] = 'elÅutu';
-$labels['showattachment'] = 'Montri';
-$labels['showanyway'] = 'Tamen montri Äin';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Dosiernomo';
$labels['filesize'] = 'Dosiergrando';
+
$labels['addtoaddressbook'] = 'Aldonu al adresaro';
+
+// weekdays short
$labels['sun'] = 'Dim';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Ä´aÅ­';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Dimanĉo';
$labels['monday'] = 'Lundo';
$labels['tuesday'] = 'Mardo';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Merkredo';
$labels['thursday'] = 'Ä´aÅ­do';
$labels['friday'] = 'Vendredo';
$labels['saturday'] = 'Sabato';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januaro';
$labels['longfeb'] = 'Februaro';
$labels['longmar'] = 'Marto';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'Septembro';
$labels['longoct'] = 'Oktobro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Decembro';
+
$labels['today'] = 'HodiaÅ­';
+
+// toolbar buttons
$labels['refresh'] = 'Aktualigi';
$labels['checkmail'] = 'Kontroli por novaj mesaÄoj';
$labels['compose'] = 'Verki';
@@ -128,6 +154,7 @@ $labels['moreactions'] = 'Pliaj agoj';
$labels['more'] = 'Pli';
$labels['back'] = 'MalantaÅ­en';
$labels['options'] = 'Agordoj';
+
$labels['select'] = 'Elektu';
$labels['all'] = 'Ĉion';
$labels['none'] = 'Nenion';
@@ -135,8 +162,9 @@ $labels['currpage'] = 'Nuna paÄo';
$labels['unread'] = 'Nelegitan';
$labels['flagged'] = 'Markita';
$labels['unanswered'] = 'Nerespondita';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Forigita';
-$labels['undeleted'] = 'Ne forigita';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Inversigu';
$labels['filter'] = 'Filtru';
$labels['list'] = 'Listo';
@@ -145,6 +173,7 @@ $labels['expand-all'] = 'Malfaldi ĉion';
$labels['expand-unread'] = 'Malfaldi Nelegitajn';
$labels['collapse-all'] = 'Faldi ĉion';
$labels['threaded'] = 'Fadenita';
+
$labels['autoexpand_threads'] = 'Malfaldi mesaÄ-fadenojn';
$labels['do_expand'] = 'Ĉiuj fadenoj';
$labels['expand_only_unread'] = 'Nur kun nelegitaj mesaÄoj';
@@ -159,21 +188,30 @@ $labels['desc'] = 'malkreskante';
$labels['listcolumns'] = 'List-rubrikoj';
$labels['listsorting'] = 'Ordig-rubriko';
$labels['listorder'] = 'Ordig-ordo';
-$labels['listmode'] = 'Lista vido';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'Dosierujo-agoj';
$labels['compact'] = 'Kompakta';
$labels['empty'] = 'Malplena';
+
$labels['quota'] = 'Diskuzo';
$labels['unknown'] = 'nekonata';
$labels['unlimited'] = 'senlima';
+
$labels['quicksearch'] = 'Rapida serĉo';
$labels['resetsearch'] = 'Vakigu serĉon';
$labels['searchmod'] = 'Serĉ-opcioj';
$labels['msgtext'] = 'Tuta mesaÄo';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Malfermu en nova fenestro';
$labels['emlsave'] = 'ElÅutu (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Redaktu kiel nova';
-$labels['send'] = 'Sendi';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Sendu mesaÄon';
$labels['savemessage'] = 'Savu ĉi tiun malneton';
$labels['addattachment'] = 'Alfiksu dosieron';
@@ -183,42 +221,52 @@ $labels['returnreceipt'] = 'Return receipt';
$labels['dsn'] = 'Ricev-status-konfirmo';
$labels['mailreplyintro'] = 'Je $date, $sender skribis:';
$labels['originalmessage'] = 'Originala mesaÄo';
+
$labels['editidents'] = 'Redaktu identojn';
$labels['spellcheck'] = 'Literumu';
$labels['checkspelling'] = 'Kontrolu literumadon';
$labels['resumeediting'] = 'Rekomencu redaktadon';
$labels['revertto'] = 'Reiru al';
+
$labels['attach'] = 'Alfiksu';
$labels['attachments'] = 'Alfiksaĵoj';
$labels['upload'] = 'AlÅutu';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Fermi';
$labels['messageoptions'] = 'MesaÄ-agordoj...';
+
$labels['low'] = 'Malalta';
$labels['lowest'] = 'Plej malalta';
$labels['normal'] = 'Normala';
$labels['high'] = 'Alta';
$labels['highest'] = 'Plej alta';
+
$labels['nosubject'] = '(sen temo)';
$labels['showimages'] = 'Montru bildojn';
$labels['alwaysshow'] = 'Ĉiam montru bildojn de $sender';
$labels['isdraft'] = 'Ĉi-mesaÄo estas malneto';
-$labels['andnmore'] = '$nr pli';
-$labels['togglemoreheaders'] = 'Montri pli multajn mesaÄtitolojn';
-$labels['togglefullheaders'] = 'Maligi ĉu mesaÄaj titoloj nudu';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Plata teksto';
$labels['savesentmessagein'] = 'Konservu senditan mesaÄon en';
$labels['dontsave'] = 'Ne konservu';
$labels['maxuploadsize'] = 'Maksimuma permesata dosier-grando estas $size';
+
$labels['addcc'] = 'Aldonu kopi-ricevanton';
$labels['addbcc'] = 'Aldonu blindan kopi-ricevanton';
$labels['addreplyto'] = 'Aldonu Respondu-Al';
$labels['addfollowupto'] = 'Aldonu Respondu-Al';
+
+// mdn
$labels['mdnrequest'] = 'La sendinto de ĉi tiu mesaÄo petis sciigon de kiam vi legas Äin. Ĉu volas sciigi la sendinton?';
$labels['receiptread'] = 'Legokonfirmo';
$labels['yourmessage'] = 'Jen estas legokonfirmo de via mesaÄo';
$labels['receiptnote'] = 'Notu: Ĉi tiu konfirmo nur asertas ke la mesaÄo estis malfermita je la komputilo de la ricevinto. Ne estas garantio ke la ricevinto legis aÅ­ komprenis la enhavon.';
+
+// address boook
$labels['name'] = 'Nomo';
$labels['firstname'] = 'AntaÅ­nomo';
$labels['surname'] = 'Familia nomo';
@@ -229,7 +277,7 @@ $labels['nickname'] = 'Kromnomo';
$labels['jobtitle'] = 'Postena titolo';
$labels['department'] = 'Departemento';
$labels['gender'] = 'Sekso';
-$labels['maidenname'] = 'FraÅ­la nomo';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'RetpoÅto';
$labels['phone'] = 'Telefono';
$labels['address'] = 'Adreso';
@@ -253,6 +301,7 @@ $labels['search'] = 'Serĉu';
$labels['advsearch'] = 'Detala sercô';
$labels['advanced'] = 'Altnivela';
$labels['other'] = 'Alia';
+
$labels['typehome'] = 'Hejmo';
$labels['typework'] = 'Laboro';
$labels['typeother'] = 'Alia';
@@ -262,16 +311,19 @@ $labels['typehomefax'] = 'Hejma faksilo';
$labels['typeworkfax'] = 'Laboreja faksilo';
$labels['typecar'] = 'AÅ­tomobilo';
$labels['typepager'] = 'Televokilo';
+$labels['typevideo'] = 'Video';
$labels['typeassistant'] = 'Asistanto';
$labels['typehomepage'] = 'HejmpaÄo';
$labels['typeblog'] = 'Blogo';
$labels['typeprofile'] = 'Profilo';
+
$labels['addfield'] = 'Aldonu kampon...';
$labels['addcontact'] = 'Aldonu kontakton';
$labels['editcontact'] = 'Redaktu kontakton';
$labels['contacts'] = 'Kontaktoj';
$labels['contactproperties'] = 'Kontakt-informoj';
$labels['personalinfo'] = 'Personaj informoj';
+
$labels['edit'] = 'Redaktu';
$labels['cancel'] = 'Nuligi';
$labels['save'] = 'Konservi';
@@ -280,38 +332,77 @@ $labels['rename'] = 'Alinomu';
$labels['addphoto'] = 'Aldonu';
$labels['replacephoto'] = 'AnstataÅ­u';
$labels['uploadphoto'] = 'AlÅutu bildon';
+
$labels['newcontact'] = 'Kreu novan kontakton';
$labels['deletecontact'] = 'Forigu elektatajn kontaktojn';
$labels['composeto'] = 'Verku mesaÄon al';
$labels['contactsfromto'] = 'Kontaktoj ekde $from Äis $to de $count';
$labels['print'] = 'Presi';
$labels['export'] = 'Elporti';
+$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'] = 'Montru auntaÅ­an';
$labels['firstpage'] = 'Montru unuan';
$labels['nextpage'] = 'Montru sekvan';
$labels['lastpage'] = 'Montru lastan';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grupoj';
$labels['personaladrbook'] = 'Persona Adresoj';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Preferoj de';
+$labels['about'] = 'About';
$labels['preferences'] = 'Preferoj';
$labels['userpreferences'] = 'Uzant-preferoj';
$labels['editpreferences'] = 'Redaktu uzant-preferojn';
+
$labels['identities'] = 'Identoj';
$labels['manageidentities'] = 'Administru identojn de ĉi tiu konto';
$labels['newidentity'] = 'Nova idento';
+
$labels['newitem'] = 'Nova ero';
$labels['edititem'] = 'Redaktu eron';
+
$labels['preferhtml'] = 'Montru HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML MesaÄo';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Agrablaj Datoj';
$labels['setdefault'] = 'Agordu kiel norma';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Lingvo';
$labels['timezone'] = 'Tempzono';
$labels['pagesize'] = 'MesaÄoj po paÄo';
$labels['signature'] = 'Subskribo';
$labels['dstactive'] = 'Taglumsavado';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Uzado de HTML-redaktilo';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML subskribo';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Montru antaÅ­rigardejon';
$labels['skin'] = 'Interfaco-etoso';
$labels['logoutclear'] = 'Malplenigu rubujon je eliro';
@@ -322,14 +413,69 @@ $labels['mailboxview'] = 'Ricevitujo vido';
$labels['mdnrequests'] = 'Sendanto-sciigoj';
$labels['askuser'] = 'demandu';
$labels['autosend'] = 'sendu aÅ­tomate';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'malatentu';
$labels['readwhendeleted'] = 'Marku mesaÄon kiel legita kiam forigata';
$labels['flagfordeletion'] = 'Marku mesaÄon kiel forigita anstataÅ­ forigi';
+$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'] = 'Montru alfiksitajn bildojn sub la mesaÄo';
$labels['autosavedraft'] = 'AÅ­tomate savu malneton';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'neniam';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'MesaÄoj vidigante';
$labels['messagescomposition'] = 'MesaÄo-verkado';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Dosierujo';
$labels['folders'] = 'Dosierujoj';
$labels['foldername'] = 'Dosierujo-nomo';
@@ -338,7 +484,55 @@ $labels['messagecount'] = 'MesaÄoj';
$labels['create'] = 'Krei';
$labels['createfolder'] = 'Kreu novan dosierujon';
$labels['managefolders'] = 'Administru dosierujon';
+$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'] = 'Ordigu per';
$labels['sortasc'] = 'Ordigu kreskante';
$labels['sortdesc'] = 'Ordigu malkreskante';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/eo/messages.inc b/program/localization/eo/messages.inc
index 17e3f1719..4d72fe54b 100644
--- a/program/localization/eo/messages.inc
+++ b/program/localization/eo/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Eraro okazis!';
$messages['loginfailed'] = 'Malsukcesis ensaluti';
$messages['cookiesdisabled'] = 'Via foliumilo ne akceptas kuketojn';
@@ -23,13 +25,20 @@ $messages['storageerror'] = 'Konekto kun IMAP-servilo malsukcesis';
$messages['servererror'] = 'Servil-eraro!';
$messages['servererrormsg'] = 'Servil-eraro: $msg';
$messages['dberror'] = 'Datumbaz-eraro!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'Ne povis fari agon. Dosierujo estas nurlega';
$messages['errornoperm'] = 'Ne povis fari agon. Ne havas permeson.';
+$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'] = 'Nevalida peto';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Neniu mesaÄo en ĉi tiu dosierujo';
$messages['loggedout'] = 'Vi sukcese finis la seancon. Äœis!';
$messages['mailboxempty'] = 'Dosierujo estas malplena';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Åœarganta...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Åœarganta datumojn...';
$messages['checkingmail'] = 'Kontrolanta, ĉu novaj mesaÄoj...';
$messages['sendingmessage'] = 'Sedanta mesaÄon...';
@@ -39,43 +48,124 @@ $messages['messagesaved'] = 'MesaÄo savita en Malnetujo';
$messages['successfullysaved'] = 'Sukcese savis';
$messages['addedsuccessfully'] = 'Sukcese aldonis kontakton al adresaro';
$messages['contactexists'] = 'Kontakto kun ĉi tiu adreso jam ekzistas';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Por protekti vian privatecon, foraj bildoj estas blokitaj en ĉi tiu mesaÄo.';
$messages['encryptedmessage'] = 'Ĉi tiu mesaÄo estas ĉifrata kaj ne estas montrebla. Pardonu!';
$messages['nocontactsfound'] = 'Trovis neniun kontakton';
$messages['contactnotfound'] = 'La petita kontakto ne trovis';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Ne sukcesis sendi mesaÄon';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Okazis eraro dum savo de mesaÄo';
$messages['errormoving'] = 'Ne povis transloki mesaÄon';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Ne povis forigi mesaÄon';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ĉu vi vere volas forigi la elektata(j)n kontakto(j)n?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Ĉu vi vere volas forigi la elektata(j)n mesaÄo(j)n?';
$messages['deletefolderconfirm'] = 'Ĉu vi vere volas forigi la elektatan dosierujon?';
$messages['purgefolderconfirm'] = 'Ĉu vi vere volas forigi ĉiun mesaÄon el ĉi tiu dosierujo?';
+$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'] = 'La formularo ne estis kompletigita';
$messages['noemailwarning'] = 'Bonvolu enmeti validan retpoÅt-adreson';
$messages['nonamewarning'] = 'Bonvulu enmeti nomon';
$messages['nopagesizewarning'] = 'Bonvolu enmeti paÄ-grando';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Bonvolu enmeti minumume unu ricevonto';
$messages['nosubjectwarning'] = 'La temkampo estas malplena. Ĉu vi volas skribi temon nun?';
$messages['nobodywarning'] = 'Ĉu sendi ĉi tiun mesaÄon sen teksto?';
$messages['notsentwarning'] = 'MesaÄo ne estas sendita. Ĉu vi volas forigi vian mesaÄon?';
$messages['noldapserver'] = 'Bonvolu elekti ldap-servilon por serĉado';
$messages['nosearchname'] = 'Bonvolu enmeti kontakt-nomon aÅ­ retpoÅt-adreson.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'trovis $nr mesaÄojn';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Serĉo donis nenion';
$messages['searching'] = 'Serĉanta...';
$messages['checking'] = 'Kontrolanta...';
$messages['nospellerrors'] = 'Neniujn literumada eraro trovita';
$messages['folderdeleted'] = 'Forigis dosierujon sukcese';
+$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'] = 'Sukcese forigis';
$messages['converting'] = 'Foriganta formatan de mesaÄo...';
$messages['messageopenerror'] = 'Ne povis Åargi mesaÄon de servilo';
$messages['fileuploaderror'] = 'Malsukcesis alÅuti dosieron';
$messages['filesizeerror'] = 'La alÅutita dosiero superas la maksimuman grandon de $size';
+$messages['copysuccess'] = 'Sukcese kopiis $nr adresojn';
+$messages['copyerror'] = 'Ne povis kopii ajn adreson';
$messages['sourceisreadonly'] = 'Ĉi tiu adres-fonto estas nurlegebla';
$messages['errorsavingcontact'] = 'Ne povis savi la kontakt-adreson';
$messages['movingmessage'] = 'Translokanta mesaÄon...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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'] = 'Sukcese sendis konfirmon';
$messages['errorsendingreceipt'] = 'Ne povis sendi konfirmon';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Vi ne povas forigi ĉi tiun identon, ĉar Äi estas la lasta';
$messages['forbiddencharacter'] = 'Dosierujo-nomo enhavas malpermesitan karaktron';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/es_AR/labels.inc b/program/localization/es_AR/labels.inc
index eb4630ed4..d9a83be75 100644
--- a/program/localization/es_AR/labels.inc
+++ b/program/localization/es_AR/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienvenido a $product';
$labels['username'] = 'Nombre de usuario';
$labels['password'] = 'Contraseña';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Cerrar sesión';
$labels['mail'] = 'Correo';
$labels['settings'] = 'Configuración';
$labels['addressbook'] = 'Contactos';
+
+// mailbox names
$labels['inbox'] = 'Entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Papelera';
$labels['junk'] = 'Basura';
+
+// message listing
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
@@ -36,25 +46,34 @@ $labels['to'] = 'Destinatario';
$labels['cc'] = 'Copia';
$labels['bcc'] = 'Cco';
$labels['replyto'] = 'Responder a';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Fecha';
$labels['size'] = 'Tamaño';
$labels['priority'] = 'Prioridad';
$labels['organization'] = 'Organización';
+$labels['readstatus'] = 'Read status';
$labels['listoptions'] = 'Listar opciones...';
+
$labels['mailboxlist'] = 'Carpetas';
$labels['messagesfromto'] = 'Mensajes $from a $to de $count';
$labels['threadsfromto'] = '$from a $to de $count conversaciones';
$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'] = 'Open';
$labels['showattachment'] = 'Mostrar';
$labels['showanyway'] = 'Mostrar esto siempre';
+
$labels['filename'] = 'Nombre del archivo';
$labels['filesize'] = 'Tamaño del archivo';
+
$labels['addtoaddressbook'] = 'Añadir a contactos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -62,6 +81,8 @@ $labels['wed'] = 'Mié';
$labels['thu'] = 'Jue';
$labels['fri'] = 'Vie';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Lunes';
$labels['tuesday'] = 'Martes';
@@ -69,6 +90,8 @@ $labels['wednesday'] = 'Miércoles';
$labels['thursday'] = 'Jueves';
$labels['friday'] = 'Viernes';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Ene';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -81,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dic';
+
+// months long
$labels['longjan'] = 'Enero';
$labels['longfeb'] = 'Febrero';
$labels['longmar'] = 'Marzo';
@@ -93,7 +118,10 @@ $labels['longsep'] = 'Septiembre';
$labels['longoct'] = 'Octubre';
$labels['longnov'] = 'Noviembre';
$labels['longdec'] = 'Diciembre';
+
$labels['today'] = 'Hoy';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Revisar si hay nuevos mensajes';
$labels['compose'] = 'Escribir un mensaje';
@@ -126,6 +154,7 @@ $labels['moreactions'] = 'Mas acciones...';
$labels['more'] = 'Más';
$labels['back'] = 'Atrás';
$labels['options'] = 'Opciones';
+
$labels['select'] = 'Elija';
$labels['all'] = 'Todos';
$labels['none'] = 'Ninguno';
@@ -133,6 +162,7 @@ $labels['currpage'] = 'Página actual';
$labels['unread'] = 'Sin leer';
$labels['flagged'] = 'Marcado';
$labels['unanswered'] = 'Sin respuesta';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Eliminado';
$labels['undeleted'] = 'No eliminado';
$labels['invert'] = 'Invertir';
@@ -143,6 +173,7 @@ $labels['expand-all'] = 'Expandir Todos';
$labels['expand-unread'] = 'Expandir No Leidos';
$labels['collapse-all'] = 'Colapsar Todos';
$labels['threaded'] = 'Como conversaciones';
+
$labels['autoexpand_threads'] = 'Expandir mensajes en conversación';
$labels['do_expand'] = 'todas las conversaciones';
$labels['expand_only_unread'] = 'solo con mensajes no leídos';
@@ -157,18 +188,28 @@ $labels['desc'] = 'Descendente';
$labels['listcolumns'] = 'Listar columnas';
$labels['listsorting'] = 'Ordenar por';
$labels['listorder'] = 'Ordenado por';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'Acciones de carpeta...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Vaciar';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconocido';
$labels['unlimited'] = 'sin límite';
+
$labels['quicksearch'] = 'Búsqueda rápida';
$labels['resetsearch'] = 'Reajustar la búsqueda';
$labels['searchmod'] = 'Opciones de búsqueda';
$labels['msgtext'] = 'Mensaje completo';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Abrir en ventana nueva';
$labels['emlsave'] = 'Guardar (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Editar como nuevo';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar ahora el mensaje';
@@ -180,40 +221,52 @@ $labels['returnreceipt'] = 'Acuse de recibo';
$labels['dsn'] = 'Notificación de estado del envío';
$labels['mailreplyintro'] = 'El $date, $sender escribió:';
$labels['originalmessage'] = 'Mensaje original';
+
$labels['editidents'] = 'Editar identidades';
$labels['spellcheck'] = 'Gramática';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Continuar edición';
$labels['revertto'] = 'Revertir a';
+
$labels['attach'] = 'Adjuntar';
$labels['attachments'] = 'Adjuntos';
$labels['upload'] = 'Agregar';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Cerrar';
$labels['messageoptions'] = 'Opciones de mensaje...';
+
$labels['low'] = 'Bajo';
$labels['lowest'] = 'Bajísimo';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alto';
$labels['highest'] = 'Altísimo';
+
$labels['nosubject'] = '(sin asunto)';
$labels['showimages'] = 'Mostrar imágenes';
$labels['alwaysshow'] = 'Siempre mostrar imágenes de $sender';
$labels['isdraft'] = 'Este es un borrador.';
$labels['andnmore'] = '$nr más...';
$labels['togglemoreheaders'] = 'Mostrarme más encabezados de mensaje';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto';
$labels['savesentmessagein'] = 'Guardar mensaje enviado en';
$labels['dontsave'] = 'no guardar';
$labels['maxuploadsize'] = 'El tamaño maximo permitido por archivo es $size';
+
$labels['addcc'] = 'Añadir Cc';
$labels['addbcc'] = 'Añadir Cco';
$labels['addreplyto'] = 'Añadir Respuesta a';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'El emisor de este mensaje desea ser notificado cuando usted lo lea. ¿Quiere enviar esta notificación?';
$labels['receiptread'] = 'Notificación de lectura';
$labels['yourmessage'] = 'Esta es una notificación de lectura de su mensaje';
$labels['receiptnote'] = 'Nota: Esta notificación sólo significa que su mensaje fue mostrado en la computadora del receptor. No hay garantía de que el receptor haya leído o entendido el contenido del mensaje.';
+
+// address boook
$labels['name'] = 'Nombre completo';
$labels['firstname'] = 'Nombre';
$labels['surname'] = 'Apellido';
@@ -248,6 +301,7 @@ $labels['search'] = 'Buscar';
$labels['advsearch'] = 'Búsqueda Avanzada';
$labels['advanced'] = 'Avanzado';
$labels['other'] = 'Otro';
+
$labels['typehome'] = 'Particular';
$labels['typework'] = 'Laboral';
$labels['typeother'] = 'Otro';
@@ -262,12 +316,14 @@ $labels['typeassistant'] = 'Asistente';
$labels['typehomepage'] = 'Página Personal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Agregar campo...';
$labels['addcontact'] = 'Añadir 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';
@@ -276,45 +332,60 @@ $labels['rename'] = 'Renombrar';
$labels['addphoto'] = 'Agregar';
$labels['replacephoto'] = 'Reemplazar';
$labels['uploadphoto'] = 'Subir foto';
+
$labels['newcontact'] = 'Añadir nuevo contacto';
$labels['deletecontact'] = 'Eliminar contactos seleccionados';
$labels['composeto'] = 'Enviar mensaje a';
$labels['contactsfromto'] = 'Contactos $from a $to de $count';
$labels['print'] = 'Imprimir';
$labels['export'] = 'Exportar';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Exportar contactos en format vCard';
$labels['newcontactgroup'] = 'Crear Nuevo Grupo de Contacto';
$labels['grouprename'] = 'Renombrar grupo';
$labels['groupdelete'] = 'Eliminar grupo';
$labels['groupremoveselected'] = 'Remover del grupo los contactos seleccionados';
+
$labels['previouspage'] = 'Mostrar grupo anterior';
$labels['firstpage'] = 'Mostrar primer grupo';
$labels['nextpage'] = 'Mostrar siguiente grupo';
$labels['lastpage'] = 'Mostrar último grupo';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
$labels['personaladrbook'] = 'Direcciones personales';
+
$labels['searchsave'] = 'Guardar búsqueda';
$labels['searchdelete'] = 'Eliminar búsqueda';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar desde el archivo:';
+$labels['importtarget'] = 'Agregar nuevos contactos a la libreta de direcciones:';
$labels['importreplace'] = 'Reemplazar completamente la lista de contactos';
$labels['importdesc'] = 'Puedes subir contactos desde una libreta de direcciones existente.<br/>Actualmente soportamos la importación de direcciones utilizando el formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> o CSV (Valores Separados por Coma).';
$labels['done'] = 'Hecho';
+
+// settings
$labels['settingsfor'] = 'Configuración para';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gestionar identidades para esta cuenta';
$labels['newidentity'] = 'Nueva identidad';
+
$labels['newitem'] = 'Nuevo';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Prefiero HTML';
$labels['defaultcharset'] = 'Juego de Caracteres por Defecto';
$labels['htmlmessage'] = 'Mensaje HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Formato de fecha';
$labels['timeformat'] = 'Formato de tiempo';
$labels['prettydate'] = 'Fecha detallada';
@@ -331,6 +402,7 @@ $labels['htmleditor'] = 'Componer mensaje en HTML';
$labels['htmlonreply'] = 'al responder un mensaje HTML';
$labels['htmlonreplyandforward'] = 'al reenviar o responder un mensaje HTML';
$labels['htmlsignature'] = 'Firma HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Mostrar vista preliminar';
$labels['skin'] = 'Apariencia de la interfaz';
$labels['logoutclear'] = 'Vaciar papelera al cerrar sesión';
@@ -341,17 +413,21 @@ $labels['mailboxview'] = 'Vista de buzón';
$labels['mdnrequests'] = 'Notificaciones de envío';
$labels['askuser'] = 'preguntar al usuario';
$labels['autosend'] = 'enviar automáticamente';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'ignorar';
$labels['readwhendeleted'] = 'Marcar el mensage como leído al borrarlo';
$labels['flagfordeletion'] = 'Marcar el mensage para borrarse en vez de borrarlo';
$labels['skipdeleted'] = 'No mostrar mensajes eliminados';
$labels['deletealways'] = 'Cuando no se pueda mover un mensaje a la papelera, eliminarlo';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Mostrar imágenes remotas';
$labels['fromknownsenders'] = 'de remitentes conocidos';
$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['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nunca';
$labels['immediately'] = 'inmediatamente';
$labels['messagesdisplaying'] = 'Vista de mensajes';
@@ -365,12 +441,15 @@ $labels['advancedoptions'] = 'Opciones Avanzadas';
$labels['focusonnewmessage'] = 'Traer al frente la ventana del navegador cuando haya nuevos mensajes';
$labels['checkallfolders'] = 'Verificar todas las carpetas por nuevos mensajes';
$labels['displaynext'] = 'Luedo de eliminar/mover, mostrar el próximo mensaje';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Opciones Principales';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Selección';
$labels['maintenance'] = 'Mantenimiento';
$labels['newmessage'] = 'Nuevo Mensaje';
$labels['signatureoptions'] = 'Opciones de Firma';
$labels['whenreplying'] = 'Al Responder';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'iniciar el nuevo mensaje sobre el original';
$labels['replybottomposting'] = 'iniciar el nuevo mensaje debajo del original';
$labels['replyremovesignature'] = 'Al responder, eliminar la firma del mensaje original';
@@ -380,6 +459,23 @@ $labels['replyandforwardonly'] = 'respuestas o reenvios solamente';
$labels['insertsignature'] = 'Insertar firma';
$labels['previewpanemarkread'] = 'Marcar mensajes previsualizados como leidos';
$labels['afternseconds'] = 'despues de $n segundos';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Carpeta';
$labels['folders'] = 'Carpetas';
$labels['foldername'] = 'Nombre de carpeta';
@@ -389,13 +485,37 @@ $labels['create'] = 'Crear';
$labels['createfolder'] = 'Crear nueva carpeta';
$labels['managefolders'] = 'Administrar carpetas';
$labels['specialfolders'] = 'Carpetas Especiales';
+$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'] = 'Ordenar por';
$labels['sortasc'] = 'Orden ascendente';
$labels['sortdesc'] = 'Orden descendente';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Ingles';
$labels['westerneuropean'] = 'Europa Occidental';
@@ -414,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonés';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chino';
+
?>
diff --git a/program/localization/es_AR/messages.inc b/program/localization/es_AR/messages.inc
index 1c442c189..1cec9f01d 100644
--- a/program/localization/es_AR/messages.inc
+++ b/program/localization/es_AR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ha ocurrido un error!';
$messages['loginfailed'] = 'Contraseña o nombre de usuario incorrecto';
$messages['cookiesdisabled'] = 'Su navegador no acepta cookies';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Error en base de datos!';
$messages['requesttimedout'] = 'Tiempo de espera agotado';
$messages['errorreadonly'] = 'No se pudo realizar la operación. La carpeta es de sólo lectura.';
$messages['errornoperm'] = 'No se pudo realizar la operación. Permiso denegado.';
+$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'] = 'Peteción invalida! No se guardó nada.';
$messages['invalidhost'] = 'Nombre de servidor inválido.';
$messages['nomessagesfound'] = 'No se han encontrado mensajes en esta casilla';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'El contacto solicitado no existe';
$messages['contactsearchonly'] = 'Ingresá algún término de búsqueda para encontrar contactos';
$messages['sendingfailed'] = 'Error al enviar mensaje';
$messages['senttooquickly'] = 'Por favor, espere $sec segundo(s) antes de enviar este mensaje';
+$messages['errorsavingsent'] = 'Ocurrió un error al guardar el mensaje enviado';
+$messages['errorsaving'] = 'Ocurrió un error al guardar';
$messages['errormoving'] = 'No se pudo mover el mensaje';
$messages['errorcopying'] = 'No se pudo copiar el mensaje';
$messages['errordeleting'] = 'No se ha podido eliminar el mensaje';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Removiendo el formato del mensaje...';
$messages['messageopenerror'] = 'No puedo descargar el mensaje del servidor';
$messages['fileuploaderror'] = 'Error al subir archivos';
$messages['filesizeerror'] = 'El archivo excede el tamaño maximo ($size)';
+$messages['copysuccess'] = '$nr direcciones copiadas con éxito';
+$messages['copyerror'] = 'No se pudo copiar ninguna dirección';
$messages['sourceisreadonly'] = 'Esta dirección es de sólo-lectura';
$messages['errorsavingcontact'] = 'No se pudo guardar la dirección de contacto';
$messages['movingmessage'] = 'Moviendo mensaje...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'La dirección $email no es válida';
$messages['toomanyrecipients'] = 'Demasiados destinatarios. Reduzca la cantidad a un máximo de $max.';
$messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max';
+$messages['internalerror'] = 'Ocurrió un error interno. Por favor, intentá de nuevo.';
$messages['contactdelerror'] = 'No se pudo eliminar el/los contactos(s).';
$messages['contactdeleted'] = 'Contacto(s) eliminado/s exitosamente.';
$messages['contactrestoreerror'] = 'No se pudo recuperar el/los contacto/s eliminado(s).';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'No se pudo crear/mover la carpeta dentro de la
$messages['messagetoobig'] = 'El mensaje es demasiado grande para ser procesado.';
$messages['attachmentvalidationerror'] = 'Advertencia! Este archivo adjunto es sospechoso porque su tipo no concuerda con el tipo declarado en el mensaje. Si no confias en el remitente, no deberías abrirlo en el navegador porque puede contener código malicioso.<br/><br/><em>Se esperaba: $expected; Se encontró: $detected</em>';
$messages['noscriptwarning'] = 'Advertencia: Este servicio de webmail requiere Javascript! Para usarlo, por favor, habilite Javascript en las preferencia de tu navegador.';
+
?>
diff --git a/program/localization/es_ES/labels.inc b/program/localization/es_ES/labels.inc
index 66fcafd0b..03f6b489a 100644
--- a/program/localization/es_ES/labels.inc
+++ b/program/localization/es_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienvenido a $product';
$labels['username'] = 'Nombre de usuario';
$labels['password'] = 'Contraseña';
$labels['server'] = 'Servidor';
$labels['login'] = 'Iniciar sesión';
+
+// taskbar
$labels['logout'] = 'Cerrar sesión';
$labels['mail'] = 'Correo';
$labels['settings'] = 'Configuración';
$labels['addressbook'] = 'Contactos';
+
+// mailbox names
$labels['inbox'] = 'Entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Papelera';
$labels['junk'] = 'SPAM';
-$labels['show_real_foldernames'] = 'Mostrar nombres reales para carpetas especiales';
+
+// message listing
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridad';
$labels['organization'] = 'Organización';
$labels['readstatus'] = 'Leer estado';
$labels['listoptions'] = 'Lista de opciones...';
+
$labels['mailboxlist'] = 'Carpetas';
$labels['messagesfromto'] = 'Mensajes $from a $to de $count';
$labels['threadsfromto'] = 'Hilos $from a $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…';
@@ -56,9 +67,13 @@ $labels['download'] = 'Descargar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Mostrar';
$labels['showanyway'] = 'Mostrarlo de todos modos';
+
$labels['filename'] = 'Nombre del archivo';
$labels['filesize'] = 'Tamaño del archivo';
+
$labels['addtoaddressbook'] = 'Añadir a contactos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mié';
$labels['thu'] = 'Jue';
$labels['fri'] = 'Vie';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Lunes';
$labels['tuesday'] = 'Martes';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Miércoles';
$labels['thursday'] = 'Jueves';
$labels['friday'] = 'Viernes';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Ene';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dic';
+
+// months long
$labels['longjan'] = 'Enero';
$labels['longfeb'] = 'Febrero';
$labels['longmar'] = 'Marzo';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Septiembre';
$labels['longoct'] = 'Octubre';
$labels['longnov'] = 'Noviembre';
$labels['longdec'] = 'Diciembre';
+
$labels['today'] = 'Hoy';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Revisar si hay mensajes nuevos';
$labels['compose'] = 'Redactar';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Más acciones…';
$labels['more'] = 'Más';
$labels['back'] = 'Volver';
$labels['options'] = 'Opciones';
+
$labels['select'] = 'Elija';
$labels['all'] = 'Todos';
$labels['none'] = 'Ninguno';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir todos';
$labels['expand-unread'] = 'Expandir no leídos';
$labels['collapse-all'] = 'Colapsar todos';
$labels['threaded'] = 'Encadenados';
+
$labels['autoexpand_threads'] = 'Expandir hilos de mensajes';
$labels['do_expand'] = 'todos los hilos';
$labels['expand_only_unread'] = 'solo con mensajes no leídos';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Listar columnas';
$labels['listsorting'] = 'Columna de listado';
$labels['listorder'] = 'Orden de listado';
$labels['listmode'] = 'Modo de vista de lista';
+
$labels['folderactions'] = 'Acciones de bandeja...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Vaciar';
-$labels['importmessages'] = 'Importar mensajes';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconocido';
$labels['unlimited'] = 'sin límite';
+
$labels['quicksearch'] = 'Búsqueda rápida';
$labels['resetsearch'] = 'Reiniciar la búsqueda';
$labels['searchmod'] = 'Opciones de búsqueda';
$labels['msgtext'] = 'Mensaje completo';
$labels['body'] = 'Cuerpo';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nombre';
+
$labels['openinextwin'] = 'Abrir en nueva ventana';
$labels['emlsave'] = 'Descargar (.eml)';
$labels['changeformattext'] = 'Mostrar en formato de texto sencillo';
$labels['changeformathtml'] = 'Mostrar en formato HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como nuevo';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar ahora el mensaje';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Acuse de recibo';
$labels['dsn'] = 'Entrega de notificaciones de estado';
$labels['mailreplyintro'] = 'El $date, $sender escribió:';
$labels['originalmessage'] = 'Mensaje original';
+
$labels['editidents'] = 'Editar identidades';
$labels['spellcheck'] = 'Corrector ortográfico';
$labels['checkspelling'] = 'Revisar ortografía';
$labels['resumeediting'] = 'Continuar edición';
$labels['revertto'] = 'Revertir a';
+
$labels['attach'] = 'Adjuntar';
$labels['attachments'] = 'Adjuntos';
$labels['upload'] = 'Subir';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Cerrar';
$labels['messageoptions'] = 'Opciones de mensaje...';
+
$labels['low'] = 'Bajo';
$labels['lowest'] = 'Bajísimo';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alto';
$labels['highest'] = 'Altísimo';
+
$labels['nosubject'] = '(sin asunto)';
$labels['showimages'] = 'Mostrar imágenes';
$labels['alwaysshow'] = 'Mostrar siempre imágenes de $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Este mensaje es un borrador';
$labels['andnmore'] = '$nr más…';
$labels['togglemoreheaders'] = 'Mostrar más encabezados del mensaje';
$labels['togglefullheaders'] = 'Mostrar u ocultar encabezados de mensajes';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Sólo texto';
$labels['savesentmessagein'] = 'Guardar mensaje enviado en';
$labels['dontsave'] = 'No guardar';
$labels['maxuploadsize'] = 'Tamaño de archivo máximo permitido: $size';
+
$labels['addcc'] = 'Añadir Cc';
$labels['addbcc'] = 'Añadir Cco';
$labels['addreplyto'] = 'Añadir Responder a';
$labels['addfollowupto'] = 'Añadir Seguir a';
+
+// mdn
$labels['mdnrequest'] = 'El emisor de este mensaje desea ser notificado cuando usted lo lea. ¿Quiere enviar esta notificación?';
$labels['receiptread'] = 'Notificación de lectura';
$labels['yourmessage'] = 'Esto es un acuse de recibo de su mensaje';
$labels['receiptnote'] = 'Nota: Esta notificación sólo significa que su mensaje fue abierto en el ordenador del destinatario. Eso no garantiza que el destinatario haya leído o entendido el contenido del mensaje.';
+
+// address boook
$labels['name'] = 'Nombre para mostrar';
$labels['firstname'] = 'Nombre';
$labels['surname'] = 'Apellido';
@@ -262,6 +301,7 @@ $labels['search'] = 'Buscar';
$labels['advsearch'] = 'Búsqueda avanzada';
$labels['advanced'] = 'Avanzadas';
$labels['other'] = 'Otro';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Trabajo';
$labels['typeother'] = 'Otro';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Auxiliar';
$labels['typehomepage'] = 'Inicio';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Añadir campo...';
$labels['addcontact'] = 'Añadir 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';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Renombrar';
$labels['addphoto'] = 'Añadir';
$labels['replacephoto'] = 'Reemplazar';
$labels['uploadphoto'] = 'Subir foto';
+
$labels['newcontact'] = 'Crear nueva tarjeta de contacto';
$labels['deletecontact'] = 'Eliminar contactos seleccionados';
$labels['composeto'] = 'Escribir mensaje a';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Crear un nuevo grupo de contactos';
$labels['grouprename'] = 'Renombrar grupo';
$labels['groupdelete'] = 'Borrar grupo';
$labels['groupremoveselected'] = 'Eliminar los contactos seleccionados del grupo';
+
$labels['previouspage'] = 'Mostrar grupo anterior';
$labels['firstpage'] = 'Mostrar primer grupo';
$labels['nextpage'] = 'Mostrar grupo siguiente';
$labels['lastpage'] = 'Mostrar último grupo';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Listar miembros del grupo';
$labels['personaladrbook'] = 'Direcciones personales';
+
$labels['searchsave'] = 'Guardar búsqueda';
$labels['searchdelete'] = 'Borrar búsqueda';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar desde archivo:';
-$labels['importtarget'] = 'Agregar contactos a';
+$labels['importtarget'] = 'Añadir un nuevo contacto a la los contactos:';
$labels['importreplace'] = 'Reemplazar toda la lista de contactos';
-$labels['importgroups'] = 'Importar asignaciones de grupo';
-$labels['importgroupsall'] = 'Todos (crear grupos si es necesario)';
-$labels['importgroupsexisting'] = 'Sólo para los grupos existentes';
$labels['importdesc'] = 'Puede subir contactos desde una libreta de direcciones existente.<br/>Actualmente permitimos la importación desde los formatos de datos <a href="http://es.wikipedia.org/wiki/VCard">vCard</a> o CSV (separados por comas).';
$labels['done'] = 'Hecho';
+
+// settings
$labels['settingsfor'] = 'Configuración para';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gestionar identidades para esta cuenta';
$labels['newidentity'] = 'Nueva identidad';
+
$labels['newitem'] = 'Nuevo';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Prefiero HTML';
$labels['defaultcharset'] = 'Juego de caracteres predeterminado';
$labels['htmlmessage'] = 'Mensaje HTML';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'Componer mensaje en HTML';
$labels['htmlonreply'] = 'sólo en respuesta a un mensaje HTML';
$labels['htmlonreplyandforward'] = 'en reenvío o respuesta al mensaje HTML';
$labels['htmlsignature'] = 'Firma HTML';
-$labels['showemail'] = 'Mostrar dirección de correo electrónico al visualizar el nombre';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Mostrar vista preliminar';
$labels['skin'] = 'Apariencia de la interfaz';
$labels['logoutclear'] = 'Vaciar papelera al cerrar sesión';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar palabras con números';
$labels['spellcheckignorecaps'] = 'Ignorar palabras con todo mayúsculas';
$labels['addtodict'] = 'Añadir al diccionario';
$labels['mailtoprotohandler'] = 'Registrar controlador de protocolo para enlaces mailto:';
-$labels['standardwindows'] = 'Gestionar ventanas emergentes como ventanas estándar';
$labels['forwardmode'] = 'Reenvío de mensajes';
$labels['inline'] = 'en línea';
$labels['asattachment'] = 'como adjunto';
+
$labels['folder'] = 'Bandeja';
$labels['folders'] = 'Carpetas';
$labels['foldername'] = 'Nombre de bandeja';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Tipo de bandeja';
$labels['personalfolder'] = 'Bandeja privada';
$labels['otherfolder'] = 'Bandeja de otro usuario';
$labels['sharedfolder'] = 'Bandeja pública';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orden ascendente';
$labels['sortdesc'] = 'Orden descendente';
$labels['undo'] = 'Deshacer';
+
$labels['installedplugins'] = 'Complementos instalados';
$labels['plugin'] = 'Complemento';
$labels['version'] = 'Versión';
$labels['source'] = 'Origen';
$labels['license'] = 'Licencia';
$labels['support'] = 'Obtener soporte';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglés';
$labels['westerneuropean'] = 'Europeo occidental';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonés';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chino';
+
?>
diff --git a/program/localization/es_ES/messages.inc b/program/localization/es_ES/messages.inc
index 694544cca..6c031df29 100644
--- a/program/localization/es_ES/messages.inc
+++ b/program/localization/es_ES/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = '¡Ha ocurrido un error!';
$messages['loginfailed'] = 'Contraseña o nombre de usuario incorrecto.';
$messages['cookiesdisabled'] = 'Su navegador no acepta cookies.';
@@ -55,7 +57,7 @@ $messages['contactsearchonly'] = 'Ingrese algún criterio para buscar contactos'
$messages['sendingfailed'] = 'Error al enviar mensaje.';
$messages['senttooquickly'] = 'Por favor, espere $sec segundo(s) antes de mandar este mensaje.';
$messages['errorsavingsent'] = 'Ha ocurrido un error al guardar el mensaje enviado.';
-$messages['errorsaving'] = 'Ha ocurrido un error al guardar.';
+$messages['errorsaving'] = 'Ocurrió un error mientras se guardaba.';
$messages['errormoving'] = 'No se ha podido mover el/los mensaje(s).';
$messages['errorcopying'] = 'No se ha podido copiar el/los mensaje(s).';
$messages['errordeleting'] = 'No se ha podido eliminar el/los mensaje(s).';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Quitando el formato del mensaje...';
$messages['messageopenerror'] = 'No puedo descargar el mensaje del servidor.';
$messages['fileuploaderror'] = 'Error al subir archivos.';
$messages['filesizeerror'] = 'El archivo excede el tamaño máximo ($size).';
-$messages['copysuccess'] = '$nr contactos copiados correctamente.';
-$messages['movesuccess'] = '$nr contactos movidos correctamente.';
-$messages['copyerror'] = 'No se ha podido copiar ningún contacto.';
-$messages['moveerror'] = 'No se ha podido mover ningún contacto.';
+$messages['copysuccess'] = '$nr direcciones copiadas correctamente.';
+$messages['copyerror'] = 'No se pudo copiar ninguna dirección.';
$messages['sourceisreadonly'] = 'Esta dirección es de sólo lectura.';
$messages['errorsavingcontact'] = 'No se pudo guardar la dirección de contacto.';
$messages['movingmessage'] = 'Moviendo mensaje(s)...';
$messages['copyingmessage'] = 'Copiando mensaje(s)...';
$messages['copyingcontact'] = 'Copiando contacto(s)…';
-$messages['movingcontact'] = 'Moviendo contacto(s)...';
$messages['deletingmessage'] = 'Eliminando mensaje(s)...';
$messages['markingmessage'] = 'Marcando mensaje(s)...';
$messages['addingmember'] = 'Añadiendo contacto(s) al grupo…';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Importando, espere...';
$messages['importformaterror'] = '¡La importación falló! El fichero enviado no es un fichero válido de importación de datos';
$messages['importconfirm'] = '<b>Se han importado $inserted contactos correctamente</b>';
$messages['importconfirmskipped'] = '<b>Ignoradas $skipped entradas existentes</b>';
-$messages['importmessagesuccess'] = '$nr mensajes importados con éxito';
-$messages['importmessageerror'] = '¡Ha fallado la importación! El fichero subido no es un fichero válido de mensaje o buzón de correo';
$messages['opnotpermitted'] = '¡Operación no permitida!';
$messages['nofromaddress'] = 'El contacto seleccionado no tiene dirección de e-mail';
$messages['editorwarning'] = 'Cambiando a texto plano perderá el formato del mensaje. ¿Desea continuar?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Error SMTP: $msg';
$messages['emailformaterror'] = 'Dirección e-mail incorrecta: $email';
$messages['toomanyrecipients'] = 'Hay demasiados destinatarios. Reduzca el número de destinatarios a $max.';
$messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max.';
-$messages['internalerror'] = 'Ha ocurrido un error interno. Por favor, inténtelo de nuevo.';
+$messages['internalerror'] = 'Ocurrió un error interno. Por favor, inténtelo de nuevo.';
$messages['contactdelerror'] = 'No se ha podido eliminar el/los contacto(s).';
$messages['contactdeleted'] = 'Contacto(s) eliminado(s) correctamente.';
$messages['contactrestoreerror'] = 'No se han podido restaurar los contactos borrados.';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'No se puede crear/mover la carpeta a la carpet
$messages['messagetoobig'] = 'Esta parte del mensaje es demasiada grande para procesarla.';
$messages['attachmentvalidationerror'] = '¡ATENCIÓN! Este adjunto es sospechoso porque su tipo no coincide con el tipo declarado en el mensaje. Si no confía en su remitente, no debería abrirlo en su navegador porque podría tener contenido malicioso.<br/<br/> <em>Esperado: $expected; encontrado: $detected</em>';
$messages['noscriptwarning'] = 'Advertencia: ¡este servicio de webmail necesita Javascript! Para poder usarlo habilite el soporte de Javascript en su navegador, por favor.';
+
?>
diff --git a/program/localization/et_EE/labels.inc b/program/localization/et_EE/labels.inc
index 42a268dd2..5d23d4ded 100644
--- a/program/localization/et_EE/labels.inc
+++ b/program/localization/et_EE/labels.inc
@@ -15,21 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Tere tulemast! See on $product.';
$labels['username'] = 'Kasutajanimi';
$labels['password'] = 'Parool';
$labels['server'] = 'Server';
$labels['login'] = 'Logi sisse';
+
+// taskbar
$labels['logout'] = 'Logi välja';
$labels['mail'] = 'Postkast';
$labels['settings'] = 'Seaded';
$labels['addressbook'] = 'Aadressiraamat';
+
+// mailbox names
$labels['inbox'] = 'Saabuvad';
$labels['drafts'] = 'Mustandid';
$labels['sent'] = 'Saadetud';
$labels['trash'] = 'Prügikast';
$labels['junk'] = 'Rämps';
-$labels['show_real_foldernames'] = 'Näita eriliste kaustade päris nimesid';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+
+// message listing
$labels['subject'] = 'Pealkiri';
$labels['from'] = 'Saatja';
$labels['sender'] = 'Saatja';
@@ -44,11 +54,13 @@ $labels['priority'] = 'Tähtsus';
$labels['organization'] = 'Organisatsioon';
$labels['readstatus'] = 'Lugemise staatus';
$labels['listoptions'] = 'Nimekirja valikud…';
+
$labels['mailboxlist'] = 'Kaustad';
$labels['messagesfromto'] = 'Kirjed $from kuni $to, kokku $count';
$labels['threadsfromto'] = 'Lõimed $from kuni $to, kokku $count';
$labels['messagenrof'] = 'Kiri $nr, kokku $count';
$labels['fromtoshort'] = '$from – $to kokku $count';
+
$labels['copy'] = 'Kopeeri';
$labels['move'] = 'Liiguta';
$labels['moveto'] = 'liiguta kausta...';
@@ -56,9 +68,13 @@ $labels['download'] = 'laadi arvutisse';
$labels['open'] = 'Ava';
$labels['showattachment'] = 'Näita';
$labels['showanyway'] = 'Näita ikka';
+
$labels['filename'] = 'Faili nimi';
$labels['filesize'] = 'Faili suurus';
+
$labels['addtoaddressbook'] = 'Lisa aadressiraamatusse';
+
+// weekdays short
$labels['sun'] = 'P';
$labels['mon'] = 'E';
$labels['tue'] = 'T';
@@ -66,6 +82,8 @@ $labels['wed'] = 'K';
$labels['thu'] = 'N';
$labels['fri'] = 'R';
$labels['sat'] = 'L';
+
+// weekdays long
$labels['sunday'] = 'Pühapäev';
$labels['monday'] = 'Esmaspäev';
$labels['tuesday'] = 'Teisipäev';
@@ -73,6 +91,8 @@ $labels['wednesday'] = 'Kolmapäev';
$labels['thursday'] = 'Neljapäev';
$labels['friday'] = 'Reede';
$labels['saturday'] = 'Laupäev';
+
+// months short
$labels['jan'] = 'jaan';
$labels['feb'] = 'veebr';
$labels['mar'] = 'märts';
@@ -85,6 +105,8 @@ $labels['sep'] = 'sept';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dets';
+
+// months long
$labels['longjan'] = 'Jaanuar';
$labels['longfeb'] = 'Veebruar';
$labels['longmar'] = 'Märts';
@@ -97,7 +119,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktoober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Detsember';
+
$labels['today'] = 'Täna';
+
+// toolbar buttons
$labels['refresh'] = 'Värskenda';
$labels['checkmail'] = 'Kontrolli uusi kirju';
$labels['compose'] = 'Koosta kiri';
@@ -130,6 +155,7 @@ $labels['moreactions'] = 'Muud toimingud...';
$labels['more'] = 'Rohkem';
$labels['back'] = 'Tagasi';
$labels['options'] = 'Valikud';
+
$labels['select'] = 'Vali';
$labels['all'] = 'kõik';
$labels['none'] = 'Puudub';
@@ -148,6 +174,7 @@ $labels['expand-all'] = 'Laienda kõik';
$labels['expand-unread'] = 'Laienda lugemata';
$labels['collapse-all'] = 'Pane kõik kokku';
$labels['threaded'] = 'Lõimedena';
+
$labels['autoexpand_threads'] = 'Laienda kirjade lõimed';
$labels['do_expand'] = 'kõik lõimed';
$labels['expand_only_unread'] = 'ainult lugemata kirjadega';
@@ -163,24 +190,27 @@ $labels['listcolumns'] = 'Näita veerge';
$labels['listsorting'] = 'Järjestus veerg';
$labels['listorder'] = 'Järjestus suund';
$labels['listmode'] = 'Nimekirja vaatamise režiim';
+
$labels['folderactions'] = 'Kausta tegevused...';
$labels['compact'] = 'Tihenda';
$labels['empty'] = 'Tühjenda';
-$labels['importmessages'] = 'Impordi kirju';
+
$labels['quota'] = 'Kettakasutus';
$labels['unknown'] = 'teadmata';
$labels['unlimited'] = 'piiramatu';
+
$labels['quicksearch'] = 'Kiirotsing';
$labels['resetsearch'] = 'Lähtesta otsing';
$labels['searchmod'] = 'Otsingu laiendid';
$labels['msgtext'] = 'Kogu kirjast';
$labels['body'] = 'Keha';
-$labels['type'] = 'Tüüp';
-$labels['namex'] = 'Nimi';
+
$labels['openinextwin'] = 'Ava uues aknas';
$labels['emlsave'] = 'Salvesta (.eml)';
$labels['changeformattext'] = 'Näita lihttekstina';
$labels['changeformathtml'] = 'Näita HTMLis';
+
+// message compose
$labels['editasnew'] = 'Kasuta uue kirja põhjana';
$labels['send'] = 'Saada';
$labels['sendmessage'] = 'Saada kiri kohe';
@@ -192,22 +222,26 @@ $labels['returnreceipt'] = 'Kättesaamiskinnitus';
$labels['dsn'] = 'Kohalejõudmise teavitus';
$labels['mailreplyintro'] = '$date kirjutas $sender:';
$labels['originalmessage'] = 'Esialgne kiri';
+
$labels['editidents'] = 'Muuda Identiteete';
$labels['spellcheck'] = 'Õigekiri';
$labels['checkspelling'] = 'Kontrolli õigekirja';
$labels['resumeediting'] = 'Jätka muutmist';
$labels['revertto'] = 'Pööra tagasi';
+
$labels['attach'] = 'Manusta';
$labels['attachments'] = 'Manused';
$labels['upload'] = 'Kinnita manus';
$labels['uploadprogress'] = '$percent ($current, kokku $total)';
$labels['close'] = 'Sulge';
$labels['messageoptions'] = 'Kirja valikud...';
+
$labels['low'] = 'Madal';
$labels['lowest'] = 'Madalaim';
$labels['normal'] = 'Tavaline';
$labels['high'] = 'Kõrge';
$labels['highest'] = 'Kõrgeim';
+
$labels['nosubject'] = '(teema puudub)';
$labels['showimages'] = 'Näita pilte';
$labels['alwaysshow'] = 'Näita alati $sender saadetud pilte';
@@ -215,19 +249,25 @@ $labels['isdraft'] = 'See on mustand.';
$labels['andnmore'] = '$nr veel…';
$labels['togglemoreheaders'] = 'Näita rohkem kirja päiseid';
$labels['togglefullheaders'] = 'Näita/peida algseid päiseid';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Lihttekst';
$labels['savesentmessagein'] = 'Salvesta saadetud kirjad kausta';
$labels['dontsave'] = 'ära salvesta';
$labels['maxuploadsize'] = 'Faili maksimaalne lubatud suurus on $size';
+
$labels['addcc'] = 'Lisa koopia';
$labels['addbcc'] = 'Lisa pimekoopia';
$labels['addreplyto'] = 'Lisa vastus aadressile';
$labels['addfollowupto'] = 'Lisa Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Selle kirja saatja soovib saada kinnitust kirja lugemise kohta. Kas soovid kinnituse saata?';
$labels['receiptread'] = 'Kättesaamiskinnitus (leotud)';
$labels['yourmessage'] = 'See on sinu saadetud kirja kättesaamiskinnitus';
$labels['receiptnote'] = 'Märkus: Kättesaamiskinnituse saamine tähendab ainult seda, et saaja on kirja avanud. Pole mingit garantiid, et ta kirja tegelikult luges ja selle sisust aru sai.';
+
+// address boook
$labels['name'] = 'Näidatav nimi';
$labels['firstname'] = 'Eesnimi';
$labels['surname'] = 'Perekonnanimi';
@@ -262,6 +302,7 @@ $labels['search'] = 'Otsi';
$labels['advsearch'] = 'Täpsem otsing';
$labels['advanced'] = 'Edasijõudnutele';
$labels['other'] = 'Muu';
+
$labels['typehome'] = 'Kodu';
$labels['typework'] = 'Töö';
$labels['typeother'] = 'Muu';
@@ -276,12 +317,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Veebileht';
$labels['typeblog'] = 'Ajaveeb';
$labels['typeprofile'] = 'Profiil';
+
$labels['addfield'] = 'Lisa väli...';
$labels['addcontact'] = 'Uue kontakti lisamine';
$labels['editcontact'] = 'Muuda kontakti';
$labels['contacts'] = 'Kontaktid';
$labels['contactproperties'] = 'Kontakti omadused';
$labels['personalinfo'] = 'Isiklik info';
+
$labels['edit'] = 'Muuda';
$labels['cancel'] = 'Katkesta';
$labels['save'] = 'Salvesta';
@@ -290,6 +333,7 @@ $labels['rename'] = 'Nimeta ümber';
$labels['addphoto'] = 'Lisa';
$labels['replacephoto'] = 'Asenda';
$labels['uploadphoto'] = 'Lisa foto';
+
$labels['newcontact'] = 'Uue sissekande loomine';
$labels['deletecontact'] = 'Kustuta märgistatud kontaktid';
$labels['composeto'] = 'Kirjuta kiri';
@@ -303,32 +347,41 @@ $labels['newcontactgroup'] = 'Loo uus kontaktigrupp';
$labels['grouprename'] = 'Nimeta grupp ümber';
$labels['groupdelete'] = 'Kustuta grupp';
$labels['groupremoveselected'] = 'Eemalda valitud kontaktid grupist';
+
$labels['previouspage'] = 'Näita eelmist lehte';
$labels['firstpage'] = 'Näita esimest komplekti';
$labels['nextpage'] = 'Näita järgmist lehte';
$labels['lastpage'] = 'Näita viimast komplekti';
+
$labels['group'] = 'Grupp';
$labels['groups'] = 'Grupid';
-$labels['listgroup'] = 'Näita grupi liikmeid';
$labels['personaladrbook'] = 'Isiklikud aadressid';
+
$labels['searchsave'] = 'Salvesta otsing';
$labels['searchdelete'] = 'Kustuta otsing';
+
$labels['import'] = 'Impordi';
$labels['importcontacts'] = 'Impordi kontakte';
$labels['importfromfile'] = 'Impordi failist:';
+$labels['importtarget'] = 'Lisa uued kontaktid aadressiraamatusse:';
$labels['importreplace'] = 'Asenda kogu aadressiraamat';
$labels['importdesc'] = 'Sa saad laadida kontakte olemasolevast aadressiraamatust.<br/>Praegu on võimalik importida <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> või CSV (komaga eraldatud) formaadis andmeid. ';
$labels['done'] = 'Valmis';
+
+// settings
$labels['settingsfor'] = 'Kasutajaeelistused kontole';
$labels['about'] = 'Programmist lähemalt';
$labels['preferences'] = 'Eelistused';
$labels['userpreferences'] = 'Kasutaja eelistused';
$labels['editpreferences'] = 'Muuda kasutaja eelistusi';
+
$labels['identities'] = 'Identiteedid';
$labels['manageidentities'] = 'Halda selle konto identiteete';
$labels['newidentity'] = 'Uus identiteet';
+
$labels['newitem'] = 'Uus sissekanne';
$labels['edititem'] = 'Muuda sissekannet';
+
$labels['preferhtml'] = 'Eelista HTMLi';
$labels['defaultcharset'] = 'Vaikimisi märgistik';
$labels['htmlmessage'] = 'HTML kirjad';
@@ -424,6 +477,7 @@ $labels['standardwindows'] = 'Käsitle hüpikaknaid tavaliste akendena';
$labels['forwardmode'] = 'Kirja edastamine';
$labels['inline'] = 'kirja sees';
$labels['asattachment'] = 'manusena';
+
$labels['folder'] = 'Kaust';
$labels['folders'] = 'Kaustad';
$labels['foldername'] = 'Kausta nimi';
@@ -444,20 +498,26 @@ $labels['foldertype'] = 'Kausta tüüp';
$labels['personalfolder'] = 'Isiklik kaust';
$labels['otherfolder'] = 'Teiste kasutajate kaust';
$labels['sharedfolder'] = 'Avalik kaust';
+
$labels['sortby'] = 'Järjesta';
$labels['sortasc'] = 'Järjesta kasvavalt';
$labels['sortdesc'] = 'Järjesta kahanevalt';
$labels['undo'] = 'Võta tagasi';
+
$labels['installedplugins'] = 'Paigaldatud pluginad';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versioon';
$labels['source'] = 'Allikas';
$labels['license'] = 'Litsents';
$labels['support'] = 'Küsi abi';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KiB';
$labels['MB'] = 'MiB';
$labels['GB'] = 'GiB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'inglise';
$labels['westerneuropean'] = 'Lääne-Euroopa';
@@ -476,4 +536,5 @@ $labels['vietnamese'] = 'vietnami';
$labels['japanese'] = 'jaapani';
$labels['korean'] = 'korea';
$labels['chinese'] = 'hiina';
+
?>
diff --git a/program/localization/et_EE/messages.inc b/program/localization/et_EE/messages.inc
index 0d2c79b5a..c73d92c48 100644
--- a/program/localization/et_EE/messages.inc
+++ b/program/localization/et_EE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ilmnes tõrge!';
$messages['loginfailed'] = 'Sisselogimine ebaõnnestus';
$messages['cookiesdisabled'] = 'Sinu veebilehitseja ei võta präänikuid vastu';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Otsitud kontakti ei leitud';
$messages['contactsearchonly'] = 'Sisesta otsingusõna kontaktide leidmiseks';
$messages['sendingfailed'] = 'Kirja saatmine ebaõnnestus';
$messages['senttooquickly'] = 'Palun oota enne selle kirja saatmist $sec sekundit.';
+$messages['errorsavingsent'] = 'Saadetud kirja salvestamisel ilmnes tõrge';
+$messages['errorsaving'] = 'Salvestamise ajal ilmnes viga';
$messages['errormoving'] = 'Ei suutnud seda kirja liigutada';
$messages['errorcopying'] = 'Kirju ei õnnestunud kopeerida';
$messages['errordeleting'] = 'Ei suutnud seda kirja kustutada';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Eemaldan kirjast vormindust...';
$messages['messageopenerror'] = 'Kirjade serverist laadimine ebaõnnestus';
$messages['fileuploaderror'] = 'Faili üleslaadimine ebaõnnestus';
$messages['filesizeerror'] = 'Üleslaetava faili suurus ületab maksimaalse suuruse $size';
-$messages['copysuccess'] = '$nr kontakti edukalt kopeeritud.';
-$messages['movesuccess'] = '$nr kontakti edukalt liigutatud.';
-$messages['copyerror'] = 'Ühegi kontakti kopeerimine ei õnnestunud.';
-$messages['moveerror'] = 'Ühegi kontakti liigutamine ei õnnestunud.';
+$messages['copysuccess'] = '$nr aadressi edukalt kopeeritud';
+$messages['copyerror'] = 'Ühegi aadressi kopeerimine ei õnnestunud';
$messages['sourceisreadonly'] = 'Aadressi asukohas puuduvad kirjutusõigused';
$messages['errorsavingcontact'] = 'Kontakti aadressi salvestamine ebaõnnestus';
$messages['movingmessage'] = 'Liigutan kirja...';
$messages['copyingmessage'] = 'Kopeerin kirja...';
$messages['copyingcontact'] = 'Kontakti(de) kopeerimine…';
-$messages['movingcontact'] = 'Kontakti(de) liigutamine…';
$messages['deletingmessage'] = 'Kustutan kirja...';
$messages['markingmessage'] = 'Märgin kirja...';
$messages['addingmember'] = 'Kontakti(de) gruppi lisamine…';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Impordin, palun oota...';
$messages['importformaterror'] = 'Import nurjus! Laaditud fail ei sisalda sobilikke andmeid.';
$messages['importconfirm'] = '<b>Edukalt imporditud $inserted kontakti, $skipped olemasolevat sissekannet vahele jäetud</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b> $skipped olemasolevat kirjet jäeti vahele</b>';
-$messages['importmessagesuccess'] = '$nr kirja edukalt imporditud';
-$messages['importmessageerror'] = 'Import nurjus! Laaditud fail ei ole kirja ega postkasti fail';
$messages['opnotpermitted'] = 'Tegevus pole lubatud!';
$messages['nofromaddress'] = 'Valitud identiteedil puudub e-posti aadress';
$messages['editorwarning'] = 'Klaarteksti redaktorile lülitamine kaotab kogu teksti vorminduse. Soovid jätkata?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP tõrge: $msg';
$messages['emailformaterror'] = 'Lubamatu e-posti aadress: $email';
$messages['toomanyrecipients'] = 'Liiga palju adressaate. Vähenda kirja saajate hulka $max-ni.';
$messages['maxgroupmembersreached'] = 'Grupi liikmete arv ületab suurima lubatud $max';
+$messages['internalerror'] = 'Ilmnes sisemine tõrge. Palun proovi uuesti.';
$messages['contactdelerror'] = 'Kontaktide kustutamine nurjus';
$messages['contactdeleted'] = 'Kontaktide kustutamine õnnestus';
$messages['contactrestoreerror'] = 'Kustutatud kontakti(de) taastamine nurjus.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Kasuta loomine/liigutamine valitud kausta nurj
$messages['messagetoobig'] = 'Kiri on töötlemiseks liiga suur.';
$messages['attachmentvalidationerror'] = 'HOIATUS! See manus on kahtlane, sest selle tüüp ei ole vastavuses kirjas määratuga. Kui sa ei usalda kirja saatjat, siis ei tohiks seda brauseris avada, sest see võib sisaldada pahavara.<br/><br/><em>Oodati: $expected; leiti: $detected</em>';
$messages['noscriptwarning'] = 'Hoiatus: see veebimaili teenus vajab Javascripti! Teenuse kasutamiseks luba Javascript oma brauseri seadetes.';
+
?>
diff --git a/program/localization/eu_ES/labels.inc b/program/localization/eu_ES/labels.inc
index bbfd0c6ac..8052d69e8 100644
--- a/program/localization/eu_ES/labels.inc
+++ b/program/localization/eu_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Ongi etorri $product';
$labels['username'] = 'Erabiltzailea';
$labels['password'] = 'Pasahitza';
$labels['server'] = 'Zerbitzaria';
$labels['login'] = 'Saio hasiera';
+
+// taskbar
$labels['logout'] = 'Irten';
$labels['mail'] = 'ePosta';
$labels['settings'] = 'Ezarpen Pertsonalak';
$labels['addressbook'] = 'Helbide Liburua';
+
+// mailbox names
$labels['inbox'] = 'Sarrera';
$labels['drafts'] = 'Zirriborroak';
$labels['sent'] = 'Bidalitakoak';
$labels['trash'] = 'Zakarrontzia';
$labels['junk'] = 'Zabor-posta';
-$labels['show_real_foldernames'] = 'Erakutsi karpeta berezien benetako izenak';
+
+// message listing
$labels['subject'] = 'Gaia';
$labels['from'] = 'Nork';
$labels['sender'] = 'Igorlea';
@@ -44,21 +53,27 @@ $labels['priority'] = 'Lehentasuna';
$labels['organization'] = 'Erakundea';
$labels['readstatus'] = 'Irakurketaren egoera';
$labels['listoptions'] = 'Zerrendaren aukerak...';
+
$labels['mailboxlist'] = 'Karpetak';
$labels['messagesfromto'] = '$from -tik $to -ra $count mezuetatik';
$labels['threadsfromto'] = '$from -etik $to -rako gaiak (guztira $count)';
$labels['messagenrof'] = '$nr mezua $count -tik';
$labels['fromtoshort'] = '$from - $to , guztira $count';
+
$labels['copy'] = 'Kopia';
$labels['move'] = 'Mugitu';
$labels['moveto'] = 'mugitu hona...';
$labels['download'] = 'deskargatu';
-$labels['open'] = 'Ireki';
-$labels['showattachment'] = 'Erakutsi';
-$labels['showanyway'] = 'Erakutsi edonola';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Fitxategi Izena';
$labels['filesize'] = 'Fitxategi Tamaina';
+
$labels['addtoaddressbook'] = 'Helbide liburura gehitu';
+
+// weekdays short
$labels['sun'] = 'Iga';
$labels['mon'] = 'Al';
$labels['tue'] = 'As';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Azt';
$labels['thu'] = 'Og';
$labels['fri'] = 'Or';
$labels['sat'] = 'Lar';
+
+// weekdays long
$labels['sunday'] = 'Igandea';
$labels['monday'] = 'Astelehena';
$labels['tuesday'] = 'Asteartea';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Asteazkena';
$labels['thursday'] = 'Osteguna';
$labels['friday'] = 'Ostirala';
$labels['saturday'] = 'Larunbata';
+
+// months short
$labels['jan'] = 'Urt';
$labels['feb'] = 'Ots';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Ira';
$labels['oct'] = 'Urr';
$labels['nov'] = 'Aza';
$labels['dec'] = 'Abe';
+
+// months long
$labels['longjan'] = 'Urtarrila';
$labels['longfeb'] = 'Otsaila';
$labels['longmar'] = 'Martxoa';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Iraila';
$labels['longoct'] = 'Urria';
$labels['longnov'] = 'Azaroa';
$labels['longdec'] = 'Abendua';
+
$labels['today'] = 'Gaur';
+
+// toolbar buttons
$labels['refresh'] = 'Eguneratu';
$labels['checkmail'] = 'Mezu berrien bila arakatu';
$labels['compose'] = 'Mezu bat sortu';
@@ -108,7 +132,7 @@ $labels['replytoallmessage'] = 'Bidaltzaile eta hartzaile guztiei erantzun';
$labels['replyall'] = 'Guztiei erantzun';
$labels['replylist'] = 'Erantzun zerrenda';
$labels['forward'] = 'Berbidali';
-$labels['forwardinline'] = 'Aurrera barnean';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'Erantsi gisa berbidali';
$labels['forwardmessage'] = 'Mezua Birbidali';
$labels['deletemessage'] = 'Mezua ezabatu';
@@ -130,301 +154,328 @@ $labels['moreactions'] = 'Ekintza gehiago...';
$labels['more'] = 'Gehiago';
$labels['back'] = 'Atzera';
$labels['options'] = 'Aukerak';
+
$labels['select'] = 'Hautatu';
$labels['all'] = 'Denak';
$labels['none'] = 'Bat ere ez';
$labels['currpage'] = 'Uneko orrialdea';
$labels['unread'] = 'Irakurri gabeak';
$labels['flagged'] = 'Banderaduna';
-$labels['unanswered'] = 'Erantzun gabea';
-$labels['withattachment'] = 'Eranskinarekin';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Ezabatuak';
$labels['undeleted'] = 'Ezabatu gabeak';
-$labels['invert'] = 'Alderantzizkatu';
-$labels['filter'] = 'Iragazkia';
-$labels['list'] = 'Zerrenda';
-$labels['threads'] = 'Hariak';
-$labels['expand-all'] = 'Irekin denak';
-$labels['expand-unread'] = 'Ireki irakurri gabeak';
-$labels['collapse-all'] = 'Tolestu guztiak';
-$labels['threaded'] = 'Harian';
-$labels['autoexpand_threads'] = 'Irekin mezu-hariak';
-$labels['do_expand'] = 'hari guztiak';
-$labels['expand_only_unread'] = 'soilik irakurri gabeko mezuak dutenak';
+$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'] = 'Nork/Nori';
-$labels['flag'] = 'Bandera';
-$labels['attachment'] = 'Eranskina';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'Bat ere ez';
-$labels['sentdate'] = 'Bidalketa-data';
-$labels['arrival'] = 'Jasotze-data';
-$labels['asc'] = 'gora';
-$labels['desc'] = 'behera';
-$labels['listcolumns'] = 'Zerrenda-zutabeak';
-$labels['listsorting'] = 'Zutabea ordenatzen';
-$labels['listorder'] = 'Ordenatze era';
-$labels['listmode'] = 'Zerrenda ikuspegia';
-$labels['folderactions'] = 'Karpeta-ekintzak...';
+$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'] = 'Trinkotu';
$labels['empty'] = 'Hustu';
-$labels['importmessages'] = 'Inportatu mezuak';
+
$labels['quota'] = 'Disko erabilera';
$labels['unknown'] = 'ezezaguna';
$labels['unlimited'] = 'mugagabea';
+
$labels['quicksearch'] = 'Bilaketa azkarra';
$labels['resetsearch'] = 'Bilaketa berrabiarazi';
-$labels['searchmod'] = 'Bilatu modifikadoreak';
-$labels['msgtext'] = 'Mezu osoa';
-$labels['body'] = 'Gorputza';
-$labels['type'] = 'Mota';
-$labels['namex'] = 'Izena';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Lehio berrian ireki';
-$labels['emlsave'] = 'Deskargatu (.eml)';
-$labels['changeformattext'] = 'Bistaratu testua formaturik gabe';
-$labels['changeformathtml'] = 'Bistaratu HTML formatuan';
-$labels['editasnew'] = 'Editatu berri bezala';
-$labels['send'] = 'Bidali';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Mezua orain bidali';
$labels['savemessage'] = 'Zirriborro hau gorde';
$labels['addattachment'] = 'Fitxategia erantsi';
$labels['charset'] = 'Karaktere jokoa';
$labels['editortype'] = 'Editore mota';
-$labels['returnreceipt'] = 'Bidali jasotze-agiria';
-$labels['dsn'] = 'Entrega-egoeraren jakinarazpena';
-$labels['mailreplyintro'] = '$date egunean, $sender-(e)k idatzi du:';
+$labels['returnreceipt'] = 'Bidaltzaileari itzuli';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'Jatorrizko mezua';
-$labels['editidents'] = 'Editatu identitateak';
-$labels['spellcheck'] = 'Ortografia-egiaztatu';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Egiaztaketa ortografikoa';
$labels['resumeediting'] = 'Editatzen jarraitu';
$labels['revertto'] = 'Itzuli hona';
-$labels['attach'] = 'Erantsi';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Eranskinak';
$labels['upload'] = 'Igo';
-$labels['uploadprogress'] = '$percent ($current/$total)';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Itxi';
-$labels['messageoptions'] = 'Mezu-aukerak';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Baxua';
$labels['lowest'] = 'Baxuena';
$labels['normal'] = 'Normala';
$labels['high'] = 'Altua';
$labels['highest'] = 'Altuena';
+
$labels['nosubject'] = '(gairik gabea)';
$labels['showimages'] = 'Irudiak bistarazi';
$labels['alwaysshow'] = 'Beti ikusi $sender -en irudiak';
-$labels['isdraft'] = 'Hau zirriborro bat da';
-$labels['andnmore'] = '$nr gehiago...';
-$labels['togglemoreheaders'] = 'Erakutsi mezu mezu-goiburu gehiago';
-$labels['togglefullheaders'] = 'Aldatu mezu gordinen goiburuak';
+$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'] = 'Testu laua';
$labels['savesentmessagein'] = 'Gorde mezua hemen';
$labels['dontsave'] = 'ez gorde';
-$labels['maxuploadsize'] = 'Baimendutako gehienezko fitxategi tamaina: $size';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Gehitu Cc (kopia)';
$labels['addbcc'] = 'Gehitu Bcc (kopia ezkutua)';
$labels['addreplyto'] = 'Gehitu erantzun-honi';
-$labels['addfollowupto'] = 'Gehitu Jarraitu honi';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Mezu honen bidaltzaileak mezua irakurtzen duzunean jakinaraztea eskatu du. Bidaltzailea ohartu nahi duzu?';
-$labels['receiptread'] = 'Bidali jasotze-agiria (irakurria)';
-$labels['yourmessage'] = 'Hau zure mezuaren jasotze-agiria da';
-$labels['receiptnote'] = 'Oharra: jasotze-agiri honek hartzailearen ordenagailuan mezua ikusi dala adierazten du besterik gabe. Honek ez du esan nahi hartzaileak mezua irakurri edo/eta ulertu duenik:';
+$labels['receiptread'] = 'Itzulketa agiria (irakurria)';
+$labels['yourmessage'] = 'Hau zure mezuaren Itzulketa Agiria da';
+$labels['receiptnote'] = 'Oharra: Agiri honek hartzailearen ordenagailuan mezua ikusi dala adierazten du besterik gabe. Honek ez du esan nahi hartzaileak mezua irakurri edo/eta ulertu duenik:';
+
+// address boook
$labels['name'] = 'Izena bistarazi';
$labels['firstname'] = 'Izena';
$labels['surname'] = 'Abizena';
-$labels['middlename'] = 'Izenaren bigarren partea';
-$labels['nameprefix'] = 'Aurrizkia';
-$labels['namesuffix'] = 'Atzizkia';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'Ezizena';
-$labels['jobtitle'] = 'Lanpostua ';
-$labels['department'] = 'Departamentoa';
-$labels['gender'] = 'Generoa';
-$labels['maidenname'] = 'Ezkondu aurreko izena';
+$labels['jobtitle'] = 'Job Title';
+$labels['department'] = 'Department';
+$labels['gender'] = 'Gender';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ePosta';
-$labels['phone'] = 'Telefonoa';
+$labels['phone'] = 'Phone';
$labels['address'] = 'Helbidea';
$labels['street'] = 'Kalea';
-$labels['locality'] = 'Herria';
+$labels['locality'] = 'City';
$labels['zipcode'] = 'Posta kodea';
-$labels['region'] = 'Estatua/Probintzia';
-$labels['country'] = 'Herrialdea';
-$labels['birthday'] = 'Urtebetetze-eguna';
-$labels['anniversary'] = 'Urteurren-eguna';
-$labels['website'] = 'Webgunea';
-$labels['instantmessenger'] = 'Txata';
-$labels['notes'] = 'Oharrak';
-$labels['male'] = 'gizon';
-$labels['female'] = 'emakume';
-$labels['manager'] = 'Kudeatzailea';
-$labels['assistant'] = 'Laguntzailea';
-$labels['spouse'] = 'Ezkontidea';
-$labels['allfields'] = 'Eremu guztiak';
-$labels['search'] = 'Bilatu';
-$labels['advsearch'] = 'Bilaketa aurreratua';
-$labels['advanced'] = 'Aurreratua';
-$labels['other'] = 'Beste';
-$labels['typehome'] = 'Etxekoa';
-$labels['typework'] = 'Lanekoa';
-$labels['typeother'] = 'Beste';
+$labels['region'] = 'State/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'] = 'Mugikorra';
-$labels['typemain'] = 'Nagusia';
-$labels['typehomefax'] = 'Etxeko faxa';
-$labels['typeworkfax'] = 'Laneko faxa';
-$labels['typecar'] = 'Autoa';
-$labels['typepager'] = 'Bilagailua';
-$labels['typevideo'] = 'Bideo';
-$labels['typeassistant'] = 'Laguntzailea';
-$labels['typehomepage'] = 'Etxeko orria';
-$labels['typeblog'] = 'Bloga';
-$labels['typeprofile'] = 'Profila';
-$labels['addfield'] = 'Gehitu eremua...';
-$labels['addcontact'] = 'Gehitu kontaktu berria';
-$labels['editcontact'] = 'Editatu kontaktua';
-$labels['contacts'] = 'Kontaktuak';
-$labels['contactproperties'] = 'Kontaktuen ezaugarriak';
+$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'] = 'Txartel berria gehitu';
+$labels['editcontact'] = 'Txartela editatu';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'Informazio pertsonala';
+
$labels['edit'] = 'Editatu';
$labels['cancel'] = 'Utzi';
$labels['save'] = 'Gorde';
$labels['delete'] = 'Ezabatu';
-$labels['rename'] = 'Berrizendatu';
-$labels['addphoto'] = 'Gehitu';
-$labels['replacephoto'] = 'Ordeztu';
-$labels['uploadphoto'] = 'Kargatu argazkia';
-$labels['newcontact'] = 'Sortu kontaktu-txartel berria';
-$labels['deletecontact'] = 'Ezabatu hautatutako kontaktuak';
-$labels['composeto'] = 'Idatzi mezua honi:';
-$labels['contactsfromto'] = '$from -tik $to -ra $count kontaktuak';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Helbide liburu txartel berria sortu';
+$labels['deletecontact'] = 'Aukeraturiko txartelak ezabatu';
+$labels['composeto'] = 'Bidali mezua honi:';
+$labels['contactsfromto'] = '$from -tik $to -ra $count txarteletatik';
$labels['print'] = 'Inprimatu';
$labels['export'] = 'Esportatu';
-$labels['exportall'] = 'Esportatu dena';
-$labels['exportsel'] = 'Esportatu hautaketa';
-$labels['exportvcards'] = 'Esportatu kontaktuak vCard formatuan';
-$labels['newcontactgroup'] = 'Sortu kontaktu-talde berria';
-$labels['grouprename'] = 'Berrizendatu taldea';
-$labels['groupdelete'] = 'Ezabatu taldea';
-$labels['groupremoveselected'] = 'Ezabatu taldetik hautatutako kontaktuak';
-$labels['previouspage'] = 'Aurreko orria ikusi';
-$labels['firstpage'] = 'Lehenengo orria ikusi';
-$labels['nextpage'] = 'Hurrengo orria ikusi';
-$labels['lastpage'] = 'Azken orria ikusi';
-$labels['group'] = 'Taldea';
+$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'] = 'Aurreko sorta ikusi';
+$labels['firstpage'] = 'Lehenengo sorta ikusi';
+$labels['nextpage'] = 'Hurrengo sorta ikusi';
+$labels['lastpage'] = 'Azken sorta ikusi';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Taldeak';
-$labels['listgroup'] = 'Zerrendatu taldeko partaideak';
$labels['personaladrbook'] = 'Helbide pertsonalak';
-$labels['searchsave'] = 'Gorde bilaketa';
-$labels['searchdelete'] = 'Ezabatu bilaketa';
-$labels['import'] = 'Inportatu';
-$labels['importcontacts'] = 'Inportatu kontaktoak';
-$labels['importfromfile'] = 'Inportatu fitxategi honetatik:';
-$labels['importreplace'] = 'Ordezkatu helbide-liburu osoa';
-$labels['importdesc'] = 'Gehitzen ahal duzu kontaktuak dagoen helbide-liburu batetik.<br/>Inportatzeko onartzen diren formatuak: <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> eta CSV (komaz banandutakoak).';
-$labels['done'] = 'Egina';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Honen ezarpenak:';
-$labels['about'] = 'Honi buruz';
+$labels['about'] = 'About';
$labels['preferences'] = 'Hobespenak';
$labels['userpreferences'] = 'Erabiltzaile hobespenak';
$labels['editpreferences'] = 'Erabiltzaile hobespenak editatu';
+
$labels['identities'] = 'Identitateak';
$labels['manageidentities'] = 'Kontu honetako identitateak kudeatu';
$labels['newidentity'] = 'Identitate berria';
+
$labels['newitem'] = 'Elementu berria';
$labels['edititem'] = 'Elementua Editatu';
+
$labels['preferhtml'] = 'HTML nahiago';
-$labels['defaultcharset'] = 'Lehenetsitako karaktere-jokoa';
-$labels['htmlmessage'] = 'HTML mezua';
-$labels['messagepart'] = 'Zatia';
-$labels['digitalsig'] = 'Sinadura digitala';
-$labels['dateformat'] = 'Data-formatua';
-$labels['timeformat'] = 'Ordu-formatua';
+$labels['defaultcharset'] = 'Default Character Set';
+$labels['htmlmessage'] = 'HTML Mezua';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Data politak';
$labels['setdefault'] = 'Lehenespenak ezarri';
-$labels['autodetect'] = 'Automatikoa';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Hizkuntza';
$labels['timezone'] = 'Ordu zonaldea';
$labels['pagesize'] = 'Lerro orrialdeko';
$labels['signature'] = 'Sinadura';
$labels['dstactive'] = 'Eguneko gordeketak';
-$labels['showinextwin'] = 'Ireki mezua leiho berrian';
-$labels['composeextwin'] = 'Idatzi leiho berrian';
-$labels['htmleditor'] = 'Idatzi HTML mezuak';
-$labels['htmlonreply'] = 'HTML mezua erantzuteko';
-$labels['htmlonreplyandforward'] = 'HTML mezua erantzuteko edo birbidaltzeko';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'HTML mezuak sortu';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML sinadura';
-$labels['showemail'] = 'Erakutsi helbide elektronikoak bere pantaila izenarekin';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Aurrebista panela ikusi';
$labels['skin'] = 'Azal-interfazea';
$labels['logoutclear'] = 'Garbitu Zakarronzia irtetean';
$labels['logoutcompact'] = 'Trinkotu Sarrera irtetean';
$labels['uisettings'] = 'Erabiltzaile-interfazea';
$labels['serversettings'] = 'Zerbitzariaren ezarpenak';
-$labels['mailboxview'] = 'Posta-kutxatila ikuspegia';
+$labels['mailboxview'] = 'Postakutxatilaren ikuspegia';
$labels['mdnrequests'] = 'Bidaltzailearen jakinarazpena';
$labels['askuser'] = 'galdetu erabiltzaileari';
-$labels['autosend'] = 'bidali jasotze-agiria';
-$labels['autosendknown'] = 'bidali jasotze-agiria nire kontaktuei, bestela galdetu niri';
-$labels['autosendknownignore'] = 'bidali jasotze-agiria nire kontaktuei, bestela ez ikusi egin';
-$labels['ignore'] = 'ez ikusi';
+$labels['autosend'] = 'bidali automatikoki';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
+$labels['ignore'] = 'ezikusi';
$labels['readwhendeleted'] = 'Markatu mezua irakurrita bezala ezabatzerakoan';
$labels['flagfordeletion'] = 'Markatu mezua ezabatzeko ezabatu beharrean';
-$labels['skipdeleted'] = 'Ez erakutsi ezabatutako mezuak';
-$labels['deletealways'] = 'Zakarrontzira bidaltzeak huts egiten badu, ezabatu';
-$labels['deletejunk'] = 'Ezabatu zuzenean
-zabor-mezuak';
-$labels['showremoteimages'] = 'Erakutsi konektatutako urrutiko irudiak';
-$labels['fromknownsenders'] = 'bidaltzaile ezagunengandik';
-$labels['always'] = 'beti';
+$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'] = 'Erakutsi erantzitako irudiak mezuaren azpian';
$labels['autosavedraft'] = 'Zirriborroa automatikoki gorde';
-$labels['everynminutes'] = '$n minuturo';
-$labels['refreshinterval'] = 'Freskatu (bilatu mezu berriak eta abar)';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'inoiz ez';
-$labels['immediately'] = 'berehala';
-$labels['messagesdisplaying'] = 'Mezuak bistaratzen';
-$labels['messagescomposition'] = 'Mezuak idazten';
-$labels['mimeparamfolding'] = 'Eranskinen izenak';
+$labels['immediately'] = 'immediately';
+$labels['messagesdisplaying'] = 'Mezuak ikusi';
+$labels['messagescomposition'] = 'Mezuak sortu';
+$labels['mimeparamfolding'] = 'Attachment names';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
-$labels['2047folding'] = 'Full RFC 2047 (beste batzuk)';
-$labels['force7bit'] = 'Erabili MIME kodeketa 8 bitekok karakterentzat';
-$labels['advancedoptions'] = 'Aukera aurreratuak';
-$labels['focusonnewmessage'] = 'Fokatu leihoa mezu berrian';
-$labels['checkallfolders'] = 'Egiaztatu karpeta guztiak mezu berrien bila';
-$labels['displaynext'] = 'Mezu bat ezabatu/mugitzean erakutsi hurrengo mezua';
-$labels['defaultfont'] = 'Lehenetsitako letra-mota HTML mezuetarako';
-$labels['mainoptions'] = 'Aukera nagusiak';
-$labels['browseroptions'] = 'Nabigatze-aukerak';
-$labels['section'] = 'Atala';
-$labels['maintenance'] = 'Mantenua';
-$labels['newmessage'] = 'Mezu berria';
-$labels['signatureoptions'] = 'Sinadura-aukerak';
-$labels['whenreplying'] = 'Erantzutean';
-$labels['replyempty'] = 'ez aipatu jatorrizko mezua';
-$labels['replytopposting'] = 'hasi mezu berria aipamenaren gainean';
-$labels['replybottomposting'] = 'hasi mezu berria aipamenaren azpian';
-$labels['replyremovesignature'] = 'Erantzutean ezabatu mezuaren jatorrizko sinadura';
-$labels['autoaddsignature'] = 'Gehitu sinadura automatikoki';
-$labels['newmessageonly'] = 'bakarrik mezu berria';
-$labels['replyandforwardonly'] = 'bakarri erantzun eta birbidalketak';
-$labels['insertsignature'] = 'Txertatu sinadura';
-$labels['previewpanemarkread'] = 'Markatu ikusitako mezuak irakurrita bezala';
-$labels['afternseconds'] = '$n segundo eta gero';
-$labels['reqmdn'] = 'Eskatu beti jasotze-agiria';
-$labels['reqdsn'] = 'Eskatu beti entrega-egoeraren jakinarazpena';
-$labels['replysamefolder'] = 'Kokatu erantzunak erantzuten ari den mezuarenkarpeta berean';
-$labels['defaultabook'] = 'Lehenetsitako helbide-liburua';
-$labels['autocompletesingle'] = 'Saltatu helbide elektroniko alternatiboak osatze automatikoan';
-$labels['listnamedisplay'] = 'Zerrendatu kontaktuak honela';
-$labels['spellcheckbeforesend'] = 'Egiaztatu ortografia mezua bidali aurretik';
-$labels['spellcheckoptions'] = 'Ortografia-egiaztatzearen aukerak';
-$labels['spellcheckignoresyms'] = 'Ez ikusi sinboloak dituzten hitzak';
-$labels['spellcheckignorenums'] = 'Ez ikusi zenbakiak dituzten hitzak';
-$labels['spellcheckignorecaps'] = 'Ez ikusi letra kapitalak dituzten hitzak';
-$labels['addtodict'] = 'Gehitu hiztegira';
-$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: estekak';
-$labels['standardwindows'] = 'Tratatu laster-leihoak leiho estandar bezala';
-$labels['forwardmode'] = 'Mezuak birbidaltzen';
-$labels['inline'] = 'Konektatua';
-$labels['asattachment'] = 'eranskin moduan';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Karpeta';
$labels['folders'] = 'Karpetak';
$labels['foldername'] = 'Karpeta izena';
@@ -434,47 +485,54 @@ $labels['create'] = 'Sortu';
$labels['createfolder'] = 'Karpeta berria sortu';
$labels['managefolders'] = 'Karpeta kudeaketa';
$labels['specialfolders'] = 'Karpeta bereziak';
-$labels['properties'] = 'Ezaugarriak';
-$labels['folderproperties'] = 'Karpeta-ezaugarriak';
-$labels['parentfolder'] = 'Goragoko karpeta';
-$labels['location'] = 'Kokalekua';
-$labels['info'] = 'Informazioa';
-$labels['getfoldersize'] = 'Klikatu ikusteko karpetaren tamaina';
-$labels['changesubscription'] = 'Klikatu harpidetza aldatzeko';
-$labels['foldertype'] = 'Karpeta mota';
-$labels['personalfolder'] = 'Karpeta pribatua';
-$labels['otherfolder'] = 'Beste erabiltzaileen karpetak';
-$labels['sharedfolder'] = 'Karpeta publikoa';
+$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'] = 'Honela ordenatu';
$labels['sortasc'] = 'Goraka ordenatu';
$labels['sortdesc'] = 'Beheraka ordenatu';
-$labels['undo'] = 'Desegin';
-$labels['installedplugins'] = 'Instalatutako plugin-ak';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Plugin';
-$labels['version'] = 'Bertsioa';
-$labels['source'] = 'Iturria';
-$labels['license'] = 'Lizentzia';
-$labels['support'] = 'Eskuratu laguntza';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
-$labels['english'] = 'Ingelesa';
-$labels['westerneuropean'] = 'Mendebaldeko Europearra';
-$labels['easterneuropean'] = 'Ekialdeko europearra';
-$labels['southeasterneuropean'] = 'Hego-ekialdeko europearra';
-$labels['baltic'] = 'Baltikoa';
-$labels['cyrillic'] = 'Zirilikoa';
-$labels['arabic'] = 'Arabiarra';
-$labels['greek'] = 'Grekoa';
-$labels['hebrew'] = 'Hebrearra';
-$labels['turkish'] = 'Turkiarra';
-$labels['nordic'] = 'Nordikoa';
+$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'] = 'Zeltiar';
-$labels['vietnamese'] = 'Vietnamdarra';
-$labels['japanese'] = 'Japoniarra';
-$labels['korean'] = 'Korearra';
-$labels['chinese'] = 'Txinatarra';
+$labels['celtic'] = 'Celtic';
+$labels['vietnamese'] = 'Vietnamese';
+$labels['japanese'] = 'Japanese';
+$labels['korean'] = 'Korean';
+$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/eu_ES/messages.inc b/program/localization/eu_ES/messages.inc
index 7d2025804..a3985b233 100644
--- a/program/localization/eu_ES/messages.inc
+++ b/program/localization/eu_ES/messages.inc
@@ -15,28 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'Errore bat gertatu da!';
-$messages['loginfailed'] = 'Saio hasierak huts egin du.';
-$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-rik onartzen';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Saio sarrerak huts egin du';
+$messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-ak onartzen';
$messages['sessionerror'] = 'Zure saioa baliogabea da edo iraungita dago';
-$messages['storageerror'] = 'Huts egin du biltegiratze-zerbitzarira konektatzean';
-$messages['servererror'] = 'Zerbitzari-errorea!';
-$messages['servererrormsg'] = 'Zerbitzari-errorea: $msg';
-$messages['dberror'] = 'Datu-basearen errorea!';
-$messages['requesttimedout'] = 'Eskaera denboraz kanpo.';
-$messages['errorreadonly'] = 'Ezin da ekintza burutu. Karpeta soilik irakurtzekoa da.';
-$messages['errornoperm'] = 'Ezin da ekintza burutu. Baimena ukatua.';
-$messages['erroroverquota'] = 'Ezin da ekintza burutu. Diskoan ez dago tokirik.';
-$messages['erroroverquotadelete'] = 'Diskoan ez dago tokirik. Erabili SHIFT+DEL mezua ezabatzeko.';
-$messages['invalidrequest'] = 'Eskaera ez da baliozkoa! Datuak ez dira gorde.';
-$messages['invalidhost'] = 'Zerbitzari-izena ez da baliozkoa.';
+$messages['storageerror'] = 'Huts IMAP zerbitzarira konektatzean';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
+$messages['errornoperm'] = 'Unable to perform operation. Permission denied.';
+$messages['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
+$messages['invalidrequest'] = 'Invalid request! No data was saved.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ez da mezurik aurkitu posta kutxa honetan';
$messages['loggedout'] = 'Saioa behar bezala amaitu duzu. Agur!';
$messages['mailboxempty'] = 'Posta kutxa hutsik dago';
-$messages['refreshing'] = 'Freskatzen...';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Kargatzen...';
-$messages['uploading'] = 'Fitxategia kargatzen...';
-$messages['uploadingmany'] = 'Fitxategiak kargatzen...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Datuak kargatzen...';
$messages['checkingmail'] = 'Mezu berrien bila arakatzen...';
$messages['sendingmessage'] = 'Mezua bidaltzen...';
@@ -46,125 +48,124 @@ $messages['messagesaved'] = 'Mezua zirriborroetan gordea';
$messages['successfullysaved'] = 'Behar bezala gorde da';
$messages['addedsuccessfully'] = 'Txartela behar bezala gehitu da helbide liburura';
$messages['contactexists'] = 'ePosta honetako txartel bat badago dagoeneko';
-$messages['contactnameexists'] = 'Lehendik badago izen hori duen kontaktua.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Zure pribazitatea mantentzeko urruneko irudiak blokeatu egin dira.';
$messages['encryptedmessage'] = 'Hau enkriptaturiko mezu bat da eta ezin da bistarazi. Barkatu!';
$messages['nocontactsfound'] = 'Ez da txartelik aurkitu';
$messages['contactnotfound'] = 'Eskatutako txartela ez da aurkitu';
-$messages['contactsearchonly'] = 'Sartu kontaktua aurkitzeko bilaketa daturen bat.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Huts mezua bidaltzerakoan';
-$messages['senttooquickly'] = 'Itxaron $sec segundo mezua bidali aurretik, mesedez.';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'Errorea gertatu da bidalitako mezua gordetzean';
+$messages['errorsaving'] = 'Errore bat gertatu da gordetzean';
$messages['errormoving'] = 'Ezin da mezua mugitu';
-$messages['errorcopying'] = 'Ezin d(ir)a kopiatu mezua(k).';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Ezin da mezua ezabatu';
-$messages['errormarking'] = 'Ezin d(ir)a markatu mezua(k).';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Benetan hautaturiko kontaktuak ezabatu nahi dituzula?';
-$messages['deletegroupconfirm'] = 'Seguru zaude hautatutako taldea ezabatu nahi duzula?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Benetan hautaturiko mezuak ezabatu nahi dituzula?';
$messages['deletefolderconfirm'] = 'Benetan Karpeta hau ezabatu nahi duzu?';
$messages['purgefolderconfirm'] = 'Benetan karpeta honetako mezu guziak ezabatu nahi dituzu?';
-$messages['contactdeleting'] = 'Kontaktua(k) ezabatzen...';
-$messages['groupdeleting'] = 'Taldea ezabatzen...';
-$messages['folderdeleting'] = 'Karpeta ezabatzen...';
-$messages['foldermoving'] = 'Karpeta mugitzen...';
-$messages['foldersubscribing'] = 'Karpeta harpidetzen...';
-$messages['folderunsubscribing'] = 'Karpetaren harpidetza kentzen...';
+$messages['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'] = 'Inprimakia ez guztiz bete';
$messages['noemailwarning'] = 'Mesedez idatzi baliozko eposta helbide bat';
$messages['nonamewarning'] = 'Mesedez izen bat idatzi';
$messages['nopagesizewarning'] = 'Mesedez paper tamaina idatzi';
-$messages['nosenderwarning'] = 'Sartu bidaltzailearen helbide elektronikoa, mesedez.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Mesedez behintzat hartzaile bat idatzi';
$messages['nosubjectwarning'] = '"Gaia" eremua hutsik dago. Bat idatzi nahi al duzu?';
$messages['nobodywarning'] = 'Testu gabeko mezu hau bidali?';
$messages['notsentwarning'] = 'Mezua ez da bidali. Mezua ezeztatu nahi al duzu?';
$messages['noldapserver'] = 'Mesedez hautatu bilaketa egiteko LDAP zerbitzari bat';
$messages['nosearchname'] = 'Mesedez idatzi kontaktu izen bat edo eposta helbide bat';
-$messages['notuploadedwarning'] = 'Oraindik ez dira kargatu eranskin guztiak. Itxaron edo ezeztatu karga.';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr mezu aurkiturik';
-$messages['contactsearchsuccessful'] = '$nr kontaktu aurkitu dira.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Bilaketak ez du emaitzarik itzuli';
$messages['searching'] = 'Bilatzen...';
$messages['checking'] = 'Arakatzen...';
$messages['nospellerrors'] = 'Ez da ortografia errorerik aurkitu';
$messages['folderdeleted'] = 'Karpeta behar bezala ezabatu da';
-$messages['foldersubscribed'] = 'Karpeta ongi harpidetu da.';
-$messages['folderunsubscribed'] = 'Karpetaren harpidetza ongi kendu da.';
-$messages['folderpurged'] = 'Karpeta ongi hustu da.';
-$messages['folderexpunged'] = 'Karpeta ongi trinkotu da.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'Behar bezala ezabatu da';
$messages['converting'] = 'Mezuaren formatua ezabatzen';
$messages['messageopenerror'] = 'Ezin da zerbitzaritik mezua kargatu';
$messages['fileuploaderror'] = 'Huts fitxategia eransterakoan';
$messages['filesizeerror'] = 'Erantsi nahi duzun fitxategian $size tamaina muga gainditzen du';
-$messages['copysuccess'] = '$nr kontaktu ongi kopiatu dira.';
-$messages['movesuccess'] = '$nr kontaktu ongi mugitu dira.';
-$messages['copyerror'] = 'Ezin da kontakturik kopiatu.';
-$messages['moveerror'] = 'Ezin da kontakturik mugitu.';
+$messages['copysuccess'] = 'Ondo kopiatu dira $nr helbideak';
+$messages['copyerror'] = 'Ezin da helbiderik kopiatu';
$messages['sourceisreadonly'] = 'Helbide iturburua irakurtzeko soilik da';
$messages['errorsavingcontact'] = 'Ezin da kontaktuaren helbidea gorde';
$messages['movingmessage'] = 'Mezua mugitzen...';
-$messages['copyingmessage'] = 'Mezuak kopiatzen...';
-$messages['copyingcontact'] = 'Kontaktua(k) kopiatzen...';
-$messages['movingcontact'] = 'Kontaktua(k) mugitzen...';
-$messages['deletingmessage'] = 'Mezua(k) ezabatzen...';
-$messages['markingmessage'] = 'Mezua(k) markatzen...';
-$messages['addingmember'] = 'Kontaktua(k) taldera gehitzen...';
-$messages['removingmember'] = 'Kontaktua(k) taldetik ezabatzen...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'Ondo bidalia irakurritako agiria';
$messages['errorsendingreceipt'] = 'Ezin da agiria bidali';
-$messages['deleteidentityconfirm'] = 'Seguru zaude identitate hau ezabatu nahi duzula?';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Ezin da izaera hau ezabatu, zure bakarra da';
$messages['forbiddencharacter'] = 'Karpeta izenak debekatutako karaktereak ditu';
-$messages['selectimportfile'] = 'Hautatu kargatzeko fitxategia.';
-$messages['addresswriterror'] = 'Hautatutako helbide-liburua ezin da editatu.';
-$messages['contactaddedtogroup'] = 'Kontaktuak ongi gehitu dira taldera.';
-$messages['contactremovedfromgroup'] = 'Kontaktuak ongi ezabatu dira taldetik.';
-$messages['nogroupassignmentschanged'] = 'Talde-esleipena ez da aldatu.';
-$messages['importwait'] = 'Inportatzen, itxaron mesedez...';
-$messages['importformaterror'] = 'Huts egin du inportatzean. Kargatu duzun fitxategia ez da inportatzeko fitxategi baliozkoa.';
-$messages['importconfirm'] = '<b>Ongi inportatu dira $inserted kontaktu</b>';
-$messages['importconfirmskipped'] = '<b>Saltatu dira $skipped sarrera</b>';
-$messages['importmessagesuccess'] = '$nr mezu ongi inportatu dira.';
-$messages['importmessageerror'] = 'Inportazio akatsa! Kargatutako fitxategia ez da baliozko mezua edo posta-fitxategia.';
-$messages['opnotpermitted'] = 'Ekintza ez baimendua!';
-$messages['nofromaddress'] = 'Helbide elektronikoa falta da hautatutako identitatean.';
-$messages['editorwarning'] = 'Formaturik gabeko testu-editorera pasatzeak ekar dezake testu-formatu guztien galera. Jarraitu nahi duzu?';
-$messages['httpreceivedencrypterror'] = 'Ezarpen akats larria gertatu da. Jarri harremanetan zure administratzailearekin ahalik eta lasterren. <b>Zure mezua ezin da bidali.</b>';
-$messages['smtpconnerror'] = 'SMTP errorea ($code): Zerbitzariarekiko konexioak huts egin du.';
-$messages['smtpautherror'] = 'SMTP errorea ($code): Egiaztapenak huts egin du.';
-$messages['smtpfromerror'] = 'SMTP errorea ($code): "$from" ($msg) bidaltzailearen ezartzeak huts egin du.';
-$messages['smtptoerror'] = 'SMTP errorea ($code): "$to" ($msg) hartzailea gehitzen huts egin du.';
-$messages['smtprecipientserror'] = 'SMTP errorea: Ezin da hartzaileen zerrenda analizatu.';
-$messages['smtperror'] = 'SMTP errorea: $msg';
-$messages['emailformaterror'] = 'Helbide elektronikoa ez da baliozkoa: $email';
-$messages['toomanyrecipients'] = 'Hartzaile gehiegi. Txikitu hartzaile kopura hona $max.';
-$messages['maxgroupmembersreached'] = 'Taldeko partaideen kopurua $max -ko maximoa gainditzen du:';
-$messages['contactdelerror'] = 'Ezin d(ir)a kontaktua(k) ezabatu.';
-$messages['contactdeleted'] = 'Kontaktua(k) ongi ezabatu dira.';
-$messages['contactrestoreerror'] = 'Ezin d(ir)a ezabatutako kontaktua(k) leheneratu.';
-$messages['contactrestored'] = 'Kontaktua(k) ongi leheneratu d(ir)a.';
-$messages['groupdeleted'] = 'Taldea ongi ezabatu da.';
-$messages['grouprenamed'] = 'Taldea ongi berrizendatu da.';
-$messages['groupcreated'] = 'Taldea ongi sortu da.';
-$messages['savedsearchdeleted'] = 'Bilaketaren gordetzea ongi ezabatu da.';
-$messages['savedsearchdeleteerror'] = 'Ezin da ezabatu bilaketaren gordeketa.';
-$messages['savedsearchcreated'] = 'Bilaketaren gordeketa ongi sortu da.';
-$messages['savedsearchcreateerror'] = 'Ezin da sortu bilaketaren gordeketa.';
-$messages['messagedeleted'] = 'Mezua(k) ongi ezabatu dira.';
-$messages['messagemoved'] = 'Mezua(k) ongi mugitu d(ir)a.';
-$messages['messagecopied'] = 'Mezua(k) ongi kopiatu d(ir)a';
-$messages['messagemarked'] = 'Mezua(k) ongi markatu d(ir)a';
-$messages['autocompletechars'] = 'Sartu gutxienez $min karaktere osatze automatikorako';
-$messages['autocompletemore'] = 'Bat datozen sarrera gehiago topatu dira. Idatzi karaktere gehiago.';
-$messages['namecannotbeempty'] = 'Izena ezin da hutsik egon.';
-$messages['nametoolong'] = 'Izena luzeegia da.';
-$messages['folderupdated'] = 'Karpeta ongi eguneratu da.';
-$messages['foldercreated'] = 'Karpeta ongi sortu da.';
-$messages['invalidimageformat'] = 'Irudi formatua ez da baliozkoa.';
-$messages['mispellingsfound'] = 'Ortografia akatsak detektatu dira mezuan.';
-$messages['parentnotwritable'] = 'Ezin da karpeta sortu/mugi hautatutako goragoko karpetan. Sartzeko baimenik ez.';
-$messages['messagetoobig'] = 'Mezu-zatia handiegia da prozesatzeko.';
-$messages['attachmentvalidationerror'] = 'KONTUZ! Eranskin hau susmagarria da zeren bere izaera ez dator bat mezuan deklaratutakoarekin. Bidaltzailearekin fidatzen ez bazara ez zenuke nabigatzailean ireki behar eduki maltzurra izan dezakeelako.<br/><br/><em>Deklaratua: $expected; erreala: $detected</em>';
-$messages['noscriptwarning'] = 'Kontuz: web-posta zerbitzu honek Javascript behar du! Erabili nahi baduzu gaitu Javascript zure nabigatzailearen hobespenetan.';
+$messages['selectimportfile'] = 'Please select a file to upload.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/fa_AF/labels.inc b/program/localization/fa_AF/labels.inc
index 4abf65245..70113bc49 100644
--- a/program/localization/fa_AF/labels.inc
+++ b/program/localization/fa_AF/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'به اين پروژه خوش امديد';
$labels['username'] = 'نام کاربر';
$labels['password'] = 'Ø´Ùر';
$labels['server'] = 'سرور';
$labels['login'] = 'داخل شدن';
+
+// taskbar
$labels['logout'] = 'خروج';
$labels['mail'] = 'ايميل';
$labels['settings'] = 'تنظیمات شخصی';
$labels['addressbook'] = 'کتاب ادرس';
+
+// mailbox names
$labels['inbox'] = 'نامه های ارسالي';
$labels['drafts'] = 'نامه های ناتکمیل';
$labels['sent'] = 'ارسال شده';
$labels['trash'] = 'اشغال دانی';
$labels['junk'] = 'بیکاره';
+
+// message listing
$labels['subject'] = 'مضمون';
$labels['from'] = 'ارسال کننده';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ګيرينده';
$labels['cc'] = 'تکثیر';
$labels['bcc'] = 'تکثیر پنهان';
$labels['replyto'] = 'جواب نامه';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'تاريخ';
$labels['size'] = 'اندازه';
$labels['priority'] = 'اولویت';
$labels['organization'] = 'تنظیمات';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'پوشه ها';
$labels['messagesfromto'] = 'از مقدار پيغام به مقدار حساب شده';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'از شمار پيغام های حساب شده';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'تکثیر';
+$labels['move'] = 'Move';
$labels['moveto'] = 'انتقال بدهید به ...';
$labels['download'] = 'داونلود کردن';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'نام Ùايل';
$labels['filesize'] = 'اندازه Ùايل';
+
$labels['addtoaddressbook'] = 'در کتاب ادرس علاوه نماييد';
+
+// weekdays short
$labels['sun'] = 'يکشنپبه';
$labels['mon'] = 'دوشنبه';
$labels['tue'] = 'سه شنبه';
@@ -55,6 +81,8 @@ $labels['wed'] = 'چهارشنبه';
$labels['thu'] = 'پنج شنبه';
$labels['fri'] = 'جمعه';
$labels['sat'] = 'شنبه';
+
+// weekdays long
$labels['sunday'] = 'يکشنبه';
$labels['monday'] = 'دوشنبه';
$labels['tuesday'] = 'سه شنبه';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'چهارشنبه';
$labels['thursday'] = 'پنج شنبه';
$labels['friday'] = 'جمعه';
$labels['saturday'] = 'شنبه';
+
+// months short
$labels['jan'] = 'جنوری';
$labels['feb'] = 'Ùبروری';
$labels['mar'] = 'مارچ';
@@ -74,6 +104,8 @@ $labels['sep'] = 'سپتمبر';
$labels['oct'] = 'اکتوبر';
$labels['nov'] = 'نومبر';
$labels['dec'] = 'دسمبر';
+
+// months long
$labels['longjan'] = 'جنوری';
$labels['longfeb'] = 'Ùبروری';
$labels['longmar'] = 'مارچ';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'سپتمبر';
$labels['longoct'] = 'اکتوبر';
$labels['longnov'] = 'نومبر';
$labels['longdec'] = 'دسمبر';
+
$labels['today'] = 'امروز';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'بررسي کردن پيغام های جديد';
$labels['compose'] = 'نوشتن پیام حدید';
$labels['writenewmessage'] = 'ساختن پيغام جديد';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'جواب دادن به پيغام';
$labels['replytoallmessage'] = 'به Ùرستنده Ùˆ تمام گيرينده ها جواب بدهيد';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Ùرستادن این پیام به دیگران / Ùارورد';
$labels['deletemessage'] = 'حذ٠کردن پيغام';
$labels['movemessagetotrash'] = 'پيغام را به اشيآيي حذ٠شده منتقل نماييد';
@@ -102,98 +144,250 @@ $labels['nextmessage'] = 'پيغام بعدي رانشان دهيد';
$labels['lastmessage'] = 'پيغام اخير را نشان دهيد';
$labels['backtolist'] = 'بازگشتن به لست پيغام';
$labels['viewsource'] = 'منبع / کود را نشان دهيد';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'پيغام ها را نشاني کنيد';
$labels['markread'] = 'مانند خوانده شده';
$labels['markunread'] = 'مانند خوانده نشده';
$labels['markflagged'] = 'مانند نشانی شده';
$labels['markunflagged'] = 'مانند نشانی ناشده';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'انتخاب کردن';
$labels['all'] = 'تمام';
$labels['none'] = 'هيچ کدام';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'ناخوانده';
$labels['flagged'] = 'نشانی شده';
$labels['unanswered'] = 'پیامهای جواب نداده شده';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['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'] = 'هيچ کدام';
+$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'] = 'خلاصه';
$labels['empty'] = 'خالي';
+
$labels['quota'] = '‌طريقه استعمال ديسک';
$labels['unknown'] = 'نامعلوم';
$labels['unlimited'] = 'نامعين/ نامحدود';
+
$labels['quicksearch'] = 'جستجوی سریع';
$labels['resetsearch'] = 'بازنشاندن جستجو';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'در پینجره ای جدید باز کنید';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'پيغام را همين حالا ارسال کنيد';
$labels['savemessage'] = 'این پیش نویس را Ø­Ùظ نمایید';
$labels['addattachment'] = 'ضميمه نمودن ÙŠÚ© Ùايل';
$labels['charset'] = 'ست کرکتر ها';
$labels['editortype'] = 'روش تصحیح کننده / نوشتاری';
$labels['returnreceipt'] = 'رسید برای مراجعت نامه';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'املا را بررسي کنيد';
$labels['resumeediting'] = 'ادامه / بازگشت به تصحیی کردن / نوشتن';
$labels['revertto'] = 'رجوع کردن به';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'ضميمه ها';
$labels['upload'] = 'اپلود کردن';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'بستن';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Ú©Ù…';
$labels['lowest'] = 'کمترین';
$labels['normal'] = 'عادی';
$labels['high'] = 'عالي';
$labels['highest'] = 'عاليترين';
+
$labels['nosubject'] = 'مضمون ندارد';
$labels['showimages'] = 'نمايش دادن تصاوير';
$labels['alwaysshow'] = 'همیشه نشان بده تصاویر را از این Ùرسیتنده﷼';
+$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'] = 'ایچ تی ام ایل';
$labels['plaintoggle'] = 'متن ساده';
$labels['savesentmessagein'] = 'پیام ارسال شده را ذخیره کن در';
$labels['dontsave'] = 'ذخیره نکنید';
$labels['maxuploadsize'] = '$sizeزیاد ترین اندازه اجازه داده شده Ùایل عبارت است از';
+
$labels['addcc'] = 'نسخیه دوم را علاوه کنید';
$labels['addbcc'] = 'نسخه پنهان را علاوه کنید';
$labels['addreplyto'] = 'علاوه کردن';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Ùرستانده این پیام خواهش نموده زمانیکه شما نامه را خواندید براش آگاهی داده شود آيا شما ميخواهيد Ú©Ù‡ Ùرستنده را آګاه سازيد';
$labels['receiptread'] = 'بازگشت رسید (خوانده شده)';
$labels['yourmessage'] = 'برای پيغام شما اين يک رسید بازگشت است';
$labels['receiptnote'] = 'يادداشت : اين رسيد شما را Ùقط اګاه ميسازد Ú©Ù‡ پيغام به کامپیوتر گیرنده نمایش داده شده است هیچ گارنتی وجود ندارد Ú©Ù‡ گیرنده پیام این پیام را خوانده Ùˆ یا مطالب آن را درک کرده باشد.';
+
+// address boook
$labels['name'] = 'نشان دادن نام';
$labels['firstname'] = 'اسم/ نام';
$labels['surname'] = 'اسم Ùاميلي / تخلص';
+$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'] = 'ايميل';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'آدرس جديد را علاوه کنيد';
$labels['editcontact'] = 'آدرس جدید را تصحیح کنید';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'تصحيح کردن';
$labels['cancel'] = 'لغو کردن/ حذ٠کردن';
$labels['save'] = 'Ø­Ùظ کردن';
$labels['delete'] = 'حذ٠کردن';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'کارت تماس جديد را بسازيد';
$labels['deletecontact'] = 'آدرس های انتخاب شده را حذ٠کنيد';
$labels['composeto'] = 'ايمیل را نوشته کنيد به';
$labels['contactsfromto'] = 'از$count$to به $from آدرس ها از';
$labels['print'] = 'چاپ کردن';
$labels['export'] = 'صادر کردن';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'صادر نماییدVcardآدرس ها را به Ùرمت';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'بسته قبلي را نشان دهيد';
$labels['firstpage'] = 'بسته اولي را نشان دهيد';
$labels['nextpage'] = 'بسته بعدي را نشان دهيد';
$labels['lastpage'] = 'بسته اخير را نشان دهيد';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'گروه ها';
$labels['personaladrbook'] = 'ادرس های شخصي';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'وارد کردن';
$labels['importcontacts'] = 'آدرس ها را وارد نمایید';
$labels['importfromfile'] = 'از یک Ùایل وارد نمایید';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'تمام کتاب آدرس ها را عوض نمایید';
+$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'] = 'اجرا شد';
+
+// settings
$labels['settingsfor'] = 'تنظیمات برای';
+$labels['about'] = 'About';
$labels['preferences'] = 'ترجيحات';
$labels['userpreferences'] = 'ترجيحات کاربر';
$labels['editpreferences'] = 'تصحيح کردن ترجيحات کاربر';
+
$labels['identities'] = 'شناخت ها';
$labels['manageidentities'] = 'اداره کردن شناسای ها برای اين آدرس';
$labels['newidentity'] = 'شناخت جديد';
+
$labels['newitem'] = 'Ùقره جديد';
$labels['edititem'] = 'تصحيح کردن Ùقره';
+
$labels['preferhtml'] = 'نشان دادن ايچ ټي ام ايل';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'پيغام ايچ ټي‌ام ايل';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'تاريخ های مهم';
$labels['setdefault'] = 'بطور همیشگی انتخاب نمایید';
$labels['autodetect'] = 'اتومات';
@@ -202,8 +396,13 @@ $labels['timezone'] = 'ناحيه زمانی';
$labels['pagesize'] = 'تعداد سطر ها در صÙحه';
$labels['signature'] = 'امضا';
$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'پيغام ايچ ټي ام ايل رانوشته کنيد';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'امضای حساب ایمیل بشکل ایچ تی ام ال';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'چوکات پیشنما را نشان دهید';
$labels['skin'] = 'تمپلیت محیط کاربری';
$labels['logoutclear'] = 'Clear Trash on logout';
@@ -214,26 +413,69 @@ $labels['mailboxview'] = 'طرز نمایش صندوق پستی';
$labels['mdnrequests'] = 'آگاهی های ارسال کننده';
$labels['askuser'] = 'از کاربر بپرسید';
$labels['autosend'] = 'پیام را بطور خودکار روان کنید';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'رد کردن';
$labels['readwhendeleted'] = 'در هنگام Ø­Ùظ پیام را خوانده شده نشانی کنید';
$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
$labels['skipdeleted'] = 'پیام های حذ٠شده را نمایش ندهید';
+$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'] = 'نامه های از آدرس های شناخته شده';
$labels['always'] = 'همیشه';
$labels['showinlineimages'] = 'تصاویر ضمیمه شده را در پایین پیام نشان دهید.';
$labels['autosavedraft'] = 'بصورت خودکار پیش نويس را Ø­Ùظ کنيد';
$labels['everynminutes'] = 'دقیÙÙ‡$n هر';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'هیچگاه';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'نمایش دادن پیام ها';
$labels['messagescomposition'] = 'ایجاد کردن پیام جدید';
$labels['mimeparamfolding'] = 'نام های ضمیمه ها';
$labels['2231folding'] = 'Full RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (دیگر ها)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'انتخاب های پیشرÙته';
$labels['focusonnewmessage'] = 'Ùوکس دادن پینجره مرورگر به پیام جدید';
$labels['checkallfolders'] = 'تمام پوشه ها را بخاطر پیام های جدید بررسی کنید';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'پوشه';
$labels['folders'] = 'پوشه ها';
$labels['foldername'] = 'نام پوشه';
@@ -243,11 +485,54 @@ $labels['create'] = 'ایجاد کردن';
$labels['createfolder'] = 'ایجاد پوشه جدید';
$labels['managefolders'] = 'اداره کردن پوشه ها';
$labels['specialfolders'] = 'پوشه های مخصوص';
+$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'] = 'Ùهرست کردن توسط';
$labels['sortasc'] = 'Ùهرست کردن از طر٠بالا به پايين';
$labels['sortdesc'] = 'Ùهرست کردن از طر٠پايين به بالا';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'بایت';
$labels['KB'] = 'کیلو بایت';
$labels['MB'] = 'میگا بایت';
$labels['GB'] = 'گیگا بایت';
+
+// character sets
+$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/fa_AF/messages.inc b/program/localization/fa_AF/messages.inc
index 643a9f7db..4f3d4be55 100644
--- a/program/localization/fa_AF/messages.inc
+++ b/program/localization/fa_AF/messages.inc
@@ -15,51 +15,67 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'خطا رخ داد';
-$messages['loginfailed'] = 'خطا در ورود به سیستم';
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'داخل شدن به سيستم موÙÙ‚ نه شد';
$messages['cookiesdisabled'] = 'جستجوگر شما cookies را قبول نميکند';
$messages['sessionerror'] = 'جلسه شما وجود ندارد و يا هم از زمان معين آن گذشته است';
$messages['storageerror'] = 'وصل شدن به آیمیپ سرور موÙÙ‚ نشد';
-$messages['servererrormsg'] = 'خطای سرور: $msg';
-$messages['dberror'] = 'خطای پایگاه داده';
-$messages['requesttimedout'] = 'عدم پاسخگویی در زمان مقرر';
-$messages['invalidhost'] = 'نام سرور نامعتبر است';
+$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'] = 'هيچ پيغامی در اين صندوق پستي درياÙت نه شد';
$messages['loggedout'] = 'جلسه شما بصورت مکمل Ùسخ شده است خدا حاÙظ';
$messages['mailboxempty'] = 'صندوق پستي خالي است';
-$messages['refreshing'] = 'دوباره سازی....';
-$messages['loading'] = 'در حال بارگزاری...';
-$messages['uploading'] = 'در حال بارگزاری Ùایل...';
-$messages['uploadingmany'] = 'در حال بارگزاری Ùایل ها...';
-$messages['loadingdata'] = 'در حال بارگزاری داده';
+$messages['refreshing'] = 'Refreshing...';
+$messages['loading'] = 'در حال باز شدن ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
+$messages['loadingdata'] = 'در حال بار کردن دیتا';
$messages['checkingmail'] = 'پيغام های جديد را بررسي ميکند';
$messages['sendingmessage'] = 'پيغام ها را ارسال ميکند';
$messages['messagesent'] = 'پیام موÙقانه ارسال گردید';
-$messages['savingmessage'] = 'در حال ذخیره کردن پیام';
+$messages['savingmessage'] = 'در حال Ø­Ùظ کردن پیام';
$messages['messagesaved'] = 'پيغام را به پیش نويس Ø­Ùظ کرد';
$messages['successfullysaved'] = 'Ø­Ùظ پیام موÙقانه صورت گرÙت';
$messages['addedsuccessfully'] = 'آدرس بصورت مکمل در کتاب ادرس علاوه شد';
$messages['contactexists'] = 'يک آدرس همرا اين ايميل ادرس قبلاً وجود دارد';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'برای Ø­Ùظ استقلال پيغام شما، تصاویر اجنبی این پیام بلاک شده اند';
$messages['encryptedmessage'] = 'اين ÙŠÚ© پيغام مخÙÙŠ است Ùˆ اشکار شده نميتواند معذرت ميخواهيم';
$messages['nocontactsfound'] = 'هيچ آدرسی درياÙت نه شد';
$messages['contactnotfound'] = 'آدرس خواسته شده درياÙت نه شد';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Ùرستادن پيغام موÙÙ‚ نه شد';
$messages['senttooquickly'] = 'ثانیه منتظر باشید$secلطÙا مدت قبل از ارسال این پیام';
+$messages['errorsavingsent'] = 'در جريان Ø­Ùظ کردن پیام ارسال شده يکاشتباه به وجود امد';
+$messages['errorsaving'] = 'در جريان Ø­Ùظ کردن يکاشتباه به وجود امد';
$messages['errormoving'] = 'پيغام نقل مکان شده نتوانست';
-$messages['errorcopying'] = 'امکان کپی پیام (ها) وجود ندارد';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'پيغام حذ٠شده نتوانست';
-$messages['errormarking'] = 'امکان انتخاب پیام (ها) وجود ندارد';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'آيا واقعاً شما ميخواهيد که آدرس های انتخاب شده را حذ٠کنيد؟';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'آيا واقعاً شما ميخواهيد که پيغام هاي انتخاب شده را حذ٠کنيد؟';
$messages['deletefolderconfirm'] = 'آيا واقعاً شما ميخواهيد که اين پوشه را حذ٠کنيد؟';
$messages['purgefolderconfirm'] = 'آيا واقعاً شما ميخواهيد تمام پيغام های که در اين پوشه وجود دارد حذ٠کنيد؟';
-$messages['groupdeleting'] = 'در حال حذ٠گروه...';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'در حال حذ٠پوشه';
$messages['foldermoving'] = 'در حال انتقال پوشه';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Ùورمه بصورت مکمل خانه پري نه شده است';
$messages['noemailwarning'] = 'لطÙاً ÙŠÚ© ايميل ادرس موجود را داخل کنيد';
-$messages['nonamewarning'] = 'لطÙاً ÙŠÚ© نام وارد کنيد';
+$messages['nonamewarning'] = 'لطÙاً ÙŠÚ© نام را داخل کنيد';
$messages['nopagesizewarning'] = 'لطÙاً اندازه ÙŠÚ© صÙحه را داخل کنيد';
$messages['nosenderwarning'] = 'لطÙاً ایمیل آدرس ارسال کننده را داخل کنید';
$messages['norecipientwarning'] = 'لطÙاً Ú©Ù… از Ú©Ù… ÙŠÚ© آدرس گيرينده را نوشته / داخل کنيد';
@@ -68,31 +84,88 @@ $messages['nobodywarning'] = 'اين پيغام را بدون متن بÙرستÛ
$messages['notsentwarning'] = 'پيغام ارسال نه شده است آیا میخواهید که از این نامه صر٠نظر نمایید';
$messages['noldapserver'] = 'لطÙاً ÙŠÚ© ايل دپ سرور را بخاطر جستجو انتخاب کنيد';
$messages['nosearchname'] = 'لطÙاً ÙŠÚ© نام تماس Ùˆ يا هم ÙŠÚ© ايميل ادرس را داخل کنيد';
-$messages['searchsuccessful'] = '$nr پیام یاÙت شد';
-$messages['contactsearchsuccessful'] = '$nr حساب کاربری یاÙت شد';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
+$messages['searchsuccessful'] = '$nr پیام دریاÙت شد';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'جستجو گر موÙÙ‚ به دریاÙت هیچ گونه اثری نشد';
-$messages['searching'] = 'در حال جستجو..';
+$messages['searching'] = 'در حال جستجو';
$messages['checking'] = 'در حال بررسی';
$messages['nospellerrors'] = 'هيچ اشتباه املايي را درياÙت نه کرد';
$messages['folderdeleted'] = 'پوشه موÙقانه از بين رÙت/ حذ٠گرديد';
-$messages['folderpurged'] = 'محتوای پوشه ها با موÙقیت پاک شدند';
-$messages['deletedsuccessfully'] = 'با موÙقیت حذ٠شد';
-$messages['converting'] = 'در حال پاک کردن ساختار';
+$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'] = 'موÙقانه حذ٠شد';
+$messages['converting'] = 'در حال از بین بردن Ø´Ú©Ù„ دهی Ùˆ ساختار (Ùرمت)';
$messages['messageopenerror'] = 'پيغام از سرور جريان کرده نتوانست';
-$messages['fileuploaderror'] = 'بارگزاری Ùايل با خطا مواجه شد.';
+$messages['fileuploaderror'] = 'اپلود کردن Ùايل موÙÙ‚ نه شد.';
$messages['filesizeerror'] = 'تثبیت شده میباشد$size حجم Ùایل آپلود شده بیشتر از حجم Ú©Ù„ÛŒ';
+$messages['copysuccess'] = 'آدرس ها کاپی شد. $nrموÙقانه بع تعداد';
+$messages['copyerror'] = 'هيچ يک از تماس ها را کاپي کرده نتوانست';
$messages['sourceisreadonly'] = 'اجازه نمامه کود / منبع این آدرس Ù‚ÙØ· خواندنی است';
$messages['errorsavingcontact'] = 'ادرس این پیام را Ø­Ùظکرده نتوانست';
$messages['movingmessage'] = 'ذر حال انتقال پیام...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'یک رسید برای ارسال کننده این پیام Ùرستاده شد.';
$messages['errorsendingreceipt'] = 'رسيد ارسال شده نتوانست';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'شما این شناخت نامه را حذ٠کرده نمیتوانید. این آخرین شناخت نامه شما است.';
$messages['forbiddencharacter'] = 'نام پوشه دارای یک کرکتر ممنوعه است.';
$messages['selectimportfile'] = 'لطÙاً یک Ùایل را برای آپلود کردن انتخاب نمایید.';
$messages['addresswriterror'] = 'کتابچه آدرس انتخاب شده دارای اجازه نامه نوشتاری نیست.';
+$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'] = 'در حال وارد کردن لطÙا صبر کنید.';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>Successfully imported $inserted contacts, $skipped existing entries skipped</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'اجازه این عملکرد را ندارید';
$messages['nofromaddress'] = 'بخش ایمیل آدرس در شناخت نامه انتخاب شده Ù…Ùقود است.';
$messages['editorwarning'] = 'استÙاده از تصحیح کننده متن ساده تمام Ùرمت Ùˆ ساختار داده شده را از بین خواهد برد. آیا میخواهید Ú©Ù‡ ادامه بدهید.';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/fa_IR/labels.inc b/program/localization/fa_IR/labels.inc
index 14f6f8621..221e4b891 100644
--- a/program/localization/fa_IR/labels.inc
+++ b/program/localization/fa_IR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'به $product خوش آمدید';
$labels['username'] = 'نام کاربری';
$labels['password'] = 'گذرواژه';
-$labels['server'] = 'سرور';
+$labels['server'] = 'سرویس‌دهنده';
$labels['login'] = 'ورود';
-$labels['logout'] = 'خروج';
+
+// taskbar
+$labels['logout'] = 'برون‌رÙت';
$labels['mail'] = 'نامه';
$labels['settings'] = 'تنظیمات';
$labels['addressbook'] = 'دÙتر نشانی';
+
+// mailbox names
$labels['inbox'] = 'صندوق ورودی';
$labels['drafts'] = 'پیش‌نویس‌ها';
$labels['sent'] = 'Ùرستاده شده';
-$labels['trash'] = 'زباله‌دان';
+$labels['trash'] = 'سطل آشغال';
$labels['junk'] = 'بنجل';
-$labels['show_real_foldernames'] = 'نمایش نام واقعی برای پوشه‌های ویژه';
+
+// message listing
$labels['subject'] = 'موضوع';
$labels['from'] = 'از';
$labels['sender'] = 'Ùرستنده';
@@ -44,11 +53,13 @@ $labels['priority'] = 'اولویت';
$labels['organization'] = 'سازمان';
$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['move'] = 'انتقال';
$labels['moveto'] = 'انتقال به...';
@@ -56,9 +67,13 @@ $labels['download'] = 'بارگیری';
$labels['open'] = 'باز کردن';
$labels['showattachment'] = 'نمایش';
$labels['showanyway'] = 'نمایش آن در هر صورت';
+
$labels['filename'] = 'نام پرونده';
$labels['filesize'] = 'اندازه پرونده';
+
$labels['addtoaddressbook'] = 'اÙزودن به دÙتر نشانی‌ها';
+
+// weekdays short
$labels['sun'] = '۱ش';
$labels['mon'] = '۲ش';
$labels['tue'] = '۳ش';
@@ -66,13 +81,17 @@ $labels['wed'] = 'Û´Ø´';
$labels['thu'] = '۵ش';
$labels['fri'] = 'جم';
$labels['sat'] = 'Ø´';
+
+// weekdays long
$labels['sunday'] = 'یک‌شنبه';
$labels['monday'] = 'دوشنبه';
$labels['tuesday'] = 'سه‌شنبه';
$labels['wednesday'] = 'چهارشنبه';
$labels['thursday'] = 'پنج‌شنبه';
-$labels['friday'] = 'آدینه';
+$labels['friday'] = 'جمعه';
$labels['saturday'] = 'شنبه';
+
+// months short
$labels['jan'] = 'ژان';
$labels['feb'] = 'Ùور';
$labels['mar'] = 'مار';
@@ -85,6 +104,8 @@ $labels['sep'] = 'سپت';
$labels['oct'] = 'اÙکت';
$labels['nov'] = 'نوا';
$labels['dec'] = 'دسا';
+
+// months long
$labels['longjan'] = 'ژانویه';
$labels['longfeb'] = 'Ùوریه';
$labels['longmar'] = 'مارس';
@@ -97,20 +118,23 @@ $labels['longsep'] = 'سپتامبر';
$labels['longoct'] = 'اکتبر';
$labels['longnov'] = 'نوامبر';
$labels['longdec'] = 'دسامبر';
+
$labels['today'] = 'امروز';
-$labels['refresh'] = 'بازخوانی';
+
+// toolbar buttons
+$labels['refresh'] = 'نوسازی';
$labels['checkmail'] = 'بررسی پیغام‌های جدید';
-$labels['compose'] = 'نوشتن';
+$labels['compose'] = 'نوشتن پیغام';
$labels['writenewmessage'] = 'ایجاد پیغام جدید';
$labels['reply'] = 'پاسخ';
$labels['replytomessage'] = 'پاسخ به Ùرستنده';
$labels['replytoallmessage'] = 'پاسخ به Ùهرست یا به Ùرستنده Ùˆ تمام گیرنده‌ها';
$labels['replyall'] = 'پاسخ به همه';
$labels['replylist'] = 'پاسخ به Ùهرست';
-$labels['forward'] = 'باز ارسال';
-$labels['forwardinline'] = 'باز ارسال خطی';
-$labels['forwardattachment'] = 'باز ارسال به صورت پیوست';
-$labels['forwardmessage'] = 'باز ارسال پیغام';
+$labels['forward'] = 'ارجاع';
+$labels['forwardinline'] = 'ارجاع خطی';
+$labels['forwardattachment'] = 'ارجاع به صورت پیوست';
+$labels['forwardmessage'] = 'ارجاع پیغام';
$labels['deletemessage'] = 'حذ٠پیغام';
$labels['movemessagetotrash'] = 'انتقال پیغام به زباله‌دان';
$labels['printmessage'] = 'چاپ این پیغام';
@@ -129,7 +153,8 @@ $labels['markunflagged'] = 'به عنوان نشانه‌گذاری نشده'
$labels['moreactions'] = 'کارهای دیگر...';
$labels['more'] = 'بيشتر';
$labels['back'] = 'بازگشت';
-$labels['options'] = 'گزینه‌ها';
+$labels['options'] = 'تنظیمات';
+
$labels['select'] = 'انتخاب';
$labels['all'] = 'همه';
$labels['none'] = 'هیچ‌کدام';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'صÙحه جاری';
$labels['unread'] = 'خوانده‌نشده';
$labels['flagged'] = 'پرچم‌دار';
$labels['unanswered'] = 'پاسخ داده نشده';
-$labels['withattachment'] = 'با پیوست';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'حذ٠شده';
$labels['undeleted'] = 'حذ٠نشده';
$labels['invert'] = 'وارونه';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'باز کردن همه';
$labels['expand-unread'] = 'بازکردن خوانده نشده‌ها';
$labels['collapse-all'] = 'جمع کردن همه';
$labels['threaded'] = 'رشته شده';
+
$labels['autoexpand_threads'] = 'باز کردن رشته‌های پیغام';
$labels['do_expand'] = 'همه رشته‌ها';
$labels['expand_only_unread'] = 'Ùقط با پیغام‌های خوانده نشده';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'ستون‌های Ùهرست';
$labels['listsorting'] = 'ستون مرتب‌سازی';
$labels['listorder'] = 'ترتیب مرتب‌سازی';
$labels['listmode'] = 'نوع مشاهده Ùهرست';
+
$labels['folderactions'] = 'اعمال پوشه...';
$labels['compact'] = 'Ùشرده';
$labels['empty'] = 'خالی';
-$labels['importmessages'] = 'وارد کردن پیغام‌ها';
+
$labels['quota'] = 'Ùضای استÙاده شده';
$labels['unknown'] = 'ناشناخته';
$labels['unlimited'] = 'نامحدود';
+
$labels['quicksearch'] = 'جستجوی سریع';
$labels['resetsearch'] = 'جستجوی دوباره';
$labels['searchmod'] = 'اصلاحات جستجو';
$labels['msgtext'] = 'کل پیغام';
$labels['body'] = 'بدنه';
-$labels['type'] = 'نوع';
-$labels['namex'] = 'نام';
+
$labels['openinextwin'] = 'باز کردن در پنجره‌ی جدید';
$labels['emlsave'] = 'بارگیری (.eml)';
$labels['changeformattext'] = 'نمایش در قالب متنی';
$labels['changeformathtml'] = 'نمایش در قالب اچ‌تی‌ام‌ال';
+
+// message compose
$labels['editasnew'] = 'ویرایش به عنوان جدید';
$labels['send'] = 'ارسال';
$labels['sendmessage'] = 'ارسال پیغام';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'رسید دریاÙت';
$labels['dsn'] = 'اعلام وضعیت دریاÙت';
$labels['mailreplyintro'] = 'در $date، $sender نوشته است:';
$labels['originalmessage'] = 'پیغام اصلی';
+
$labels['editidents'] = 'ویرایش شناسه‌ها';
$labels['spellcheck'] = 'املاء';
$labels['checkspelling'] = 'بررسی املایی';
$labels['resumeediting'] = 'ادامه‌ی ویرایش';
$labels['revertto'] = 'برگرداندن به';
-$labels['responses'] = 'پاسخ‌ها';
-$labels['insertresponse'] = 'درج پاسخ';
-$labels['manageresponses'] = 'مدیریت پاسخ‌ها';
-$labels['savenewresponse'] = 'ذخیره پاسخ جدید';
-$labels['editresponses'] = 'ویرایش پاسخ‌ها';
-$labels['editresponse'] = 'ویرایش پاسخ';
-$labels['responsename'] = 'نام';
-$labels['responsetext'] = 'متن پاسخ';
+
$labels['attach'] = 'پیوست کردن';
$labels['attachments'] = 'پیوست‌ها';
$labels['upload'] = 'بارگذاری';
$labels['uploadprogress'] = '$percent ($current از$total)';
$labels['close'] = 'بستن';
$labels['messageoptions'] = 'گزینه‌های پیغام...';
+
$labels['low'] = 'Ú©Ù…';
$labels['lowest'] = 'کم‌ترین';
$labels['normal'] = 'معمولی';
$labels['high'] = 'زیاد';
$labels['highest'] = 'بیش‌ترین';
+
$labels['nosubject'] = '(بدون موضوع)';
$labels['showimages'] = 'نمایش عکس‌ها';
$labels['alwaysshow'] = 'همیشه عکس‌های دریاÙتی از $sender را نمایش داده شود';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'این یک پیغام پیش‌نویس است.';
$labels['andnmore'] = '$nr بیشتر...';
$labels['togglemoreheaders'] = 'نمایش سربرگ‌های بیشتر پیغام';
$labels['togglefullheaders'] = 'تعویض سربرگ‌های پیغام خام';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'متن ساده';
$labels['savesentmessagein'] = 'ذخیره پیغام ارسالی در';
$labels['dontsave'] = 'ذخیره نکن';
$labels['maxuploadsize'] = 'حجم پرونده حداکثر تا میزان $size می‌باشد';
+
$labels['addcc'] = 'اÙزودن رونوشت';
$labels['addbcc'] = 'اÙزودن رونوشت مخÙÛŒ';
$labels['addreplyto'] = 'اÙزودن پاسخ-به';
$labels['addfollowupto'] = 'اÙزودن پیگیری-به';
+
+// mdn
$labels['mdnrequest'] = 'Ùرستنده‌ی این پیغام خواسته است Ú©Ù‡ وقتی شما این پیغام را می‌خوانید، آگاه شود. آیا مایلید Ùرستنده را آگاه سازید؟';
$labels['receiptread'] = 'رسید دریاÙت (خواندن)';
$labels['yourmessage'] = 'این یک رسید دریاÙت برای پیغام شماست';
$labels['receiptnote'] = 'تذکر: این رسید Ùقط تصدیق می‌کند Ú©Ù‡ پیغام، روی رایانه گیرنده نمایش داده شده است. هیچ تضمینی نیست Ú©Ù‡ گیرنده، محتوای پیغام را خوانده یا Ùهمیده باشد.';
+
+// address boook
$labels['name'] = 'نمایش نام';
$labels['firstname'] = 'نام';
$labels['surname'] = 'نام خانوادگی';
@@ -270,6 +301,7 @@ $labels['search'] = 'جستجو';
$labels['advsearch'] = 'جستجوی پیشرÙته';
$labels['advanced'] = 'پیشرÙته';
$labels['other'] = 'سایر';
+
$labels['typehome'] = 'منزل';
$labels['typework'] = 'کار';
$labels['typeother'] = 'سایر';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'دستیار';
$labels['typehomepage'] = 'صÙحه خانگی';
$labels['typeblog'] = 'بلاگ';
$labels['typeprofile'] = 'نمایه';
+
$labels['addfield'] = 'اÙزودن زمینه...';
$labels['addcontact'] = 'اÙزودن تماس جدید';
$labels['editcontact'] = 'ویرایش تماس';
$labels['contacts'] = 'تماس‌ها';
$labels['contactproperties'] = 'خصوصیات تماس';
$labels['personalinfo'] = 'اطلاعات شخصی';
+
$labels['edit'] = 'ویرایش';
$labels['cancel'] = 'لغو';
$labels['save'] = 'ذخیره';
@@ -298,6 +332,7 @@ $labels['rename'] = 'تغییر نام';
$labels['addphoto'] = 'اÙزودن';
$labels['replacephoto'] = 'جایگزینی';
$labels['uploadphoto'] = 'بارگذاری تصویر';
+
$labels['newcontact'] = 'ایجاد کارت تماس جدید';
$labels['deletecontact'] = 'حذ٠تماس‌های انتخاب شده';
$labels['composeto'] = 'نوشتن پیغام به';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'اÙزودن گروه تماس جدید';
$labels['grouprename'] = 'تغییر نام گروه';
$labels['groupdelete'] = 'حذ٠گروه';
$labels['groupremoveselected'] = 'حذ٠نشانی‌های انتخاب شده از گروه';
+
$labels['previouspage'] = 'نمایش صÙحه قبلی';
$labels['firstpage'] = 'نمایش صÙحه اول';
$labels['nextpage'] = 'نمایش صÙحه بعدی';
$labels['lastpage'] = 'نمایش صÙحه آخر';
+
$labels['group'] = 'گروه';
$labels['groups'] = 'گروه‌ها';
-$labels['listgroup'] = 'Ùهرست اعضاء گروه';
$labels['personaladrbook'] = 'نشانی‌های شخصی';
+
$labels['searchsave'] = 'ذخیره جستجو';
$labels['searchdelete'] = 'حذ٠جستجو';
+
$labels['import'] = 'وارد کردن';
$labels['importcontacts'] = 'وارد کردن تماس‌ها';
$labels['importfromfile'] = 'وارد کردن از پرونده‌ی:';
-$labels['importtarget'] = 'اÙزودن تماس‌ها به';
+$labels['importtarget'] = 'اÙزودن تماس‌های جدید به دÙتر نشانی:';
$labels['importreplace'] = 'جایگیزینی کامل دÙتر نشانی';
-$labels['importgroups'] = 'وارد کردن وظای٠گروه';
-$labels['importgroupsall'] = 'همه (ایجاد گروه‌ها در صورت نیاز)';
-$labels['importgroupsexisting'] = 'Ùقط برای گروه‌های موجود';
$labels['importdesc'] = 'شما می‌توانید تماس‌ها را از یک دÙتر نشانی موجود بارگذاری نمایید.<br/> هم اکنون ما وارد کردن آدرس‌ها را از <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> یا قالب داده CVS (جدا شده با کاما) پشتیبانی می‌کنیم.';
$labels['done'] = 'انجام شد';
+
+// settings
$labels['settingsfor'] = 'تنظیمات برای';
$labels['about'] = 'درباره';
$labels['preferences'] = 'ترجیحات';
$labels['userpreferences'] = 'ترجیحات کاربر';
$labels['editpreferences'] = 'ویرایش ترجیحات کاربر';
+
$labels['identities'] = 'شناسه‌ها';
$labels['manageidentities'] = 'مدیریت شناسه‌ها برای این حساب';
$labels['newidentity'] = 'شناسه جدید';
+
$labels['newitem'] = 'مورد جدید';
$labels['edititem'] = 'ویرایش مورد';
+
$labels['preferhtml'] = 'HTML نمایش';
$labels['defaultcharset'] = 'مجموعه نمایه پیش‌Ùرض';
$labels['htmlmessage'] = 'HTML پیغام';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'HTML ‌نوشتن پیغام‌های';
$labels['htmlonreply'] = 'Ùقط در پاسخ به پیغام HTML';
$labels['htmlonreplyandforward'] = 'در بازگردانی یا پاسخ به پیغام‌های HTML';
$labels['htmlsignature'] = 'HTML امضای';
-$labels['showemail'] = 'نمایش آدرس ایمیل با نام نمایشی';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'نمایش قاب پیش‌نمایش';
$labels['skin'] = 'پوسته ظاهری';
$labels['logoutclear'] = 'تمیز کردن زباله دان هنگام برون‌رÙت';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'نادیده گرÙتن کلمات دارای
$labels['spellcheckignorecaps'] = 'نادیده گرÙتن کلمات با حرو٠بزرگ';
$labels['addtodict'] = 'اضاÙÙ‡ کردن به واژه‌نامه';
$labels['mailtoprotohandler'] = 'ثبت نگه‌دارنده پروتوکل برای mailto: پیوندها';
-$labels['standardwindows'] = 'بکار بردن پاپ‌آپ‌ها به صورت پنجره‌ی استاندارد';
$labels['forwardmode'] = 'بازگردانی پیغام';
$labels['inline'] = 'خطی';
$labels['asattachment'] = 'به عنوان پیوست';
+
$labels['folder'] = 'پوشه';
$labels['folders'] = 'پوشه‌ها';
$labels['foldername'] = 'نام پوشه';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'نوع پوشه';
$labels['personalfolder'] = 'پوشه خصوصی';
$labels['otherfolder'] = 'پوشه کاربران دیگر';
$labels['sharedfolder'] = 'پوشه عمومی';
+
$labels['sortby'] = 'مرتب‌سازی بر اساس';
$labels['sortasc'] = 'مرتب‌سازی صعودی';
$labels['sortdesc'] = 'مرتب‌سازی نزولی';
$labels['undo'] = 'برگردان';
+
$labels['installedplugins'] = 'اÙزونه‌های نصب شده';
$labels['plugin'] = 'اÙزونه';
$labels['version'] = 'نسخه';
$labels['source'] = 'منبع';
$labels['license'] = 'گواهینامه';
$labels['support'] = 'پشتیبانی';
+
+// units
$labels['B'] = 'بایت';
$labels['KB'] = 'کیلوبایت';
$labels['MB'] = 'مگابایت';
$labels['GB'] = 'گیگابایت';
+
+// character sets
$labels['unicode'] = 'یونیکد';
$labels['english'] = 'انگلیسی';
$labels['westerneuropean'] = 'اروپای غربی';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'ویتنامی';
$labels['japanese'] = 'ژاپنی';
$labels['korean'] = 'کره‌ای';
$labels['chinese'] = 'چینی';
+
?>
diff --git a/program/localization/fa_IR/messages.inc b/program/localization/fa_IR/messages.inc
index 502b0445a..ff53c650e 100644
--- a/program/localization/fa_IR/messages.inc
+++ b/program/localization/fa_IR/messages.inc
@@ -15,23 +15,25 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'خطایی رخ داد!';
$messages['loginfailed'] = 'ورود ناموÙÙ‚ بود.';
$messages['cookiesdisabled'] = 'مرورگر شما کوکی‌ها را قبول نمی‌کند.';
$messages['sessionerror'] = 'نشست شما معتبر نیست، یا منقضی شده است.';
-$messages['storageerror'] = 'اتصال به سرور مخزن ناموÙÙ‚ بود.';
+$messages['storageerror'] = 'اتصال به سرور انباره ناموÙÙ‚ بود.';
$messages['servererror'] = 'خطای سرور!';
$messages['servererrormsg'] = 'خطای سرور: $msg';
-$messages['dberror'] = 'خطای پایگاه داده';
+$messages['dberror'] = 'خطای پایگاه‌داده';
$messages['requesttimedout'] = 'زمان درخواست تمام شد';
-$messages['errorreadonly'] = ' عمل مورد نظر انجام نشد. پوشه Ùقط خواندنی است.';
-$messages['errornoperm'] = ' عمل مورد نظر انجام نشد. دسترسی وجود ندارد.';
-$messages['erroroverquota'] = 'عملیات انجام نشد. دیسک Ùضای خالی ندارد.';
-$messages['erroroverquotadelete'] = 'دیسک Ùضای خالی ندارد. برای حذ٠پیغام از SHIFT+DEL استÙاده کنید.';
+$messages['errorreadonly'] = 'ناتوانی در انجام عملیات. پوشه Ùقط خواندنی است.';
+$messages['errornoperm'] = 'ناتوانی در انجام عملیات. دسترسی وجود ندارد.';
+$messages['erroroverquota'] = 'ناتوانی در انجام عملیات. Ùضای دیسک خالی نیست.';
+$messages['erroroverquotadelete'] = 'Ùضای دیسک خالی نیست. برای حذ٠پیغام از SHIFT+DEL استÙاده کنید.';
$messages['invalidrequest'] = 'درخواست نامعتبر! هیچ داده‌ای ذخیره نشد.';
$messages['invalidhost'] = 'نام سرور غیرمعتبر.';
-$messages['nomessagesfound'] = 'هیچ پیغامی در این صندوق‌پستی پیدا نشد.';
-$messages['loggedout'] = 'شما با موÙقیت نشست را پایان دادید. خدانگهدار!';
+$messages['nomessagesfound'] = 'هیچ پیغامی در این صندوق پیدا نشد.';
+$messages['loggedout'] = 'شما با موÙقیت نشست را پایان دادید. خدا نگه‌دار!';
$messages['mailboxempty'] = 'صندوق‌پستی خالی است.';
$messages['refreshing'] = 'نوسازی...';
$messages['loading'] = 'در حال بارگذاری...';
@@ -44,130 +46,126 @@ $messages['messagesent'] = 'پیغام با موÙقیت Ùرستاده شد.';
$messages['savingmessage'] = 'درحال ذخیره‌ی پیغام...';
$messages['messagesaved'] = 'پیغام در پیش‌نویس‌ها ذخیره شد';
$messages['successfullysaved'] = 'با موÙقیت ذخیره شد.';
-$messages['addedsuccessfully'] = 'مخاطب با موÙقیت به دÙتر نشانی‌ها اضاÙÙ‡ شد.';
-$messages['contactexists'] = 'یک مخاطب با این ایمیل از قبل وجود دارد.';
-$messages['contactnameexists'] = 'یک مخاطب با این نام از قبل وجود دارد.';
-$messages['blockedimages'] = 'برای Ø­Ùاظت از حریم شخصی شما، عکس‌های با آدرس خارجی در این پیغام مسدود شده‌اند.';
+$messages['addedsuccessfully'] = 'تماس با موÙقیت به دÙتر نشانی‌ها اضاÙÙ‡ شد';
+$messages['contactexists'] = 'یک تماس با این نشانی ایمیل از قبل وجود دارد.';
+$messages['contactnameexists'] = 'یک تماس با این نام از قبل وجود دارد.';
+$messages['blockedimages'] = 'برای Ø­Ùاظت از حریم شخصی شما، عکس‌های دوردست از پیغام حذ٠شد.';
$messages['encryptedmessage'] = '!این یک پیغام رمزنگاری شده است و قابل نمایش نیست. ببخشید';
-$messages['nocontactsfound'] = 'هیج مخاطبی پیدا نشد.';
-$messages['contactnotfound'] = 'مخاطب درخواست شده پیدا نشد.';
-$messages['contactsearchonly'] = 'برای یاÙتن مخاطب عبارتی را جستجو کنید';
-$messages['sendingfailed'] = 'ارسال پیغام ناموÙÙ‚ بود.';
-$messages['senttooquickly'] = 'لطÙا قبل از ارسال این پیغام $sec ثانیه صبر کنید.';
-$messages['errorsavingsent'] = 'خطایی رخ داده است پیام ارسالی ذخیره می گردد.';
-$messages['errorsaving'] = 'خطایی در ذخیره کردن رخ داده است.';
-$messages['errormoving'] = 'پیغام(ها) منتقل نشدند.';
-$messages['errorcopying'] = 'پیغام(ها) کپی نشدند.';
-$messages['errordeleting'] = 'پیغام(ها) حذ٠نشدند.';
-$messages['errormarking'] = 'پیغام(ها) نشانه‌گذاری نشدند.';
-$messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید مخاطب(های) انتخاب شده را حذ٠کنید؟';
+$messages['nocontactsfound'] = 'هیج تماسی پیدا نشد.';
+$messages['contactnotfound'] = 'تماس درخواست شده پیدا نشد.';
+$messages['contactsearchonly'] = 'چند عبارات جستجو برای یاÙتن تماس ها وارد نمایید';
+$messages['sendingfailed'] = 'ناموÙÙ‚ در Ùرستادن پیغام.';
+$messages['senttooquickly'] = 'لطÙا قبل از ارسال این پیغام $sec صبر کنید.';
+$messages['errorsavingsent'] = 'در لحظه ذخیره پیغام ارسال شده، مشکل به وجود آمد.';
+$messages['errorsaving'] = 'هنگام ذخیره‌سازی، اشکالی پیش آمد.';
+$messages['errormoving'] = 'ناتوان در انتقال پیغام(ها).';
+$messages['errorcopying'] = 'ناتوان در رونوشت پیغام(ها).';
+$messages['errordeleting'] = 'ناتوان در حذ٠پیغام(ها).';
+$messages['errormarking'] = 'ناتوان در نشانه گذاری پیغام(ها).';
+$messages['deletecontactconfirm'] = 'آیا واقعاً می‌خواهید تماس(های) انتخاب شده را حذ٠کنید؟';
$messages['deletegroupconfirm'] = 'آیا واقعا می‌خواهید گروه انتخاب شده را حذ٠کنید؟';
$messages['deletemessagesconfirm'] = 'آیا واقعاً می‌خواهید پیغام(های) انتخاب شده را حذ٠کنید؟';
$messages['deletefolderconfirm'] = 'آیا واقعاً می‌خواهید این پوشه را حذ٠کنید؟';
$messages['purgefolderconfirm'] = 'آیا واقعاً می‌خواهید همه‌ی پیغام‌های داخل این پوشه را حذ٠کنید؟';
-$messages['contactdeleting'] = 'حذ٠مخاطب(ها)...';
+$messages['contactdeleting'] = 'حذ٠تماس(ها)...';
$messages['groupdeleting'] = 'حذ٠گروه...';
$messages['folderdeleting'] = 'حذ٠پوشه...';
$messages['foldermoving'] = 'انتقال پوشه...';
$messages['foldersubscribing'] = 'اشتراک پوشه...';
$messages['folderunsubscribing'] = 'لغو اشتراک پوشه...';
-$messages['formincomplete'] = 'Ùرم کامل پر نشده بود.';
-$messages['noemailwarning'] = 'لطÙا یک پست الکترونیکی معتبر وارد کنید.';
+$messages['formincomplete'] = 'Ùرم کاملاً پر نشده بود.';
+$messages['noemailwarning'] = 'لطÙا یک نشانی پست الکترونیکی معتبر وارد کنید.';
$messages['nonamewarning'] = 'لطÙا یک نام وارد کنید.';
-$messages['nopagesizewarning'] = 'لطÙا اندازه‌ی صÙحه را وارد کنید.';
-$messages['nosenderwarning'] = 'لطÙا پست الکترونیکی Ùرستنده را وارد کنید.';
+$messages['nopagesizewarning'] = 'لطÙا اندازه ÛŒ صÙحه را وارد کنید.';
+$messages['nosenderwarning'] = 'لطÙا آدرس پست الکترونیکی Ùرستنده را وارد کنید.';
$messages['norecipientwarning'] = 'لطÙاً حداقل یک گیرنده وارد کنید.';
-$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. می‌خواهید اکنون وارد کنید؟';
+$messages['nosubjectwarning'] = 'قسمت "موضوع" خالی است. آیا می‌خواهید اکنون وارد کنید؟';
$messages['nobodywarning'] = 'این پیغام بدون متن ارسال شود؟';
$messages['notsentwarning'] = 'پیغام ارسال نشده است. آیا می‌خواهید پیغام را از بین ببرید؟';
-$messages['noldapserver'] = 'لطÙا یک سرور LDAP برای جست‌و‌جو انتخاب کنید.';
-$messages['nosearchname'] = 'لطÙا نام یک مخاطب یا یک نشانی ایمیل وارد کنید.';
-$messages['notuploadedwarning'] = 'همه پیوست ها هنوز بارگذاری نشده‌اند. لطÙا صبر کرده یا بارگذاری را لغو کنید.';
-$messages['searchsuccessful'] = '$nr پیغام پیدا شد.';
-$messages['contactsearchsuccessful'] = '$nr مخاطب ییدا شد.';
-$messages['searchnomatch'] = 'جست‌و‌جو هیچ نتیجه‌ای نداشت.';
-$messages['searching'] = 'در حال جست‌و‌جو...';
+$messages['noldapserver'] = 'برای جست Ùˆ جو انتخاب کنید LDAP لطÙا یک سرور.';
+$messages['nosearchname'] = 'لطÙا نام یک تماس Ùˆ یا یک نشانی ایمیل وارد کنید.';
+$messages['notuploadedwarning'] = 'همه پیوست ها هنوز بارگذاری نشده اند. لطÙا صبر کنید یا بارگذاری را لغو کنید.';
+$messages['searchsuccessful'] = '$nr پیغام پیدا شد';
+$messages['contactsearchsuccessful'] = '$nr تماس ییدا شد.';
+$messages['searchnomatch'] = 'جست و جو هیچ نتیجه‌ای نداشت.';
+$messages['searching'] = 'در حال جست و جو...';
$messages['checking'] = 'در حال بررسی...';
$messages['nospellerrors'] = 'هیچ اشکال املایی پیدا نشد.';
$messages['folderdeleted'] = 'پوشه با موÙقیت حذ٠شد.';
-$messages['foldersubscribed'] = 'اشتراک پوشه با موÙقیت انجام شد.';
+$messages['foldersubscribed'] = 'پوشه با موÙقیت اشتراک شد.';
$messages['folderunsubscribed'] = 'اشتراک پوشه با موÙقیت لغو شد.';
$messages['folderpurged'] = 'پوشه با موÙقیت خالی شد.';
$messages['folderexpunged'] = 'پوشه با موÙقیت Ùشرده شد.';
$messages['deletedsuccessfully'] = 'با موÙقیت حذ٠شد.';
$messages['converting'] = 'در حال حذ٠قالب‌بندی...';
-$messages['messageopenerror'] = 'بارگذاری پیغام از روی سرور انجام نشد.';
+$messages['messageopenerror'] = 'ناتوان در بارگذاری پیغام از روی سرور.';
$messages['fileuploaderror'] = 'بارگذاری پرونده ناموÙÙ‚ بود.';
$messages['filesizeerror'] = 'اندازه‌ی پرونده‌ی بارگذاری شده از بیشینه اندازه‌ی $size بیشتر است.';
-$messages['copysuccess'] = '$nr مخاطب با موÙقیت Ú©Ù¾ÛŒ شد.';
-$messages['movesuccess'] = '$nr مخاطب با موÙقیت جابجا شد.';
-$messages['copyerror'] = 'مخاطب‌ها کپی نشدند.';
-$messages['moveerror'] = 'مخاطب‌ها جابجا نشدند.';
-$messages['sourceisreadonly'] = 'این منبع نشانی Ùقط خواندنی است.';
-$messages['errorsavingcontact'] = 'ذخیره‌ی نشانی مخاطب ناموÙÙ‚ بود.';
+$messages['copysuccess'] = '$nr نشانی با موÙقیت رونوشت‌برداری شدند.';
+$messages['copyerror'] = 'رونوشت‌برداری از نشانی‌ها ناموÙÙ‚ بود.';
+$messages['sourceisreadonly'] = 'این منبع نشانی Ùقط‌خواندنی است.';
+$messages['errorsavingcontact'] = 'ذخیره‌ی نشانی تماس ناموÙÙ‚ بود.';
$messages['movingmessage'] = 'در حال انتقال پیغام(ها)...';
-$messages['copyingmessage'] = 'در حال کپی‌برداری از پیغام(ها)...';
-$messages['copyingcontact'] = 'در حال کپی‌برداری مخاطب(ها)...';
-$messages['movingcontact'] = 'در حال جابجایی مخاطب(ها)...';
+$messages['copyingmessage'] = 'در حال رونوشت پیغام(ها)...';
+$messages['copyingcontact'] = 'در حال رونوشت تماس(ها)...';
$messages['deletingmessage'] = 'در حال حذ٠پیغام(ها)...';
$messages['markingmessage'] = 'در حال نشانه‌گذاری پیغام(ها)...';
-$messages['addingmember'] = 'در حال اÙزودن مخاطب(ها) به گروه...';
-$messages['removingmember'] = 'در حال حذ٠مخاطب(ها) از گروه...';
+$messages['addingmember'] = 'در حال اÙزودن تماس(ها) به گروه...';
+$messages['removingmember'] = 'در حال انتقال تماس(ها) از گروه...';
$messages['receiptsent'] = 'رسید خواندن با موÙقیت ارسال شد.';
-$messages['errorsendingreceipt'] = 'ارسال رسید انجام نشد.';
-$messages['deleteidentityconfirm'] = 'آیا از حذ٠این شناسه مطمئن هستید؟';
-$messages['nodeletelastidentity'] = 'این شناسه را نمی‌توانید حذ٠کنید، زیرا آخرین شناسه شما است.';
-$messages['forbiddencharacter'] = 'نام پوشه شامل یک کاراکتر غیر مجاز است.';
-$messages['selectimportfile'] = 'لطÙاً پرونده‌ای را برای بارگذاری انتخاب کنید.';
+$messages['errorsendingreceipt'] = 'ناتوان در ارسال رسید.';
+$messages['deleteidentityconfirm'] = 'آیا شما مطمئن به حذ٠این شناسه هستید.';
+$messages['nodeletelastidentity'] = 'نمی‌توانید این شناسه را حذ٠کنید، زیرا آخرین شناسه شما است.';
+$messages['forbiddencharacter'] = 'نام پوشه شامل یک حر٠غیر مجاز است.';
+$messages['selectimportfile'] = 'لطÙاً پرونده ای را برای بارگیری انتخاب کنید.';
$messages['addresswriterror'] = 'دÙترچه آدرس انتخابی قابل نوشتن نیست.';
-$messages['contactaddedtogroup'] = 'مخاطب‌ها با موÙقیت به این گروه اضاÙÙ‡ شدند.';
-$messages['contactremovedfromgroup'] = 'مخاطب‌ها با موÙقیت از این گروه حذ٠شدند.';
+$messages['contactaddedtogroup'] = 'تماس ها با موÙقیت به این گروه اضاÙÙ‡ شدند.';
+$messages['contactremovedfromgroup'] = 'تماس ها با موÙقیت از این گروه حذ٠شدند.';
$messages['nogroupassignmentschanged'] = 'هیچ تکلی٠گروهی تغییر نکرده است.';
$messages['importwait'] = 'در حال وارد کردن، لطÙا صبر کنید...';
$messages['importformaterror'] = 'وارد کردن ناموÙÙ‚! Ùایل بارگذاری شده یک Ùایل اطلاعات معتبر نیست.';
-$messages['importconfirm'] = '<b>$inserted مخاطب با موÙقیت وارد شدند</b>';
-$messages['importconfirmskipped'] = '<b>$skipped ورودی موجود نادیده گرÙته شدند</b>';
-$messages['importmessagesuccess'] = 'با موÙقیت $nr پیغام وارد شد.';
-$messages['importmessageerror'] = 'وارد کردن ناموÙÙ‚! Ùایل بارگذاری شده یک پیغام یا صندوق‌پستی معتبر نیست.';
+$messages['importconfirm'] = '<b>تماس های $inserted با موÙقیت وارد شدند</b>';
+$messages['importconfirmskipped'] = '<b>ورودی های موجود $skipped نادیده گرÙته شدند</b>';
$messages['opnotpermitted'] = 'عملیات مجاز نیست!';
-$messages['nofromaddress'] = 'شناسه انتخاب شده پست الکترونیکی ندارد.';
+$messages['nofromaddress'] = 'آدرس پست الکترونیکی های Ù…Ùقود در شناسه انتخاب شده.';
$messages['editorwarning'] = 'تعویض به ویرایشگر متن ساده باعث از دست رÙتن قالب‌بندی همه متن‌ها می‌شود، آیا می‌خواهید عملیات را ادامه بدهید؟';
-$messages['httpreceivedencrypterror'] = 'یک خطای پیکربندی خطرناک رخ داده است. سریعا با سرپرست یا مسئول خود تماس بگیرید. <b>امکان ارسال پیغام شما وجود ندارد.</b>';
+$messages['httpreceivedencrypterror'] = 'یک خطای تنظیم وخیم رخ داده است. سریعا با سرپرست یا مدیر خود تماس بگیرید. <b>امکان ارسال پیغام شما وجود ندارد.</b>';
$messages['smtpconnerror'] = 'خطای SMTP (%code): اتصال به سرور ناموÙÙ‚ بود.';
$messages['smtpautherror'] = 'خطای SMTP (%code): تصدیق هویت ناموÙÙ‚ بود.';
$messages['smtpfromerror'] = 'خطای SMTP (%code): ناموÙÙ‚ در تنظیم Ùرستنده "$from" ($msg).';
$messages['smtptoerror'] = 'خطای SMTP (%code): نام موÙÙ‚ در اÙزودن گیرنده "$to" ($msg).';
$messages['smtprecipientserror'] = 'خطای SMTP: ناتوان در تجزیه Ùهرست گیرنده‌ها.';
$messages['smtperror'] = 'خطای SMTP: $msg';
-$messages['emailformaterror'] = 'پست الکترونیکی نامعتبر: $email';
-$messages['toomanyrecipients'] = 'گیرنده‌های بیش از اندازه: تعداد گیرنده ها را به $max کاهش دهید.';
-$messages['maxgroupmembersreached'] = 'تعداد اعضای گروه بیشتر از $max است.';
-$messages['internalerror'] = 'یک خطای داخلی رخ داده است. لطÙا دوباره سعی کنید.';
-$messages['contactdelerror'] = 'حذ٠مخاطب(ها) انجام شد.';
-$messages['contactdeleted'] = 'مخاطب(ها) با موÙقیت حذ٠شدند.';
-$messages['contactrestoreerror'] = 'مخاطب(های) حذ٠شده بازگردانی نخواهند شد.';
-$messages['contactrestored'] = 'مخاطب(ها) با موÙقیت بازگردانده شدند.';
+$messages['emailformaterror'] = 'آدرس پیت الکترونیکی نامعتبر: $email';
+$messages['toomanyrecipients'] = 'گیرنده های خیلی زیاد: تعداد گیرنده ها را به تعداد $max کاهش دهید.';
+$messages['maxgroupmembersreached'] = 'تعداد اعضاء گروه از مقدار بیشینه $max بیشتر است.';
+$messages['internalerror'] = 'خطای داخلی رخ داد. لطÙا دوباره امتحان کنید.';
+$messages['contactdelerror'] = 'تماس(ها) حذ٠نخواهند شد.';
+$messages['contactdeleted'] = 'تماس(ها) با موÙقیت حذ٠شدند.';
+$messages['contactrestoreerror'] = 'تماس(های) حذ٠شده بازگردانی نخواهند شد.';
+$messages['contactrestored'] = 'تماس(ها) با موÙقیت بازگردانده شدند.';
$messages['groupdeleted'] = 'گروه با موÙقیت حذ٠شد.';
-$messages['grouprenamed'] = 'نام گروه با موÙقیت تغییر داده شد.';
+$messages['grouprenamed'] = 'گروه با موÙقیت تغییر نام داده شد.';
$messages['groupcreated'] = 'گروه با موÙقیت ایجاد شد.';
-$messages['savedsearchdeleted'] = 'جستجوی ذخیره شده با موÙقیت حذ٠شد.';
-$messages['savedsearchdeleteerror'] = 'حذ٠جستجوی ذخیره شده انجام نشد.';
-$messages['savedsearchcreated'] = 'جستجوی حذ٠شده با موÙقیت ایجاد شد.';
-$messages['savedsearchcreateerror'] = 'ساخت جستجوی ذخیره شده انجام نشد.';
+$messages['savedsearchdeleted'] = 'جستجوی ذخیره شد با موÙقیت حذ٠شد.';
+$messages['savedsearchdeleteerror'] = 'جستجوی ذخیره شد حذ٠نخواهد شد.';
+$messages['savedsearchcreated'] = 'جستجوی حذ٠شده با موÙقیت حذ٠شد.';
+$messages['savedsearchcreateerror'] = 'جستجوی ذخیره شده اÙزوده نخواهد شد.';
$messages['messagedeleted'] = 'پیغام(ها) با موÙقیت حذ٠شدند.';
$messages['messagemoved'] = 'پیغام(ها) با موÙقیت منتقل شدند.';
-$messages['messagecopied'] = 'پیغام(ها) با موÙقیت Ú©Ù¾ÛŒ شدند.';
-$messages['messagemarked'] = 'پیغام(ها) با موÙقیت نشانه‌گذاری شدند.';
+$messages['messagecopied'] = 'پیغام(ها) با موÙقیت رونوشت شدند.';
+$messages['messagemarked'] = 'پیغام(ها) با موÙقیت نشانه گذاری شدند.';
$messages['autocompletechars'] = 'حداقل $min حر٠برای تکمیل خودکار وارد نمایید.';
-$messages['autocompletemore'] = 'نتایج زیادی یاÙت شد. لطÙا حرو٠بیشتری وارد نمایید.';
+$messages['autocompletemore'] = 'تعداد ورودی های هماهنگ زیادی یاÙت شد. لطÙا حرو٠بیشتری وارد نمایید.';
$messages['namecannotbeempty'] = 'نام نمی‌تواند خالی باشد.';
$messages['nametoolong'] = 'نام خیلی طولانی است.';
-$messages['folderupdated'] = 'پوشه با موÙقیت به‌روز شد.';
+$messages['folderupdated'] = 'پوشه با موÙقیت بارگذاری شد.';
$messages['foldercreated'] = 'پوشه با موÙقیت اÙزوده شد.';
-$messages['invalidimageformat'] = 'Ùرمت تصویر نامعتبر است.';
+$messages['invalidimageformat'] = 'Ùرمت تصویر نامعتبر.';
$messages['mispellingsfound'] = 'خطای املایی در پیغام شناسایی شد.';
-$messages['parentnotwritable'] = 'به دلیل نداشتن حق دسترسی، ایجاد/انتقال پوشه به پوشه والد انتخاب شده، انجام نشد.';
-$messages['messagetoobig'] = 'بخش پیغام برای پردازش آن خیلی بزرگ است.';
-$messages['attachmentvalidationerror'] = 'هشدار! این پیوست مشکوک است زیرا نوع آن با نوعی Ú©Ù‡ در پیغام اشاره شده مطابقت ندارد. اگر شما به Ùرستنده اطمینان ندارید، نباید آن را در مرورگر باز نمایید زیرا ممکن است Ú©Ù‡ شامل محتوای مخرب باشد.<br><br><em>مورد انتظار: $expected; یاÙت شده: $detected</em>';
-$messages['noscriptwarning'] = 'هشدار: این برنامه به جاوااسکریپت نیاز دارد! برای استÙاده از این برنامه لطÙا جاوااسکریپت را در تنظیمات مرورگر خود Ùعال نمایید.';
+$messages['parentnotwritable'] = 'ناتوانی در ایجاد/انتقال پوشه به پوشه والد انتخاب شده. بدون حق دسترسی.';
+$messages['messagetoobig'] = 'بخش پیغام برای اجرای آن خیلی بزرگ است.';
+$messages['attachmentvalidationerror'] = 'هشدار! این پیوست مشکوک است زیرا نوع آن با نوعی Ú©Ù‡ در پیغام اشاره شده مطابقت ندارد. اگر شما Ùرستنده را تایید نمی‌کنید، شما نباید آن را در مرورگر باز نمایید زیرا ممکن است Ú©Ù‡ شامل محتوای مخرب باشد.<br/><br/><em>مورد انتظار: $expected; یاÙت شده: $detected</em>';
+$messages['noscriptwarning'] = 'هشدار: این برنامه به جاوااسکریپت نیاز دارد! برای استÙاده از این لطÙا جاوااسکریپت را در تنظیمات مرورگر خود Ùعال نمایید.';
+
?>
diff --git a/program/localization/fi_FI/labels.inc b/program/localization/fi_FI/labels.inc
index 1e5e26193..ea856b389 100644
--- a/program/localization/fi_FI/labels.inc
+++ b/program/localization/fi_FI/labels.inc
@@ -15,20 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Tervetuloa $product -käyttäjäksi';
$labels['username'] = 'Käyttäjätunnus';
$labels['password'] = 'Salasana';
$labels['server'] = 'Palvelin';
$labels['login'] = 'Kirjaudu';
+
+// taskbar
$labels['logout'] = 'Kirjaudu ulos';
$labels['mail'] = 'Sähköposti';
$labels['settings'] = 'Asetukset';
$labels['addressbook'] = 'Osoitekirja';
+
+// mailbox names
$labels['inbox'] = 'Saapuneet';
$labels['drafts'] = 'Luonnokset';
$labels['sent'] = 'Lähetetyt';
$labels['trash'] = 'Roskakori';
$labels['junk'] = 'Roskaposti';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+
+// message listing
$labels['subject'] = 'Aihe';
$labels['from'] = 'Lähettäjä';
$labels['sender'] = 'Lähettäjä';
@@ -43,11 +54,13 @@ $labels['priority'] = 'Tärkeys';
$labels['organization'] = 'Organisaatio';
$labels['readstatus'] = 'Luettu';
$labels['listoptions'] = 'Listaa valinnat...';
+
$labels['mailboxlist'] = 'Kansiot';
$labels['messagesfromto'] = 'Viestit $from-$to/$count';
$labels['threadsfromto'] = 'Viestiketjut $from-$to/$count';
$labels['messagenrof'] = 'Viesti $nr/$count';
$labels['fromtoshort'] = '$from - $to (yhteensä $count)';
+
$labels['copy'] = 'Kopioi';
$labels['move'] = 'Siirrä';
$labels['moveto'] = 'siirrä kansioon...';
@@ -55,9 +68,13 @@ $labels['download'] = 'lataa';
$labels['open'] = 'Avaa';
$labels['showattachment'] = 'Näytä';
$labels['showanyway'] = 'Näytä silti';
+
$labels['filename'] = 'Tiedoston nimi';
$labels['filesize'] = 'Tiedoston koko';
+
$labels['addtoaddressbook'] = 'Lisää osoitekirjaan';
+
+// weekdays short
$labels['sun'] = 'Su';
$labels['mon'] = 'Ma';
$labels['tue'] = 'Ti';
@@ -65,6 +82,8 @@ $labels['wed'] = 'Ke';
$labels['thu'] = 'To';
$labels['fri'] = 'Pe';
$labels['sat'] = 'La';
+
+// weekdays long
$labels['sunday'] = 'Sunnuntai';
$labels['monday'] = 'Maanantai';
$labels['tuesday'] = 'Tiistai';
@@ -72,6 +91,8 @@ $labels['wednesday'] = 'Keskiviikko';
$labels['thursday'] = 'Torstai';
$labels['friday'] = 'Perjantai';
$labels['saturday'] = 'Lauantai';
+
+// months short
$labels['jan'] = 'Tammi';
$labels['feb'] = 'Helmi';
$labels['mar'] = 'Maalis';
@@ -84,6 +105,8 @@ $labels['sep'] = 'Syys';
$labels['oct'] = 'Loka';
$labels['nov'] = 'Marras';
$labels['dec'] = 'Joulu';
+
+// months long
$labels['longjan'] = 'Tammikuu';
$labels['longfeb'] = 'Helmikuu';
$labels['longmar'] = 'Maaliskuu';
@@ -96,7 +119,10 @@ $labels['longsep'] = 'Syyskuu';
$labels['longoct'] = 'Lokakuu';
$labels['longnov'] = 'Marraskuu';
$labels['longdec'] = 'Joulukuu';
+
$labels['today'] = 'Tänään';
+
+// toolbar buttons
$labels['refresh'] = 'Päivitä';
$labels['checkmail'] = 'Tarkista saapuneet viestit';
$labels['compose'] = 'Viestin kirjoitus';
@@ -129,6 +155,7 @@ $labels['moreactions'] = 'Lisää toimintoja...';
$labels['more'] = 'Lisää';
$labels['back'] = 'Takaisin';
$labels['options'] = 'Asetukset';
+
$labels['select'] = 'Valitse';
$labels['all'] = 'Kaikki';
$labels['none'] = 'Ei mikään';
@@ -147,6 +174,7 @@ $labels['expand-all'] = 'Laajenna kaikki';
$labels['expand-unread'] = 'Laajenna lukemattomat';
$labels['collapse-all'] = 'Kutista kaikki';
$labels['threaded'] = 'Säikeet';
+
$labels['autoexpand_threads'] = 'Laajenna viestiketjut automaattisesti';
$labels['do_expand'] = 'kaikki viestiketjut';
$labels['expand_only_unread'] = 'vain ne joissa lukemattomia viestejä';
@@ -162,24 +190,27 @@ $labels['listcolumns'] = 'Näkyvät kentät';
$labels['listsorting'] = 'Lajittelu kenttä';
$labels['listorder'] = 'Lajittelu järjestys';
$labels['listmode'] = 'Listausnäkymä';
+
$labels['folderactions'] = 'Kansiotoiminnot...';
$labels['compact'] = 'Tiivistä';
$labels['empty'] = 'Tyhjennä';
-$labels['importmessages'] = 'Tuo viestejä';
+
$labels['quota'] = 'Levytila';
$labels['unknown'] = 'tuntematon';
$labels['unlimited'] = 'rajoittamaton';
+
$labels['quicksearch'] = 'Pikahaku';
$labels['resetsearch'] = 'Nollaa haku';
$labels['searchmod'] = 'Hakukriteerit';
$labels['msgtext'] = 'Koko viesti';
$labels['body'] = 'Runko';
-$labels['type'] = 'Tyyppi';
-$labels['namex'] = 'Nimi';
+
$labels['openinextwin'] = 'Avaa uudessa ikkunassa';
$labels['emlsave'] = 'Tallenna (.eml)';
$labels['changeformattext'] = 'Näytä raakatekstimuodossa';
$labels['changeformathtml'] = 'Näytä HTML-muodossa';
+
+// message compose
$labels['editasnew'] = 'Muokkaa uutena';
$labels['send'] = 'Lähetä';
$labels['sendmessage'] = 'Lähetä viesti';
@@ -191,29 +222,26 @@ $labels['returnreceipt'] = 'Perillesaapumisilmoitus';
$labels['dsn'] = 'Toimituksen tilailmoitus';
$labels['mailreplyintro'] = '$sender kirjoitti $date:';
$labels['originalmessage'] = 'Alkuperäinen viesti';
+
$labels['editidents'] = 'Muokkaa identiteettejä';
$labels['spellcheck'] = 'Oikeinkirjoitus';
$labels['checkspelling'] = 'Tarkista oikeinkirjoitus';
$labels['resumeediting'] = 'Jatka muokkausta';
$labels['revertto'] = 'Muuta takaisin';
-$labels['responses'] = 'Vastaukset';
-$labels['manageresponses'] = 'Hallitse vastauksia';
-$labels['savenewresponse'] = 'Tallenna uusi vastaus';
-$labels['editresponses'] = 'Muokkaa vastauksia';
-$labels['editresponse'] = 'Muokkaa vastausta';
-$labels['responsename'] = 'Nimi';
-$labels['responsetext'] = 'Vastausteksti';
+
$labels['attach'] = 'Liitä';
$labels['attachments'] = 'Liitetiedostot';
$labels['upload'] = 'Lisää';
$labels['uploadprogress'] = '$percent ($current, yhteensä $total)';
$labels['close'] = 'Sulje';
$labels['messageoptions'] = 'Viestin asetukset...';
+
$labels['low'] = 'Matala';
$labels['lowest'] = 'Matalin';
$labels['normal'] = 'Normaali';
$labels['high'] = 'Korkea';
$labels['highest'] = 'Korkein';
+
$labels['nosubject'] = '(ei otsikkoa)';
$labels['showimages'] = 'Näytä kuvat';
$labels['alwaysshow'] = 'Näytä aina lähettäjältä $sender saapuneet kuvat';
@@ -221,19 +249,25 @@ $labels['isdraft'] = 'Tämä on luonnosviesti.';
$labels['andnmore'] = '$nr lisää...';
$labels['togglemoreheaders'] = 'Näytä lisää viestiotsakkeita';
$labels['togglefullheaders'] = 'Viestin otsakkeet päällä/pois';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Tavallinen teksti';
$labels['savesentmessagein'] = 'Tallenna lähetetty viesti kansioon';
$labels['dontsave'] = 'Älä tallenna';
$labels['maxuploadsize'] = 'Suurin sallittu tiedostokoko on $size';
+
$labels['addcc'] = 'Lisää kopio';
$labels['addbcc'] = 'Lisää piilokopio';
$labels['addreplyto'] = 'Lisää vastausosoite';
$labels['addfollowupto'] = 'Lisää keskustelunsiirto';
+
+// mdn
$labels['mdnrequest'] = 'Viestin lähettäjä on pyytänyt kuittauksen siitä että olet lukenut viestin. Haluatko lähettää kuittauksen?';
$labels['receiptread'] = 'Lukukuittaus';
$labels['yourmessage'] = 'Tämä viesti on kuittaus lähettämällesi viestille';
$labels['receiptnote'] = 'Huom! Kuittaus tarkoittaa vain sitä, että viesti on avattu vastaanottajan tietokoneella. Se ei tarkoita että vastaanottaja on myös lukenut tai ymmärtänyt viestin.';
+
+// address boook
$labels['name'] = 'Näkyvä nimi';
$labels['firstname'] = 'Etunimi';
$labels['surname'] = 'Sukunimi';
@@ -268,6 +302,7 @@ $labels['search'] = 'Haku';
$labels['advsearch'] = 'Tarkennettu haku';
$labels['advanced'] = 'Lisäasetukset';
$labels['other'] = 'Muu';
+
$labels['typehome'] = 'Koti';
$labels['typework'] = 'Työ';
$labels['typeother'] = 'Muu';
@@ -282,12 +317,14 @@ $labels['typeassistant'] = 'Avustaja';
$labels['typehomepage'] = 'Kotisivu';
$labels['typeblog'] = 'Blogi';
$labels['typeprofile'] = 'Profiili';
+
$labels['addfield'] = 'Lisää kenttä...';
$labels['addcontact'] = 'Lisää uusi yhteystieto';
$labels['editcontact'] = 'Muokkaa yhteystietoa';
$labels['contacts'] = 'Yhteystiedot';
$labels['contactproperties'] = 'Yhteystiedon ominaisuudet';
$labels['personalinfo'] = 'Henkilökohtaiset tiedot';
+
$labels['edit'] = 'Muokkaa';
$labels['cancel'] = 'Peruuta';
$labels['save'] = 'Tallenna';
@@ -296,6 +333,7 @@ $labels['rename'] = 'Nimeä uudelleen';
$labels['addphoto'] = 'Lisää';
$labels['replacephoto'] = 'Korvaa';
$labels['uploadphoto'] = 'Lähetä kuva';
+
$labels['newcontact'] = 'Luo uusi yhteystieto';
$labels['deletecontact'] = 'Poista valitut yhteystiedot';
$labels['composeto'] = 'Kirjoita viesti yhteystiedolle';
@@ -309,35 +347,45 @@ $labels['newcontactgroup'] = 'Luo uusi yhteystietoryhmä';
$labels['grouprename'] = 'Nimeä ryhmä uudelleen';
$labels['groupdelete'] = 'Poista ryhmä';
$labels['groupremoveselected'] = 'Poista valitut yhteystiedot ryhmästä';
+
$labels['previouspage'] = 'Näytä edellinen luettelo';
$labels['firstpage'] = 'Näytä ensimmäinen luettelo';
$labels['nextpage'] = 'Näytä seuraava luettelo';
$labels['lastpage'] = 'Näytä viimeinen luettelo';
+
$labels['group'] = 'Ryhmä';
$labels['groups'] = 'Ryhmät';
$labels['personaladrbook'] = 'Henkilökohtaiset osoitteet';
+
$labels['searchsave'] = 'Tallenna haku';
$labels['searchdelete'] = 'Poista haku';
+
$labels['import'] = 'Tuo';
$labels['importcontacts'] = 'Tuo yhteystiedot';
$labels['importfromfile'] = 'Tuo tiedostosta:';
+$labels['importtarget'] = 'Lisää uudet yhteystiedot osoitekirjaan:';
$labels['importreplace'] = 'Korvaa koko osoitekirja';
-$labels['importgroupsall'] = 'Kaikki (luo ryhmät tarvittaessa)';
$labels['importdesc'] = 'Voit tuoda yhteystietoja olemassa olevasta osoitekirjasta.<br/>Tuettuja muotoja ovat <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ja CSV (pilkuin erotetut arvot).';
$labels['done'] = 'Valmis';
+
+// settings
$labels['settingsfor'] = 'Asetukset';
$labels['about'] = 'Tietoja';
$labels['preferences'] = 'Asetukset';
$labels['userpreferences'] = 'Käyttäjän asetukset';
$labels['editpreferences'] = 'Muokkaa käyttäjän asetuksia';
+
$labels['identities'] = 'Identiteetit';
$labels['manageidentities'] = 'Muokkaa tunnuksen identiteettejä';
$labels['newidentity'] = 'Uusi identiteetti';
+
$labels['newitem'] = 'Uusi';
$labels['edititem'] = 'Muokkaa';
+
$labels['preferhtml'] = 'Käytä HTML:aa';
$labels['defaultcharset'] = 'Oletusmerkistökoodaus';
$labels['htmlmessage'] = 'HTML-viesti';
+$labels['messagepart'] = 'Part';
$labels['digitalsig'] = 'Digitaalinen allekirjoitus';
$labels['dateformat'] = 'Päiväyksen muoto';
$labels['timeformat'] = 'Ajan muoto';
@@ -427,7 +475,9 @@ $labels['addtodict'] = 'Lisää sanakirjaan';
$labels['mailtoprotohandler'] = 'Rekisteröi mailto:-linkkien protokollakäsitteljä';
$labels['standardwindows'] = 'Käsittele popup-ikkunoita tavallisina ikkunoina';
$labels['forwardmode'] = 'Viestin välitys';
+$labels['inline'] = 'inline';
$labels['asattachment'] = 'liitteenä';
+
$labels['folder'] = 'Kansio';
$labels['folders'] = 'Kansiot';
$labels['foldername'] = 'Kansion nimi';
@@ -448,20 +498,26 @@ $labels['foldertype'] = 'Kansion tyyppi';
$labels['personalfolder'] = 'Yksityinen kansio';
$labels['otherfolder'] = 'Toisen käyttäjän kansio';
$labels['sharedfolder'] = 'Julkinen kansio';
+
$labels['sortby'] = 'Järjestä';
$labels['sortasc'] = 'Järjestä nousevasti (a-ö)';
$labels['sortdesc'] = 'Järjestä laskevasti (ö-a)';
$labels['undo'] = 'Kumoa';
+
$labels['installedplugins'] = 'Asennetut lisäosat';
$labels['plugin'] = 'Liitännäinen';
$labels['version'] = 'Versio';
$labels['source'] = 'Lähde';
$labels['license'] = 'Lisenssi';
$labels['support'] = 'Hanki tukea';
+
+// units
$labels['B'] = 't';
$labels['KB'] = 'Kt';
$labels['MB'] = 'Mt';
$labels['GB'] = 'Gt';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englantilainen';
$labels['westerneuropean'] = 'Länsieurooppalainen';
@@ -480,4 +536,5 @@ $labels['vietnamese'] = 'Vietnamilainen';
$labels['japanese'] = 'Japanilainen';
$labels['korean'] = 'Korealainen';
$labels['chinese'] = 'Kiinalainen';
+
?>
diff --git a/program/localization/fi_FI/messages.inc b/program/localization/fi_FI/messages.inc
index a94339af1..3a8c393d6 100644
--- a/program/localization/fi_FI/messages.inc
+++ b/program/localization/fi_FI/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Virhe havaittu.';
$messages['loginfailed'] = 'Sisäänkirjautuminen epäonnistui';
$messages['cookiesdisabled'] = 'Selaimesi ei hyväksy evästeitä';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Viesti lähetetty';
$messages['savingmessage'] = 'Tallennetaan viestiä...';
$messages['messagesaved'] = 'Viesti tallennettu "Luonnokset"-kansioon';
$messages['successfullysaved'] = 'Tallennus onnistui';
-$messages['savingresponse'] = 'Tallennetaan vastaustekstiä...';
-$messages['deleteresponseconfirm'] = 'Haluatko varmasti poistaa tämän vastaustekstin?';
$messages['addedsuccessfully'] = 'Yhteystieto lisätty osoitekirjaan';
$messages['contactexists'] = 'Samalla sähköpostiosoitteella on jo olemassa yhteystieto';
$messages['contactnameexists'] = 'Yhteystieto samalla nimellä on jo olemassa';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Pyydettyä yhteystietoa ei löytynyt';
$messages['contactsearchonly'] = 'Anna hakusanoja, joilla yhteystietoja haetaan';
$messages['sendingfailed'] = 'Viestin lähetys epäonnistui';
$messages['senttooquickly'] = 'Odota $sec sekunti(a) ennen viestin lähettämistä';
-$messages['errorsavingsent'] = 'Virhe tallennettaessa lähetettyä viestiä.';
-$messages['errorsaving'] = 'Virhe tallennettaessa.';
+$messages['errorsavingsent'] = 'Lähetetyn viestin tallennuksessa tapahtui virhe';
+$messages['errorsaving'] = 'Tallennuksessa tapahtui virhe';
$messages['errormoving'] = 'Viestiä ei voitu siirtää';
$messages['errorcopying'] = 'Viestiä ei voitu kopioida';
$messages['errordeleting'] = 'Viestiä ei voitu poistaa';
@@ -90,7 +90,7 @@ $messages['contactsearchsuccessful'] = 'Löydetty $nr yhteystietoa';
$messages['searchnomatch'] = 'Haku ei tuottanut tuloksia';
$messages['searching'] = 'Etsitään...';
$messages['checking'] = 'Tarkistetaan...';
-$messages['nospellerrors'] = 'Kirjoitusvirheitä ei löytynyt.';
+$messages['nospellerrors'] = 'Kirjoitusvirheitä ei löytynyt';
$messages['folderdeleted'] = 'Kansio poistettu onnistuneesti';
$messages['foldersubscribed'] = 'Kansio tilattu onnistuneesti.';
$messages['folderunsubscribed'] = 'Kansion tilaus poistettu onnistuneesti.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Poistetaan asettelu viestistä...';
$messages['messageopenerror'] = 'Virhe kopioitaessa viestiä palvelimelta';
$messages['fileuploaderror'] = 'Tiedoston lähettäminen epäonnistui';
$messages['filesizeerror'] = 'Lähetettävä tiedosto ylittää sallitun enimmäiskoon $size';
-$messages['copysuccess'] = '$nr yhteystietoa kopioitiin onnistuneesti.';
-$messages['movesuccess'] = '$nr yhteystietoa siirrettiin onnistuneesti.';
-$messages['copyerror'] = 'Yhdenkään yhteystiedon kopiointi ei onnistunut.';
-$messages['moveerror'] = 'Minkään yhteystiedon siirto ei onnistunut.';
+$messages['copysuccess'] = 'Kopioitu $nr osoitetta onnistuneesti';
+$messages['copyerror'] = 'Yhtään osoitetta ei voitu kopioida';
$messages['sourceisreadonly'] = 'Tämän osoitteen lähde on kirjoitussuojattu';
$messages['errorsavingcontact'] = 'Yhteystietoa ei voitu tallentaa';
$messages['movingmessage'] = 'Siirretään viestiä...';
$messages['copyingmessage'] = 'Kopioidaan viestiä...';
$messages['copyingcontact'] = 'Kopioidaan yhteystietoja...';
-$messages['movingcontact'] = 'Siirretään yhteystieto(j)a...';
$messages['deletingmessage'] = 'Poistetaan viestejä...';
$messages['markingmessage'] = 'Merkitään viestejä...';
$messages['addingmember'] = 'Lisätään yhteystietoja ryhmään...';
@@ -124,12 +121,11 @@ $messages['selectimportfile'] = 'Valitse lähetettävä tiedosto';
$messages['addresswriterror'] = 'Valittuun osoitekirjaan ei voi kirjoittaa';
$messages['contactaddedtogroup'] = 'Yhteystiedot lisätty ryhmään';
$messages['contactremovedfromgroup'] = 'Yhteystiedot poistettu ryhmästä';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Tuodaan, odota...';
$messages['importformaterror'] = 'Tuonti epäonnistui! Lähetetty tiedosto ei ole kelvollinen tuontitiedosto.';
$messages['importconfirm'] = '<b>$inserted yhteystietoa tuotu onnistuneesti</b>';
$messages['importconfirmskipped'] = '<b>Ohitettu $skipped olemassa olevaa merkintää</b>';
-$messages['importmessagesuccess'] = '$nr viestiä tuotiin onnistuneesti';
-$messages['importmessageerror'] = 'Tuonti epäonnistui! Lähetetty tiedosto ei ole kelvollinen viesti tai mailbox-tiedosto';
$messages['opnotpermitted'] = 'Toiminto ei ole sallittu!';
$messages['nofromaddress'] = 'Valittu identiteetti ei sisällä sähköpostiosoitetta';
$messages['editorwarning'] = 'Vaihtaminen tekstieditoriin aiheuttaa viestin muotoilun katoamisen. Haluatko jatkaa?';
@@ -138,12 +134,12 @@ $messages['smtpconnerror'] = 'SMTP-virhe ($code): Palvelimelle yhdistäminen epÃ
$messages['smtpautherror'] = 'SMTP-virhe ($code): Tunnistus epäonnistui';
$messages['smtpfromerror'] = 'SMTP-virhe ($code): Lähettäjän "$from" asettaminen epäonnistui ($msg)';
$messages['smtptoerror'] = 'SMTP-virhe ($code): Vastaanottajan "$to" lisääminen epäonnistui ($msg)';
-$messages['smtprecipientserror'] = 'SMTP-virhe: Ei voida jäsentää vastaanottajien listaa.';
+$messages['smtprecipientserror'] = 'SMTP-virhe: Ei voida jäsentää vastaanottajien listaa';
$messages['smtperror'] = 'SMTP-virhe: $msg';
$messages['emailformaterror'] = 'Virheellinen sähköpostiosoite: $email';
$messages['toomanyrecipients'] = 'Liikaa vastaanottajia. Vähennä vastaanottajien määrä maksimiin $max.';
$messages['maxgroupmembersreached'] = 'Ryhmän jäsenten määrä ylittää maksimin $max';
-$messages['internalerror'] = 'Sisäinen virhe. Yritä uudelleen.';
+$messages['internalerror'] = 'Ilmeni sisäinen virhe. Yritä uudelleen.';
$messages['contactdelerror'] = 'Yhteystietoja ei voitu poistaa.';
$messages['contactdeleted'] = 'Yhteystiedot poistettu onnistuneesti.';
$messages['contactrestoreerror'] = 'Poistettujen yhteystietojen palautus epäonnistui.';
@@ -171,4 +167,5 @@ $messages['parentnotwritable'] = 'Kansiota ei voitu siirtää tai luoda valittuu
$messages['messagetoobig'] = 'Viestiosa on liian suuri prosessoitavaksi.';
$messages['attachmentvalidationerror'] = 'Varoitus! Tämä liitetiedosto on epäilyttävä, koska se ei vastaa ilmoitettua tiedostotyyppiä. Jos et luoda lähettäjään, älä avaa liitetiedostoa välttääksesi mahdollista vahingollista aineistoa.<br/><br/><em>Odotettu: $expected; löydetty: $detected</em>';
$messages['noscriptwarning'] = 'Varoitus: Tämä verkkopohjainen sähköpostipalvelu vaatii Javascriptin toimiakseen. Ota Javascript käyttöön selaimesi asetuksista.';
+
?>
diff --git a/program/localization/fr_FR/csv2vcard.inc b/program/localization/fr_FR/csv2vcard.inc
index d28df7a8a..bb77001b5 100644
--- a/program/localization/fr_FR/csv2vcard.inc
+++ b/program/localization/fr_FR/csv2vcard.inc
@@ -15,7 +15,14 @@
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
+
+// 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'] = "Anniversaire de mariage ou fête";
$map['assistants_name'] = "Nom de l''assistant(e)";
$map['assistants_phone'] = "Téléphone de l''assistant(e)";
@@ -62,6 +69,8 @@ $map['spouse'] = "Conjoint(e)";
$map['suffix'] = "Suffixe";
$map['title'] = "Titre";
$map['web_page'] = "Page Web";
+
+// Thunderbird
$map['birth_day'] = "Jour";
$map['birth_month'] = "Mois";
$map['birth_year'] = "Année de naissance";
@@ -82,4 +91,6 @@ $map['work_phone'] = "Tél. professionnel";
$map['work_address'] = "Adresse professionnelle";
$map['work_country'] = "Région";
$map['work_zipcode'] = "Code postal";
+
+// Other
$map['_home_city'] = "Ville";
diff --git a/program/localization/fr_FR/labels.inc b/program/localization/fr_FR/labels.inc
index 14d1066f9..8331bbb54 100644
--- a/program/localization/fr_FR/labels.inc
+++ b/program/localization/fr_FR/labels.inc
@@ -15,21 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bienvenue sur $product';
$labels['username'] = 'Utilisateur';
$labels['password'] = 'Mot de passe';
$labels['server'] = 'Serveur';
$labels['login'] = 'Connexion';
+
+// taskbar
$labels['logout'] = 'Déconnexion';
$labels['mail'] = 'Courriel';
$labels['settings'] = 'Paramètres';
$labels['addressbook'] = 'Carnet d\'adresses';
+
+// mailbox names
$labels['inbox'] = 'Messages reçus';
$labels['drafts'] = 'Brouillons';
$labels['sent'] = 'Messages envoyés';
$labels['trash'] = 'Corbeille';
$labels['junk'] = 'Indésirables';
$labels['show_real_foldernames'] = 'Montrer les noms réels pour les dossiers spéciaux';
+
+// message listing
$labels['subject'] = 'Objet';
$labels['from'] = 'De';
$labels['sender'] = 'Expéditeur';
@@ -44,11 +54,13 @@ $labels['priority'] = 'Priorité';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Statut de lecture';
$labels['listoptions'] = 'Lister les options...';
+
$labels['mailboxlist'] = 'Dossiers';
$labels['messagesfromto'] = 'Messages de $from à $to sur $count';
$labels['threadsfromto'] = 'Fil de $from à $to sur $count';
$labels['messagenrof'] = 'Message $nr sur $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copier';
$labels['move'] = 'Déplacer';
$labels['moveto'] = 'Déplacer vers...';
@@ -56,9 +68,13 @@ $labels['download'] = 'Télécharger';
$labels['open'] = 'Ouvrir';
$labels['showattachment'] = 'Afficher';
$labels['showanyway'] = 'Afficher quand même';
+
$labels['filename'] = 'Nom du fichier';
$labels['filesize'] = 'Taille du fichier';
+
$labels['addtoaddressbook'] = 'Ajouter au carnet d\'adresses';
+
+// weekdays short
$labels['sun'] = 'Dim';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +82,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Jeu';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sam';
+
+// weekdays long
$labels['sunday'] = 'Dimanche';
$labels['monday'] = 'Lundi';
$labels['tuesday'] = 'Mardi';
@@ -73,6 +91,8 @@ $labels['wednesday'] = 'Mercredi';
$labels['thursday'] = 'Jeudi';
$labels['friday'] = 'Vendredi';
$labels['saturday'] = 'Samedi';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Fév';
$labels['mar'] = 'Mar';
@@ -85,6 +105,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Déc';
+
+// months long
$labels['longjan'] = 'Janvier';
$labels['longfeb'] = 'Février';
$labels['longmar'] = 'Mars';
@@ -97,7 +119,10 @@ $labels['longsep'] = 'Septembre';
$labels['longoct'] = 'Octobre';
$labels['longnov'] = 'Novembre';
$labels['longdec'] = 'Décembre';
+
$labels['today'] = 'Aujourd\'hui';
+
+// toolbar buttons
$labels['refresh'] = 'Actualiser';
$labels['checkmail'] = 'Vérification des nouveaux messages';
$labels['compose'] = 'Composer un nouveau message';
@@ -130,6 +155,7 @@ $labels['moreactions'] = 'Plus d\'actions...';
$labels['more'] = 'Plus';
$labels['back'] = 'Retour';
$labels['options'] = 'Paramètres';
+
$labels['select'] = 'Sélectionner';
$labels['all'] = 'Tous';
$labels['none'] = 'Aucun';
@@ -148,6 +174,7 @@ $labels['expand-all'] = 'Tout afficher';
$labels['expand-unread'] = 'Afficher non-lu(s)';
$labels['collapse-all'] = 'Fermer tous';
$labels['threaded'] = 'Par sujet';
+
$labels['autoexpand_threads'] = 'Développer les sujets';
$labels['do_expand'] = 'Tous les sujets';
$labels['expand_only_unread'] = 'uniquement avec des messages non-lus';
@@ -163,24 +190,27 @@ $labels['listcolumns'] = 'Lister les colonnes';
$labels['listsorting'] = 'Colonne de tri';
$labels['listorder'] = 'Ordre de tri';
$labels['listmode'] = 'Mode d\'affichage de la liste';
+
$labels['folderactions'] = 'Actions du dossier...';
$labels['compact'] = 'Compacter';
$labels['empty'] = 'Vider';
-$labels['importmessages'] = 'Importer des messages';
+
$labels['quota'] = 'Occupation disque';
$labels['unknown'] = 'inconnue';
$labels['unlimited'] = 'illimitée';
+
$labels['quicksearch'] = 'Recherche rapide';
$labels['resetsearch'] = 'Réinitialiser la recherche';
$labels['searchmod'] = 'Portée de la recherche';
$labels['msgtext'] = 'Message entier';
$labels['body'] = 'Corps';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Nom';
+
$labels['openinextwin'] = 'Ouvrir dans une nouvelle fenêtre';
$labels['emlsave'] = 'Télécharger (.eml)';
$labels['changeformattext'] = 'Afficher au format texte';
$labels['changeformathtml'] = 'Afficher au format HTML';
+
+// message compose
$labels['editasnew'] = 'Éditer en tant que nouveau message';
$labels['send'] = 'Envoyer';
$labels['sendmessage'] = 'Envoyer un message';
@@ -192,30 +222,26 @@ $labels['returnreceipt'] = 'Accusé de réception';
$labels['dsn'] = 'Notification d\'état de distribution';
$labels['mailreplyintro'] = 'Le $date, $sender a écrit :';
$labels['originalmessage'] = 'Message original';
+
$labels['editidents'] = 'Modifier les identités';
$labels['spellcheck'] = 'Orthographe';
$labels['checkspelling'] = 'Vérifier l\'orthographe';
$labels['resumeediting'] = 'Retourner à l\'édition';
$labels['revertto'] = 'Revenir à';
-$labels['responses'] = 'Réponses';
-$labels['insertresponse'] = 'Insérer une réponse';
-$labels['manageresponses'] = 'Gérer les réponses';
-$labels['savenewresponse'] = 'Sauvegarder une nouvelle réponse';
-$labels['editresponses'] = 'Editer les réponses';
-$labels['editresponse'] = 'Editer la réponse';
-$labels['responsename'] = 'Nom';
-$labels['responsetext'] = 'Texte de la réponse';
+
$labels['attach'] = 'Joindre';
$labels['attachments'] = 'Fichiers joints';
$labels['upload'] = 'Transférer';
$labels['uploadprogress'] = '$percent ($current sur $total)';
$labels['close'] = 'Fermer';
$labels['messageoptions'] = 'Options du message';
+
$labels['low'] = 'Basse';
$labels['lowest'] = 'La plus basse';
$labels['normal'] = 'Normale';
$labels['high'] = 'Élevée';
$labels['highest'] = 'La plus élevée';
+
$labels['nosubject'] = '(pas de sujet)';
$labels['showimages'] = 'Afficher les images';
$labels['alwaysshow'] = 'Toujours afficher les images de $sender';
@@ -223,19 +249,25 @@ $labels['isdraft'] = 'Ceci est un brouillon.';
$labels['andnmore'] = 'Plus de $nr...';
$labels['togglemoreheaders'] = 'Afficher plus d\'en-têtes du message';
$labels['togglefullheaders'] = 'Afficher/Cacher l\'entête du message';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texte brut';
$labels['savesentmessagein'] = 'Enregistrer le message envoyé dans';
$labels['dontsave'] = 'ne pas enregistrer';
$labels['maxuploadsize'] = 'La taille maximum autorisée pour un fichier est $size';
+
$labels['addcc'] = 'Ajouter Cc';
$labels['addbcc'] = 'Ajouter Cci';
$labels['addreplyto'] = 'Ajouter Répondre à';
$labels['addfollowupto'] = 'Ajouter Faire suivre à';
+
+// mdn
$labels['mdnrequest'] = 'L\'expéditeur de ce message a demandé d\'être prévenu quand vous lirez ce message. Souhaitez-vous prévenir l\'expéditeur ?';
$labels['receiptread'] = 'Accusé de réception (lu)';
$labels['yourmessage'] = 'Ceci est un accusé de réception pour votre message';
$labels['receiptnote'] = 'Note : Cet accusé de réception indique seulement que le message a été affiché sur l\'ordinateur du destinataire. Il n\'y a aucune garantie que le destinataire ait lu ou compris le contenu du message.';
+
+// address boook
$labels['name'] = 'Nom à afficher';
$labels['firstname'] = 'Prénom';
$labels['surname'] = 'Nom';
@@ -270,6 +302,7 @@ $labels['search'] = 'Rechercher';
$labels['advsearch'] = 'Recherche avancée';
$labels['advanced'] = 'Détails';
$labels['other'] = 'Autre';
+
$labels['typehome'] = 'Domicile';
$labels['typework'] = 'Travail';
$labels['typeother'] = 'Autre';
@@ -284,12 +317,14 @@ $labels['typeassistant'] = 'Assistante';
$labels['typehomepage'] = 'Accueil';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Ajouter un champ...';
$labels['addcontact'] = 'Ajouter le contact sélectionné à votre carnet d\'adresses';
$labels['editcontact'] = 'Modifier le contact';
$labels['contacts'] = 'Contacts';
$labels['contactproperties'] = 'Propriétés du contact';
$labels['personalinfo'] = 'Informations personnelles';
+
$labels['edit'] = 'Modifier';
$labels['cancel'] = 'Annuler';
$labels['save'] = 'Enregistrer';
@@ -298,6 +333,7 @@ $labels['rename'] = 'Renommer';
$labels['addphoto'] = 'Ajouter';
$labels['replacephoto'] = 'Remplacer';
$labels['uploadphoto'] = 'Transférer une photo';
+
$labels['newcontact'] = 'Créer un nouveau contact';
$labels['deletecontact'] = 'Supprimer les contacts sélectionnés';
$labels['composeto'] = 'Écrire un message à';
@@ -311,36 +347,41 @@ $labels['newcontactgroup'] = 'Créer un nouveau groupe de contacts';
$labels['grouprename'] = 'Renommer le groupe';
$labels['groupdelete'] = 'Supprimer le groupe';
$labels['groupremoveselected'] = 'Retirer les contacts sélectionnés du groupe';
+
$labels['previouspage'] = 'Montrer page précédente';
$labels['firstpage'] = 'Voir la première page';
$labels['nextpage'] = 'Montrer page suivante';
$labels['lastpage'] = 'Voir la dernière page';
+
$labels['group'] = 'Groupe';
$labels['groups'] = 'Groupes';
-$labels['listgroup'] = 'Liste des membres du groupe';
$labels['personaladrbook'] = 'Adresses personnelles';
+
$labels['searchsave'] = 'Enregistrer la recherche';
$labels['searchdelete'] = 'Supprimer la recherche';
+
$labels['import'] = 'Importer';
$labels['importcontacts'] = 'Importer les contacts';
$labels['importfromfile'] = 'Importer depuis un fichier :';
-$labels['importtarget'] = 'Ajouter les contacts à';
+$labels['importtarget'] = 'Ajouter de nouveaux contact au carnet d’adresses :';
$labels['importreplace'] = 'Remplacer le carnet d\'adresses entier';
-$labels['importgroups'] = 'Importer les affectations de groupe';
-$labels['importgroupsall'] = 'Tous (créer les groupes si nécessaire)';
-$labels['importgroupsexisting'] = 'Uniquement pour les groupes existants';
$labels['importdesc'] = 'Vous pouvez transférer des contacts à partir d\'un carnet d\'adresses existant.<br/>Nous supportons actuellement l\'importation d\'adresses à partir des format de données <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (champs séparés par une virgule).';
$labels['done'] = 'Terminé';
+
+// settings
$labels['settingsfor'] = 'Paramètres pour';
$labels['about'] = 'A propos';
$labels['preferences'] = 'Préférences';
$labels['userpreferences'] = 'Préférences utilisateur';
$labels['editpreferences'] = 'Modifier les préférences utilisateur';
+
$labels['identities'] = 'Identités';
$labels['manageidentities'] = 'Gérer les identités pour ce compte';
$labels['newidentity'] = 'Nouvelle identité';
+
$labels['newitem'] = 'Nouvel élément';
$labels['edititem'] = 'Modifier l\'élément';
+
$labels['preferhtml'] = 'Afficher en HTML';
$labels['defaultcharset'] = 'Encodage par défaut';
$labels['htmlmessage'] = 'Message en HTML';
@@ -362,7 +403,7 @@ $labels['htmleditor'] = 'Composer un message au format HTML';
$labels['htmlonreply'] = 'en réponse aux messages HTML uniquement';
$labels['htmlonreplyandforward'] = 'Transférer ou répondre au message HTML';
$labels['htmlsignature'] = 'Signature HTML';
-$labels['showemail'] = 'Montrer l\'adresse de courriel avec le nom complet';
+$labels['showemail'] = 'Montrer l\'adresse mail avec le nom complet';
$labels['previewpane'] = 'Afficher le panneau d\'aperçu';
$labels['skin'] = 'Thème de l\'interface';
$labels['logoutclear'] = 'Vider la corbeille à la déconnexion';
@@ -423,9 +464,9 @@ $labels['reqmdn'] = 'Toujours demander un avis de réception';
$labels['reqdsn'] = 'Toujours demander une notification d\'état de distribution';
$labels['replysamefolder'] = 'Placer les réponses dans le dossier du message auquel il est répondu';
$labels['defaultabook'] = 'Carnet d\'adresses par défaut';
-$labels['autocompletesingle'] = 'Ne pas tenir compte des adresses de courriel alternatives dans l\'autoremplissage';
+$labels['autocompletesingle'] = 'Ne pas tenir compte des adresses emails alternatives dans l\'autoremplissage';
$labels['listnamedisplay'] = 'Lister les contacts comme';
-$labels['spellcheckbeforesend'] = 'Vérifier l’orthographe avant l’envoi d’un message';
+$labels['spellcheckbeforesend'] = 'Vérifier l’orthographe avant l’envoie d’un message';
$labels['spellcheckoptions'] = 'Options du vérificateur d\'orthographe';
$labels['spellcheckignoresyms'] = 'Ignorer les mots avec des symboles';
$labels['spellcheckignorenums'] = 'Ignorer les mots avec des nombres';
@@ -436,6 +477,7 @@ $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['folder'] = 'Dossier';
$labels['folders'] = 'Dossiers';
$labels['foldername'] = 'Nom du dossier';
@@ -456,20 +498,26 @@ $labels['foldertype'] = 'Type de répertoire';
$labels['personalfolder'] = 'Répertoire privé';
$labels['otherfolder'] = 'Répertoire d\'autres utilisateurs';
$labels['sharedfolder'] = 'Répertoire public';
+
$labels['sortby'] = 'Trier par';
$labels['sortasc'] = 'Tri ascendant';
$labels['sortdesc'] = 'Tri descendant';
$labels['undo'] = 'Annuler';
+
$labels['installedplugins'] = 'Extensions installées';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Version';
$labels['source'] = 'Source';
$labels['license'] = 'Licence';
$labels['support'] = 'Obtenir un support technique';
+
+// units
$labels['B'] = 'o';
$labels['KB'] = 'ko';
$labels['MB'] = 'Mo';
$labels['GB'] = 'Go';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Anglais';
$labels['westerneuropean'] = 'Europe de l\'Ouest';
@@ -488,4 +536,5 @@ $labels['vietnamese'] = 'Vietnamien';
$labels['japanese'] = 'Japonais';
$labels['korean'] = 'Coréen';
$labels['chinese'] = 'Chinois';
+
?>
diff --git a/program/localization/fr_FR/messages.inc b/program/localization/fr_FR/messages.inc
index fcf9eaf92..8de50e9e5 100644
--- a/program/localization/fr_FR/messages.inc
+++ b/program/localization/fr_FR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Une erreur est survenue !';
$messages['loginfailed'] = 'L\'authentification a échoué.';
$messages['cookiesdisabled'] = 'Votre navigateur n\'accepte pas les cookies.';
@@ -54,8 +56,8 @@ $messages['contactnotfound'] = 'Le contact demandé n\'a pas été trouvé.';
$messages['contactsearchonly'] = 'Entrez un ou plusieurs mots clés pour trouver des contacts.';
$messages['sendingfailed'] = 'L\'envoi du message a échoué.';
$messages['senttooquickly'] = 'Veuillez patienter $sec s. pour envoyer ce message.';
-$messages['errorsavingsent'] = 'Une erreur est apparue durant l\'enregistrement du message envoyé.';
-$messages['errorsaving'] = 'Une erreur est apparue durant l\'enregistrement.';
+$messages['errorsavingsent'] = 'Une erreur est survenue pendant la sauvegarde du message envoyé.';
+$messages['errorsaving'] = 'Une erreur est survenue pendant la sauvegarde.';
$messages['errormoving'] = 'Impossible de déplacer le(s) message(s).';
$messages['errorcopying'] = 'Impossible de copier le(s) message(s).';
$messages['errordeleting'] = 'Impossible de supprimer le(s) message(s).';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Suppression de la mise en forme...';
$messages['messageopenerror'] = 'Impossible de charger le message depuis serveur.';
$messages['fileuploaderror'] = 'Transfert du fichier échoué';
$messages['filesizeerror'] = 'Le fichier transféré dépasse la taille maximale de $size.';
-$messages['copysuccess'] = '$nr contacts correctement copiés.';
-$messages['movesuccess'] = '$nr contacts correctement déplacés.';
-$messages['copyerror'] = 'Aucun contact n\'a pu être copié.';
-$messages['moveerror'] = 'Aucun contact n\'a pu être déplacé.';
+$messages['copysuccess'] = 'Les $nr adresses ont bien été copiées.';
+$messages['copyerror'] = 'Impossible de copier des adresses.';
$messages['sourceisreadonly'] = 'Cette source d\'adresse est en lecture seule.';
$messages['errorsavingcontact'] = 'Impossible de sauvegarder l\'adresse du contact.';
$messages['movingmessage'] = 'Message(s) en cours de déplacement...';
$messages['copyingmessage'] = 'Message(s) en cours de copie...';
$messages['copyingcontact'] = 'Contact(s) en cours de copie...';
-$messages['movingcontact'] = 'Contact(s) en cours de déplacement...';
$messages['deletingmessage'] = 'Message(s) en cours de suppression...';
$messages['markingmessage'] = 'Message(s) en cours de marquage...';
$messages['addingmember'] = 'Contact(s) en cours d\'ajout dans le groupe...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Import en cours, veuillez patienter...';
$messages['importformaterror'] = 'L\'import a échoué ! Le fichier transféré n\'est pas un fichier d\'import de données valide.';
$messages['importconfirm'] = '<b>Les $inserted contacts ont bien été importés</b>';
$messages['importconfirmskipped'] = '<b>$skipped entrée(s) déjà existante(s)</b>';
-$messages['importmessagesuccess'] = 'Importation de $nr messages avec succès';
-$messages['importmessageerror'] = 'L\'importation a échoué! Le fichier envoyé n\'est pas un message valide ou un fichier au format mailbox';
$messages['opnotpermitted'] = 'Cette opération n\'est pas permise !';
$messages['nofromaddress'] = 'Courriel manquant dans l\'identité sélectionnée.';
$messages['editorwarning'] = 'Passer à l\'éditeur de texte brut causera la perte du formatage du texte. Souhaitez-vous continuer ?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Erreur SMTP : $msg';
$messages['emailformaterror'] = 'Courriel incorrect : $email';
$messages['toomanyrecipients'] = 'Trop de destinataires. Réduisez leur nombre à $max maximum.';
$messages['maxgroupmembersreached'] = 'Le nombre de membres du groupe dépasse le maximum de $max.';
-$messages['internalerror'] = 'Une erreur interne est apparue. Merci de ré-essayer.';
+$messages['internalerror'] = 'Une erreur interne est survenue. Veuillez réessayer.';
$messages['contactdelerror'] = 'Impossible de supprimer le(s) contact(s).';
$messages['contactdeleted'] = 'Contact(s) correctement supprimé(s).';
$messages['contactrestoreerror'] = 'Impossible de restaurer le(s) contact(s) supprimé(s).';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Impossible de créer/déplacer le dossier dans
$messages['messagetoobig'] = 'Le message est trop gros pour être traité.';
$messages['attachmentvalidationerror'] = 'ATTENTION ! Cette pièce jointe est suspecte car son type ne correspond pas au type déclaré dans ce message. Si vous ne faites pas confiance à l\'expéditeur, vous ne devriez pas l\'ouvrir dans le navigateur, car il peut contenir des contenus malveillants.<br/><br/><em>Attendu : $expected; trouvé : $detected</em>';
$messages['noscriptwarning'] = 'Atention : Ce service de webmail nécessite Javascript ! Pour pouvoir l\'utiliser, merci d\'activer Javascript dans les préférences de votre navigateur.';
+
?>
diff --git a/program/localization/fy_NL/labels.inc b/program/localization/fy_NL/labels.inc
index dc1e57969..891371f58 100644
--- a/program/localization/fy_NL/labels.inc
+++ b/program/localization/fy_NL/labels.inc
@@ -15,32 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
+$labels['welcome'] = 'Welcome to $product';
$labels['username'] = 'Brûkersnamme';
$labels['password'] = 'Wachtwurd';
$labels['server'] = 'Server';
$labels['login'] = 'Ynlogge';
+
+// taskbar
$labels['logout'] = 'Ôfmelde';
$labels['mail'] = 'Mail';
$labels['settings'] = 'Ynstellingen';
$labels['addressbook'] = 'Adresboek';
+
+// mailbox names
+$labels['inbox'] = 'Inbox';
$labels['drafts'] = 'Konsepten';
$labels['sent'] = 'Stjoerd';
$labels['trash'] = 'Jiskefet';
+$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Ûnderwerp';
$labels['from'] = 'Fan';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Oan';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Antwurd oan';
$labels['followupto'] = 'Oanslutend oan';
$labels['date'] = 'Datum';
+$labels['size'] = 'Size';
+$labels['priority'] = 'Priority';
$labels['organization'] = 'Organisaasje';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Mappen';
+$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'] = 'Kopieare';
$labels['move'] = 'Ferplaatse';
+$labels['moveto'] = 'Move to...';
$labels['download'] = 'Delhelje';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Toane';
+$labels['showanyway'] = 'Show it anyway';
+
+$labels['filename'] = 'File name';
$labels['filesize'] = 'Triemgrutte';
+
+$labels['addtoaddressbook'] = 'Add to address book';
+
+// weekdays short
$labels['sun'] = 'sne';
$labels['mon'] = 'moa';
$labels['tue'] = 'tii';
@@ -48,6 +81,8 @@ $labels['wed'] = 'woa';
$labels['thu'] = 'toa';
$labels['fri'] = 'fre';
$labels['sat'] = 'sno';
+
+// weekdays long
$labels['sunday'] = 'snein';
$labels['monday'] = 'moandei';
$labels['tuesday'] = 'tiisdei';
@@ -55,6 +90,8 @@ $labels['wednesday'] = 'woansdei';
$labels['thursday'] = 'tongersdei';
$labels['friday'] = 'freed';
$labels['saturday'] = 'sneon';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mrt';
@@ -67,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'des';
+
+// months long
$labels['longjan'] = 'jannewaris';
$labels['longfeb'] = 'febrewaris';
$labels['longmar'] = 'maart';
@@ -79,8 +118,421 @@ $labels['longsep'] = 'septimber';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'novimber';
$labels['longdec'] = 'desimber';
+
$labels['today'] = 'Hjoed';
+
+// toolbar buttons
$labels['refresh'] = 'Ferfarskje';
+$labels['checkmail'] = 'Check for new messages';
+$labels['compose'] = 'Compose';
+$labels['writenewmessage'] = 'Create a new message';
$labels['reply'] = 'Beäntwurdzje';
+$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['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['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$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['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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
+$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'] = 'ZIP Code';
+$labels['region'] = 'State/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['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 new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
+$labels['folder'] = 'Folder';
$labels['folders'] = 'Mappen';
+$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';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/fy_NL/messages.inc b/program/localization/fy_NL/messages.inc
index da4e39679..1dacf4adc 100644
--- a/program/localization/fy_NL/messages.inc
+++ b/program/localization/fy_NL/messages.inc
@@ -2,17 +2,15 @@
/*
+-----------------------------------------------------------------------+
- | localization/<lang>/messages.inc |
+ | localization/fy_NL/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. |
+ | Language file of the Roundcube Webmail client |
+ | Copyright (C) 2012, The Roundcube Dev Team |
+ | Licensed under the GNU General Public License |
| |
+-----------------------------------------------------------------------+
-
- For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
+ | Author: unknown |
+ +-----------------------------------------------------------------------+
*/
-?>
+
+$messages = array(); \ No newline at end of file
diff --git a/program/localization/ga_IE/labels.inc b/program/localization/ga_IE/labels.inc
index dc33d008d..9f0da6550 100644
--- a/program/localization/ga_IE/labels.inc
+++ b/program/localization/ga_IE/labels.inc
@@ -15,40 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Fáilte go $product';
$labels['username'] = 'Úsáideoir';
$labels['password'] = 'Pasfhocal';
$labels['server'] = 'Freastalaí';
$labels['login'] = 'Logáil isteach';
+
+// taskbar
$labels['logout'] = 'Logáil amach';
$labels['mail'] = 'Postas';
$labels['settings'] = 'Socruithe Pearsanta';
$labels['addressbook'] = 'Leabhair Seoltaí';
+
+// mailbox names
$labels['inbox'] = 'Isteach';
$labels['drafts'] = 'Dréachtaí';
$labels['sent'] = 'Amach';
$labels['trash'] = 'Bosca bruscair';
$labels['junk'] = 'Dramhaíl';
+
+// message listing
$labels['subject'] = 'Ãbhair';
$labels['from'] = 'Seolaí';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Faighteoir';
$labels['cc'] = 'Cóipeáil';
$labels['bcc'] = 'Cóip cheilte';
$labels['replyto'] = 'Freagair go';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Dáta';
$labels['size'] = 'Méid';
$labels['priority'] = 'Tosaíocht';
$labels['organization'] = 'Eagraíocht';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Fillteán';
$labels['messagesfromto'] = 'Teachtaireachta as $from go $to as $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Teachtaireacht $nr as $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Cóipeáil';
$labels['move'] = 'Bog';
$labels['moveto'] = 'bog go...';
$labels['download'] = 'síos-luchtú';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Comhad';
$labels['filesize'] = 'Toirt';
+
$labels['addtoaddressbook'] = 'Sábháil i mo leabhair seoltaí';
+
+// weekdays short
$labels['sun'] = 'Do';
$labels['mon'] = 'Lu';
$labels['tue'] = 'Mh';
@@ -56,6 +81,8 @@ $labels['wed'] = 'Ch';
$labels['thu'] = 'Dé';
$labels['fri'] = 'Ao';
$labels['sat'] = 'Sa';
+
+// weekdays long
$labels['sunday'] = 'Domhnach';
$labels['monday'] = 'An Luan';
$labels['tuesday'] = 'An Mháirt';
@@ -63,6 +90,8 @@ $labels['wednesday'] = 'An Chéadaoin';
$labels['thursday'] = 'An Déardaoin';
$labels['friday'] = 'Aoine';
$labels['saturday'] = 'An Satharn';
+
+// months short
$labels['jan'] = 'Ean';
$labels['feb'] = 'Fea';
$labels['mar'] = 'Már';
@@ -71,8 +100,12 @@ $labels['may'] = 'Bea';
$labels['jun'] = 'Mei';
$labels['jul'] = 'Iúi';
$labels['aug'] = 'Lún';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
$labels['nov'] = 'Sam';
$labels['dec'] = 'Nol';
+
+// months long
$labels['longjan'] = 'Eanáir';
$labels['longfeb'] = 'Feabhra';
$labels['longmar'] = 'Márta';
@@ -85,15 +118,25 @@ $labels['longsep'] = 'Meán Fómhair';
$labels['longoct'] = 'Deireadh Fómhair';
$labels['longnov'] = 'Samhain';
$labels['longdec'] = 'Nollag';
+
$labels['today'] = 'Inniu';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Seiceáil chun teachtaireacht nua';
$labels['compose'] = 'Scríobh teachtaireacht';
$labels['writenewmessage'] = 'Scríobh teachtaireacht nua';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Scríobh freagra chun an seolaí';
$labels['replytoallmessage'] = 'Scríobh freagra chun an seolaí agus na faighteoir';
$labels['replyall'] = 'Freagra gach';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Seol ar aghaidh an teachtaireacht';
$labels['deletemessage'] = 'Chuir an teachtaireacht i mo bosca bruscair';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'Priontáil an teachtaireacht seo';
$labels['previousmessage'] = 'Taispeáin an teachtaireacht roimhe seo';
$labels['firstmessage'] = 'Taispeáin an cead teachtaireacht';
@@ -101,92 +144,395 @@ $labels['nextmessage'] = 'Taispeáin an teachtaireacht ina dhiaidh sin';
$labels['lastmessage'] = 'Taispeáin an teachtaireacht deireanach';
$labels['backtolist'] = 'Téigh ar ais go dtí an liosta teachtaireachta';
$labels['viewsource'] = 'Éiriú bunchód';
+$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'] = 'Togh';
$labels['all'] = 'An uile';
$labels['none'] = 'Aon cheann';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Na rudaí nach bhuil corraithe';
+$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'] = 'Aon cheann';
+$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'] = 'Comhbhrúigh';
$labels['empty'] = 'Folmhaigh';
+
$labels['quota'] = 'Toilleadh diosca atá athláimhe';
$labels['unknown'] = 'gan aithne';
$labels['unlimited'] = 'gan teorainn';
+
$labels['quicksearch'] = 'Mearcuardaigh';
$labels['resetsearch'] = 'Athshocraigh an cuardach';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Seol mo teachtaireacht láithreach bonn';
$labels['savemessage'] = 'Sábháil an dréachta seo';
$labels['addattachment'] = 'Suimigh Iatán';
$labels['charset'] = 'Foireann carachtar';
$labels['editortype'] = 'Sort eagarthóir';
$labels['returnreceipt'] = 'Admháil léite';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Fiosrú ar mo litriú';
$labels['resumeediting'] = 'Athdhúisigh eagarthóireacht';
$labels['revertto'] = 'Filleadh ar';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Iatání';
$labels['upload'] = 'Aistriú suas';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Dún';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Ãseal';
$labels['lowest'] = 'Is Ãsle';
$labels['normal'] = 'Gnách';
$labels['high'] = 'Ard';
$labels['highest'] = 'Is Airde';
+
$labels['nosubject'] = '(Níl aon Ãbhair)';
$labels['showimages'] = 'Taispeáin na híomhánna';
+$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'] = 'Téacs amháin';
+$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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
$labels['name'] = 'Leasainm';
$labels['firstname'] = 'Ainm baiste';
$labels['surname'] = 'Sloinne';
+$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'] = 'Ríomhphost';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Sábháil duine nua';
$labels['editcontact'] = 'Chuir chara in eagar';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Athraigh';
$labels['cancel'] = 'Cealaigh';
$labels['save'] = 'Sábháil';
$labels['delete'] = 'Scrios';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Scríobh carta teagmháil nua';
$labels['deletecontact'] = 'Scrios na daoine seo';
$labels['composeto'] = 'Scríobh teachtaireacht go';
$labels['contactsfromto'] = 'Daoine as $from to $to as $count';
$labels['print'] = 'Priontáil';
$labels['export'] = 'Easportáil';
+$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'] = 'Taispeáin an foireann roimhe seo';
$labels['firstpage'] = 'Taispeáin an céad foireann';
$labels['nextpage'] = 'Taispeáin an foireann ina dhiaidh sin';
$labels['lastpage'] = 'Taispeáin an foireann deireanach';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grúpaí';
$labels['personaladrbook'] = 'Seoltaí Pearsanta';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Socruithe chun';
+$labels['about'] = 'About';
$labels['preferences'] = 'Tosaíocht';
$labels['userpreferences'] = 'Tosaíocht Pearsanta';
$labels['editpreferences'] = 'Athraigh tosaíocht pearsanta';
+
$labels['identities'] = 'Céannachtaí';
$labels['manageidentities'] = 'Stiúir céannachtaí i cuntas seo';
$labels['newidentity'] = 'Céannacht nua';
+
$labels['newitem'] = 'Mír nua';
$labels['edititem'] = 'Athraigh mhír';
+
$labels['preferhtml'] = 'Taispeáin an HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Teachtaireacht HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Dátaí Dheas';
$labels['setdefault'] = 'Socraigh an réamhshocraithe';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Teanga';
$labels['timezone'] = 'Crios ama';
$labels['pagesize'] = 'Rónna in aghaidh gach leathanach';
$labels['signature'] = 'Mana clabhsúir';
$labels['dstactive'] = 'Laethúil um shamhradh';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Scríobh teachtaireachta HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Mana clabhsúir HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Taispeáin an pána réamhamharc';
+$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'] = 'Sábháil dréachta go huathoibríoch';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'riamh';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Fillteán';
$labels['folders'] = 'Fillteán';
$labels['foldername'] = 'Ainm fillteán';
$labels['subscribed'] = 'Síntiú';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'Cruthaigh';
$labels['createfolder'] = 'Cruthaigh fillteán nua';
$labels['managefolders'] = 'Stiúir na fillteán';
+$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'] = 'Sórtáil trí';
$labels['sortasc'] = 'Sórtáil in ord méadaitheach';
$labels['sortdesc'] = 'Sórtáil in ord neartaitheach';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/ga_IE/messages.inc b/program/localization/ga_IE/messages.inc
index b52fbe657..70aa28a36 100644
--- a/program/localization/ga_IE/messages.inc
+++ b/program/localization/ga_IE/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Theip an iarraidh chun logáil tú isteach';
$messages['cookiesdisabled'] = 'Níor glac do sracléitheoir an fianán seisiúin';
$messages['sessionerror'] = 'Tá an seisiúin neamhbhailí nó as feidhm';
$messages['storageerror'] = 'Theip an iarraidh chun nasc go dtí an freastalaí Prótacal Rochtana Teachtaireachtaí Idirlín (IMAP)';
+$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'] = 'Ní bhfuair mé aon teachtaireacht i bosca postas seo';
$messages['loggedout'] = 'D\'éirigh tú logáil amach. Slán Leat!';
$messages['mailboxempty'] = 'Tá an bosca postas folamh';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Fan nóiméad, ag lódáil...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Ag lódáil sonraí...';
$messages['checkingmail'] = 'Ag seiceáil chun teachtaireacht nua...';
$messages['sendingmessage'] = 'Ag seol mo teachtaireacht láithreach bonn...';
@@ -32,38 +48,124 @@ $messages['messagesaved'] = 'Sábháil mé an teachtaireacht i dréachtaí';
$messages['successfullysaved'] = 'D\'éirigh mé agus sábháil mé';
$messages['addedsuccessfully'] = 'D\'éirigh mé agus shábháil mé duine nua go dtí an Leabhair Seoltaí';
$messages['contactexists'] = 'Tá duine i do Leabhair Seoltaí agus tá an seoladh ríomhphost seo aige';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Chun do príobháide a cosain, choiscinn na híomhánna san teachtaireacht seo';
$messages['encryptedmessage'] = 'Tá an teachtaireacht seo i criptiúchán, Níl an cumas agam chun é a tionscail';
$messages['nocontactsfound'] = 'Ní raibh aon buine san Leabhair Seoltaí seo';
$messages['contactnotfound'] = 'Ní bhfuair mé an duine seo';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Theip an iarraidh chun an teachtaireacht a seol';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Theip mé agus ní shábháil';
$messages['errormoving'] = 'Theip mé agus ní bog an teachtaireacht';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Theip mé agus níor scrios me an teachtaireacht';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ar mhaith leat scrios na daoine seo?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Ar mhaith leat scrios na teachtaireacht seo?';
$messages['deletefolderconfirm'] = 'Ar mhaith leat scrios an fillteán seo?';
$messages['purgefolderconfirm'] = 'Ar mhaith leat scrios gach teachtaireacht san fillteán seo?';
+$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'] = 'Níor chríochnaigh tú an foirm';
$messages['noemailwarning'] = 'Abair liom seoladh ríomhphost nach bfhuil neamhbhaillí';
$messages['nonamewarning'] = 'Abair liom do ainm';
$messages['nopagesizewarning'] = 'Abair liom saghas leathanaigh';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Abair liom faighteoir amhain ar a laghad';
$messages['nosubjectwarning'] = 'Níl aon ábhair ar an teachtaireacht, ba mhaith tú déarfaidh mé ábair?';
$messages['nobodywarning'] = 'Níl aon teacs san teachtaireacht, ba mhaith tú déarfaidh mé teachtaireacht ar bith?';
$messages['notsentwarning'] = 'Theip an iarraidh chun an teachtaireacht a seo. ba mhaith tú scrios do teachtaireacht?';
$messages['noldapserver'] = 'Abair liom eolaire LDAP chun é a cuardaigh';
$messages['nosearchname'] = 'Abair liom ainm duine nó seoladh ríomhphost';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'Fuair mé $n teachtaireacht';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Ní bhfuair mé aon rud as an ceist seo';
$messages['searching'] = 'Ag tástáil...';
$messages['checking'] = 'Bím ag dhéanamh na mhaoirseachtí...';
$messages['nospellerrors'] = 'Ní bhfuair mé aon earráidí i teachtaireacht seo';
$messages['folderdeleted'] = 'D\'éirigh mé, Scrios mé an fillteán';
+$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'] = 'D\'éirigh mé, Scrios mé';
$messages['converting'] = 'Scrios mé formáidithe as an teachtaireacht seo';
$messages['messageopenerror'] = 'Theip orm chun an teachtaireacht seo a tarrtháil as an freastalaí';
$messages['fileuploaderror'] = 'Theip an suas-luchtú';
$messages['filesizeerror'] = 'Beigh an comhad ró-mhor. Is ea $size uas-saghas chun admháil léite';
+$messages['copysuccess'] = 'D\'éirigh mé agus chuir mé $nr seolagh i do Leabhair Seoltaí';
+$messages['copyerror'] = 'Theip mé agus níor dfhag mé aon seolagh';
$messages['sourceisreadonly'] = 'Tá an foinse seolaigh seo inléite amháin';
$messages['errorsavingcontact'] = 'Theip mé, Níl an cumas agam an seolagh seo a sábháil';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/gl_ES/labels.inc b/program/localization/gl_ES/labels.inc
index 780d47d77..5905ea4b9 100644
--- a/program/localization/gl_ES/labels.inc
+++ b/program/localization/gl_ES/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvido a $product';
$labels['username'] = 'Nome de usuario';
$labels['password'] = 'Contrasinal';
$labels['server'] = 'Servidor';
$labels['login'] = 'Acceder';
+
+// taskbar
$labels['logout'] = 'Saír';
$labels['mail'] = 'Caixa de entrada';
$labels['settings'] = 'Axustes persoais';
$labels['addressbook'] = 'Caderno de enderezos';
+
+// mailbox names
$labels['inbox'] = 'Caixa de entrada';
$labels['drafts'] = 'Borradores';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Cubo do lixo';
$labels['junk'] = 'Correo lixo';
-$labels['show_real_foldernames'] = 'Amosar nomes reáis para cartafois especiáis';
+
+// message listing
$labels['subject'] = 'Asunto';
$labels['from'] = 'Remitente';
$labels['sender'] = 'Remitente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridade';
$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['messagenrof'] = 'Mensaxe $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover a...';
@@ -56,9 +67,13 @@ $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';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mér';
$labels['thu'] = 'Xov';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Luns';
$labels['tuesday'] = 'Martes';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mércores';
$labels['thursday'] = 'Xoves';
$labels['friday'] = 'Venres';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Xan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Out';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Xaneiro';
$labels['longfeb'] = 'Febreiro';
$labels['longmar'] = 'Marzo';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Setembro';
$labels['longoct'] = 'Outubro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Decembro';
+
$labels['today'] = 'Hoxe';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Procurar novas mensaxes';
$labels['compose'] = 'Redactar unha mensaxe';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Máis accións...';
$labels['more'] = 'Máis';
$labels['back'] = 'Atrás';
$labels['options'] = 'Opcións';
+
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Ningunha';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir todos';
$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['expand_only_unread'] = 'só con mensaxes non lidas';
@@ -163,22 +189,27 @@ $labels['listcolumns'] = 'Enumerar columnas';
$labels['listsorting'] = 'Ordenar pola columna';
$labels['listorder'] = 'Ordenación';
$labels['listmode'] = 'Modo de vista da lista';
+
$labels['folderactions'] = 'Accións cos cartafoles';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Baleirar';
-$labels['importmessages'] = 'Importar mensaxes';
+
$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['body'] = 'Corpo';
+
$labels['openinextwin'] = 'Abrir nunha nova fiestra';
$labels['emlsave'] = 'Gardar (.eml)';
$labels['changeformattext'] = 'Amosar en texto plano';
$labels['changeformathtml'] = 'Amosar en HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como nova';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar a mensaxe agora';
@@ -190,22 +221,26 @@ $labels['returnreceipt'] = 'Notificación da entrega';
$labels['dsn'] = 'Notificación do estado de envío (DSN)';
$labels['mailreplyintro'] = 'O $date, $sender escribiu:';
$labels['originalmessage'] = 'Mensaxe orixinal';
+
$labels['editidents'] = 'Modificar identidades';
$labels['spellcheck'] = 'Ortografía';
$labels['checkspelling'] = 'Revisar a ortografía';
$labels['resumeediting'] = 'Voltar á edición';
$labels['revertto'] = 'Voltar a';
+
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Ficheiros anexos';
$labels['upload'] = 'Cargar';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Pechar';
$labels['messageoptions'] = 'Opcións da mensaxe...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'A máis baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'A máis alta';
+
$labels['nosubject'] = '(Sen asunto)';
$labels['showimages'] = 'Amosar as imaxes';
$labels['alwaysshow'] = 'Amosar sempre as imaxes nas mensaxes de $sender';
@@ -213,19 +248,25 @@ $labels['isdraft'] = 'Esta mensaxe é un borrador';
$labels['andnmore'] = '$nr máis...';
$labels['togglemoreheaders'] = 'Amosar máis cabecerias';
$labels['togglefullheaders'] = 'Conmutar cabeceiras en bruto';
+
$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)';
+
+// mdn
$labels['mdnrequest'] = 'O remitente desta mensaxe pediu ser notificado cando vostede a lea. Quere notificar ao 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.';
+
+// address boook
$labels['name'] = 'Nome completo';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Apelidos';
@@ -260,6 +301,7 @@ $labels['search'] = 'Procurar';
$labels['advsearch'] = 'Procura avanzada';
$labels['advanced'] = 'Avanzado';
$labels['other'] = 'Outro';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Traballo';
$labels['typeother'] = 'Outro';
@@ -274,12 +316,14 @@ $labels['typeassistant'] = 'Asistente';
$labels['typehomepage'] = 'Páxina principal';
$labels['typeblog'] = 'Blogue';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Engadir campo';
$labels['addcontact'] = 'Engadir novo contacto';
$labels['editcontact'] = 'Modificar este contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Propiedades do contacto';
$labels['personalinfo'] = 'Información persoal';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Gardar';
@@ -288,6 +332,7 @@ $labels['rename'] = 'Mudar o nome';
$labels['addphoto'] = 'Engadir';
$labels['replacephoto'] = 'Substituír';
$labels['uploadphoto'] = 'Subir foto';
+
$labels['newcontact'] = 'Novo contacto';
$labels['deletecontact'] = 'Eliminar os contactos seleccionados';
$labels['composeto'] = 'Redactar mensaxe para';
@@ -301,31 +346,41 @@ $labels['newcontactgroup'] = 'Crear novo grupo de contactos';
$labels['grouprename'] = 'Mudar o nome do grupo';
$labels['groupdelete'] = 'Borrar o grupo';
$labels['groupremoveselected'] = 'Eliminar do grupo os contactos seleccionados';
+
$labels['previouspage'] = 'Amosar o grupo anterior';
$labels['firstpage'] = 'Amosar o primeiro grupo';
$labels['nextpage'] = 'Amosar o seguinte grupo';
$labels['lastpage'] = 'Amosar o último grupo';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
$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['importtarget'] = 'Engadir contactos ao caderno de enderezos:';
$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';
+
+// settings
$labels['settingsfor'] = 'Axustes de';
$labels['about'] = 'Acerca de';
$labels['preferences'] = 'Preferencias';
$labels['userpreferences'] = 'Preferencias de usuario';
$labels['editpreferences'] = 'Editar preferencias de usuario';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Administrar as identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
+
$labels['newitem'] = 'Novo';
$labels['edititem'] = 'Editar';
+
$labels['preferhtml'] = 'Prefiro HTML';
$labels['defaultcharset'] = 'Xogo de caracteres por omisión';
$labels['htmlmessage'] = 'Mensaxe HTML';
@@ -347,7 +402,7 @@ $labels['htmleditor'] = 'Redactar mensaxes HTML';
$labels['htmlonreply'] = 'só cando se resposte a unha mensaxe HTML';
$labels['htmlonreplyandforward'] = 'ao reenviar ou respostar a unha mensaxe HTML';
$labels['htmlsignature'] = 'Sinatura HTML';
-$labels['showemail'] = 'Amosar enderezo de correo co nome en pantalla';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Amosar previsualización';
$labels['skin'] = 'Aspecto da interface';
$labels['logoutclear'] = 'Baleirar o cubo do lixo ao saír';
@@ -417,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar as palabras con números';
$labels['spellcheckignorecaps'] = 'Ignorar as palabras escritas en maiúsculas';
$labels['addtodict'] = 'Engadir ao diccionario';
$labels['mailtoprotohandler'] = 'Rexistrar o manexador de protocolo para as ligazóns "mailto:"';
-$labels['standardwindows'] = 'Manexar avisos emerxentes como xanelas estándar';
$labels['forwardmode'] = 'Reenvio de mensaxes';
$labels['inline'] = 'inserido';
$labels['asattachment'] = 'coma anexo';
+
$labels['folder'] = 'Cartafol';
$labels['folders'] = 'Cartafoles';
$labels['foldername'] = 'Nome do cartafol';
@@ -441,20 +496,26 @@ $labels['foldertype'] = 'Tipo do cartafol';
$labels['personalfolder'] = 'Cartafol privado';
$labels['otherfolder'] = 'Cartafol de outro usuario';
$labels['sharedfolder'] = 'Cartafol público';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Orde ascendente';
$labels['sortdesc'] = 'Orde descendente';
$labels['undo'] = 'Desfacer';
+
$labels['installedplugins'] = 'Complementos instalados';
$labels['plugin'] = 'Complemento';
$labels['version'] = 'Versión';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licenza';
$labels['support'] = 'Obter axuda';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KiB';
$labels['MB'] = 'MiB';
$labels['GB'] = 'GiB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglés';
$labels['westerneuropean'] = 'Europeo Occidental';
@@ -473,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Xaponés';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinés';
+
?>
diff --git a/program/localization/gl_ES/messages.inc b/program/localization/gl_ES/messages.inc
index 599f2ce41..207a016a1 100644
--- a/program/localization/gl_ES/messages.inc
+++ b/program/localization/gl_ES/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ocurreu un erro!';
$messages['loginfailed'] = 'O contrasinal ou o nome de usuario son incorrectos.';
$messages['cookiesdisabled'] = 'O seu navegador non acepta galletas.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Non se atopou o contacto solicitado.';
$messages['contactsearchonly'] = 'Introduza 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['errorsavingsent'] = 'Ocurriu un erro mentres se gardaba a mensaxe enviada.';
+$messages['errorsaving'] = 'Ocurriu un erro mentres se gardaba.';
$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).';
@@ -97,6 +101,8 @@ $messages['converting'] = 'Eliminando o formato da mensaxe...';
$messages['messageopenerror'] = 'Non foi posible 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['copysuccess'] = 'Copiáronse correctamente $nr enderezos.';
+$messages['copyerror'] = 'Non foi posible copiar ningún enderezo.';
$messages['sourceisreadonly'] = 'A orixe é de só lectura.';
$messages['errorsavingcontact'] = 'Non foi posible gardar o contacto.';
$messages['movingmessage'] = 'Movendo a(s) mensaxe(s)...';
@@ -120,8 +126,6 @@ $messages['importwait'] = 'A importar. Por favor, agarde...';
$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['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['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?';
@@ -135,6 +139,7 @@ $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['internalerror'] = 'Ocurriu un erro interno. Por favor, probe outra vez.';
$messages['contactdelerror'] = 'Non foi posible 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).';
@@ -162,4 +167,5 @@ $messages['parentnotwritable'] = 'Non foi posible crear/mover o cartafol no cart
$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['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/he_IL/labels.inc b/program/localization/he_IL/labels.inc
index ad9a91adc..bfb9e2fef 100644
--- a/program/localization/he_IL/labels.inc
+++ b/program/localization/he_IL/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'ברוך בו×ך ×ל $product';
$labels['username'] = '×©× ×ž×©×ª×ž×©';
$labels['password'] = 'סיסמה';
$labels['server'] = 'שרת';
$labels['login'] = 'כניסה';
+
+// taskbar
$labels['logout'] = 'יצי××”';
$labels['mail'] = 'רשימת הודעות';
$labels['settings'] = 'הגדרות ×ישיות';
$labels['addressbook'] = 'פנקס כתובות';
+
+// mailbox names
$labels['inbox'] = 'נכנס';
$labels['drafts'] = 'טיוטות';
$labels['sent'] = 'נשלח';
$labels['trash'] = '×שפה';
$labels['junk'] = 'זבל';
-$labels['show_real_foldernames'] = 'הצגת שמות ××ž×™×ª×™×™× ×©×œ תיקיות מיוחדות';
+
+// message listing
$labels['subject'] = 'נוש×';
$labels['from'] = 'מ×ת';
$labels['sender'] = 'השולח';
@@ -44,11 +53,13 @@ $labels['priority'] = 'עדיפות';
$labels['organization'] = '×רגון';
$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['move'] = 'העבר';
$labels['moveto'] = 'תיוק ב...';
@@ -56,9 +67,13 @@ $labels['download'] = 'הורדה';
$labels['open'] = 'לפתוח';
$labels['showattachment'] = 'הצגה';
$labels['showanyway'] = 'להציג בכל מקרה';
+
$labels['filename'] = '×©× ×§×•×‘×¥';
$labels['filesize'] = 'גודל קובץ';
+
$labels['addtoaddressbook'] = 'הוספה לפנקס כתובות';
+
+// weekdays short
$labels['sun'] = '×™×•× ×';
$labels['mon'] = '×™×•× ×‘';
$labels['tue'] = '×™×•× ×’';
@@ -66,6 +81,8 @@ $labels['wed'] = '×™×•× ×“';
$labels['thu'] = '×™×•× ×”';
$labels['fri'] = '×™×•× ×•';
$labels['sat'] = '×™×•× ×©';
+
+// weekdays long
$labels['sunday'] = 'ר×שון';
$labels['monday'] = 'שני';
$labels['tuesday'] = 'שלישי';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'רביעי';
$labels['thursday'] = 'חמישי';
$labels['friday'] = 'ששי';
$labels['saturday'] = 'שבת';
+
+// months short
$labels['jan'] = 'ינו';
$labels['feb'] = 'פבר';
$labels['mar'] = 'מרץ';
@@ -85,6 +104,8 @@ $labels['sep'] = 'ספט';
$labels['oct'] = '×וק';
$labels['nov'] = 'נוב';
$labels['dec'] = 'דצמ';
+
+// months long
$labels['longjan'] = 'ינו×ר';
$labels['longfeb'] = 'פברו×ר';
$labels['longmar'] = 'מרץ';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'ספטמבר';
$labels['longoct'] = '×וקטובר';
$labels['longnov'] = 'נובמבר';
$labels['longdec'] = 'דצמבר';
+
$labels['today'] = 'היו×';
+
+// toolbar buttons
$labels['refresh'] = 'רענון';
$labels['checkmail'] = 'משיכת הודעות חדשות';
$labels['compose'] = 'כתיבת הודעה';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'פעולות נוספות...';
$labels['more'] = 'עוד';
$labels['back'] = 'חזרה';
$labels['options'] = '×פשרויות';
+
$labels['select'] = 'בחירה';
$labels['all'] = 'הכל';
$labels['none'] = 'כלו×';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'הרחבה כלית';
$labels['expand-unread'] = 'הרחבה ×˜×¨× × ×§×¨×';
$labels['collapse-all'] = 'כינוס כללי';
$labels['threaded'] = 'משורשר';
+
$labels['autoexpand_threads'] = 'הרחבת הודעות משורשרות';
$labels['do_expand'] = 'כל השרשורי×';
$labels['expand_only_unread'] = 'רק ×¢× ×”×•×“×¢×•×ª ×©×˜×¨× × ×§×¨×ו';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'רשימת עמודות';
$labels['listsorting'] = 'המיון לפי העמודה';
$labels['listorder'] = 'סדר מיון';
$labels['listmode'] = '×ופן הצגת רשימה';
+
$labels['folderactions'] = 'פעולות על תיקי×';
$labels['compact'] = 'פינוי שטח ×œ× ×ž× ×•×¦×œ';
$labels['empty'] = 'ריקון';
-$labels['importmessages'] = '×™×™×‘×•× ×”×•×“×¢×•×ª';
+
$labels['quota'] = 'ניצול קיבולת';
$labels['unknown'] = '×œ× ×™×“×•×¢';
$labels['unlimited'] = '×œ×œ× ×”×’×‘×œ×”';
+
$labels['quicksearch'] = 'חיפוש מהיר';
$labels['resetsearch'] = 'ניקוי תיבת החיפוש';
$labels['searchmod'] = 'מ×פייני חיפוש';
$labels['msgtext'] = 'כל ההודעה';
$labels['body'] = 'גוף ההודעה';
-$labels['type'] = 'סוג';
-$labels['namex'] = 'ש×';
+
$labels['openinextwin'] = 'פתיחה בחלון חדש';
$labels['emlsave'] = 'הורדת הודעה בפורמט EML';
$labels['changeformattext'] = 'הצגה בפורמט ×œ× ×ž×¢×•×¦×‘';
$labels['changeformathtml'] = 'הצגה בפורמט HTML';
+
+// message compose
$labels['editasnew'] = 'עריכת ההודעה כחדשה';
$labels['send'] = 'שלח';
$labels['sendmessage'] = 'משלוח מיידי';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = '×ישור קבלה';
$labels['dsn'] = 'הודעה על מצב המסירה';
$labels['mailreplyintro'] = ':כתב $sender, $date בת×ריך';
$labels['originalmessage'] = 'הודעה מקורית';
+
$labels['editidents'] = 'עריכת זהויות';
$labels['spellcheck'] = '×יות';
$labels['checkspelling'] = 'בדיקת ×יות';
$labels['resumeediting'] = 'המשך עריכה';
$labels['revertto'] = 'חזור למצב קוד×';
+
$labels['attach'] = 'צירוף';
$labels['attachments'] = 'צרופות';
$labels['upload'] = 'העל××”';
$labels['uploadprogress'] = '( $total מתוך $current ) $percent';
$labels['close'] = 'סגירה';
$labels['messageoptions'] = '×פשרויות הודעה...';
+
$labels['low'] = 'נמוך';
$labels['lowest'] = 'נמוך ביותר';
$labels['normal'] = 'רגיל';
$labels['high'] = 'גבוה';
$labels['highest'] = 'גבוה ביותר';
+
$labels['nosubject'] = '(×œ×œ× × ×•×©×)';
$labels['showimages'] = 'הצגת תמונות';
$labels['alwaysshow'] = '$sender תמיד להציג תמונות מ×ת';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'זו טיוטה של הודעה';
$labels['andnmore'] = 'עוד $nr';
$labels['togglemoreheaders'] = 'הר××” נתוני מערכת × ×•×¡×¤×™× ×©×œ ההודעה';
$labels['togglefullheaders'] = 'הר××” / בטל צפיה בנתוני מערכת של ההודעה';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '×œ×œ× ×¢×™×¦×•×‘';
$labels['savesentmessagein'] = 'היכן לשמור ההודעה?';
$labels['dontsave'] = '×œ×œ× ×©×ž×™×¨×”';
$labels['maxuploadsize'] = 'גודל מקסימלי לקובץ ×”×•× $size';
+
$labels['addcc'] = 'הוספת מכותב לידיעה';
$labels['addbcc'] = 'הוספת מכותב נסתר';
$labels['addreplyto'] = 'הוספת כתובת למענה';
$labels['addfollowupto'] = 'הוספת כתובת להעברת הודעה';
+
+// mdn
$labels['mdnrequest'] = 'השולח ביקש לדעת ×× ×”×”×•×“×¢×” נקר××”. ×”×× ×œ×”×•×“×™×¢ לשולח?';
$labels['receiptread'] = '×ישור קבלה (נקר×)';
$labels['yourmessage'] = '×ישור קבלה להודעתך';
$labels['receiptnote'] = 'הערה: ×”×ישור ×ינו מבטיח שהנמען ×§×¨× ×ו הבין ×ת תוכן ההודעה.';
+
+// address boook
$labels['name'] = '×©× ×œ×”×¦×’×”';
$labels['firstname'] = '×©× ×¤×¨×˜×™';
$labels['surname'] = '×©× ×ž×©×¤×—×”';
@@ -262,6 +301,7 @@ $labels['search'] = 'חיפוש';
$labels['advsearch'] = '×—×™×וש מתקד×';
$labels['advanced'] = 'מתקד×';
$labels['other'] = '×חר';
+
$labels['typehome'] = 'בית';
$labels['typework'] = 'עבודה';
$labels['typeother'] = '×חר';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'עוזר/ת';
$labels['typehomepage'] = 'דף הבית';
$labels['typeblog'] = 'יומן רשת';
$labels['typeprofile'] = 'פרופיל';
+
$labels['addfield'] = 'הוסף שדה';
$labels['addcontact'] = 'הוספת ×יש קשר';
$labels['editcontact'] = 'עריכת ×יש קשר';
$labels['contacts'] = '×נשי קשר';
$labels['contactproperties'] = 'מ×פייני ×יש קשר';
$labels['personalinfo'] = 'מידע ×ישי';
+
$labels['edit'] = 'עריכה';
$labels['cancel'] = 'ביטול';
$labels['save'] = 'שמירה';
@@ -290,6 +332,7 @@ $labels['rename'] = 'שינוי ש×';
$labels['addphoto'] = 'הוספה';
$labels['replacephoto'] = 'החלפה';
$labels['uploadphoto'] = 'העל×ת תמונה';
+
$labels['newcontact'] = '×יש קשר חדש';
$labels['deletecontact'] = 'מחיקת ×נשי קשר מסומני×';
$labels['composeto'] = 'יצירת הודעה ×ל';
@@ -303,34 +346,43 @@ $labels['newcontactgroup'] = 'יצירת קבוצה חדשה של ×נשי קש×
$labels['grouprename'] = 'שינוי ×©× ×§×‘×•×¦×”';
$labels['groupdelete'] = 'מחיקת קבוצה';
$labels['groupremoveselected'] = '×נשי הקשר שנבחרו יוסרו מהקבוצה';
+
$labels['previouspage'] = 'הצגת הקבוצה הקודמת';
$labels['firstpage'] = 'הצגת הקבוצה הר×שונה';
$labels['nextpage'] = 'הצגת הקבוצה הב××”';
$labels['lastpage'] = 'הצגת הקבוצה ×”×חרונה';
+
$labels['group'] = 'קבוצה';
$labels['groups'] = 'קבוצות';
-$labels['listgroup'] = 'רשימה של חברי קבוצה';
$labels['personaladrbook'] = 'כתובות פרטיות';
+
$labels['searchsave'] = 'שמירת החיפוש';
$labels['searchdelete'] = 'מחיקת החיפוש';
+
$labels['import'] = 'ייבו×';
$labels['importcontacts'] = '×™×™×‘×•× ×נשי קשר';
$labels['importfromfile'] = '×™×™×‘×•× ×ž×§×•×‘×¥';
+$labels['importtarget'] = 'הוספת ×נשי קשר לספר הכתובות';
$labels['importreplace'] = 'החלפת כל פנקס הכתובות';
$labels['importdesc'] = 'ניתן לטעון ×נשי קשר מקובץ חיצוני. ×נו ×ª×•×ž×›×™× ×‘×§×‘×¦×™× ×”×¢×¨×•×›×™× ×‘×¦×•×¨×” של
<a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ×ו
CSV המופרד על ידי פסיקי×.';
$labels['done'] = 'בוצע';
+
+// settings
$labels['settingsfor'] = 'הגדרות עבור';
$labels['about'] = '×ודות';
$labels['preferences'] = 'העדפות';
$labels['userpreferences'] = 'העדפות משתמש';
$labels['editpreferences'] = 'עריכה של העדפות משתמש';
+
$labels['identities'] = 'זהויות';
$labels['manageidentities'] = 'ניהול זהויות לחשבון זה';
$labels['newidentity'] = 'זהות חדשה';
+
$labels['newitem'] = 'רשומה חדשה';
$labels['edititem'] = 'עריכת רשומה';
+
$labels['preferhtml'] = 'הצגת HTML';
$labels['defaultcharset'] = 'ברירת מחדל של תווי×';
$labels['htmlmessage'] = 'תוכן HTML';
@@ -422,10 +474,10 @@ $labels['spellcheckignorenums'] = 'התעלמות ×ž×ž×™×œ×™× ×”×ž×›×™×œ×•×ª מ
$labels['spellcheckignorecaps'] = 'התעלמות ×ž×ž×™×œ×™× ×¢× ×ותציות ר×שיות';
$labels['addtodict'] = 'הוספה למילון';
$labels['mailtoprotohandler'] = 'קביעת הפרוטוקול לטיפול בקישור מסוג mailto:links';
-$labels['standardwindows'] = 'חלונות ×§×•×¤×¦×™× ×™×˜×•×¤×œ×• כחלונות רגילי×';
$labels['forwardmode'] = 'הפנית הודעות';
$labels['inline'] = 'חלק מההודעה';
$labels['asattachment'] = 'כצרופה';
+
$labels['folder'] = 'תיק';
$labels['folders'] = 'תיקיות';
$labels['foldername'] = '×©× ×ª×™×§';
@@ -446,20 +498,26 @@ $labels['foldertype'] = 'סוג תיקיה';
$labels['personalfolder'] = 'תיקיה פרטית';
$labels['otherfolder'] = 'תיקית משתמש נוספת';
$labels['sharedfolder'] = 'תיקיה ציבורית';
+
$labels['sortby'] = 'מיון לפי';
$labels['sortasc'] = 'מיון בסדר עולה';
$labels['sortdesc'] = 'מיון בסדר יורד';
$labels['undo'] = 'ביטול שינוי';
+
$labels['installedplugins'] = '×ª×•×¡×¤×™× ×ž×•×ª×§× ×™×';
$labels['plugin'] = 'תוסף תוכנה';
$labels['version'] = 'גירסה';
$labels['source'] = 'מקור';
$labels['license'] = 'רשיון';
$labels['support'] = 'קבלת תמיכה';
+
+// units
$labels['B'] = 'בייט';
$labels['KB'] = 'ק"ב';
$labels['MB'] = 'מ"ב';
$labels['GB'] = 'ג"ב';
+
+// character sets
$labels['unicode'] = 'יוניקוד';
$labels['english'] = '×נגלית';
$labels['westerneuropean'] = 'מערב ×ירופי';
@@ -478,4 +536,5 @@ $labels['vietnamese'] = 'וויטנ×מי';
$labels['japanese'] = 'יפני';
$labels['korean'] = 'קורי×× ×™';
$labels['chinese'] = 'סיני';
+
?>
diff --git a/program/localization/he_IL/messages.inc b/program/localization/he_IL/messages.inc
index b7e7d1ae8..7d9b87c06 100644
--- a/program/localization/he_IL/messages.inc
+++ b/program/localization/he_IL/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'קרתה שגי××” !';
$messages['loginfailed'] = 'הכניסה נכשלה';
$messages['cookiesdisabled'] = 'הדפדפן ×ינו מקבל עוגיות';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '×יש הקשר המבוקש ×œ× × ×ž×¦×';
$messages['contactsearchonly'] = 'יש להקיש מפתחות חיפוש כדי ×œ×ž×¦×•× ×נשי קשר';
$messages['sendingfailed'] = 'שליחת ההודעה נכשלה';
$messages['senttooquickly'] = '× × ×œ×”×ž×ª×™×Ÿ $sec שניות לפני מסירת הודעה זו';
+$messages['errorsavingsent'] = 'נגרמה שגי××” במהלך שמירת ההודעה בתיק הודעות יוצ×ות';
+$messages['errorsaving'] = 'נגרמה שגי××” במהלך השמירה';
$messages['errormoving'] = '×œ× × ×™×ª×Ÿ לתייק ×ת ההודעה';
$messages['errorcopying'] = 'העתקת ההודעות נכשלה';
$messages['errordeleting'] = '×œ× × ×™×ª×Ÿ למחוק ×ת ההודעה';
@@ -97,16 +101,13 @@ $messages['converting'] = 'הסרת העיצוב מההודעה';
$messages['messageopenerror'] = '×œ× × ×™×ª×Ÿ לטעון ההודעה מהשרת';
$messages['fileuploaderror'] = 'העל×ת הקובץ נכשלה';
$messages['filesizeerror'] = 'הקובץ לטעינה גדול מהגודל המקסימלי ×©×”×•× $size';
-$messages['copysuccess'] = '$nr ×נשי קשר הועתקו בהצלחה';
-$messages['movesuccess'] = '$nr ×נשי קשר הועברו בהצלחה';
-$messages['copyerror'] = '×œ× × ×™×ª×Ÿ ×”×™×” להעתיק ×נשי קשר כלשה×';
-$messages['moveerror'] = '×œ× × ×™×ª×Ÿ ×”×™×” להעביר ×נשי קשר כלשה×';
+$messages['copysuccess'] = '$nr כתובות הועתקו בהצלחה';
+$messages['copyerror'] = '×œ× × ×™×ª×Ÿ להעתיק ××£ כתובת';
$messages['sourceisreadonly'] = 'המקור לכתובת ×”×•× ×œ×§×¨×™××” בלבד';
$messages['errorsavingcontact'] = '×œ× × ×™×ª×Ÿ לשמור ×ת כתובת ×יש הקשר';
$messages['movingmessage'] = 'תיוק ההודעה...';
$messages['copyingmessage'] = 'הודעת מועתקת...';
$messages['copyingcontact'] = 'העתקת ×נשי קשר...';
-$messages['movingcontact'] = '×נשי קשר עוברי×...';
$messages['deletingmessage'] = 'המחיקה בתהליך...';
$messages['markingmessage'] = 'סימון ההודעה בתהליך...';
$messages['addingmember'] = 'הוספת ×נשי קשר לקבוצה...';
@@ -125,8 +126,6 @@ $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'] = 'לזהות שנבחרה חסרה כתובת דו×ר';
$messages['editorwarning'] = 'המעבר לעורך רגיל ×™×’×¨×•× ×œ×יבוד ×ת העריכה הקיימת. ×”×× ×œ×”×ž×©×™×š?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP: $msg';
$messages['emailformaterror'] = '$email כתובת דו×"ל שגויה';
$messages['toomanyrecipients'] = 'יותר מדי נמעני×. יש להקטין ×ž×¡×¤×¨× ×œ - $max';
$messages['maxgroupmembersreached'] = '×ž×¡×¤×¨× ×©×œ חברי הקבוצה ×ינו יכול לעבור $max';
+$messages['internalerror'] = 'שגי×ת מערכת. × × ×œ× ×¡×•×ª שנית';
$messages['contactdelerror'] = '×œ× × ×™×ª×Ÿ למחוק ×יש קשר';
$messages['contactdeleted'] = '×יש הקשר נמחק';
$messages['contactrestoreerror'] = '×œ× × ×™×ª×Ÿ לשחזר ×יש קשר שנמחק';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = '×œ× × ×™×ª×Ÿ ליצור/להעביר תיקי
$messages['messagetoobig'] = 'ההודעה גדולה מעבר ליכולת העיבוד של התוכנה';
$messages['attachmentvalidationerror'] = 'זהירות ! הצרופה חשודה ×›×™ ××™× ×” מהסוג שצוין בהודעה. ×× ×œ× × ×™×ª×Ÿ לבטוח בשולח ××–×™ להמנע מלפתוח ×ת הקובץ בדפדפן ×›×™ הקובץ יכול להכיל קוד זדוני.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'זהירות! תוכנה זו דורשת שימוש בג\'×ווהסקריפט! כדי להשתמש בכלי, יש לבחור ב×פשרות זו בהגדרות הדפדפן.';
+
?>
diff --git a/program/localization/hi_IN/labels.inc b/program/localization/hi_IN/labels.inc
index a8b684c56..3b8279f71 100644
--- a/program/localization/hi_IN/labels.inc
+++ b/program/localization/hi_IN/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product में सà¥à¤µà¤¾à¤—त है';
$labels['username'] = 'यूसरनाम';
$labels['password'] = 'पासवरà¥à¤¡';
$labels['server'] = 'सरà¥à¤µà¤°';
$labels['login'] = 'लॉगिन';
+
+// taskbar
$labels['logout'] = 'लॉगआऊट';
$labels['mail'] = 'ई-मेल';
$labels['settings'] = 'निजी सैटिंग';
$labels['addressbook'] = 'पता खाता';
+
+// mailbox names
$labels['inbox'] = 'इनबॉकà¥à¤¸';
$labels['drafts'] = 'डà¥à¤°à¤¾à¤«à¤¼à¤Ÿ';
$labels['sent'] = 'भेजा गया';
$labels['trash'] = 'रदà¥à¤¦à¥€';
$labels['junk'] = 'सà¥à¤ªà¥ˆà¤®';
+
+// message listing
$labels['subject'] = 'विशय';
$labels['from'] = 'भेजने वाला';
+$labels['sender'] = 'Sender';
$labels['to'] = 'पाने वाला';
$labels['cc'] = 'कारà¥à¤¬à¤¨';
$labels['bcc'] = 'अंधा कारà¥à¤¬à¤¨';
@@ -40,16 +51,29 @@ $labels['date'] = 'तारीख';
$labels['size'] = 'माप';
$labels['priority'] = 'मेल की महतà¥à¤µà¤ªà¥‚रà¥à¤£à¤¤à¤¾';
$labels['organization'] = 'संसà¥à¤¥à¤¾';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'फ़ोलà¥à¤¡à¤°';
$labels['messagesfromto'] = '$from से ले कर $to, $count मेल में से';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$nr नमà¥à¤¬à¤° मेल, $count में से';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'कारà¥à¤¬à¤¨';
$labels['move'] = 'सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरित करें';
$labels['moveto'] = 'खीसà¥à¤•à¤¾à¤à¤‚...';
$labels['download'] = 'डाऊनलोड';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'फ़ाईल नाम';
$labels['filesize'] = 'फ़ाईल माप';
+
$labels['addtoaddressbook'] = 'पता खाते में जोडें';
+
+// weekdays short
$labels['sun'] = 'रवि';
$labels['mon'] = 'सोम';
$labels['tue'] = 'मंग';
@@ -57,6 +81,8 @@ $labels['wed'] = 'बà¥à¤§';
$labels['thu'] = 'गà¥à¤°à¥';
$labels['fri'] = 'शà¥à¤•à¥à¤°';
$labels['sat'] = 'शनि';
+
+// weekdays long
$labels['sunday'] = 'रविवार';
$labels['monday'] = 'सोमवार';
$labels['tuesday'] = 'मंगलवार';
@@ -64,6 +90,8 @@ $labels['wednesday'] = 'बà¥à¤§à¤µà¤¾à¤°';
$labels['thursday'] = 'गà¥à¤°à¥à¤µà¤¾à¤°';
$labels['friday'] = 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°';
$labels['saturday'] = 'शनिवार';
+
+// months short
$labels['jan'] = 'जनवरी';
$labels['feb'] = 'फ़रवरी';
$labels['mar'] = 'मारà¥à¤š';
@@ -71,6 +99,13 @@ $labels['apr'] = 'अपà¥à¤°à¥‡à¤²';
$labels['may'] = 'मई';
$labels['jun'] = 'जून';
$labels['jul'] = 'जà¥à¤²à¤¾à¤ˆ';
+$labels['aug'] = 'Aug';
+$labels['sep'] = 'Sep';
+$labels['oct'] = 'Oct';
+$labels['nov'] = 'Nov';
+$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'जनवरी';
$labels['longfeb'] = 'फ़रवरी';
$labels['longmar'] = 'मारà¥à¤š';
@@ -83,7 +118,10 @@ $labels['longsep'] = 'सितंबर';
$labels['longoct'] = 'अकà¥à¤Ÿà¥‚बर';
$labels['longnov'] = 'नवमà¥à¤¬à¤°';
$labels['longdec'] = 'दिसंबर';
+
$labels['today'] = 'आज';
+
+// toolbar buttons
$labels['refresh'] = 'ताज़ा करें';
$labels['checkmail'] = 'नये मेल लाà¤à¤‚';
$labels['compose'] = 'मेल लिखें';
@@ -91,9 +129,14 @@ $labels['writenewmessage'] = 'मेल लिखें';
$labels['reply'] = 'जवाब';
$labels['replytomessage'] = 'मेल का जवाब दें';
$labels['replytoallmessage'] = 'सभी को जवाब लिखें';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
$labels['forward'] = 'अगà¥à¤°à¥‡à¤·à¤¿à¤¤ करें';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'आगे भेजें';
$labels['deletemessage'] = 'रदà¥à¤¦ करें';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'मेल छापें';
$labels['previousmessage'] = 'पीछे के मेल दिखाà¤à¤‚';
$labels['firstmessage'] = 'पहला मेल दिखाà¤à¤‚';
@@ -102,90 +145,394 @@ $labels['lastmessage'] = 'आखीरी मेल दिखाà¤à¤‚';
$labels['backtolist'] = 'मेल सूची देखें';
$labels['viewsource'] = 'सोरà¥à¤¸ दिखाà¤à¤‚';
$labels['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'] = 'चà¥à¤¨à¥‡à¤‚';
$labels['all'] = 'सभी';
$labels['none'] = 'कोई नहीं';
+$labels['currpage'] = 'Current page';
$labels['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'] = 'कोई नहीं';
+$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'] = 'छोटा करें';
$labels['empty'] = 'मेल रदà¥à¤¦à¥€ में डालें';
+
$labels['quota'] = 'डिसà¥à¤• उपयोग';
$labels['unknown'] = 'अजà¥à¤žà¤¾à¤¤';
$labels['unlimited'] = 'असीम';
+
$labels['quicksearch'] = 'तेज़ खोज';
$labels['resetsearch'] = 'खोज खाली करें';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'मेल भेजें';
$labels['savemessage'] = 'डà¥à¤°à¤¾à¤«à¤¼à¤Ÿ सहेजें';
$labels['addattachment'] = 'फ़ाईल जोडें';
$labels['charset'] = 'कैरेकà¥à¤Ÿà¤° सैट';
$labels['editortype'] = 'समà¥à¤ªà¤¾à¤¦à¤• पà¥à¤°à¤¾à¤•à¤¾à¤°';
$labels['returnreceipt'] = 'मेल रसीद';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'सà¥à¤ªà¥ˆà¤²à¤¿à¤‚ग जाà¤à¤šà¥‡à¤‚';
$labels['resumeediting'] = 'समà¥à¤ªà¤¾à¤¦à¤¨ फिर शà¥à¤°à¥‚ करें';
$labels['revertto'] = 'पहले की सà¥à¤¥à¤¿à¤¤à¥€ पर जाà¤à¤‚';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'जà¥à¤¡à¥‡ फाईल';
$labels['upload'] = 'अपलोड';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'बंद';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'कम';
$labels['lowest'] = 'सबसे कम';
$labels['normal'] = 'साधारण';
$labels['high'] = 'उचà¥à¤š';
$labels['highest'] = 'उचà¥à¤šà¤¤à¤®';
+
$labels['nosubject'] = '(कोई विशय नहीं)';
$labels['showimages'] = 'चितà¥à¤° दिखाà¤à¤‚';
+$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'] = 'सादा पाठ';
+$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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
$labels['name'] = 'दिखने वाला नाम';
$labels['firstname'] = 'पहला नाम';
$labels['surname'] = 'उपनाम';
+$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'] = 'मेल';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'नया पता जोडें';
$labels['editcontact'] = 'पता समà¥à¤ªà¤¾à¤¦';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'समà¥à¤ªà¤¾à¤¦';
$labels['cancel'] = 'रदà¥à¤¦';
$labels['save'] = 'सहेज';
$labels['delete'] = 'मिटा';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'नया पता कारà¥à¤¡ बनाà¤à¤‚';
$labels['deletecontact'] = 'चà¥à¤¨à¥‡ पते मिटाà¤à¤‚';
$labels['composeto'] = 'को मेल भेजें';
$labels['contactsfromto'] = '$from से ले कर $to, $count पते में से';
$labels['print'] = 'छापें';
$labels['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'] = 'इससे पहले के बनà¥à¤¡à¤² को दिखाà¤à¤‚';
$labels['firstpage'] = 'पहला बनà¥à¤¡à¤² दिखाà¤à¤‚';
$labels['nextpage'] = 'अगला बनà¥à¤¡à¤² दिखाà¤à¤‚';
$labels['lastpage'] = 'आखिरी बनà¥à¤¡à¤² दिखाà¤à¤‚';
+
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$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 new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'इनके विनà¥à¤¯à¤¾à¤¸:';
+$labels['about'] = 'About';
$labels['preferences'] = 'पसंद';
$labels['userpreferences'] = 'यूसर पसंद';
$labels['editpreferences'] = 'यूसर पसंद समà¥à¤ªà¤¾à¤¦à¥‡à¤‚';
+
$labels['identities'] = 'पहचान';
$labels['manageidentities'] = 'इस खाते के पहचान वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ करें';
$labels['newidentity'] = 'नया पहचान';
+
$labels['newitem'] = 'नया चीज़';
$labels['edititem'] = 'चीज़ समà¥à¤ªà¤¾à¤¦à¥‡à¤‚';
+
$labels['preferhtml'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤²(HTML) दिखाà¤à¤‚';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) रूप मेल करें';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'सà¥à¤¨à¤¦à¤° तारीखें';
$labels['setdefault'] = 'तयशà¥à¤¦à¤¾ चà¥à¤¨à¥‡à¤‚';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'भाषा';
$labels['timezone'] = 'समय कà¥à¤·à¥‡à¤¤à¥à¤°';
$labels['pagesize'] = 'हर पनà¥à¤¨à¥‡ पर इतने';
$labels['signature'] = 'दसà¥à¤¤à¤–त';
$labels['dstactive'] = 'रौशनी बचाव';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'मेल à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) मे लिखें';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) दसà¥à¤¤à¤–त';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'à¤à¤²à¤• पटà¥à¤Ÿà¥€ दिखाà¤à¤‚';
+$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'] = 'डà¥à¤°à¤¾à¤«à¤¼à¤Ÿ अपने आप सहेजते जाà¤à¤‚';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'फ़ोलà¥à¤¡à¤°';
$labels['folders'] = 'फ़ोलà¥à¤¡à¤°';
$labels['foldername'] = 'फ़ोलà¥à¤¡à¤° नाम';
$labels['subscribed'] = 'सबसà¥à¤•à¥à¤°à¤¾à¤ˆà¤¬ किया गया';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'बनाà¤à¤‚';
$labels['createfolder'] = 'फ़ोलडर बनाà¤à¤‚';
$labels['managefolders'] = 'फ़ोलडर को वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ करें';
+$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'] = 'à¤à¤¸à¥‡ तय करें';
$labels['sortasc'] = 'पहले से आखीरी तय करें';
$labels['sortdesc'] = 'आखीरी से पहले तय करें';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/hi_IN/messages.inc b/program/localization/hi_IN/messages.inc
index 9cf02696a..1d55f5c48 100644
--- a/program/localization/hi_IN/messages.inc
+++ b/program/localization/hi_IN/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'लॉगिन नहीं हो पाया';
$messages['cookiesdisabled'] = 'आपका बà¥à¤°à¤¾à¤Šà¤¸à¤° कà¥à¤•à¥€ सà¥à¤µà¥€à¤•à¤¾à¤° नहीं कर रहा है';
$messages['sessionerror'] = 'सतà¥à¤° समापà¥à¤¤ या अवैदà¥à¤¯';
$messages['storageerror'] = 'आईमैप (IMAP) सरà¥à¤µà¤° से समà¥à¤ªà¤°à¥à¤• नहीं हो पाया';
+$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'] = 'इस मेलबॉकà¥à¤¸ में कोई मेल नहीं है';
$messages['loggedout'] = 'सतà¥à¤° समापà¥à¤¤. टा टा!';
$messages['mailboxempty'] = 'मेलबॉकà¥à¤¸ खाली है';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'लोड हो रहा है';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'डाटा लोड हो रहा है...';
$messages['checkingmail'] = 'कà¥à¤¯à¤¾ नया मेल है?...';
$messages['sendingmessage'] = 'मेल भेजा जा रहा है...';
@@ -32,35 +48,124 @@ $messages['messagesaved'] = 'मेल डà¥à¤°à¤¾à¤«à¤¼à¥à¤Ÿ फोलà¥à¤¡à
$messages['successfullysaved'] = 'सहेजा गया है';
$messages['addedsuccessfully'] = 'पता खाते में पता जोडा गया है';
$messages['contactexists'] = 'इस ई-मेल पता से à¤à¤• पता पेहले से है';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'आप के पà¥à¤°à¤¾à¤ˆà¤µà¥‡à¤¸à¥€ के लिये और सà¥à¤ªà¥ˆà¤® से बचने के लिये इस मेल में सदूर चितà¥à¤° नहीं दिखाये गये हैं।';
$messages['encryptedmessage'] = 'माफ़ कीजिये, यह मेल कूट रूप में है, इस कारण दिखाया नहीं जा सकता।';
$messages['nocontactsfound'] = 'कोई पता नहीं मिला';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'मेल नहीं भिज पाया';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'सहेजते-सहेजते गडबड हो गया';
$messages['errormoving'] = 'मेल खिसà¥à¤•à¤¾ नहीं';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'मेल मिटा नहीं';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'चà¥à¤¨à¥‡ गये पते को सचमà¥à¤š मिटाना है ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'चà¥à¤¨à¥‡ गये मेल को सचमà¥à¤š मिटाना है ?';
$messages['deletefolderconfirm'] = 'फ़ोलà¥à¤¡à¤° को सचमà¥à¤š मिटाà¤à¤‚ ?';
$messages['purgefolderconfirm'] = 'फ़ोलà¥à¤¡à¤° में पडे सारे मेल को सचमà¥à¤š मिटाना है?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'फ़ॉरà¥à¤® पूरी तरह से भरा नहीं';
$messages['noemailwarning'] = 'वैदà¥à¤¯ मेल पता भरें';
$messages['nonamewarning'] = 'नाम भरें';
$messages['nopagesizewarning'] = 'पनà¥à¤¨à¤¾ माप भरें';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'कम-से-कम à¤à¤• पाने वाले का पता भरें';
$messages['nosubjectwarning'] = 'मेल का कोई विशय नहीं बताया गया है। कà¥à¤¯à¤¾ आप विशय डालना चाहते हैं ?';
$messages['nobodywarning'] = 'बिना कà¥à¤› लिखे मेल भेजें?';
$messages['notsentwarning'] = 'मेल भिजा नहीं. मेल रदà¥à¤¦ करें ?';
$messages['noldapserver'] = 'खोज के लिये à¤à¤• à¤à¤²à¤¡à¥ˆà¤ª सरà¥à¤µà¤° चà¥à¤¨à¥‡à¤‚';
$messages['nosearchname'] = 'पता या पते का नाम भरें';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr मेल मिले';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'खोज असफ़ल';
$messages['searching'] = 'खोजा रहे हैं...';
$messages['checking'] = 'चाà¤à¤šà¤¾ चा रहा है...';
$messages['nospellerrors'] = 'कोई सà¥à¤ªà¥ˆà¤²à¤¿à¤‚ग गलती नहीं मिली';
$messages['folderdeleted'] = 'फ़ोलà¥à¤¡à¤° मिट गया';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'मिट गया';
$messages['converting'] = 'मेल से फ़ॉरà¥à¤®à¥ˆà¤Ÿà¤¿à¤‚ग निकाला जा रहा है...';
$messages['messageopenerror'] = 'सरà¥à¤µà¤° से मेल लोड नहीं हो पाया';
$messages['fileuploaderror'] = 'फ़ाईल अपलोड नहीं हो पाया';
$messages['filesizeerror'] = 'अपलोड के लिये फ़ाईल हद $size से बड़ा है';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/hr_HR/labels.inc b/program/localization/hr_HR/labels.inc
index 70d1c1316..506d50f1f 100644
--- a/program/localization/hr_HR/labels.inc
+++ b/program/localization/hr_HR/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Dobrodošli na $product';
$labels['username'] = 'KorisniÄko ime';
$labels['password'] = 'Lozinka';
$labels['server'] = 'Poslužitelj';
$labels['login'] = 'Prijava';
+
+// taskbar
$labels['logout'] = 'Odjava';
$labels['mail'] = 'Pošta';
$labels['settings'] = 'Postavke';
$labels['addressbook'] = 'Imenik';
+
+// mailbox names
$labels['inbox'] = 'Pristigla pošta';
$labels['drafts'] = 'Predlošci';
$labels['sent'] = 'Poslano';
$labels['trash'] = 'Smeće';
$labels['junk'] = 'Spam';
+
+// message listing
$labels['subject'] = 'Naslov';
$labels['from'] = 'Od';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Za';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -41,18 +52,28 @@ $labels['size'] = 'VeliÄina';
$labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'ProÄitano';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Mape';
$labels['messagesfromto'] = 'Poruke od $from do $to od ukupno $count';
$labels['threadsfromto'] = 'Teme od $from do $to od ukupno $count';
$labels['messagenrof'] = 'Poruka broj $nr od $count';
$labels['fromtoshort'] = '$from - $to od $count';
+
$labels['copy'] = 'Kopiraj';
$labels['move'] = 'Premjesti';
$labels['moveto'] = 'Premjesti u...';
$labels['download'] = 'Preuzmi (download)';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Ime datoteke';
$labels['filesize'] = 'VeliÄina datoteke';
+
$labels['addtoaddressbook'] = 'Dodaj u imenik';
+
+// weekdays short
$labels['sun'] = 'Ned';
$labels['mon'] = 'Pon';
$labels['tue'] = 'Uto';
@@ -60,6 +81,8 @@ $labels['wed'] = 'Sri';
$labels['thu'] = 'ÄŒet';
$labels['fri'] = 'Pet';
$labels['sat'] = 'Sub';
+
+// weekdays long
$labels['sunday'] = 'Nedjelja';
$labels['monday'] = 'Ponedjeljak';
$labels['tuesday'] = 'Utorak';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'Srijeda';
$labels['thursday'] = 'ÄŒetvrtak';
$labels['friday'] = 'Petak';
$labels['saturday'] = 'Subota';
+
+// months short
$labels['jan'] = 'Sij';
$labels['feb'] = 'Velj';
$labels['mar'] = 'Ožu';
@@ -79,6 +104,8 @@ $labels['sep'] = 'Ruj';
$labels['oct'] = 'Lis';
$labels['nov'] = 'Stu';
$labels['dec'] = 'Pro';
+
+// months long
$labels['longjan'] = 'SijeÄanj';
$labels['longfeb'] = 'VeljaÄa';
$labels['longmar'] = 'Ožujak';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'Rujan';
$labels['longoct'] = 'Listopad';
$labels['longnov'] = 'Studeni';
$labels['longdec'] = 'Prosinac';
+
$labels['today'] = 'Danas';
+
+// toolbar buttons
$labels['refresh'] = 'Osvježi';
$labels['checkmail'] = 'Provjera novih poruka';
$labels['compose'] = 'Nova poruka';
@@ -124,6 +154,7 @@ $labels['moreactions'] = 'Više akcija';
$labels['more'] = 'Više';
$labels['back'] = 'Natrag';
$labels['options'] = 'Postavke';
+
$labels['select'] = 'Odaberi';
$labels['all'] = 'Sve';
$labels['none'] = 'Ništa';
@@ -131,7 +162,9 @@ $labels['currpage'] = 'Trenutna stranica';
$labels['unread'] = 'NeproÄitane';
$labels['flagged'] = 'OznaÄene';
$labels['unanswered'] = 'Neodgovrene';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Obrisano';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Obrni';
$labels['filter'] = 'Filtriraj';
$labels['list'] = 'Lista';
@@ -140,6 +173,7 @@ $labels['expand-all'] = 'Proširi sve';
$labels['expand-unread'] = 'ProÅ¡iri neproÄitane';
$labels['collapse-all'] = 'Zatvori sve';
$labels['threaded'] = 'Tematski prikaz';
+
$labels['autoexpand_threads'] = 'Proširi teme poruka';
$labels['do_expand'] = 'Sve teme';
$labels['expand_only_unread'] = 'samo s neproÄitanim porukama';
@@ -155,19 +189,29 @@ $labels['listcolumns'] = 'Kolone';
$labels['listsorting'] = 'Sortirajuća kolona';
$labels['listorder'] = 'Sortirajući redoslijed';
$labels['listmode'] = 'Model pregleda listi';
+
$labels['folderactions'] = 'Akcije mapa';
$labels['compact'] = 'Kompresiranje';
$labels['empty'] = 'Isprazni';
+
$labels['quota'] = 'Kvota';
$labels['unknown'] = 'nepoznato';
$labels['unlimited'] = 'beskonaÄna';
+
$labels['quicksearch'] = 'Brza pretraga';
$labels['resetsearch'] = 'Prikaži sve poruke';
$labels['searchmod'] = 'Postavke pretrage';
$labels['msgtext'] = 'Cijela poruka';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Otvori u novom prozoru';
$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Uredi kao novo';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Pošalji poruku';
$labels['savemessage'] = 'Spremi u \'Predlošci\'';
$labels['addattachment'] = 'Priloži datoteku';
@@ -177,39 +221,52 @@ $labels['returnreceipt'] = 'Potvrda o primitku poruke';
$labels['dsn'] = 'Potvrda o poslanoj poruci';
$labels['mailreplyintro'] = 'Dana $date, $sender je napisao(la):';
$labels['originalmessage'] = 'Izvorna Poruka';
+
$labels['editidents'] = 'Promijeni identitete';
$labels['spellcheck'] = 'Piši';
$labels['checkspelling'] = 'Provjera pravopisa';
$labels['resumeediting'] = 'Povratak u pisanje';
$labels['revertto'] = 'Vrati na';
+
$labels['attach'] = 'Priloži';
$labels['attachments'] = 'Privitci (Attachments)';
$labels['upload'] = 'Dodaj';
$labels['uploadprogress'] = '$percent ($current od $total)';
$labels['close'] = 'Zatvori';
$labels['messageoptions'] = 'Opcije poruka...';
+
$labels['low'] = 'Nizak';
$labels['lowest'] = 'Najniži';
$labels['normal'] = 'Srednji';
$labels['high'] = 'Visok';
$labels['highest'] = 'Najviši';
+
$labels['nosubject'] = '(bez naslova)';
$labels['showimages'] = 'Prikaži slike';
$labels['alwaysshow'] = 'Uvijek prikaži slike od $sender';
$labels['isdraft'] = 'Ova poruka je skica (draft)';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Samo tekst';
$labels['savesentmessagein'] = 'Spremi poslane poruke u';
$labels['dontsave'] = 'ne spremaj';
$labels['maxuploadsize'] = 'Maksimalna dozvoljena velicina datoteke je $size';
+
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj Odgovori-na';
$labels['addfollowupto'] = 'Dodaj Nastavak-na';
+
+// mdn
$labels['mdnrequest'] = 'Pošiljaoc ove poruke je tražio da bude obaviješten o njenom primitku. Želite li obavijestiti pošiljaoca?';
$labels['receiptread'] = 'Vrati potvrdu (proÄitano)';
$labels['yourmessage'] = 'Ovo je vraćena potvrda vaše poruke';
$labels['receiptnote'] = 'Info: Ova poruka samo potvrÄ‘uje da se poruka prikazala na raÄunalu primaoca. Nema garancije da je primaoc proÄitao ili razumio sadržaj poruke.';
+
+// address boook
$labels['name'] = 'Puno ime';
$labels['firstname'] = 'Ime';
$labels['surname'] = 'Prezime';
@@ -244,6 +301,7 @@ $labels['search'] = 'Pretraga';
$labels['advsearch'] = 'Napredna Pretraga';
$labels['advanced'] = 'Napredno';
$labels['other'] = 'Ostalo';
+
$labels['typehome'] = 'Kućni broj';
$labels['typework'] = 'Poslovni broj';
$labels['typeother'] = 'Ostalo';
@@ -258,12 +316,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'PoÄetna stranica';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj polje...';
$labels['addcontact'] = 'Dodaj novi kontakt';
$labels['editcontact'] = 'Izmjeni kontakt';
$labels['contacts'] = 'Kontakti';
$labels['contactproperties'] = 'Svojstva kontakta';
$labels['personalinfo'] = 'Osobni podaci';
+
$labels['edit'] = 'Izmjeni';
$labels['cancel'] = 'Odustani';
$labels['save'] = 'Spremi';
@@ -271,43 +331,61 @@ $labels['delete'] = 'Obriši';
$labels['rename'] = 'Preimenuj';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Smijeniti';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Dodaj novi kontakt';
$labels['deletecontact'] = 'Obriši odabrane kontakte';
$labels['composeto'] = 'Napiši mail...';
$labels['contactsfromto'] = 'Kontakti od $from do $to od ukupno $count';
$labels['print'] = 'Print';
$labels['export'] = 'Export';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Izvezi kontakte u vCard formatu';
$labels['newcontactgroup'] = 'Napravi novu kontaktnu grupu';
$labels['grouprename'] = 'Promijeni ime grupe';
$labels['groupdelete'] = 'Izbriši grupu';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Prethodna strana';
$labels['firstpage'] = 'Prva strana';
$labels['nextpage'] = 'Slijedeća strana';
$labels['lastpage'] = 'Zadnja strana';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupe';
$labels['personaladrbook'] = 'Privatna adresa';
+
$labels['searchsave'] = 'Pohrani pretragu';
$labels['searchdelete'] = 'Obriši pretragu';
+
$labels['import'] = 'Uvoz';
$labels['importcontacts'] = 'Uvoz kontakta';
$labels['importfromfile'] = 'Uvezi iz datoteke:';
+$labels['importtarget'] = 'Dodaj nove kontakte u imenik:';
$labels['importreplace'] = 'Prepiši cijeli adresar';
+$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'] = 'Završeno';
+
+// settings
$labels['settingsfor'] = 'Postavke za';
$labels['about'] = 'O programu';
$labels['preferences'] = 'Postavke';
$labels['userpreferences'] = 'KorisniÄke postavke';
$labels['editpreferences'] = 'Izmjena postavki';
+
$labels['identities'] = 'Identiteti';
$labels['manageidentities'] = 'Podesi identitete za ovaj nalog';
$labels['newidentity'] = 'Dodaj identitet';
+
$labels['newitem'] = 'Novo';
$labels['edititem'] = 'Uredi';
+
$labels['preferhtml'] = 'HTML format u prednosti';
$labels['defaultcharset'] = 'Zadani skup znakova';
$labels['htmlmessage'] = 'HTML format poruke';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Format datuma';
$labels['timeformat'] = 'Format vremena';
$labels['prettydate'] = 'Formatiran datum';
@@ -318,9 +396,13 @@ $labels['timezone'] = 'Vremenska zona';
$labels['pagesize'] = 'Redova po stranici';
$labels['signature'] = 'Potpis';
$labels['dstactive'] = 'Automatska promjena vremena';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Sastavi HTML poruke';
$labels['htmlonreply'] = 'odgovor samo na HTML poruke';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML potpis';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Prikaži podruÄje pregleda';
$labels['skin'] = 'Tema izgleda';
$labels['logoutclear'] = 'OÄisti smeće pri izlazu';
@@ -338,12 +420,14 @@ $labels['readwhendeleted'] = 'OznaÄi poruku kao proÄitanu pri brisanju';
$labels['flagfordeletion'] = 'OznaÄi poruku za brisanje umjesto brisanja';
$labels['skipdeleted'] = 'Ne prikazivaj pobrisane poruke';
$labels['deletealways'] = 'Ukoliko premještanje poruka u mapu otpad ne uspije, izbrši poruku';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Prikaži slike s interneta';
$labels['fromknownsenders'] = 'od poznatih pošiljatelja';
$labels['always'] = 'uvijek';
$labels['showinlineimages'] = 'Prikaži slike ispod poruke';
$labels['autosavedraft'] = 'Automatski spremi draft';
$labels['everynminutes'] = 'svakih $n minuta';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nikada';
$labels['immediately'] = 'odmah';
$labels['messagesdisplaying'] = 'Prikazujem poruke';
@@ -359,11 +443,13 @@ $labels['checkallfolders'] = 'Provjeri nove poruke u svim mapama';
$labels['displaynext'] = 'Nakon brisanja/micanja poruke, prikaži slijedeću';
$labels['defaultfont'] = 'Predodređeni font HTML poruke';
$labels['mainoptions'] = 'Glavne postavke';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Sekcija';
$labels['maintenance'] = 'Održavanje';
$labels['newmessage'] = 'Nova poruka';
$labels['signatureoptions'] = 'Postavke potpisa';
$labels['whenreplying'] = 'Prilikom odgovora';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'zapoÄni novu poruku iznad originala';
$labels['replybottomposting'] = 'zapoÄni novu poruku ispod originala';
$labels['replyremovesignature'] = 'Kod odgovaranja, makni originalni potpis iz poruke';
@@ -376,13 +462,20 @@ $labels['afternseconds'] = 'nakon $n sekundi';
$labels['reqmdn'] = 'Uvijek zatraži potvrdu o primitku poruke';
$labels['reqdsn'] = 'Uvijek zatraži potvrdu o slanju poruke';
$labels['replysamefolder'] = 'Spremi odgovore u mapu gdje se nalazi poruka';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'PreskoÄi alternativne email adrese u autocomplete prijedlozima';
+$labels['listnamedisplay'] = 'List contacts as';
$labels['spellcheckbeforesend'] = 'Provjeri pravopis prije slanja poruke';
$labels['spellcheckoptions'] = 'Postavke provjere pravopisa';
$labels['spellcheckignoresyms'] = 'Ignoriraj rijeÄi koje sadrže simbole';
$labels['spellcheckignorenums'] = 'Ignoriraj rijeÄi koje sadrže brojeve';
$labels['spellcheckignorecaps'] = 'Ignoriraj rijeÄi sa sa svim velikim slovima';
$labels['addtodict'] = 'Dodaj u rjeÄnik';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Mapa';
$labels['folders'] = 'Mape';
$labels['foldername'] = 'Ime mape';
@@ -403,19 +496,26 @@ $labels['foldertype'] = 'Vrsta mape';
$labels['personalfolder'] = 'Privatna mapa';
$labels['otherfolder'] = 'Mapa drugih korisnika';
$labels['sharedfolder'] = 'Javna mapa';
+
$labels['sortby'] = 'Sortiraj po';
$labels['sortasc'] = 'Sortiraj rastućim nizom';
$labels['sortdesc'] = 'Sortiraj opadajućim nizom';
$labels['undo'] = 'Poništi';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'InaÄica';
$labels['source'] = 'Izvor';
$labels['license'] = 'Licenca';
$labels['support'] = 'Podrška';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engleski';
$labels['westerneuropean'] = 'Zapadno Evropski';
@@ -434,4 +534,5 @@ $labels['vietnamese'] = 'Vijetnamski';
$labels['japanese'] = 'Japanski';
$labels['korean'] = 'Korejski';
$labels['chinese'] = 'Kineski';
+
?>
diff --git a/program/localization/hr_HR/messages.inc b/program/localization/hr_HR/messages.inc
index 2e51848eb..3e6cc6daf 100644
--- a/program/localization/hr_HR/messages.inc
+++ b/program/localization/hr_HR/messages.inc
@@ -15,6 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Prijava neuspješna';
$messages['cookiesdisabled'] = 'VaÅ¡ Web preglednik ne podržava kolaÄiće (cookies)';
$messages['sessionerror'] = 'Morate se ponovno ulogirati';
@@ -22,12 +25,17 @@ $messages['storageerror'] = 'Neuspješna veza na IMAP server';
$messages['servererror'] = 'Greška poslužitelja';
$messages['servererrormsg'] = 'Greška na serveru: $msg';
$messages['dberror'] = 'Greška baze podataka!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'Nemoguća izvedba operacije. Mapa je samo za Äitanje.';
$messages['errornoperm'] = 'Nemoguća izvedba operacije. Dozvola odbijena.';
+$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'] = 'Nepravilan zahtijev! Podaci nisu spremljeni.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Nema poruka u sanduÄiću';
$messages['loggedout'] = 'Uspješno ste se odjavili. Zbogom!';
$messages['mailboxempty'] = 'SanduÄuć je prazan';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'UÄitavanje...';
$messages['uploading'] = 'Prenosim datoteku...';
$messages['uploadingmany'] = 'Prenosim datoteke...';
@@ -48,6 +56,8 @@ $messages['contactnotfound'] = 'Traženi kontakt nije pronađen';
$messages['contactsearchonly'] = 'Upišite nekoliko pojmova za pretragu imenika';
$messages['sendingfailed'] = 'Greška pri slanju poruke';
$messages['senttooquickly'] = 'Molimo saÄekajte $sec sek. prije slanja ove poruke';
+$messages['errorsavingsent'] = 'Greška pri spremanju poslane poruke';
+$messages['errorsaving'] = 'Greška pri spremanju';
$messages['errormoving'] = 'Greška pri premještanju poruke';
$messages['errorcopying'] = 'Greška pri kopiranju poruke';
$messages['errordeleting'] = 'Greška pri brisanju poruke';
@@ -91,6 +101,8 @@ $messages['converting'] = 'Formatiranje poruke';
$messages['messageopenerror'] = 'UÄitavanje poruke nije uspjelo';
$messages['fileuploaderror'] = 'Prijenos datoteke nije uspio';
$messages['filesizeerror'] = 'Datoteka je prevelika. Maksimalna veliÄina je $size';
+$messages['copysuccess'] = 'Uspješno kopirano $n adresa';
+$messages['copyerror'] = 'Nije uspjelo kopiranje adresa';
$messages['sourceisreadonly'] = 'Ovaj resurs adresa je samo za Äitanje';
$messages['errorsavingcontact'] = 'Nije uspjelo spremanje adrese kontakta';
$messages['movingmessage'] = 'Premještanje poruke...';
@@ -109,7 +121,9 @@ $messages['selectimportfile'] = 'Odaberite datoteku za prijenos';
$messages['addresswriterror'] = 'U odabrani adresar nije moguće zapisivat...';
$messages['contactaddedtogroup'] = 'Kontakti uspješno dodani ovoj grupi';
$messages['contactremovedfromgroup'] = 'Kontakti uspješno izbrisani iz ove grupe';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Uvozim, molimo saÄekajte...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>UspjeÅ¡no je uvezeno $inserted kontakt(a), preskoÄeno $skipped već postojećih</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>PreskoÄeno $skipped postojećih unosa</b>';
$messages['opnotpermitted'] = 'Operacija nije dozvoljena!';
@@ -125,6 +139,7 @@ $messages['smtperror'] = 'SMTP Greška: $msg';
$messages['emailformaterror'] = 'Nepravilna e-mail adresa: $email';
$messages['toomanyrecipients'] = 'Previše primatelja. Smanjite broj primatelja na $max.';
$messages['maxgroupmembersreached'] = 'Broj Älanova grupe prelazi preko maximuma od $max';
+$messages['internalerror'] = 'Dogodila se interna greška. Molimo Vas pokušajte ponovo.';
$messages['contactdelerror'] = 'Kontakti ne mogu biti obrisani.';
$messages['contactdeleted'] = 'Kontakti uspješno obrisani.';
$messages['contactrestoreerror'] = 'Ne mogu vratiti obrisan(e) kontakt(e).';
@@ -150,4 +165,7 @@ $messages['invalidimageformat'] = 'Format slike nije ispravan.';
$messages['mispellingsfound'] = 'Greške pravopisa su pronađene u poruci.';
$messages['parentnotwritable'] = 'Nije moguće stvoriti/pomaknuti mapu u odabranu mapu. Nemate prava pristupa.';
$messages['messagetoobig'] = 'Dio poruke je prevelik za procesiranje.';
+$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/hu_HU/labels.inc b/program/localization/hu_HU/labels.inc
index f8d6a1c23..3cc5da1aa 100644
--- a/program/localization/hu_HU/labels.inc
+++ b/program/localization/hu_HU/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Üdvözli a $product';
$labels['username'] = 'Felhasználónév';
$labels['password'] = 'Jelszó';
$labels['server'] = 'Szerver';
$labels['login'] = 'Bejelentkezés';
+
+// taskbar
$labels['logout'] = 'Kijelentkezés';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Beállítások';
$labels['addressbook'] = 'Címjegyzék';
+
+// mailbox names
$labels['inbox'] = 'Érkezett levelek';
$labels['drafts'] = 'Piszkozatok';
$labels['sent'] = 'Küldött levelek';
$labels['trash'] = 'Törölt elemek';
$labels['junk'] = 'Kéretlen levelek';
-$labels['show_real_foldernames'] = 'Az valós nevek megjelenítése a speciális mappáknál.';
+
+// message listing
$labels['subject'] = 'Tárgy';
$labels['from'] = 'Feladó';
$labels['sender'] = 'Feladó';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Sürgősség';
$labels['organization'] = 'Szervezet';
$labels['readstatus'] = 'Olvasott';
$labels['listoptions'] = 'Üzenetlista beállítások...';
+
$labels['mailboxlist'] = 'Mappák';
$labels['messagesfromto'] = 'Ãœzenetek: $from - $to / $count';
$labels['threadsfromto'] = 'Témák ($from - $to, összesen $count)';
$labels['messagenrof'] = '$nr / $count üzenet';
$labels['fromtoshort'] = '$from – $to / $count';
+
$labels['copy'] = 'Másolás';
$labels['move'] = 'Ãthelyezés';
$labels['moveto'] = 'Ãthelyezés...';
@@ -56,9 +67,13 @@ $labels['download'] = 'letöltés';
$labels['open'] = 'Megnyítás';
$labels['showattachment'] = 'Megjelenítés';
$labels['showanyway'] = 'Megjelnités mindenképpen';
+
$labels['filename'] = 'Fájl neve';
$labels['filesize'] = 'Fájl mérete';
+
$labels['addtoaddressbook'] = 'Hozzáadás a címjegyzékhez';
+
+// weekdays short
$labels['sun'] = 'Vas';
$labels['mon'] = 'Hét';
$labels['tue'] = 'Kedd';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Szer';
$labels['thu'] = 'Csüt';
$labels['fri'] = 'Pén';
$labels['sat'] = 'Szom';
+
+// weekdays long
$labels['sunday'] = 'Vasárnap';
$labels['monday'] = 'Hétfő';
$labels['tuesday'] = 'Kedd';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Szerda';
$labels['thursday'] = 'Csütörtök';
$labels['friday'] = 'Péntek';
$labels['saturday'] = 'Szombat';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Febr';
$labels['mar'] = 'Márc';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Szept';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Január';
$labels['longfeb'] = 'Február';
$labels['longmar'] = 'Március';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Szeptember';
$labels['longoct'] = 'Október';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Ma';
+
+// toolbar buttons
$labels['refresh'] = 'Frissítés';
$labels['checkmail'] = 'Új üzenetek ellenőrzése';
$labels['compose'] = 'Üzenet létrehozása';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'További műveletek...';
$labels['more'] = 'Még egy';
$labels['back'] = 'Vissza';
$labels['options'] = 'Beállítások';
+
$labels['select'] = 'Kijelölés';
$labels['all'] = 'Összes';
$labels['none'] = 'Nincs';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Összes kibontása';
$labels['expand-unread'] = 'Olvasatlanok kibontása';
$labels['collapse-all'] = 'Összes összecsukása';
$labels['threaded'] = 'Téma nézet';
+
$labels['autoexpand_threads'] = 'Témák kibontása';
$labels['do_expand'] = 'minden téma';
$labels['expand_only_unread'] = 'csak ahol van olvasatlan üzenet';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Oszlopok listája';
$labels['listsorting'] = 'Rendezés oszlopa';
$labels['listorder'] = 'Rendezés sorrendje';
$labels['listmode'] = 'Megjelenítési mód';
+
$labels['folderactions'] = 'Mappaműveletek...';
$labels['compact'] = 'Tömörítés';
$labels['empty'] = 'Kiürítés';
-$labels['importmessages'] = 'Üzenetek importálása';
+
$labels['quota'] = 'Helyfoglalás';
$labels['unknown'] = 'ismeretlen';
$labels['unlimited'] = 'korlátlan';
+
$labels['quicksearch'] = 'Gyorskeresés';
$labels['resetsearch'] = 'Alapállapot';
$labels['searchmod'] = 'Keresési opciók';
$labels['msgtext'] = 'Teljes üzenet';
$labels['body'] = 'Törzs';
-$labels['type'] = 'Típus';
-$labels['namex'] = 'Név';
+
$labels['openinextwin'] = 'Megnyitás új ablakban';
$labels['emlsave'] = 'Letöltés (.eml)';
$labels['changeformattext'] = 'Megjelenítés sima szöveges formátumban';
$labels['changeformathtml'] = 'Megjelenítés HTML formátumban';
+
+// message compose
$labels['editasnew'] = 'Szerkesztés újként';
$labels['send'] = 'Küldés';
$labels['sendmessage'] = 'Üzenet küldése';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Olvasási visszaigazolás';
$labels['dsn'] = 'Kézbesítési visszaigazolás';
$labels['mailreplyintro'] = '$date időpontban $sender ezt írta:';
$labels['originalmessage'] = 'Eredeti üzenet';
+
$labels['editidents'] = 'Azonosítók szerkesztése';
$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['responses'] = 'Válaszok';
-$labels['insertresponse'] = 'Egy válasz beillesztése';
-$labels['manageresponses'] = 'Válaszok kezelése';
-$labels['savenewresponse'] = 'Új válasz mentése';
-$labels['editresponses'] = 'Válaszok szerkesztése';
-$labels['editresponse'] = 'Válasz szerkesztése';
-$labels['responsename'] = 'Név';
-$labels['responsetext'] = 'Válasz Szöveg';
+
$labels['attach'] = 'Csatolás';
$labels['attachments'] = 'Csatolmányok';
$labels['upload'] = 'Feltöltés';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = 'Bezárás';
$labels['messageoptions'] = 'Üzenetbeállítások...';
+
$labels['low'] = 'Alacsony';
$labels['lowest'] = 'Legkisebb';
$labels['normal'] = 'Normál';
$labels['high'] = 'Magas';
$labels['highest'] = 'Legmagasabb';
+
$labels['nosubject'] = '(nincs tárgy)';
$labels['showimages'] = 'Képek megjelenítése';
$labels['alwaysshow'] = 'Képek megjelenítése mindig, ha a feladó $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Ez egy piszkozat.';
$labels['andnmore'] = 'további $nr...';
$labels['togglemoreheaders'] = 'Több üzenet fejrész(header) megjelenítése';
$labels['togglefullheaders'] = 'Nyers üzenet fejléc megjelenítés- elrejtés';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Egyszerű szöveg';
$labels['savesentmessagein'] = 'Elküldött üzenet mentése ide';
$labels['dontsave'] = 'nincs mentés';
$labels['maxuploadsize'] = 'A maximális feltölthető fájl mérete $size';
+
$labels['addcc'] = 'Cc (Másolati cím) hozzáadása';
$labels['addbcc'] = 'Bcc (titkos másolati cím) hozzáadása';
$labels['addreplyto'] = 'Válaszcím hozzáadása';
$labels['addfollowupto'] = 'Hírcsoport válasz hozzáadása';
+
+// mdn
$labels['mdnrequest'] = 'Az üzenet küldője értesítést kér arról, hogy elolvasta a levelet. El legyen küldve az olvasási visszaigazolás?';
$labels['receiptread'] = 'Olvasási visszaigazolás (olvasott)';
$labels['yourmessage'] = 'Ez az üzenete olvasási visszaigazolása';
$labels['receiptnote'] = 'Megjegyzés: Ez az olvasási visszaigazolás csak azt igazolja, hogy az üzenet megjelenítésre került a címzett számítógépén. Nincs rá garancia, hogy a címzett elolvasta volna az üzenetet illetve megértette volna annak tartalmát.';
+
+// address boook
$labels['name'] = 'Megjelenített név';
$labels['firstname'] = 'Keresztnév';
$labels['surname'] = 'Vezetéknév';
@@ -270,6 +301,7 @@ $labels['search'] = 'Keresés';
$labels['advsearch'] = 'Részletes keresés';
$labels['advanced'] = 'Haladó';
$labels['other'] = 'Egyéb';
+
$labels['typehome'] = 'Otthon';
$labels['typework'] = 'Munkahely';
$labels['typeother'] = 'Egyéb';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Asszisztens';
$labels['typehomepage'] = 'Weboldal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Új mező hozzáadása...';
$labels['addcontact'] = 'Új kapcsolat hozzáadása';
$labels['editcontact'] = 'Kapcsolat szerkesztése';
$labels['contacts'] = 'Kapcsolatok';
$labels['contactproperties'] = 'Kapcsolat tulajdonságai';
$labels['personalinfo'] = 'Személyes adatok';
+
$labels['edit'] = 'Szerkesztés';
$labels['cancel'] = 'Mégsem';
$labels['save'] = 'Mentés';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Ãtnevezés';
$labels['addphoto'] = 'Kép hozzáadása';
$labels['replacephoto'] = 'Kép cseréje';
$labels['uploadphoto'] = 'Fotó feltöltése';
+
$labels['newcontact'] = 'Új kapcsolat létrehozása';
$labels['deletecontact'] = 'Kijelölt kapcsolatok törlése';
$labels['composeto'] = 'E-mail küldése erre a címre';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Új csoport';
$labels['grouprename'] = 'Csoport átnevezése';
$labels['groupdelete'] = 'Csoport törlése';
$labels['groupremoveselected'] = 'A kijelölt partnerek törlése a csopotból';
+
$labels['previouspage'] = 'Előző oldal';
$labels['firstpage'] = 'Első oldal';
$labels['nextpage'] = 'Következő oldal';
$labels['lastpage'] = 'Utolsó oldal';
+
$labels['group'] = 'Csoport';
$labels['groups'] = 'Csoportok';
-$labels['listgroup'] = 'Csoport tagjainak listája';
$labels['personaladrbook'] = 'Személyes címjegyzék';
+
$labels['searchsave'] = 'Keresés mentése';
$labels['searchdelete'] = 'Keresés törlése';
+
$labels['import'] = 'Importálás';
$labels['importcontacts'] = 'Kapcsolatok importálása';
$labels['importfromfile'] = 'Importálás fájlból:';
-$labels['importtarget'] = 'Kapcsolatok hozzáadása ';
+$labels['importtarget'] = 'Kapcsolatok hozzáadása a címjegyzékhez:';
$labels['importreplace'] = 'A teljes címjegyzék cseréje';
-$labels['importgroups'] = 'Csoport hozzárendelések importálása';
-$labels['importgroupsall'] = 'Mind(csoport létrehozása amennyiben szükséges)';
-$labels['importgroupsexisting'] = 'Csak már létező csoportoknak';
$labels['importdesc'] = 'Feltölthetsz partnereket egyébb már létező címjegyzékekből. <br/>Jelenleg a következő két tipusú címjegyzékek importálása lehetséges <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> és a CSV (comma-separated/vesszővel tagolt) formátum.';
$labels['done'] = 'Kész';
+
+// settings
$labels['settingsfor'] = 'Beállítás';
$labels['about'] = 'Névjegy';
$labels['preferences'] = 'Beállítások';
$labels['userpreferences'] = 'Felhasználói beállítások';
$labels['editpreferences'] = 'Felhasználói beállítások szerkesztése';
+
$labels['identities'] = 'Azonosítók';
$labels['manageidentities'] = 'Hozzáférés azonosítóinak kezelése';
$labels['newidentity'] = 'Új azonosító';
+
$labels['newitem'] = 'Új elem';
$labels['edititem'] = 'Elem szerkesztése';
+
$labels['preferhtml'] = 'HTML megjelenítés';
$labels['defaultcharset'] = 'Alapértelmezett karakterkódolás';
$labels['htmlmessage'] = 'HTML üzenet';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Számot tartalmazó szavak kihagyása';
$labels['spellcheckignorecaps'] = 'Csak nagybetűt tartalmazó szavak kihagyása';
$labels['addtodict'] = 'Hozzáadás a szótárhoz';
$labels['mailtoprotohandler'] = 'Beállítás a mailto: linkek kezelőjeként';
-$labels['standardwindows'] = 'A felugró ablakok használata szokásos ablakként';
$labels['forwardmode'] = 'Üzenet továbbítás';
$labels['inline'] = 'beágyazott';
$labels['asattachment'] = 'csatolmányként';
+
$labels['folder'] = 'Mappa';
$labels['folders'] = 'Mappák';
$labels['foldername'] = 'Mappa neve';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Mappa típusa';
$labels['personalfolder'] = 'Privát mappa';
$labels['otherfolder'] = 'Más felhasználó(k) mappája';
$labels['sharedfolder'] = 'Megosztott mappa';
+
$labels['sortby'] = 'Rendezés';
$labels['sortasc'] = 'növekvő';
$labels['sortdesc'] = 'csökkenő';
$labels['undo'] = 'Visszavonás';
+
$labels['installedplugins'] = 'Telepített bővítmények';
$labels['plugin'] = 'Bővítmény';
$labels['version'] = 'Verzió';
$labels['source'] = 'Forrás';
$labels['license'] = 'Licensz';
$labels['support'] = 'Támogatás';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Angol';
$labels['westerneuropean'] = 'Nyugat-európai';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnámi';
$labels['japanese'] = 'Japán';
$labels['korean'] = 'Koreai';
$labels['chinese'] = 'Kínai';
+
?>
diff --git a/program/localization/hu_HU/messages.inc b/program/localization/hu_HU/messages.inc
index 79de6ed2b..6528602a4 100644
--- a/program/localization/hu_HU/messages.inc
+++ b/program/localization/hu_HU/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Hiba történt!';
$messages['loginfailed'] = 'Sikertelen bejelentkezés.';
$messages['cookiesdisabled'] = 'A böngésző nem támogatja a sütik használatát';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Az üzenet elküldve';
$messages['savingmessage'] = 'Az üzenet mentése...';
$messages['messagesaved'] = 'Az üzenet elmentve a Piszkozatokhoz';
$messages['successfullysaved'] = 'A mentés sikerült';
-$messages['savingresponse'] = 'A válasz szövegének mentése...';
-$messages['deleteresponseconfirm'] = 'Biztosan törli ezt a válasz szöveget?';
$messages['addedsuccessfully'] = 'A kapcsolat hozzáadása a címjegyzékhez megtörtént';
$messages['contactexists'] = 'Ezzel az e-mail címmel már létezik kapcsolat';
$messages['contactnameexists'] = 'Ezzel a névvel már létezik kapcsolat';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Formázás eltávolítása az üzenetből...';
$messages['messageopenerror'] = 'A levelek a szerverről nem tölthetők le';
$messages['fileuploaderror'] = 'Feltöltés sikertelen';
$messages['filesizeerror'] = 'A feltöltött fájl mérete meghaladja a maximális $size méretet';
-$messages['copysuccess'] = 'Sikeresen átmásolva $nr kapcsolat.';
-$messages['movesuccess'] = 'Sikeresen átmozgatva $nr kapcsolat.';
-$messages['copyerror'] = 'Nem lehet másolni a kapcsolatokat.';
-$messages['moveerror'] = 'Nem lehet átmozgatni a kapcsolatokat.';
+$messages['copysuccess'] = '$nr cím sikeresen másolva';
+$messages['copyerror'] = 'Egyetlen cím sem másolható';
$messages['sourceisreadonly'] = 'Ez a címforrás csak olvasható';
$messages['errorsavingcontact'] = 'A kapcsolat címe nem menthető';
$messages['movingmessage'] = 'Üzenet(ek) mozgatása...';
$messages['copyingmessage'] = 'Üzenet(ek) másolása...';
$messages['copyingcontact'] = 'Kapcsolat(ok) másolása...';
-$messages['movingcontact'] = 'Kapcsolat(ok) átmozgatása ...';
$messages['deletingmessage'] = 'Üzenet(ek) törlése....';
$messages['markingmessage'] = 'Üzenet(ek) megjelölése...';
$messages['addingmember'] = 'Kapcsolat(ok) hozzáadása a csoporthoz...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importálás folyamatban, kérem várjon...';
$messages['importformaterror'] = 'Az importálás sikertelen! A feltöltött fájl ismeretlen formátumú.';
$messages['importconfirm'] = '<b>Sikeresen importálásra került $inserted kapcsolat, kihagyva $skipped már létező bejegyzés</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Kihagyva $skipped már létező bejegyzés</b>';
-$messages['importmessagesuccess'] = 'Sikeresen importálva $nr üzenet';
-$messages['importmessageerror'] = 'Sikertelen az importálás. A feltőltött file nem értelmezhető üzenetként vagy postafiók (mailbox) fileként.';
$messages['opnotpermitted'] = 'A művelet nem megengedett!';
$messages['nofromaddress'] = 'A kiválasztott azonosítónál nincs email beállítva.';
$messages['editorwarning'] = 'Az egyszerű szöveges formátumra való váltás az összes formázás elvesztésével jár. Biztosan folytatja?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'SMTP hiba ($code): $msg';
$messages['emailformaterror'] = 'Helytelen formátumú e-mail cím: $email';
$messages['toomanyrecipients'] = 'Túl sok a címzett. Csökkentse a címzettek számát maximum $max címre!';
$messages['maxgroupmembersreached'] = 'A csoport létszáma meghaladja a maximum $max főt';
-$messages['internalerror'] = 'Belső hiba történt. Kérjük próbálja újra!';
+$messages['internalerror'] = 'Belső hiba történt, kérjük próbálja újra!';
$messages['contactdelerror'] = 'Hiba a kapcsolat(ok) törlésekor';
$messages['contactdeleted'] = 'Kapcsolat(ok) sikeresen törölve';
$messages['contactrestoreerror'] = 'Nem sikerült a törölt kapcsolat(ok) helyreállítása';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Nem sikerült a mappa létrehozása/mozgatása
$messages['messagetoobig'] = 'Az üzenetrész túl nagy a feldolgozáshoz.';
$messages['attachmentvalidationerror'] = 'FIGYELEM! A csatalmány veszélyes lehet, mert a típusa nem egyezik az üzenetben beállított típussal. Amennyiben nem megbizható az üzenet küldője, ne nyissa meg a csatolmányt a böngészőben mert ártalmas lehet a tartalma.<br/><br/><em>Üzenetben beállított tipus: $expected; az érzékelt típus: $detected</em>';
$messages['noscriptwarning'] = 'FIGYELEM: Ez webmail szolgáltatása igényli a Javascript futtatásának a lehetőségét! Amennyiben használni szeretné, engedélyezze a JavaScript futtatását a böngészőjének a beállatásaiban.';
+
?>
diff --git a/program/localization/hy_AM/labels.inc b/program/localization/hy_AM/labels.inc
index fec95f3cd..99cee4ab9 100644
--- a/program/localization/hy_AM/labels.inc
+++ b/program/localization/hy_AM/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Ô²Õ¡Ö€Õ« Õ£Õ¡Õ¬Õ¸Ö‚Õ½Õ¿ $product';
$labels['username'] = 'Õ•Õ£Õ¿Õ¾Õ¸Õ²';
$labels['password'] = 'Ô³Õ¡Õ²Õ¿Õ¶Õ¡Õ¢Õ¡Õ¼';
$labels['server'] = 'ÕÕ¥Ö€Õ¾Õ¥Ö€';
$labels['login'] = 'Õ„Õ¸Ö‚Õ¿Ö„';
+
+// taskbar
$labels['logout'] = 'ÔµÕ¬Ö„';
$labels['mail'] = 'Էլ–փոստ';
$labels['settings'] = 'Õ†Õ¡Õ­Õ¡Õ½Õ«Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€';
$labels['addressbook'] = 'Õ€Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€';
+
+// mailbox names
$labels['inbox'] = 'Õ“Õ¸Õ½Õ¿Õ¡Ö€Õ¯Õ²';
$labels['drafts'] = 'ÕÖ‡Õ¡Õ£Ö€Õ¥Ö€';
$labels['sent'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ®';
$labels['trash'] = 'Ô±Õ²Õ¢Õ¡Ö€Õ¯Õ²';
$labels['junk'] = 'Ô¹Õ¡ÖƒÕ¸Õ¶';
+
+// message listing
$labels['subject'] = 'ÕŽÕ¥Ö€Õ¶Õ¡Õ£Õ«Ö€';
$labels['from'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¸Õ²';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ÕÕ¿Õ¡ÖÕ¸Õ²';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -42,18 +53,27 @@ $labels['priority'] = 'Ô±Õ¼Õ¡Õ¾Õ¥Õ¬Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['organization'] = 'Ô¿Õ¡Õ¦Õ´Õ¡Õ¯Õ¥Ö€ÕºÕ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$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'] = 'Cc';
$labels['move'] = 'ÕÕ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¥Õ¬';
$labels['moveto'] = 'ÕÕ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¥Õ¬...';
$labels['download'] = 'Õ”Õ¡Õ·Õ¥Õ¬';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¡Õ¶Õ¸Ö‚Õ¶';
$labels['filesize'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¹Õ¡Öƒ';
+
$labels['addtoaddressbook'] = 'Õ€Õ«Õ·Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶';
+
+// weekdays short
$labels['sun'] = 'Ô¿Õ«Ö€';
$labels['mon'] = 'ÔµÖ€Õ¯';
$labels['tue'] = 'ÔµÖ€Ö„';
@@ -61,6 +81,8 @@ $labels['wed'] = 'Õ‰Ö€Ö„';
$labels['thu'] = 'Õ€Õ¶Õ£';
$labels['fri'] = 'ÕˆÖ‚Ö€Õ¢';
$labels['sat'] = 'Õ‡Õ¢Õ©';
+
+// weekdays long
$labels['sunday'] = 'Ô¿Õ«Ö€Õ¡Õ¯Õ«';
$labels['monday'] = 'ÔµÖ€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«';
$labels['tuesday'] = 'ÔµÖ€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«';
@@ -68,6 +90,8 @@ $labels['wednesday'] = 'Õ‰Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«';
$labels['thursday'] = 'Õ€Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«';
$labels['friday'] = 'ÕˆÖ‚Ö€Õ¢Õ¡Õ©';
$labels['saturday'] = 'Õ‡Õ¡Õ¢Õ¡Õ©';
+
+// months short
$labels['jan'] = 'Õ€Õ¶Õ¾';
$labels['feb'] = 'Õ“Õ¥Õ¿';
$labels['mar'] = 'Õ„Õ¡Ö€';
@@ -80,6 +104,8 @@ $labels['sep'] = 'ÕÕ¥Õº';
$labels['oct'] = 'Õ€Õ¸Õ¯';
$labels['nov'] = 'Õ†Õ¸Õµ';
$labels['dec'] = 'Ô´Õ¥Õ¯';
+
+// months long
$labels['longjan'] = 'Õ€Õ¸Ö‚Õ¶Õ¾Õ¡Ö€';
$labels['longfeb'] = 'Õ“Õ¥Õ¿Ö€Õ¾Õ¡Ö€';
$labels['longmar'] = 'Õ„Õ¡Ö€Õ¿';
@@ -92,7 +118,10 @@ $labels['longsep'] = 'ÕÕ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€';
$labels['longoct'] = 'Õ€Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€';
$labels['longnov'] = 'Õ†Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€';
$labels['longdec'] = 'Ô´Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€';
+
$labels['today'] = 'Ô±ÕµÕ½Ö…Ö€';
+
+// toolbar buttons
$labels['refresh'] = 'Ô¹Õ¡Ö€Õ´Õ¡ÖÕ¶Õ¥Õ¬';
$labels['checkmail'] = 'ÕÕ¿Õ¸Ö‚Õ£Õ¥Õ¬ Õ¶Õ¸Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨';
$labels['compose'] = 'Ô³Ö€Õ¥Õ¬ Õ¶Õ¡Õ´Õ¡Õ¯';
@@ -125,6 +154,7 @@ $labels['moreactions'] = 'Õ€Õ¡Õ¾Õ¥Õ¬ÕµÕ¡Õ¬ Õ£Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€
$labels['more'] = 'Ô±Õ¾Õ¥Õ¬Õ«Õ¶';
$labels['back'] = 'ÔµÕ¿';
$labels['options'] = 'Ô¸Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
+
$labels['select'] = 'Õ†Õ·Õ¥Õ¬';
$labels['all'] = 'Ô²Õ¸Õ¬Õ¸Ö€Õ¨';
$labels['none'] = 'Õ‰Õ¶Õ·Õ¥Õ¬';
@@ -132,7 +162,9 @@ $labels['currpage'] = 'Ô±Õ¼Õ¯Õ¡ Õ§Õ»';
$labels['unread'] = 'Õ‰Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¡Õ®Õ¨';
$labels['flagged'] = 'Õ†Õ·Õ¾Õ¡Õ®';
$labels['unanswered'] = 'Ô±Õ¶ÕºÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Õ‹Õ¶Õ»Õ¾Õ¡Õ®';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Õ“Õ¸Õ­Õ¡Õ¿Õ¥Õ²Õ¥Õ¬';
$labels['filter'] = 'Ô¶Õ¿Õ«Õ¹';
$labels['list'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯';
@@ -141,6 +173,7 @@ $labels['expand-all'] = 'Ô¸Õ¶Õ¤Õ¬Õ¡ÕµÕ¶Õ¥Õ¬ Õ¢Õ¸Õ¬Õ¸Ö€Õ¨';
$labels['expand-unread'] = 'Ô¸Õ¶Õ¤Õ¬Õ¡ÕµÕ¶Õ¥Õ¬ Õ¹Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¾Õ¡Õ®Õ¨';
$labels['collapse-all'] = 'Õ“Õ¬Õ¹Õ¥Õ¬ Õ¢Õ¸Õ¬Õ¸Ö€Õ¨';
$labels['threaded'] = 'Ô¹Õ¥Õ´Õ¡Õ¾Õ¸Ö€Õ¾Õ¡Õ®';
+
$labels['autoexpand_threads'] = 'Ô²Õ¡Ö Õ¡Õ¶Õ¥Õ¬ Õ©Õ¥Õ´Õ¡Õ¶Õ¥Ö€Õ¨';
$labels['do_expand'] = 'Õ¢Õ¸Õ¬Õ¸Ö€ Õ©Õ¥Õ´Õ¡Õ¶Õ¥Ö€Õ¨';
$labels['expand_only_unread'] = 'Õ´Õ«Õ¡ÕµÕ¶ Õ¹Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¾Õ¡Õ® Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Õ¸Õ¾';
@@ -156,19 +189,29 @@ $labels['listcolumns'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯Õ« Õ½ÕµÕ¸Ö‚Õ¶ÕµÕ¡Õ¯Õ¶Õ¥Ö€';
$labels['listsorting'] = 'ÕÕ¥Õ½Õ¡Õ¯Õ¡Õ¾Õ¸Ö€Õ´Õ¡Õ¶ Õ½ÕµÕ¸Ö‚Õ¶ÕµÕ¡Õ¯';
$labels['listorder'] = 'ÕÕ¥Õ½Õ¡Õ¯Õ¡Õ¾Õ¸Ö€Õ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¨';
$labels['listmode'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¯Õ¸Õ¾ Õ¿Õ¥Õ½Ö„Õ« Õ¿Õ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯Õ¨';
+
$labels['folderactions'] = 'Պանակի գործողություններ…';
$labels['compact'] = 'ÕÕ¥Õ²Õ´Õ¥Õ¬';
$labels['empty'] = 'Ô´Õ¡Õ¿Õ¡Ö€Õ¯Õ¥Õ¬';
+
$labels['quota'] = 'Ô´Õ«Õ½Õ¯Õ¡ÕµÕ«Õ¶ Õ¿Õ¡Ö€Õ¡Õ®Ö„';
$labels['unknown'] = 'Õ¡Õ¶Õ°Õ¡ÕµÕ¿';
$labels['unlimited'] = 'Õ¡Õ¶Õ½Õ¡Õ°Õ´Õ¡Õ¶Õ¡ÖƒÕ¡Õ¯';
+
$labels['quicksearch'] = 'Ô±Ö€Õ¡Õ£ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´';
$labels['resetsearch'] = 'ÕŽÕ¥Ö€Õ½Õ¯Õ½Õ¥Õ¬ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´Õ¨';
$labels['searchmod'] = 'ÕˆÖ€Õ¸Õ¶Õ´Õ¡Õ¶ ÖƒÕ¸ÖƒÕ¸Õ­Õ«Õ¹Õ¶Õ¥Ö€';
$labels['msgtext'] = 'ÕˆÕ²Õ» Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Ô²Õ¡ÖÕ¥Õ¬ Õ¶Õ¸Ö€ ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¸Ö‚Õ´';
$labels['emlsave'] = 'Õ†Õ¥Ö€Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬ (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ¸Ö€ÕºÕ¥Õ½ Õ¶Õ¸Ö€';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬';
$labels['savemessage'] = 'Õ€Õ«Õ·Õ¥Õ¬ Õ¸Ö€ÕºÕ¥Õ½ Õ½Ö‡Õ¡Õ£Õ«Ö€';
$labels['addattachment'] = 'Ô¿ÖÕ¥Õ¬ Ö†Õ¡ÕµÕ¬';
@@ -178,39 +221,52 @@ $labels['returnreceipt'] = 'ÕÕ¿Õ¡ÖÕ´Õ¡Õ¶ Õ°Õ¡Õ¾Õ¡Õ½Õ¿Õ¡Õ£Õ«Ö€';
$labels['dsn'] = 'Ô±Õ¼Õ¡Ö„Õ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¡Õ¾Õ«Õ³Õ¡Õ¯Õ« Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¸Ö‚Õ´';
$labels['mailreplyintro'] = '$date-Õ«Õ¶, $sender-Õ¨ Õ£Ö€Õ¥Ö.';
$labels['originalmessage'] = 'Ô±Õ¼Õ¡Õ»Õ«Õ¶ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
+
$labels['editidents'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ«Õ¶Ö„Õ¶Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€Õ¨';
$labels['spellcheck'] = 'ÕÕ¡Õ¼Õ¡Õ½Õ­Õ¡Õ¬Õ¶Õ¥Ö€';
$labels['checkspelling'] = 'ÕÕ¿Õ¸Ö‚Õ£Õ¥Õ¬ Õ¸Ö‚Õ²Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
$labels['resumeediting'] = 'Õ‡Õ¡Ö€Õ¸Ö‚Õ¶Õ¡Õ¯Õ¥Õ¬ Õ­Õ´Õ¢Õ¡Õ£Ö€Õ¸Ö‚Õ´Õ¨';
$labels['revertto'] = 'ÕŽÕ¥Ö€Õ¡Õ¯Õ¡Õ¶Õ£Õ¶Õ¥Õ¬';
+
$labels['attach'] = 'Ô¿ÖÕ¥Õ¬';
$labels['attachments'] = 'Ô¿ÖÕ¸Ö‚Õ´Õ¶Õ¥Ö€';
$labels['upload'] = 'Ô²Õ¥Õ¼Õ¶Õ¥Õ¬';
$labels['uploadprogress'] = '$percent ($current $total-Õ«Ö)';
$labels['close'] = 'Õ“Õ¡Õ¯Õ¥Õ¬';
$labels['messageoptions'] = 'Հաղորդագրության ընտրանքներ…';
+
$labels['low'] = 'Õ‘Õ¡Õ®Ö€';
$labels['lowest'] = 'Õ†Õ¾Õ¡Õ¦Õ¡Õ£Õ¸Ö‚ÕµÕ¶';
$labels['normal'] = 'Õ†Õ¸Ö€Õ´Õ¡Õ¬';
$labels['high'] = 'Ô¿Õ¡Ö€Ö‡Õ¸Ö€';
$labels['highest'] = 'Ô¿Õ¡Ö€Ö‡Õ¸Ö€Õ¡Õ£Õ¸Ö‚ÕµÕ¶';
+
$labels['nosubject'] = '(Õ¡Õ¼Õ¡Õ¶Ö Õ¾Õ¥Ö€Õ¶Õ¡Õ£Ö€Õ«)';
$labels['showimages'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¶Õ¯Õ¡Ö€Õ¶Õ¥Ö€Õ¨';
$labels['alwaysshow'] = 'Õ„Õ«Õ·Õ¿ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¶Õ¥Ö€Õ¨ $sender–իÖ';
$labels['isdraft'] = 'ÕÕ¡ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ½Ö‡Õ¡Õ£Õ«Ö€ Õ§';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ÕŠÕ¡Ö€Õ¦ Õ¿Õ¥Ö„Õ½Õ¿';
$labels['savesentmessagein'] = 'Ô³Ö€Õ¡Õ¶ÖÕ¥Õ¬ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ¨';
$labels['dontsave'] = 'Õ‰Õ›Õ£Ö€Õ¡Õ¶ÖÕ¥Õ¬';
$labels['maxuploadsize'] = 'Ô±Õ¼Õ¡Õ¾Õ¥Õ¬Õ¡Õ£Õ¸Ö‚ÕµÕ¶ Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« Ö†Õ¡ÕµÕ¬Õ« Õ¹Õ¡ÖƒÕ¨ $size Õ§';
+
$labels['addcc'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Cc';
$labels['addbcc'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Bcc';
$labels['addreplyto'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Reply-To';
$labels['addfollowupto'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Õ°Õ¡Õ¾Õ¥Õ¬Õ¸Ö‚Õ´';
+
+// mdn
$labels['mdnrequest'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ°Õ¥Õ²Õ«Õ¶Õ¡Õ¯Õ¨ Õ­Õ¶Õ¤Ö€Õ¥Õ¬ Õ§ Õ¶Õ¡Õ´Õ¡Õ¯Õ¨ Õ¯Õ¡Ö€Õ¤Õ¡Õ¬Õ¸Ö‚Õ¶ ÕºÕ¥Õ½ Õ¿Õ¥Õ²Õ¥Õ¯Õ¡ÖÕ¶Õ¥Õ¬ Õ«Ö€Õ¥Õ¶Ö‰ Õ‘Õ¡Õ¶Õ¯Õ¡Õ¶Õ¸Ö‚Õ´ Õ§Ö„ ÕÕ¥Õ²Õ¥Õ¯Õ¡ÖÕ¶Õ¥ÕžÕ¬Ö‰';
$labels['receiptread'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€';
$labels['yourmessage'] = 'ÕÕ¡ ÕÕ¥Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ« Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€Õ¶ Õ§';
$labels['receiptnote'] = 'Õ†Õ·Õ¸Ö‚Õ´Õ Ô±ÕµÕ½ Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¡Õ£Õ«Ö€Õ¨ Õ¨Õ¶Õ¤Õ¡Õ´Õ¥Õ¶Õ¨ Õ¿Õ¥Õ²Õ¥Õ¯Õ¡ÖÕ¶Õ¸Ö‚Õ´ Õ§, Õ¸Ö€ Õ¶Õ¡Õ´Õ¡Õ¯Õ¨ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¾Õ¥Õ¬ Õ§ Õ°Õ¡Õ½ÖÕ¥Õ¡Õ¿Õ«Ö€Õ¸Õ» Õ°Õ¡Õ´Õ¡Õ¯Õ¡Ö€Õ¹Õ¸Õ¾Ö‰ Õ‰Õ¯Õ¡ Õ¸Ö€Ö‡Õ«ÖÕ¥ Õ¥Ö€Õ¡Õ·Õ­Õ«Ö„, Õ¸Ö€ Õ°Õ¡Õ½ÖÕ¥Õ¡Õ¿Õ¥Ö€Õ¨ Õ«Õ½Õ¯Õ¡ÕºÕ¥Õ½ Õ¯Õ¡Ö€Õ¤Õ¡ÖÕ¥Õ¬ Õ§ Õ¶Õ¡Õ´Õ¡Õ¯Õ¨Ö‰';
+
+// address boook
$labels['name'] = 'Õ„Õ¡Õ¯Õ¡Õ¶Õ¸Ö‚Õ¶';
$labels['firstname'] = 'Ô±Õ¶Õ¸Ö‚Õ¶';
$labels['surname'] = 'Ô±Õ¦Õ£Õ¡Õ¶Õ¸Ö‚Õ¶';
@@ -245,6 +301,7 @@ $labels['search'] = 'ÕˆÖ€Õ¸Õ¶Õ¸Ö‚Õ´';
$labels['advsearch'] = 'Ô½Õ¸Ö€Õ¡ÖÕ¾Õ¡Õ® Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´';
$labels['advanced'] = 'Ô½Õ¸Ö€Õ¡ÖÕ¾Õ¡Õ®';
$labels['other'] = 'Ô±ÕµÕ¬';
+
$labels['typehome'] = 'ÕÕ¸Ö‚Õ¶';
$labels['typework'] = 'Ô±Õ·Õ­Õ¡Õ¿Õ¡Õ¶Ö„';
$labels['typeother'] = 'Ô±ÕµÕ¬';
@@ -259,12 +316,14 @@ $labels['typeassistant'] = 'Õ•Õ£Õ¶Õ¡Õ¯Õ¡Õ¶';
$labels['typehomepage'] = 'ÕÕ¯Õ«Õ¦Õ¢';
$labels['typeblog'] = 'Ô²Õ¬Õ¸Õ£';
$labels['typeprofile'] = 'ÕŠÖ€Õ¸Ö†Õ¡ÕµÕ¬';
+
$labels['addfield'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ դաշտ…';
$labels['addcontact'] = 'Ô³Ö€Õ¡Õ¶ÖÕ¥Õ¬ Õ¶Õ·Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¶';
$labels['editcontact'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶';
$labels['contacts'] = 'Ô¿Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€';
$labels['contactproperties'] = 'Ô¿Õ¡ÕºÕ¸Ö€Õ¤Õ« Õ°Õ¡Õ¿Õ¯Õ¡Õ¶Õ«Õ·Õ¶Õ¥Ö€';
$labels['personalinfo'] = 'Ô±Õ¶Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö€';
+
$labels['edit'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬';
$labels['cancel'] = 'Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬';
$labels['save'] = 'Õ€Õ«Õ·Õ¥Õ¬';
@@ -273,44 +332,60 @@ $labels['rename'] = 'ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬';
$labels['addphoto'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬';
$labels['replacephoto'] = 'Õ“Õ¸Õ­Õ¡Ö€Õ«Õ¶Õ¥Õ¬';
$labels['uploadphoto'] = 'ÕŽÕ¥Ö€Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬ Õ¬Õ¸Ö‚Õ½Õ¡Õ¶Õ¯Õ¡Ö€';
+
$labels['newcontact'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ¶Õ¸Ö€ Õ°Õ¡Õ½ÖÕ¥Ö„Õ¡Ö€Õ¿';
$labels['deletecontact'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ¶Õ·Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨';
$labels['composeto'] = 'Ô³Ö€Õ¥Õ¬ Õ¶Õ¡Õ´Õ¡Õ¯';
$labels['contactsfromto'] = 'Õ€Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€ $fromâ€“Õ«Ö $to–ը Õ¥Õ²Õ¡Õ® $count–իÖ';
$labels['print'] = 'ÕÕºÕ¥Õ¬';
$labels['export'] = 'Ô±Ö€Õ¿Õ¡Õ°Õ¡Õ¶Õ¥Õ¬';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Ô±Ö€Õ¿Õ¡Õ°Õ¡Õ¶Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ¨ vCard Õ¹Õ¡ÖƒÕ¡Õ±Ö‡Õ¸Õ¾';
$labels['newcontactgroup'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ¯Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€Õ« Õ¶Õ¸Ö€ Õ­Õ¸Ö‚Õ´Õ¢';
$labels['grouprename'] = 'ÕŽÕ¥Ö€Õ¡Õ¶Õ¾Õ¡Õ¶Õ¥Õ¬ Õ­Õ¸Ö‚Õ´Õ¢Õ¨';
$labels['groupdelete'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ­Õ¸Ö‚Õ´Õ¢Õ¨';
$labels['groupremoveselected'] = 'Õ€Õ¥Õ¼Õ¡ÖÕ¶Õ¥Õ¬ Õ¶Õ·Õ¾Õ¡Õ® Õ¡Õ¶Õ±Õ¡Õ¶Ö Õ­Õ´Õ¢Õ«Ö';
+
$labels['previouspage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¶Õ¡Õ­Õ¸Ö€Õ¤ Õ§Õ»Õ¨';
$labels['firstpage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¡Õ¼Õ¡Õ»Õ«Õ¶ Õ§Õ»Õ¨';
$labels['nextpage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ°Õ¡Õ»Õ¸Ö€Õ¤ Õ§Õ»Õ¨';
$labels['lastpage'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¾Õ¥Ö€Õ»Õ«Õ¶ Õ§Õ»Õ¨';
+
$labels['group'] = 'Ô½Õ¸Ö‚Õ´Õ¢';
$labels['groups'] = 'Ô½Õ´Õ¢Õ¥Ö€';
$labels['personaladrbook'] = 'Ô±Õ¶Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€';
+
$labels['searchsave'] = 'ÕŠÕ¡Õ°ÕºÕ¡Õ¶Õ¥Õ¬ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´Õ¨';
$labels['searchdelete'] = 'Õ‹Õ¶Õ»Õ¥Õ¬ Õ¸Ö€Õ¸Õ¶Õ¸Ö‚Õ´Õ¨';
+
$labels['import'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¥Õ¬';
$labels['importcontacts'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¥Õ¬ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€';
$labels['importfromfile'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¥Õ¬ Ö†Õ¡ÕµÕ¬Õ«Ö';
+$labels['importtarget'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Õ¶Õ¸Ö€ Õ¯Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€ Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Ö€Ö„Õ¸Ö‚Õ´';
$labels['importreplace'] = 'Õ“Õ¸Õ­Õ¥Õ¬ Õ¸Õ²Õ» Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Õ«Ö€Ö„Õ¨';
+$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'] = 'Ô±Õ¾Õ¡Ö€Õ¿Õ¾Õ¡Õ® Õ§';
+
+// settings
$labels['settingsfor'] = 'Õ†Õ¡Õ­Õ¡Õ½Õ«Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¶Õ¥Ö€';
$labels['about'] = 'Õ†Õ¯Õ¡Ö€Õ¡Õ£Õ«Ö€';
$labels['preferences'] = 'Õ†Õ¡Õ­Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
$labels['userpreferences'] = 'Õ•Õ£Õ¿Õ¾Õ¸Õ²Õ« Õ¶Õ¡Õ­Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
$labels['editpreferences'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Ö…Õ£Õ¿Õ¾Õ¸Õ²Õ« Õ¶Õ¡Õ­Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€Õ¨';
+
$labels['identities'] = 'Ô±Õ¶Õ±Õ«Ö„';
$labels['manageidentities'] = 'Ô¿Õ¡Ö€Õ£Õ¡Õ¾Õ¸Ö€Õ¥Õ¬ Õ¡Õ¶Õ±Õ¡Õ¶Ö';
$labels['newidentity'] = 'Õ†Õ¸Ö€ Õ¡Õ¶Õ±';
+
$labels['newitem'] = 'Õ†Õ¸Ö€ Õ«Ö€';
$labels['edititem'] = 'Ô½Õ´Õ¢Õ¡Õ£Ö€Õ¥Õ¬ Õ«Ö€Õ¨';
+
$labels['preferhtml'] = 'Ô³Õ¥Ö€Õ¡Õ¤Õ¡Õ½Õ¥Õ¬ HTML';
$labels['defaultcharset'] = 'Ô¼Õ¼Õ¥Õ¬ÕµÕ¡Õ¬ Õ¿Õ¡Õ¼Õ¡Õ·Õ¡Ö€';
$labels['htmlmessage'] = 'HTML Õ¶Õ¡Õ´Õ¡Õ¯';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Ô±Õ´Õ½Õ¡Õ©Õ¾Õ« Õ±Ö‡Õ¡Õ¹Õ¡Öƒ';
$labels['timeformat'] = 'ÔºÕ¡Õ´Õ¡Õ¶Õ¡Õ¯Õ« Õ±Ö‡Õ¡Õ¹Õ¡Öƒ';
$labels['prettydate'] = 'ÕŠÕ¡Ö€Õ¦ Õ¡Õ´Õ½Õ¡Õ©Õ¾Õ¥Ö€';
@@ -321,9 +396,13 @@ $labels['timezone'] = 'ÔºÕ¡Õ´Õ¡ÕµÕ«Õ¶ Õ£Õ¸Õ¿Õ«';
$labels['pagesize'] = 'ÕÕ¸Õ²Õ¥Ö€ Õ¡Õ¼ Õ§Õ»';
$labels['signature'] = 'ÕÕ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['dstactive'] = 'Ô±Õ´Õ¡Õ¼Õ¡ÕµÕ«Õ¶ ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'ÕÕ¿Õ¥Õ²Õ®Õ¥Õ¬ HTML Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€';
$labels['htmlonreply'] = 'Õ´Õ«Õ¡ÕµÕ¶ HTML Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶Õ¨ ÕºÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¥Õ¬Õ«Õ½';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML Õ½Õ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ ÕºÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶Õ¨';
$labels['skin'] = 'ÕÕ¥Õ½Ö„Õ« Õ¿Õ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯';
$labels['logoutclear'] = 'Ô´Õ¸Ö‚Ö€Õ½ Õ£Õ¡Õ¬Õ¸Ö‚Ö Õ¤Õ¡Õ¿Õ¡Ö€Õ¯Õ¥Õ¬ Õ¡Õ²Õ¢Õ¡Ö€Õ¯Õ²Õ¨';
@@ -348,6 +427,7 @@ $labels['always'] = 'Õ´Õ«Õ·Õ¿';
$labels['showinlineimages'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¯ÖÕ¾Õ¡Õ® ÕºÕ¡Õ¿Õ¯Õ¥Ö€Õ¶Õ¥Ö€Õ¨ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¿Õ¡Õ¯';
$labels['autosavedraft'] = 'ÕÖ‡Õ¡Õ£Ö€Õ« Õ¡Õ¾Õ¿Õ¸Õ´Õ¡Õ¿ Õ£Ö€Õ¡Õ¶ÖÕ¸Ö‚Õ´';
$labels['everynminutes'] = 'Õ¡Õ´Õ¥Õ¶ $n Ö€Õ¸ÕºÕ¥Õ¶';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'Õ¥Ö€Õ¢Õ¥Ö„';
$labels['immediately'] = 'Õ¡Õ¶Õ´Õ«Õ»Õ¡ÕºÕ¥Õ½';
$labels['messagesdisplaying'] = 'Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€Õ¨ ÖÕ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬Õ«Õ½';
@@ -369,6 +449,7 @@ $labels['maintenance'] = 'ÕÕºÕ¡Õ½Õ¡Ö€Õ¯Õ¸Ö‚Õ´';
$labels['newmessage'] = 'Õ†Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
$labels['signatureoptions'] = 'ÕÕ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¶Õ¥Ö€';
$labels['whenreplying'] = 'ÕŠÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¥Õ¬Õ«Õ½';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'Õ½Õ¯Õ½Õ¥Õ¬ Õ¶Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¾Õ¥Ö€Ö‡Õ«Ö';
$labels['replybottomposting'] = 'Õ½Õ¯Õ½Õ¥Õ¬ Õ¶Õ¸Ö€ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¶Õ¥Ö€Ö„Ö‡Õ«Ö';
$labels['replyremovesignature'] = 'ÕŠÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¥Õ¬Õ«Õ½ Õ°Õ¥Õ¼Õ¡ÖÕ¶Õ¥Õ¬ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ«Ö Õ¶Õ¡Õ­Õ¸Ö€Õ¤ Õ½Õ¿Õ¸Ö€Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨';
@@ -381,6 +462,7 @@ $labels['afternseconds'] = '$n Õ¾Õ¡Ö€Õ¯ÕµÕ¡Õ¶ Õ°Õ¥Õ¿Õ¸';
$labels['reqmdn'] = 'Õ„Õ«Õ·Õ¿ ÕºÕ¡Õ¿Õ¾Õ«Ö€Õ¥Õ¬ Õ½Õ¿Õ¡ÖÕ¡Õ¯Õ¡Õ¶';
$labels['reqdsn'] = 'Õ„Õ«Õ·Õ¿ ÕºÕ¡Õ¿Õ¾Õ«Ö€Õ¥Õ¬ Õ¡Õ¼Õ¡Ö„Õ´Õ¡Õ¶ Õ¯Õ¡Ö€Õ£Õ¡Õ¾Õ«Õ³Õ¡Õ¯Õ« Õ®Õ¡Õ¶Õ¸Ö‚ÖÕ¸Ö‚Õ´';
$labels['replysamefolder'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ ÕºÕ¡Õ¿Õ¡Õ½Õ­Õ¡Õ¶Õ¶Õ¥Ö€Õ¨ ÕºÕ¡Õ°Õ¥Õ¬ Õ¶Õ¸Ö‚ÕµÕ¶ ÕºÕ¡Õ¶Õ¡Õ¯Õ¸Ö‚Õ´';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'Ô±Õ¾Õ¿Õ¸Õ¬Ö€Õ¡ÖÕ´Õ¡Õ¶ ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯ Õ¢Õ¡ÖÕ¡Õ¼Õ¥Õ¬ Õ¡ÕµÕ¬Õ¨Õ¶Õ¿Ö€Õ¡Õ¶Ö„Õ¡ÕµÕ«Õ¶ Õ§Õ¬ÖƒÕ¸Õ½Õ¿Õ« Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ¨';
$labels['listnamedisplay'] = 'Õ‘Õ¸Ö‚ÖÕ¡Õ¤Ö€Õ¥Õ¬ Õ¯Õ¡ÕºÕ¸Ö€Õ¤Õ¶Õ¥Ö€Õ¨ Õ¸Ö€ÕºÕ¥Õ½';
$labels['spellcheckbeforesend'] = 'ÕÕ¿Õ¸Ö‚Õ£Õ¥Õ¬ Õ¿Õ¡Õ¼Õ¡Õ½Õ­Õ¡Õ¬Õ¶Õ¥Ö€Õ¨ Õ°Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬Õ¸Ö‚Ö Õ¡Õ¼Õ¡Õ»';
@@ -390,6 +472,10 @@ $labels['spellcheckignorenums'] = 'Ô±Õ¶Õ¿Õ¥Õ½Õ¥Õ¬ Õ©Õ¾Õ¥Ö€Õ¸Õ¾ Õ¢Õ¡Õ¼Õ¥Ö€Õ¨';
$labels['spellcheckignorecaps'] = 'Ô±Õ¶Õ¿Õ¥Õ½Õ¥Õ¬ Õ¬Ö€Õ«Õ¾ Õ´Õ¥Õ®Õ¡Õ¿Õ¡Õ¼ Õ¢Õ¡Õ¼Õ¥Ö€Õ¨';
$labels['addtodict'] = 'Ô±Õ¾Õ¥Õ¬Õ¡ÖÕ¶Õ¥Õ¬ Õ¢Õ¡Õ¼Õ¡Ö€Õ¡Õ¶Õ¸Ö‚Õ´';
$labels['mailtoprotohandler'] = 'mailto: Õ°Õ²Õ¸Ö‚Õ´Õ¶Õ¥Ö€Õ« Õ½ÕºÕ¡Õ½Õ¡Ö€Õ¯Õ¸Õ²';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Ô´Õ¡Ö€Õ¡Õ¯';
$labels['folders'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ¶Õ¥Ö€';
$labels['foldername'] = 'Ô´Õ¡Ö€Õ¡Õ¯Õ« Õ¡Õ¶Õ¸Ö‚Õ¶';
@@ -410,19 +496,26 @@ $labels['foldertype'] = 'ÕŠÕ¡Õ¶Õ¡Õ¯Õ« Õ¿Õ¥Õ½Õ¡Õ¯';
$labels['personalfolder'] = 'Ô±Õ¶Õ±Õ¶Õ¡Õ¯Õ¡Õ¶ ÕºÕ¡Õ¶Õ¡Õ¯';
$labels['otherfolder'] = 'Ô±ÕµÕ¬ Ö…Õ£Õ¿Õ¾Õ¸Õ²Õ« ÕºÕ¡Õ¶Õ¡Õ¯';
$labels['sharedfolder'] = 'Õ€Õ¡Õ¶Ö€Õ¡ÕµÕ«Õ¶ ÕºÕ¡Õ¶Õ¡Õ¯';
+
$labels['sortby'] = 'Ô´Õ¡Õ½Õ¡Õ¾Õ¸Ö€Õ¥Õ¬';
$labels['sortasc'] = 'Õ¨Õ½Õ¿ Õ¡Õ³Õ´Õ¡Õ¶';
$labels['sortdesc'] = 'Õ¨Õ½Õ¿ Õ¶Õ¾Õ¡Õ¦Õ´Õ¡Õ¶';
$labels['undo'] = 'ÔµÕ¿Õ¡Ö€Õ¯Õ¥Õ¬';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Ô½Ö€Õ«Õ¹';
$labels['version'] = 'ÕÕ¡Ö€Õ¢Õ¥Ö€Õ¡Õ¯';
$labels['source'] = 'Ô±Õ²Õ¢ÕµÕ¸Ö‚Ö€';
$labels['license'] = 'Ô±Ö€Õ¿Õ¸Õ¶Õ¡Õ£Õ«Ö€';
$labels['support'] = 'ÕÕ¿Õ¡Õ¶Õ¡Õ¬ Ö…Õ£Õ¶Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶';
+
+// units
$labels['B'] = 'Ô²';
$labels['KB'] = 'Ô¿Ô²';
$labels['MB'] = 'Õ„Ô²';
$labels['GB'] = 'Ô³Ô²';
+
+// character sets
$labels['unicode'] = 'Õ…Õ¸Ö‚Õ¶Õ«Õ¯Õ¸Õ¤';
$labels['english'] = 'Ô±Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶';
$labels['westerneuropean'] = 'Ô±Ö€Ö‡Õ´Õ¿Õ¡-ÔµÕ¾Ö€Õ¸ÕºÕ¡Õ¯Õ¡Õ¶';
@@ -441,4 +534,5 @@ $labels['vietnamese'] = 'ÕŽÕ«Õ¥Õ¿Õ¶Õ¡Õ´Õ¡Õ¯Õ¡Õ¶';
$labels['japanese'] = 'ÕƒÕ¡ÕºÕ¸Õ¶Õ¡Õ¯Õ¡Õ¶';
$labels['korean'] = 'Ô¿Õ¸Ö€Õ¥Õ¡Õ¯Õ¡Õ¶';
$labels['chinese'] = 'Õ‰Õ«Õ¶Õ¡Õ¯Õ¡Õ¶';
+
?>
diff --git a/program/localization/hy_AM/messages.inc b/program/localization/hy_AM/messages.inc
index c5d167acf..6b3f4ebe9 100644
--- a/program/localization/hy_AM/messages.inc
+++ b/program/localization/hy_AM/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'ÕÕ­Õ¡Õ›Õ¬';
$messages['loginfailed'] = 'Õ„Õ¸Ö‚Õ¿Ö„Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['cookiesdisabled'] = 'Сookies–ների Õ¡ÕºÕ¡Õ°Õ¸Õ¾Õ¾Õ¸Ö‚Õ´Õ¨ Õ¢Õ¡ÖÕ¡Õ¯Õ¡ÕµÕ¸Ö‚Õ´ Õ§';
@@ -26,10 +28,14 @@ $messages['dberror'] = 'ÕÕ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö€Õ« Õ·Õ¿Õ¥Õ´Õ¡Ö€Õ¡Õ¶Õ« Õ½Õ­Õ¡Õ›Õ¬';
$messages['requesttimedout'] = 'Õ€Õ¡Ö€ÖÕ´Õ¡Õ¶ Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« ÕªÕ¡Õ´Õ¡Õ¶Õ¡Õ¯Õ¨ Õ½ÕºÕ¡Õ¼Õ¾Õ¥Ö';
$messages['errorreadonly'] = 'Ô³Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¡Õ¶Õ°Õ¶Õ¡Ö€ Õ§Ö‰ ÕŠÕ¡Õ¶Õ¡Õ¯Õ¨ Õ´Õ«Õ¡ÕµÕ¶ Õ¨Õ¶Õ©Õ¥Ö€ÖÕ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€ Õ§Ö‰';
$messages['errornoperm'] = 'Ô³Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ¯Õ¡Õ¿Õ¡Ö€Õ´Õ¡Õ¶ Õ«Ö€Õ¡Õ¾Õ¸Ö‚Õ¶Ö„Õ¨ Õ´Õ¥Ö€ÕªÕ¾Õ¡Õ® Õ§Ö‰';
+$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'] = 'ÕÕ­Õ¡Õ¬ Õ°Õ¡Ö€ÖÕ¸Ö‚Õ´, Õ¡ÕºÕ¡Ö€Õ¤ÕµÕ¸Ö‚Õ¶Ö‰';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ô±ÕµÕ½ ÖƒÕ¸Õ½Õ¿Õ¡Ö€Õ¯Õ²Õ¸Ö‚Õ´ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶Õ¥Ö€ Õ¹Õ¯Õ¡Õ¶';
$messages['loggedout'] = 'Ô´Õ¸Ö‚Ö„ Õ¢Õ¡Ö€Õ¥Õ°Õ¡Õ»Õ¸Õ² Õ¡Õ¾Õ¡Ö€Õ¿Õ¥ÖÕ«Ö„ Õ¡Õ·Õ­Õ¡Õ¿Õ¡Õ¶Ö„Õ¨Ö‰ Ցտեսություն…';
$messages['mailboxempty'] = 'Õ“Õ¸Õ½Õ¿Õ¡Ö€Õ¯Õ²Õ¨ Õ¤Õ¡Õ¿Õ¡Ö€Õ¯ Õ§';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Ô²Õ¥Õ¼Õ¶Õ¸Ö‚Õ´...';
$messages['uploading'] = 'Ֆայլի վերբեռնում…';
$messages['uploadingmany'] = 'Վերբեռնվում են ֆայլերը…';
@@ -50,6 +56,8 @@ $messages['contactnotfound'] = 'ÕˆÖ€Õ¸Õ¶Õ¾Õ¸Õ² Õ°Õ¡Õ½ÖÕ¥Õ¶ Õ¹Õ£Õ¿Õ¶Õ¾Õ¥Ö';
$messages['contactsearchonly'] = 'Õ†Õ¥Ö€Õ´Õ¸Ö‚Õ®Õ¥Ö„ Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö€ Õ¡Õ¶Õ±Õ¡Õ¶Ö Õ¸Ö€Õ¸Õ¶Õ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€';
$messages['sendingfailed'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['senttooquickly'] = 'Ô½Õ¶Õ¤Ö€Õ¸Ö‚Õ´ Õ¥Õ¶Ö„ Õ½ÕºÕ¡Õ½Õ¥Õ¬ $sec Õ¾Õ¡Ö€Õ¯ÕµÕ¡Õ¶ Õ´Õ«Õ¶Õ¹ Õ¡ÕµÕ½ Õ¶Õ¡Õ´Õ¡Õ¯Õ¶ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¥Õ¬Õ¨';
+$messages['errorsavingsent'] = 'ÕˆÖ‚Õ²Õ¡Ö€Õ¯Õ¾Õ¡Õ® Õ¶Õ¡Õ´Õ¡Õ¯Õ« Õ¡Ö€Õ­Õ«Õ¾Õ¡ÖÕ¸Ö‚Õ´Õ¨ Õ­Õ¡ÖƒÕ¡Õ¶Õ¾Õ¥Ö';
+$messages['errorsaving'] = 'Ô³Ö€Õ¡Õ¶ÖÕ´Õ¡Õ¶ Õ½Õ­Õ¡Õ¬';
$messages['errormoving'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¿Õ¥Õ²Õ¡ÖƒÕ¸Õ­Õ´Õ¡Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¸Ö‚Õ´';
$messages['errorcopying'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ ÕºÕ¡Õ¿Õ³Õ¥Õ¶Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥ÖÖ‰';
$messages['errordeleting'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ»Õ¶Õ»Õ´Õ¡Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¸Ö‚Õ´';
@@ -93,6 +101,8 @@ $messages['converting'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ±Ö‡Õ¡Õ¾Õ¸Ö€Õ´Õ¡Õ¶ Õ°Õ¥Õ¼Õ¡Öում…';
$messages['messageopenerror'] = 'Õ†Õ¡Õ´Õ¡Õ¯Õ« Õ¢Õ¥Õ¼Õ¶Õ¾Õ¸Ö‚Õ´Õ¨ Õ½Õ¥Ö€Õ¾Õ¥Ö€Õ«Ö Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['fileuploaderror'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¯ÖÕ¸Ö‚Õ´Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['filesizeerror'] = 'Õ–Õ¡ÕµÕ¬Õ« Õ¹Õ¡ÖƒÕ¨ Õ£Õ¥Ö€Õ¡Õ¦Õ¡Õ¶ÖÕ¸Ö‚Õ´ Õ§ Õ´Õ¡Ö„Õ½Õ«Õ´Õ¡Õ¬Õ¨Õ $size';
+$messages['copysuccess'] = '$nr Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ« Õ¯Ö€Õ¯Õ¶Ö…Ö€Õ«Õ¶Õ¡Õ¯Õ¸Ö‚Õ´Õ¨ Õ¡Õ¾Õ¡Ö€Õ¿Õ¾Õ¡Õ® Õ§';
+$messages['copyerror'] = 'Õ€Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ« Õ¯Ö€Õ¯Õ¶Ö…Ö€Õ«Õ¶Õ¡Õ¯Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['sourceisreadonly'] = 'Ô±ÕµÕ½ Õ°Õ¡Õ½ÖÕ¥Õ¶ ÕºÕ¡Õ·Õ¿ÕºÕ¡Õ¶Õ¾Õ¡Õ® Õ§';
$messages['errorsavingcontact'] = 'Õ€Õ¡Õ½ÖÕ¥Õ« Õ£Ö€Õ¡Õ¶ÖÕ¸Ö‚Õ´Õ¶ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥Ö';
$messages['movingmessage'] = 'Նամակը տեղափոխվում է…';
@@ -111,7 +121,9 @@ $messages['selectimportfile'] = 'Ô¸Õ¶Õ¿Ö€Õ¥Ö„ Õ¸Ö‚Õ²Õ¡Ö€Õ¯Õ¾Õ¸Õ² Ö†Õ¡ÕµÕ¬Õ¨';
$messages['addresswriterror'] = 'Ô¸Õ¶Õ¿Ö€Õ¾Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¡Õ£Õ«Ö€Ö„Õ¨ Õ¥Õ¶Õ©Õ¡Õ¯Õ¡ Õ¹Õ§ ÖƒÕ¸ÖƒÕ¸Õ­Õ´Õ¡Õ¶';
$messages['contactaddedtogroup'] = 'Ô±Õ¶Õ±Õ«Õ¶Ö„ Õ¢Õ¡Ö€Õ¥Õ°Õ¡Õ»Õ¸Õ² Õ¡Õ¾Õ¥Õ¬Õ¡ÖÕ¾Õ¥ÖÕ«Õ¶ Õ­Õ´Õ¢Õ«Õ¶Ö‰';
$messages['contactremovedfromgroup'] = 'Ô±Õ¶Õ±Õ«Õ¶Ö„ Õ¢Õ¡Ö€Õ¥Õ°Õ¡Õ»Õ¸Õ² Õ°Õ¡Õ¶Õ¾Õ¥ÖÕ«Õ¶ Õ­Õ´Õ¢Õ«ÖÖ‰';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'Õ†Õ¥Ö€Õ¯Ö€Õ¸Ö‚Õ´Õ¶ Õ¨Õ¶Õ©Õ¡ÖÖ„Õ« Õ´Õ¥Õ» Õ§...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '$inserted Õ¶Õ¸Ö€ Õ¶Õ¥Ö€Õ¯Ö€Õ¾Õ¡Õ® Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€, $skipped Õ¡Ö€Õ¤Õ¥Õ¶ Õ¡Õ¼Õ¯Õ¡ Õ°Õ¡Õ½ÖÕ¥Õ¶Õ¥Ö€Õ <p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Ô²Õ¡Ö Õ©Õ¸Õ²Õ¶Õ¾Õ¥Ö $skipped Õ¡Õ¼Õ¯Õ¡ Õ£Ö€Õ¡Õ¼Õ¸Ö‚Õ´</b>';
$messages['opnotpermitted'] = 'Ô³Õ¸Ö€Õ®Õ¸Õ²Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶Õ¨ Õ¡Õ¶Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« Õ§Ö‰';
@@ -127,6 +139,7 @@ $messages['smtperror'] = 'SMTP Õ½Õ­Õ¡Õ¬` $msg';
$messages['emailformaterror'] = 'ÕÕ­Õ¡Õ¬ Õ§Õ¬ÖƒÕ¸Õ½Õ¿Õ« Õ°Õ¡Õ½ÖÕ¥` $email';
$messages['toomanyrecipients'] = 'ÕÕ¿Õ¡ÖÕ¸Õ²Õ¶Õ¥Ö€Õ« Ö„Õ¡Õ¶Õ¡Õ¯Õ¨ Õ¹Õ¡ÖƒÕ¡Õ¦Õ¡Õ¶Ö Õ´Õ¥Õ® Õ§Ö‰ Õ†Õ¾Õ¡Õ¦Õ¥ÖÖ€Õ¥Ö„ Õ´Õ«Õ¶Õ¹Ö‡ $max-Õ¨Ö‰';
$messages['maxgroupmembersreached'] = 'Ô½Õ´Õ¢Õ« Õ¡Õ¶Õ¤Õ¡Õ´Õ¶Õ¥Ö€Õ« Ö„Õ¡Õ¶Õ¡Ö„Õ¨ Õ£Õ¥Ö€Õ¡Õ¦Õ¡Õ¶ÖÕ¸Ö‚Õ´ Õ§ Õ©Õ¸Ö‚ÕµÕ¬Õ¡Õ¿Ö€Õ¥Õ¬Õ« $max-Õ¨Ö‰';
+$messages['internalerror'] = 'Õ†Õ¥Ö€Ö„Õ«Õ¶ Õ½Õ­Õ¡Õ¬, Õ¯Ö€Õ¯Õ«Õ¶ ÖƒÕ¸Ö€Õ±Õ¥Ö„Ö‰';
$messages['contactdelerror'] = 'Ô±Õ¶Õ±Õ¡Õ¶Ö Õ»Õ¶Õ»Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥ÖÖ‰';
$messages['contactdeleted'] = 'Ô±Õ¶Õ±Õ¡Õ¶Ö Õ»Õ¶Õ»Õ¸Ö‚Õ´Õ¨ Õ°Õ¡Õ»Õ¸Õ²Õ¾Õ¥ÖÖ‰';
$messages['contactrestoreerror'] = 'Õ‹Õ¶Õ»Õ¾Õ¡Õ® Õ¡Õ¶Õ±Õ¡Õ¶Ö Õ¾Õ¥Ö€Õ¡Õ¯Õ¡Õ¶Õ£Õ¶Õ¸Ö‚Õ´Õ¨ Õ±Õ¡Õ­Õ¸Õ²Õ¾Õ¥ÖÖ‰';
@@ -152,4 +165,7 @@ $messages['invalidimageformat'] = 'ÕŠÕ¡Õ¿Õ¯Õ¥Ö€Õ« Õ½Õ­Õ¡Õ¬ Õ±Ö‡Õ¡Õ¹Õ¡ÖƒÖ‰';
$messages['mispellingsfound'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ´Õ¥Õ» Õ¯Õ¡Õ¶ Õ¿Õ¡Õ¼Õ¡Õ½Õ­Õ¡Õ¬Õ¶Õ¥Ö€Ö‰';
$messages['parentnotwritable'] = 'Õ†Õ·Õ¾Õ¡Õ® ÕºÕ¡Õ¶Õ¡Õ¯Õ« Õ´Õ¥Õ» ÕºÕ¡Õ¶Õ¡Õ¯Õ« Õ½Õ¿Õ¥Õ²Õ®Õ¸Ö‚Õ´Õ¨ Õ¯Õ¡Õ´ Õ¿Õ¥Õ²Õ¡ÖƒÕ¸Õ­Õ¸Ö‚Õ´Õ¨ Õ¡Õ¶Õ°Õ¶Õ¡Ö€ Õ§ Õ¡Õ¶Õ¢Õ¡Õ¾Õ¡Ö€Õ¡Ö€ Õ«Ö€Õ¡Õ¾Õ¸Ö‚Õ¶Ö„Õ¶Õ¥Ö€Õ« ÕºÕ¡Õ¿Õ³Õ¡Õ¼Õ¸Õ¾Ö‰';
$messages['messagetoobig'] = 'Õ€Õ¡Õ²Õ¸Ö€Õ¤Õ¡Õ£Ö€Õ¸Ö‚Õ©ÕµÕ¡Õ¶ Õ´Õ¡Õ½Õ¨ Õ¹Õ¡ÖƒÕ¡Õ¦Õ¡Õ¶Ö Õ´Õ¥Õ® Õ§ Õ½ÕºÕ¡Õ½Õ¡Ö€Õ¯Õ´Õ¡Õ¶ Õ°Õ¡Õ´Õ¡Ö€Ö‰';
+$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/ia/labels.inc b/program/localization/ia/labels.inc
index 0ff1e939e..2a9501168 100644
--- a/program/localization/ia/labels.inc
+++ b/program/localization/ia/labels.inc
@@ -15,17 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvenite a $product';
$labels['username'] = 'Nomine de usator';
$labels['password'] = 'Contrasigno';
$labels['server'] = 'Servitor';
$labels['login'] = 'Apertura de session';
+
+// taskbar
$labels['logout'] = 'Clauder session';
$labels['mail'] = 'E-posta';
$labels['settings'] = 'Configurationes';
$labels['addressbook'] = 'Adressario';
+
+// mailbox names
$labels['inbox'] = 'Cassa de entrata';
+$labels['drafts'] = 'Drafts';
$labels['sent'] = 'Inviate';
+$labels['trash'] = 'Trash';
+$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Subjecto';
$labels['from'] = 'Ex';
$labels['sender'] = 'Expeditor';
@@ -33,21 +46,34 @@ $labels['to'] = 'A';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Responder a';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Data';
$labels['size'] = 'Dimension';
$labels['priority'] = 'Prioritate';
$labels['organization'] = 'Organisation';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Dossieres';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Message $nr de $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover a';
$labels['download'] = 'Discargar';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Monstrar';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Nomine de file';
$labels['filesize'] = 'Dimension del file';
+
$labels['addtoaddressbook'] = 'Adder al adressario';
+
+// weekdays short
$labels['sun'] = 'dom';
$labels['mon'] = 'lun';
$labels['tue'] = 'mar';
@@ -55,6 +81,8 @@ $labels['wed'] = 'mer';
$labels['thu'] = 'jov';
$labels['fri'] = 'ven';
$labels['sat'] = 'sab';
+
+// weekdays long
$labels['sunday'] = 'Dominica';
$labels['monday'] = 'Lunedi';
$labels['tuesday'] = 'Martedi';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'Mercuridi';
$labels['thursday'] = 'Jovedi';
$labels['friday'] = 'Venerdi';
$labels['saturday'] = 'Sabbato';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -74,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'januario';
$labels['longfeb'] = 'Februario';
$labels['longmar'] = 'Martio';
@@ -86,78 +118,166 @@ $labels['longsep'] = 'Septembre';
$labels['longoct'] = 'Octobre';
$labels['longnov'] = 'Novembre';
$labels['longdec'] = 'Decembre';
+
$labels['today'] = 'Hodie';
+
+// toolbar buttons
$labels['refresh'] = 'Refrescar';
$labels['checkmail'] = 'Verificar nove messages';
$labels['compose'] = 'Componer';
$labels['writenewmessage'] = 'Crear un nove message';
$labels['reply'] = 'Responder';
+$labels['replytomessage'] = 'Reply to sender';
+$labels['replytoallmessage'] = 'Reply to list or to sender and all recipients';
$labels['replyall'] = 'Responder a totes';
$labels['replylist'] = 'Responder a lista';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
+$labels['forwardmessage'] = 'Forward the message';
$labels['deletemessage'] = 'Deler messsage';
+$labels['movemessagetotrash'] = 'Move message to trash';
$labels['printmessage'] = 'Imprimer iste 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'] = 'Monstrar fonte';
$labels['mark'] = 'Marcar';
$labels['markmessages'] = 'Marcar messages';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
$labels['more'] = 'Plus';
$labels['back'] = 'Retornar';
$labels['options'] = 'Optiones';
+
$labels['select'] = 'Seliger';
$labels['all'] = 'Totes';
$labels['none'] = 'Necun';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Non legite';
$labels['flagged'] = 'Marcate';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Delete';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Inverter';
$labels['filter'] = 'Filtro';
$labels['list'] = 'Lista';
$labels['threads'] = 'Topicos';
+$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'] = 'Marcar';
$labels['attachment'] = 'Attachamento';
$labels['nonesort'] = 'Necun';
+$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'] = 'Actiones de dossier...';
$labels['compact'] = 'Compacte';
$labels['empty'] = 'Vacue';
+
+$labels['quota'] = 'Disk usage';
$labels['unknown'] = 'incognite';
+$labels['unlimited'] = 'unlimited';
+
$labels['quicksearch'] = 'Cerca rapide';
$labels['resetsearch'] = 'Reinitialisar cerca';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Message complete';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Aperir in nove fenestra';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Modificar como nove';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Inviar message';
$labels['savemessage'] = 'Salveguardar como version provisori';
$labels['addattachment'] = 'Attachar un file';
$labels['charset'] = 'Insimul de Characteres';
$labels['editortype'] = 'Typo de editor';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'Message original';
+
$labels['editidents'] = 'Modificar identitates';
$labels['spellcheck'] = 'Orthographia';
$labels['checkspelling'] = 'Verificar orthographia';
+$labels['resumeediting'] = 'Resume editing';
+$labels['revertto'] = 'Revert to';
+
$labels['attach'] = 'Attachar';
$labels['attachments'] = 'Attachamentos';
$labels['upload'] = 'Incargar';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Clauder';
$labels['messageoptions'] = 'Optiones de message...';
+
$labels['low'] = 'Basse';
$labels['lowest'] = 'Minimal';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alte';
$labels['highest'] = 'Maximal';
+
$labels['nosubject'] = '(sin subjecto)';
$labels['showimages'] = 'Monstrar imagines';
+$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'] = 'Texto plan';
$labels['savesentmessagein'] = 'Salveguardar message inviate in';
$labels['dontsave'] = 'non salveguardar';
$labels['maxuploadsize'] = 'Le dimension maximal de iste file es $size';
+
$labels['addcc'] = 'Adder Cc';
$labels['addbcc'] = 'Adder Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
$labels['name'] = 'Monstrar nomine';
$labels['firstname'] = 'Nomine';
$labels['surname'] = 'Nomine de familia';
+$labels['middlename'] = 'Middle Name';
$labels['nameprefix'] = 'Prefixo';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'Pseudonymo';
+$labels['jobtitle'] = 'Job Title';
$labels['department'] = 'Departimento';
$labels['gender'] = 'Sexo:';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'E-posta';
$labels['phone'] = 'Telephono';
$labels['address'] = 'Adresse';
@@ -181,6 +301,7 @@ $labels['search'] = 'Cercar';
$labels['advsearch'] = 'Cerca avantiate';
$labels['advanced'] = 'Avantiate';
$labels['other'] = 'Altere';
+
$labels['typehome'] = 'Domo';
$labels['typework'] = 'Labor';
$labels['typeother'] = 'Altere';
@@ -188,18 +309,21 @@ $labels['typemobile'] = 'Mobile';
$labels['typemain'] = 'Principal';
$labels['typehomefax'] = 'Fax de domo';
$labels['typeworkfax'] = 'Fax de labor';
+$labels['typecar'] = 'Car';
$labels['typepager'] = 'Pager';
$labels['typevideo'] = 'Video';
$labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Pagina principal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profilo';
+
$labels['addfield'] = 'Adder campo...';
$labels['addcontact'] = 'Adder nove contacto';
$labels['editcontact'] = 'Modificar contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Proprietates de contacto';
$labels['personalinfo'] = 'Information personal';
+
$labels['edit'] = 'Modificar';
$labels['cancel'] = 'Cancellar';
$labels['save'] = 'Salveguardar';
@@ -207,60 +331,151 @@ $labels['delete'] = 'Deler';
$labels['rename'] = 'Renominar';
$labels['addphoto'] = 'Adder';
$labels['replacephoto'] = 'Reimplaciar';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Crear un nove carta de contacto';
$labels['deletecontact'] = 'Deler contactos seligite';
+$labels['composeto'] = 'Compose mail to';
+$labels['contactsfromto'] = 'Contacts $from to $to of $count';
$labels['print'] = 'Imprimer';
$labels['export'] = 'Exportar';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
$labels['newcontactgroup'] = 'Crear un nove gruppo de contacto';
$labels['grouprename'] = 'Renominar gruppo';
$labels['groupdelete'] = 'Deler gruppo';
+$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'] = 'Gruppo';
$labels['groups'] = 'Gruppos';
$labels['personaladrbook'] = 'Adresses personal';
+
$labels['searchsave'] = 'Salveguardar cerca';
$labels['searchdelete'] = 'Deler cerca';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contactos';
$labels['importfromfile'] = 'Importar ex file:';
+$labels['importtarget'] = 'Adder nove contactos al adressario';
+$labels['importreplace'] = 'Replace the entire address book';
+$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'] = 'Facite';
+
+// settings
$labels['settingsfor'] = 'Configurationes pro';
$labels['about'] = 'A proposito';
$labels['preferences'] = 'Preferentias';
$labels['userpreferences'] = 'Preferentias de usator';
$labels['editpreferences'] = 'Modificar preferentias de usator';
+
$labels['identities'] = 'Identitates';
+$labels['manageidentities'] = 'Manage identities for this account';
$labels['newidentity'] = 'Nove identitate';
+
$labels['newitem'] = 'Nove elemento';
$labels['edititem'] = 'Modificar elemento';
+
$labels['preferhtml'] = 'Monstrar HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Message HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Formato de data';
$labels['timeformat'] = 'Formato de tempore';
+$labels['prettydate'] = 'Pretty dates';
$labels['setdefault'] = 'Fixar predeterminate';
$labels['autodetect'] = 'Auto';
$labels['language'] = 'Lingua';
$labels['timezone'] = 'Fuso horari';
+$labels['pagesize'] = 'Rows per page';
$labels['signature'] = 'Signatura';
+$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'] = 'Signatura HTML';
+$labels['showemail'] = 'Show email address with display name';
+$labels['previewpane'] = 'Show preview pane';
$labels['skin'] = 'Apparentia de interfacie';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
$labels['uisettings'] = 'Interfacie de usator';
$labels['serversettings'] = 'Configurationes de servitor';
+$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'] = 'ignorar';
+$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'] = 'sempre';
+$labels['showinlineimages'] = 'Display attached images below the message';
+$labels['autosavedraft'] = 'Automatically save draft';
$labels['everynminutes'] = 'cata $n minuta(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nunquam';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'Inviar me_ssages';
+$labels['messagescomposition'] = 'Composing Messages';
$labels['mimeparamfolding'] = 'Nomines de attachamento';
+$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'] = 'Optiones avantiate';
+$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'] = 'Optiones principal';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Section';
$labels['maintenance'] = 'Mantenimento';
$labels['newmessage'] = 'Nove message';
$labels['signatureoptions'] = 'Optiones de signatura';
+$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'] = 'Automaticamente inserta signatura';
+$labels['newmessageonly'] = 'new message only';
+$labels['replyandforwardonly'] = 'replies and forwards only';
$labels['insertsignature'] = 'Insertar signatura';
+$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'] = 'Optiones de verification orthographic';
+$labels['spellcheckignoresyms'] = 'Ignore words with symbols';
+$labels['spellcheckignorenums'] = 'Ignore words with numbers';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'Adder al dictionario';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Dossier';
$labels['folders'] = 'Dossieres';
$labels['foldername'] = 'Nomine de dossier';
@@ -269,20 +484,55 @@ $labels['messagecount'] = 'Messages';
$labels['create'] = 'Crear';
$labels['createfolder'] = 'Crear un nove dossier';
$labels['managefolders'] = 'Gerer le dossieres';
+$labels['specialfolders'] = 'Special Folders';
$labels['properties'] = 'Proprietates';
$labels['folderproperties'] = 'Proprietates de dossier';
+$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'] = 'Typo de dossier';
$labels['personalfolder'] = 'Dossier private';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'Dossier public';
+
$labels['sortby'] = 'Ordinar per';
+$labels['sortasc'] = 'Sort ascending';
+$labels['sortdesc'] = 'Sort descending';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licentia';
$labels['support'] = 'Obtener supporte';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Anglese';
+$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'] = 'Japonese';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinese';
+
?>
diff --git a/program/localization/ia/messages.inc b/program/localization/ia/messages.inc
index 50ef68145..ebc6953d2 100644
--- a/program/localization/ia/messages.inc
+++ b/program/localization/ia/messages.inc
@@ -15,27 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Initio de session fallite';
+$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'] = 'Error de servitor!';
+$messages['servererrormsg'] = 'Server Error: $msg';
$messages['dberror'] = 'Error de base de datos!';
+$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'] = 'Cargante ...';
+$messages['uploading'] = 'Uploading file...';
$messages['uploadingmany'] = 'Incargante files...';
$messages['loadingdata'] = 'Cargante datos...';
+$messages['checkingmail'] = 'Checking for new messages...';
$messages['sendingmessage'] = 'Inviante message...';
+$messages['messagesent'] = 'Message sent successfully.';
+$messages['savingmessage'] = 'Saving message...';
+$messages['messagesaved'] = 'Message saved to Drafts.';
$messages['successfullysaved'] = 'Salveguardate con successo.';
+$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'] = 'Nulle contactos trovate.';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Falleva in inviar le message.';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'An error occured while saving.';
$messages['errormoving'] = 'Non pote mover le message(s)';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Il non pote deler le 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'] = 'Per favor inserta nomine.';
+$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['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 trovate.';
$messages['contactsearchsuccessful'] = '$nr contactos trovate.';
+$messages['searchnomatch'] = 'Search returned no matches.';
$messages['searching'] = 'Cercante...';
$messages['checking'] = 'A verificar...';
+$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'] = 'Delete con successo.';
+$messages['converting'] = 'Removing formatting...';
+$messages['messageopenerror'] = 'Could not load message from server.';
$messages['fileuploaderror'] = 'Incargamento de file falleva.';
+$messages['filesizeerror'] = 'The uploaded file exceeds the maximum size of $size.';
+$messages['copysuccess'] = 'Successfully copied $nr addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['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['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'] = 'Per favor tu selige le file a incargar.';
+$messages['addresswriterror'] = 'The selected address book is not writeable.';
+$messages['contactaddedtogroup'] = 'Successfully added the contacts to this group.';
+$messages['contactremovedfromgroup'] = 'Successfully removed contacts from this group.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
+$messages['importwait'] = 'Importing, please wait...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Adresse de e-mail invalide: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'Le nomine non pote esser vacue.';
$messages['nametoolong'] = 'Le nomine es troppo longe.';
+$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/id_ID/labels.inc b/program/localization/id_ID/labels.inc
index 581428aab..eea3132cd 100644
--- a/program/localization/id_ID/labels.inc
+++ b/program/localization/id_ID/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Selamat datang di $product';
$labels['username'] = 'Username';
$labels['password'] = 'Password';
$labels['server'] = 'Server';
$labels['login'] = 'Masuk';
+
+// taskbar
$labels['logout'] = 'Keluar';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Pengaturan';
$labels['addressbook'] = 'Buku Alamat';
+
+// mailbox names
$labels['inbox'] = 'Kotak Masuk';
-$labels['drafts'] = 'Konsep';
+$labels['drafts'] = 'Daftar tunggu';
$labels['sent'] = 'Terkirim';
$labels['trash'] = 'Surat Terhapus';
$labels['junk'] = 'Sampah';
-$labels['show_real_foldernames'] = 'Tampilkan nama asli untuk folder spesial';
+
+// message listing
$labels['subject'] = 'Judul';
$labels['from'] = 'Pengirim';
$labels['sender'] = 'Pengirim';
@@ -44,21 +53,27 @@ $labels['priority'] = 'Prioritas';
$labels['organization'] = 'Organisasi';
$labels['readstatus'] = 'Status Terbaca';
$labels['listoptions'] = 'Daftar Pilihan...';
+
$labels['mailboxlist'] = 'Semua Folder';
$labels['messagesfromto'] = 'Pesan dari $from sampai $to dari total $count';
$labels['threadsfromto'] = 'Untaian dari $from sampai $to dari total $count';
$labels['messagenrof'] = 'Pesan $nr dari total $count';
$labels['fromtoshort'] = '$from - $to dari total $count';
+
$labels['copy'] = 'Salin';
$labels['move'] = 'Pindahkan';
$labels['moveto'] = 'Pindahkan ke...';
$labels['download'] = 'Unduh';
-$labels['open'] = 'Buka';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Tampilkan';
$labels['showanyway'] = 'Tampilkan saja';
+
$labels['filename'] = 'Nama berkas';
$labels['filesize'] = 'Ukuran berkas';
+
$labels['addtoaddressbook'] = 'Tambah ke buku alamat';
+
+// weekdays short
$labels['sun'] = 'Min';
$labels['mon'] = 'Sen';
$labels['tue'] = 'Sel';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Rab';
$labels['thu'] = 'Kam';
$labels['fri'] = 'Jum';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Minggu';
$labels['monday'] = 'Senin';
$labels['tuesday'] = 'Selasa';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Rabu';
$labels['thursday'] = 'Kamis';
$labels['friday'] = 'Jumat';
$labels['saturday'] = 'Sabtu';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Des';
+
+// months long
$labels['longjan'] = 'Januari';
$labels['longfeb'] = 'Februari';
$labels['longmar'] = 'Maret';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Spetember';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Desember';
+
$labels['today'] = 'Hari ini';
+
+// toolbar buttons
$labels['refresh'] = 'Segarkan';
$labels['checkmail'] = 'Periksa pesan baru';
$labels['compose'] = 'Tulis sebuah pesan';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Tindakan lain..';
$labels['more'] = 'Berikutnya';
$labels['back'] = 'Kembali';
$labels['options'] = 'Pilihan';
+
$labels['select'] = 'Pilih';
$labels['all'] = 'Semua';
$labels['none'] = 'Tidak ada';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Halaman sekarang';
$labels['unread'] = 'Belum terbaca';
$labels['flagged'] = 'Ditandai';
$labels['unanswered'] = 'Belum terjawab';
-$labels['withattachment'] = 'Dengan lampiran';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Terhapus';
$labels['undeleted'] = 'Tidak terhapus';
$labels['invert'] = 'Sebaliknya';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Bentangkan Semua';
$labels['expand-unread'] = 'Bentangkan yang Belum Terbaca';
$labels['collapse-all'] = 'Lipat Semua';
$labels['threaded'] = 'Teruntai';
+
$labels['autoexpand_threads'] = 'Bentangkan pesan teruntai';
$labels['do_expand'] = 'semua untaian';
$labels['expand_only_unread'] = 'hanya pesan yang belum terbaca';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Perlihatkan kolom';
$labels['listsorting'] = 'Mengurutkan kolom';
$labels['listorder'] = 'Mengurutkan susunan';
$labels['listmode'] = 'Perlihatkan mode tinjauan';
+
$labels['folderactions'] = 'Tindakan pada folder...';
$labels['compact'] = 'Rampingkan';
$labels['empty'] = 'Kosong';
-$labels['importmessages'] = 'Impor pesan';
+
$labels['quota'] = 'Penggunaan ruang';
$labels['unknown'] = 'Tidak dikenal';
$labels['unlimited'] = 'Tidak terbatas';
+
$labels['quicksearch'] = 'Pencarian cepat';
$labels['resetsearch'] = 'Atur ulang pencarian';
$labels['searchmod'] = 'Peubah pencarian';
$labels['msgtext'] = 'Seluruh pesan';
$labels['body'] = 'Badan';
-$labels['type'] = 'Tipe';
-$labels['namex'] = 'Nama';
+
$labels['openinextwin'] = 'Buka dalam jendela baru';
$labels['emlsave'] = 'Unduh (.eml)';
-$labels['changeformattext'] = 'Tampilkan dalam format text biasa';
-$labels['changeformathtml'] = 'Tampilkan dalam format HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Sunting sebagai pesan baru';
$labels['send'] = 'Kirim';
$labels['sendmessage'] = 'Kirim pesan';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Tanda terima kembali';
$labels['dsn'] = 'Pemberitahuan status terkirim';
$labels['mailreplyintro'] = 'Pada $date, $sender menulis:';
$labels['originalmessage'] = 'Pesan Asli';
+
$labels['editidents'] = 'Ubah identitas';
$labels['spellcheck'] = 'Ejaan';
$labels['checkspelling'] = 'Pemeriksaan ejaan';
$labels['resumeediting'] = 'Lanjutkan menyunting';
$labels['revertto'] = 'Kembalikan ke';
+
$labels['attach'] = 'Lampirkan';
$labels['attachments'] = 'Sisipan';
$labels['upload'] = 'Unggah';
$labels['uploadprogress'] = '$percent ($current dari $total)';
$labels['close'] = 'Tutup';
$labels['messageoptions'] = 'Pilihan pesan...';
+
$labels['low'] = 'Rendah';
$labels['lowest'] = 'Paling Rendah';
$labels['normal'] = 'Normal';
$labels['high'] = 'Tinggi';
$labels['highest'] = 'Paling tinggi';
+
$labels['nosubject'] = '(tanpa judul)';
$labels['showimages'] = 'Tampilkan gambar';
$labels['alwaysshow'] = 'Selalu tampilkan gambar dari $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Ini adalah konsep surat.';
$labels['andnmore'] = '$nr lagi...';
$labels['togglemoreheaders'] = 'Tampilkan kepala pesan lebih lanjut';
$labels['togglefullheaders'] = 'Beralih kepala pesan penuh';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Teks murni';
$labels['savesentmessagein'] = 'Simpan pesan terkirim di';
$labels['dontsave'] = 'Jangan disimpan';
$labels['maxuploadsize'] = 'Ukuran file maksimal adalah $size';
+
$labels['addcc'] = 'Tambah Cc';
$labels['addbcc'] = 'Tambah Bcc';
$labels['addreplyto'] = 'Tambah Balas Ke';
$labels['addfollowupto'] = 'Tambahkan Tindak-Lanjut-Ke';
+
+// mdn
$labels['mdnrequest'] = 'Pengirim pesan ini telah meminta untuk diberitahu ketika Anda membaca pesan ini. Apakah anda ingin memberitahu pengirim?';
$labels['receiptread'] = 'Tanda Terima (baca)';
$labels['yourmessage'] = 'Ini adalah Tanda Terima untuk pesan Anda';
$labels['receiptnote'] = 'Catatan: Tanda Terima ini hanya mengesahkan bahwa pesan telah diperlihatkan pada komputer penerima. Tidak ada jaminan bahwa penerima telah membaca atau mengerti isi pesan.';
+
+// address boook
$labels['name'] = 'Nama yang ditampilkan';
$labels['firstname'] = 'Nama depan';
$labels['surname'] = 'Nama belakang';
@@ -262,6 +301,7 @@ $labels['search'] = 'Cari';
$labels['advsearch'] = 'Pencarian Lebih Lanjut';
$labels['advanced'] = 'Tingkat lanjut';
$labels['other'] = 'Lainnya';
+
$labels['typehome'] = 'Rumah';
$labels['typework'] = 'Kantor';
$labels['typeother'] = 'Lainnya';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Asisten';
$labels['typehomepage'] = 'Laman Web';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Tambah kolom isian';
$labels['addcontact'] = 'Tambah kontak baru';
$labels['editcontact'] = 'Ubah kontak';
$labels['contacts'] = 'Daftar kontak';
$labels['contactproperties'] = 'Properti kontak';
$labels['personalinfo'] = 'Informasi pribadi';
+
$labels['edit'] = 'Ubah';
$labels['cancel'] = 'Batal';
$labels['save'] = 'Simpan';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Ganti nama';
$labels['addphoto'] = 'Tambah';
$labels['replacephoto'] = 'Ganti';
$labels['uploadphoto'] = 'Unggah foto';
+
$labels['newcontact'] = 'Buat kartu kontak baru';
$labels['deletecontact'] = 'Hapus kontak terpilih';
$labels['composeto'] = 'Tulis surat kepada';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'Buat Grup baru';
$labels['grouprename'] = 'Ganti nama grup';
$labels['groupdelete'] = 'Hapus grup';
$labels['groupremoveselected'] = 'Hapus kontak terpilih dari grup';
+
$labels['previouspage'] = 'Perlihatkan himpunan sebelumnya';
$labels['firstpage'] = 'Perlihatkan himpunan pertama';
$labels['nextpage'] = 'Perlihatkan himpunan selanjutnya';
$labels['lastpage'] = 'Perlihatkan himpunan terakhir';
+
$labels['group'] = 'Kelompok';
$labels['groups'] = 'Kelompok';
-$labels['listgroup'] = 'Daftar anggota grup';
$labels['personaladrbook'] = 'Alamat pribadi';
+
$labels['searchsave'] = 'Simpan pencarian';
$labels['searchdelete'] = 'Hapus pencarian';
+
$labels['import'] = 'Impor';
$labels['importcontacts'] = 'Impor kontak';
$labels['importfromfile'] = 'Impor dari berkas:';
+$labels['importtarget'] = 'Tambahkan kontak baru ke buku alamat:';
$labels['importreplace'] = 'Ganti seluruh buku alamat';
$labels['importdesc'] = 'Anda dapat mengunggah kontak dari buku alamat yang telah ada.<br/>Saat ini kami mendukung import alamat dari format data <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> atau CSV (comma-separated).';
$labels['done'] = 'Selesai';
+
+// settings
$labels['settingsfor'] = 'Pengaturan untuk';
$labels['about'] = 'Informasi program';
$labels['preferences'] = 'Pilihan';
$labels['userpreferences'] = 'Pilihan pengguna';
$labels['editpreferences'] = 'Ubah pilihan pengguna';
+
$labels['identities'] = 'Identitas';
$labels['manageidentities'] = 'Atur identitas untuk akun ini';
$labels['newidentity'] = 'Identitas baru';
+
$labels['newitem'] = 'Item baru';
$labels['edititem'] = 'Ubah item';
+
$labels['preferhtml'] = 'Lebih suka HTML';
$labels['defaultcharset'] = 'Default Character';
$labels['htmlmessage'] = 'Pesan HTML';
@@ -350,7 +402,7 @@ $labels['htmleditor'] = 'Tulis pesan HTML';
$labels['htmlonreply'] = 'balasan untuk pesan HTML saja';
$labels['htmlonreplyandforward'] = 'ketika meneruskan atau membalas pesan HTML';
$labels['htmlsignature'] = 'Tandatangan HTML';
-$labels['showemail'] = 'Tampilkan alamat email dengan nama';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Unjuk pratinjau';
$labels['skin'] = 'Tampilan antarmuka';
$labels['logoutclear'] = 'Bersihkan Tong Sampah saat keluar';
@@ -373,7 +425,7 @@ $labels['showremoteimages'] = 'Tampilkan remote inline images';
$labels['fromknownsenders'] = 'dari pengirim yang dikenal';
$labels['always'] = 'selalu';
$labels['showinlineimages'] = 'Tampilkan gambar terlampir dibawah pesan';
-$labels['autosavedraft'] = 'Otomatis menyimpan konsep';
+$labels['autosavedraft'] = 'Otomatis menyimpan pesan tertunda';
$labels['everynminutes'] = 'setiap $n menit';
$labels['refreshinterval'] = 'Refresh (memeriksa pesan baru, dsb)';
$labels['never'] = 'tidak pernah';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Abaikan kata-kata yang bernomor';
$labels['spellcheckignorecaps'] = 'Abaikan kata-kata dengan huruf besar semua';
$labels['addtodict'] = 'Tambahkan ke kamus';
$labels['mailtoprotohandler'] = 'Daftarkan pengampu protokol untuk link mailto:';
-$labels['standardwindows'] = 'Kelola popup sebagai standar window';
$labels['forwardmode'] = 'Meneruskan pesan';
$labels['inline'] = 'dalam surat';
$labels['asattachment'] = 'sebagai sisipan';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Semua Folder';
$labels['foldername'] = 'Nama folder';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'Jenis folder';
$labels['personalfolder'] = 'Folder pribadi';
$labels['otherfolder'] = 'Folder pengguna lain';
$labels['sharedfolder'] = 'Folder publik';
+
$labels['sortby'] = 'Urut berdasarkan';
$labels['sortasc'] = 'Urut menaik';
$labels['sortdesc'] = 'Urut menurun';
$labels['undo'] = 'Batalkan';
+
$labels['installedplugins'] = 'Plugin terpasang';
$labels['plugin'] = 'Pengaya';
$labels['version'] = 'Versi';
$labels['source'] = 'Sumber';
$labels['license'] = 'Lisensi';
$labels['support'] = 'Dukungan';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inggris';
$labels['westerneuropean'] = 'Eropa Barat';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'Vietnam';
$labels['japanese'] = 'Jepang';
$labels['korean'] = 'Korea';
$labels['chinese'] = 'Cina';
+
?>
diff --git a/program/localization/id_ID/messages.inc b/program/localization/id_ID/messages.inc
index 020b03f8a..04d8242ad 100644
--- a/program/localization/id_ID/messages.inc
+++ b/program/localization/id_ID/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Terjadi error!';
$messages['loginfailed'] = 'Login gagal.';
$messages['cookiesdisabled'] = 'Browser Anda tidak menerima cookies.';
@@ -42,7 +44,7 @@ $messages['checkingmail'] = 'Memeriksa pesan baru...';
$messages['sendingmessage'] = 'Mengirim pesan...';
$messages['messagesent'] = 'Pesan berhasil dikirim.';
$messages['savingmessage'] = 'Menyimpan pesan...';
-$messages['messagesaved'] = 'Pesan tersimpan kedalam Konsep';
+$messages['messagesaved'] = 'Menyimpan pesan ke daftar tunggu';
$messages['successfullysaved'] = 'Berhasil disimpan';
$messages['addedsuccessfully'] = 'Kontak berhasil ditambahkan ke buku alamat';
$messages['contactexists'] = 'Kontak dengan alamat e-mail ini sudah ada.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Kontak yang diminta tidak ditemukan';
$messages['contactsearchonly'] = 'Masukkan jenis pencarian untuk mencari kontak';
$messages['sendingfailed'] = 'Gagal mengirim pesan.';
$messages['senttooquickly'] = 'Mohon tunggu $sec detik sebelum mengirim pesan ini.';
+$messages['errorsavingsent'] = 'Error ketika menyimpan pesan terkirim.';
+$messages['errorsaving'] = 'Error ketika menyimpan.';
$messages['errormoving'] = 'Pesan tidak bisa dipindahkan';
$messages['errorcopying'] = 'Pesan tidak dapat disalin';
$messages['errordeleting'] = 'Pesan tidak bisa dihapus';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Mengembalikan pesan ke format awal...';
$messages['messageopenerror'] = 'Tidak dapat mengambil pesan dari server';
$messages['fileuploaderror'] = 'Gagal mengunggah berkas';
$messages['filesizeerror'] = 'Berkas terunggah mencapai ukuran maksimal dari $size';
-$messages['copysuccess'] = 'Berhasil menyalin kontak $nr';
-$messages['movesuccess'] = 'Berhasil memindahkan kontak $nr';
-$messages['copyerror'] = 'Tidak dapat menyalin kontak';
-$messages['moveerror'] = 'Tidak dapat memindahkan kontak';
+$messages['copysuccess'] = 'Berhasil menyalin $nr alamat';
+$messages['copyerror'] = 'Tidak bisa menyalin alamat manapun';
$messages['sourceisreadonly'] = 'Sumber dari alamat ini hanya dapat dibaca';
$messages['errorsavingcontact'] = 'Tidak bisa menyimpan alamat kontak';
$messages['movingmessage'] = 'Memindahkan pesan...';
$messages['copyingmessage'] = 'Menyalin pesan...';
$messages['copyingcontact'] = 'Menyalin kontak...';
-$messages['movingcontact'] = 'Memindahkan kontak(s)...';
$messages['deletingmessage'] = 'Menghapus pesan...';
$messages['markingmessage'] = 'Menandai Pesan...';
$messages['addingmember'] = 'Menambahkan kontak ke grup...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Sedang mengimpor, harap menunggu...';
$messages['importformaterror'] = 'Proses import gagal. File yang di upload bukan file import yang valid.';
$messages['importconfirm'] = '<b>Berhasil mengimpor $inserted kontak</b>';
$messages['importconfirmskipped'] = '<b>$skipped entri yang sudah ada dilewatkan</b>';
-$messages['importmessagesuccess'] = 'Berhasil mengimport $nr pesan';
-$messages['importmessageerror'] = 'Gagal mengimport! File yang di upload buka pesan yang valid atau file mailbox';
$messages['opnotpermitted'] = 'Operasi tidak diperbolehkan!';
$messages['nofromaddress'] = 'kekurangan alamat e-mail pada identitas terpilih';
$messages['editorwarning'] = 'Beralih pada editor teks murni akan mengakibatkan semua pemformatan teks hilang. Lanjutkan?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error : $msg';
$messages['emailformaterror'] = 'Alamat e-mail salah: $email';
$messages['toomanyrecipients'] = 'Terlalu banyak penerima. Batas maksimal penerima adalah $max';
$messages['maxgroupmembersreached'] = 'Jumlah grup melebihi jumlah maksimum $max';
+$messages['internalerror'] = 'Terjadi kesalahan internal. Silahkan diulang kembali';
$messages['contactdelerror'] = 'Kontak tidak bisa dihapus';
$messages['contactdeleted'] = 'Kontak berhasil dihapus';
$messages['contactrestoreerror'] = 'Tidak bisa mengembalikan kontak yang terhapus.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Tidak bisa membuat/memindahkan map ke map indu
$messages['messagetoobig'] = 'Pesan terlalu besar untuk diproses.';
$messages['attachmentvalidationerror'] = 'PERINGATAN! Lampiran ini mencurigakan karena jenisnya tidak cocok dengan jenis yang dinyatakan di dalam pesan. Jika Anda tidak mempercayai pengirim, Anda tidak perlu membukanya di browser karena mungkin berisi konten berbahaya.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Peringatan: Layanan ini membutuhkan Javascript! Untuk menggunakannya silahkan aktifkan Javascript di pengaturan browser Anda.';
+
?>
diff --git a/program/localization/index.inc b/program/localization/index.inc
index 616999514..bfb770cac 100644
--- a/program/localization/index.inc
+++ b/program/localization/index.inc
@@ -70,7 +70,6 @@ $rcube_languages = array(
'ku' => 'Kurdish (Kurmancî)',
'lv_LV' => 'Latvian (Latviešu)',
'lt_LT' => 'Lithuanian (Lietuviškai)',
- 'lb_LU' => 'Luxembourgish (Lëtzebuergesch)',
'mk_MK' => 'Macedonian (МакедонÑки)',
'ms_MY' => 'Malay (Bahasa Melayu)',
'ml_IN' => 'Malayalam (മലയാളം)',
@@ -96,7 +95,6 @@ $rcube_languages = array(
'th_TH' => 'Thai (ไทย)',
'tr_TR' => 'Turkish (Türkçe)',
'uk_UA' => 'Ukrainian (УкраїнÑька)',
- 'ur_PK' => 'Urdu (اÙردو)',
'vi_VN' => 'Vietnamese (Tiếng Việt)',
'cy_GB' => 'Welsh (Cymraeg)',
'fy_NL' => 'West Frisian (Frysk)',
@@ -135,7 +133,6 @@ $rcube_language_aliases = array(
'kh' => 'km_KH',
'kh_KH' => 'km_KH',
'km' => 'km_KH',
- 'lb' => 'lb_LU',
'ne' => 'ne_NP',
'no' => 'nn_NO',
'ms' => 'ms_MY',
diff --git a/program/localization/is_IS/labels.inc b/program/localization/is_IS/labels.inc
index 8b90730f7..80443dd3a 100644
--- a/program/localization/is_IS/labels.inc
+++ b/program/localization/is_IS/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkomin í $product';
$labels['username'] = 'Netfang';
$labels['password'] = 'Lykilorð';
$labels['server'] = 'Póstþjónn';
$labels['login'] = 'Innskrá';
+
+// taskbar
$labels['logout'] = 'Útskrá';
$labels['mail'] = 'Tölvupóstur';
$labels['settings'] = 'Stillingar';
$labels['addressbook'] = 'Nafnaskrá';
+
+// mailbox names
$labels['inbox'] = 'Innhólf';
$labels['drafts'] = 'Drög';
$labels['sent'] = 'Sent';
$labels['trash'] = 'Rusl';
$labels['junk'] = 'Ruslpóstur';
+
+// message listing
$labels['subject'] = 'Titill';
$labels['from'] = 'Frá';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Til';
$labels['cc'] = 'Afrit';
$labels['bcc'] = 'Blint afrit';
@@ -41,18 +52,28 @@ $labels['size'] = 'Stærð';
$labels['priority'] = 'Forgangur';
$labels['organization'] = 'Stofnun';
$labels['readstatus'] = 'Lesmerking';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Möppur';
$labels['messagesfromto'] = 'Skeyti $from til $to af $count';
$labels['threadsfromto'] = 'Þræðir $from til $to af $count';
$labels['messagenrof'] = 'Skeyti $nr af $count';
$labels['fromtoshort'] = '$from - $to af $count';
+
$labels['copy'] = 'Afrit';
$labels['move'] = 'Færa';
$labels['moveto'] = 'Færa í...';
$labels['download'] = 'Hlaða niður';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Skráarheiti';
$labels['filesize'] = 'Skráarstærð';
+
$labels['addtoaddressbook'] = 'Bæta í nafnaskrá';
+
+// weekdays short
$labels['sun'] = 'sunn.';
$labels['mon'] = 'mán.';
$labels['tue'] = 'þrið.';
@@ -60,6 +81,8 @@ $labels['wed'] = 'miðv.';
$labels['thu'] = 'fimm.';
$labels['fri'] = 'föst.';
$labels['sat'] = 'laug.';
+
+// weekdays long
$labels['sunday'] = 'sunnudagur';
$labels['monday'] = 'mánudagur';
$labels['tuesday'] = 'þriðjudagur';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'miðvikudagur';
$labels['thursday'] = 'fimmtudagur';
$labels['friday'] = 'föstudagur';
$labels['saturday'] = 'laugardagur';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -79,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nóv';
$labels['dec'] = 'des';
+
+// months long
$labels['longjan'] = 'janúar';
$labels['longfeb'] = 'febrúar';
$labels['longmar'] = 'mars';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'október';
$labels['longnov'] = 'nóvember';
$labels['longdec'] = 'desember';
+
$labels['today'] = 'Ã dag';
+
+// toolbar buttons
$labels['refresh'] = 'Endurhlaða';
$labels['checkmail'] = 'Gá að nýjum skeytum';
$labels['compose'] = 'Semja skeyti';
@@ -124,6 +154,7 @@ $labels['moreactions'] = 'Fleiri aðgerðir...';
$labels['more'] = 'Meira';
$labels['back'] = 'Til baka';
$labels['options'] = 'Valkostir';
+
$labels['select'] = 'Velja';
$labels['all'] = 'Allt';
$labels['none'] = 'Ekkert';
@@ -131,7 +162,9 @@ $labels['currpage'] = 'Núverandi síða';
$labels['unread'] = 'Ólesið';
$labels['flagged'] = 'Flaggað';
$labels['unanswered'] = 'Ósvarað';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Eytt';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Umhverfa';
$labels['filter'] = 'Sía';
$labels['list'] = 'Listi';
@@ -140,6 +173,7 @@ $labels['expand-all'] = 'Þenja allt út';
$labels['expand-unread'] = 'Þenja ólesið';
$labels['collapse-all'] = 'Fella allt saman';
$labels['threaded'] = 'Þrætt';
+
$labels['autoexpand_threads'] = 'Þenja skeytaþræði út';
$labels['do_expand'] = 'allir þræðir';
$labels['expand_only_unread'] = 'aðeins ólesin skeyti';
@@ -155,19 +189,29 @@ $labels['listcolumns'] = 'Listadálkar';
$labels['listsorting'] = 'Röðunardálkur';
$labels['listorder'] = 'Röðun';
$labels['listmode'] = 'Listayfirlit';
+
$labels['folderactions'] = 'Möppuaðgerðir...';
$labels['compact'] = 'Pakka';
$labels['empty'] = 'Tæma';
+
$labels['quota'] = 'Gagnamagn';
$labels['unknown'] = 'óþekkt';
$labels['unlimited'] = 'ótakmarkað';
+
$labels['quicksearch'] = 'Flýtileit';
$labels['resetsearch'] = 'Tæma leit';
$labels['searchmod'] = 'Leitarskilyrði';
$labels['msgtext'] = 'Allt skeytið';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Opna í nýjum glugga';
$labels['emlsave'] = 'Niðurhlaða (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Breyta sem nýju';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Senda skeytið núna';
$labels['savemessage'] = 'Vista drög';
$labels['addattachment'] = 'Hengja við';
@@ -177,39 +221,52 @@ $labels['returnreceipt'] = 'Kvittun við lestur';
$labels['dsn'] = 'Afhendingarstaða';
$labels['mailreplyintro'] = 'Þann $date, $sender reit:';
$labels['originalmessage'] = 'Upprunalegt skeyti';
+
$labels['editidents'] = 'Breyta sjálfum';
$labels['spellcheck'] = 'Stafsetning';
$labels['checkspelling'] = 'Athuga stafsetningu';
$labels['resumeediting'] = 'Aftur í ritham';
$labels['revertto'] = 'Hverfa til';
+
$labels['attach'] = 'Viðhengi';
$labels['attachments'] = 'Viðhengi';
$labels['upload'] = 'Hlaða upp';
$labels['uploadprogress'] = '$percent ($current af $total)';
$labels['close'] = 'Loka';
$labels['messageoptions'] = 'Skeytisvalmöguleikar...';
+
$labels['low'] = 'Lágt';
$labels['lowest'] = 'Lægst';
$labels['normal'] = 'Venjulegt';
$labels['high'] = 'Hátt';
$labels['highest'] = 'Hæst';
+
$labels['nosubject'] = '(án titils)';
$labels['showimages'] = 'Sýna myndir';
$labels['alwaysshow'] = 'Sýna alltaf myndir frá $sender';
$labels['isdraft'] = 'Þetta eru drög að skeyti';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Venjulegur texti';
$labels['savesentmessagein'] = 'Vista send skeyti í';
$labels['dontsave'] = 'ekki vista';
$labels['maxuploadsize'] = 'Leyfileg hámarksstærð skjals er $size';
+
$labels['addcc'] = 'Bæta við Cc';
$labels['addbcc'] = 'Bæta við Bcc';
$labels['addreplyto'] = 'Bæta við Reply-To';
$labels['addfollowupto'] = 'Nýtt svar við';
+
+// mdn
$labels['mdnrequest'] = 'Sendandi þessa skeytið hefur óskað þess að þú látir vita að þú hafir lesið þetta skeyti. Viltu láta hann vita?';
$labels['receiptread'] = 'Kvittun (lesa)';
$labels['yourmessage'] = 'Þetta er kvittun fyrir skeytið';
$labels['receiptnote'] = 'ATH: Þessi kvittun segir aðeins til um að skeytið kom upp á skjánum á viðtakanda. Það er engin sönnun um að hann hafi lesið eða skilið innihaldið.';
+
+// address boook
$labels['name'] = 'Skjánafn';
$labels['firstname'] = 'Eiginnafn';
$labels['surname'] = 'Eftirnafn';
@@ -244,6 +301,7 @@ $labels['search'] = 'Leit';
$labels['advsearch'] = 'Ãtarleg leit';
$labels['advanced'] = 'Flóknari stillingar';
$labels['other'] = 'Annað';
+
$labels['typehome'] = 'Heimamappa';
$labels['typework'] = 'Vinnusími';
$labels['typeother'] = 'Annað';
@@ -258,12 +316,14 @@ $labels['typeassistant'] = 'Aðstoðarmaður';
$labels['typehomepage'] = 'Vefur';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Mannlýsing';
+
$labels['addfield'] = 'Bæta við svæði...';
$labels['addcontact'] = 'Nýr tengiliður';
$labels['editcontact'] = 'Lagfæra';
$labels['contacts'] = 'Tengiliðir';
$labels['contactproperties'] = 'Eiginleikar';
$labels['personalinfo'] = 'Persónulegar upplýsingar';
+
$labels['edit'] = 'Breyta';
$labels['cancel'] = 'Hætta við';
$labels['save'] = 'Vista';
@@ -271,43 +331,61 @@ $labels['delete'] = 'Eyða';
$labels['rename'] = 'Endurnefna';
$labels['addphoto'] = 'Bæta við';
$labels['replacephoto'] = 'Skipta út';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Búa til nýtt nafnspjald';
$labels['deletecontact'] = 'Eyða völdum tengiliðum';
$labels['composeto'] = 'Skrifa skeyti til';
$labels['contactsfromto'] = 'Netföng $from til $to af $count';
$labels['print'] = 'Prenta';
$labels['export'] = 'Flytja út';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Flytja út nafnspjöld á vCard formi';
$labels['newcontactgroup'] = 'Nýr tengiliðahópur';
$labels['grouprename'] = 'Breyta nafni hóps';
$labels['groupdelete'] = 'Fjarlægja hóp';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Sýna fyrri síðu';
$labels['firstpage'] = 'Sýna fyrstu síðu';
$labels['nextpage'] = 'Sýna næstu síðu';
$labels['lastpage'] = 'Sýna síðustu síðu';
+
$labels['group'] = 'Hópur';
$labels['groups'] = 'Hópar';
$labels['personaladrbook'] = 'Persónuleg heimilisföng';
+
$labels['searchsave'] = 'Vista leit';
$labels['searchdelete'] = 'Eyða leit';
+
$labels['import'] = 'Flytja inn';
$labels['importcontacts'] = 'Flytja inn nafnspjöld';
$labels['importfromfile'] = 'Flytja inn af skrá';
+$labels['importtarget'] = 'Bæta nýjum tengiliðum við:';
$labels['importreplace'] = 'Skipta út allri netfangaskránni';
+$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'] = 'Búið';
+
+// settings
$labels['settingsfor'] = 'Stillingar fyrir';
$labels['about'] = 'Um forritið';
$labels['preferences'] = 'Stillingar';
$labels['userpreferences'] = 'Notendastillingar';
$labels['editpreferences'] = 'Breyta notendastillingum';
+
$labels['identities'] = 'Auðkenni';
$labels['manageidentities'] = 'Stjórna auðkennum þessa reiknings';
$labels['newidentity'] = 'Nýtt auðkenni';
+
$labels['newitem'] = 'Nýtt';
$labels['edititem'] = 'Breyta';
+
$labels['preferhtml'] = 'Vil HTML';
$labels['defaultcharset'] = 'Venjulegt stafasett';
$labels['htmlmessage'] = 'HTML skeyti';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Snið dagsetningar';
$labels['timeformat'] = 'Tímasnið';
$labels['prettydate'] = 'Fallegar dagsetningar';
@@ -318,9 +396,13 @@ $labels['timezone'] = 'Tímabelti';
$labels['pagesize'] = 'Línur á síðu';
$labels['signature'] = 'Undirskrift';
$labels['dstactive'] = 'Sumar-/vetratími';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Skrifa HTML-skeyti';
$labels['htmlonreply'] = 'sem svar við HTML-skeytum aðeins';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML-undirskrift';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Sýna forskoðunarglugga';
$labels['skin'] = 'Sniðmát á viðmóti';
$labels['logoutclear'] = 'Tæma rusl við útskráningu';
@@ -338,12 +420,14 @@ $labels['readwhendeleted'] = 'Merkja skeyti sem lesið þegar því er hent';
$labels['flagfordeletion'] = 'Merkja skeyti til eyðingar í stað þess að eyða';
$labels['skipdeleted'] = 'Ekki sýna eydd skeyti';
$labels['deletealways'] = 'Ef ekki er hægt að setja skeytið í ruslafötuna, henda þeim';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Sýna myndir annarsstaðar frá';
$labels['fromknownsenders'] = 'frá þekktum sendendum';
$labels['always'] = 'alltaf';
$labels['showinlineimages'] = 'Sýna viðhangandi myndir fyrir neðan skeytið';
$labels['autosavedraft'] = 'Vista sjálfkrafa sem drög';
$labels['everynminutes'] = '$n mínútu fresti';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'aldrei';
$labels['immediately'] = 'samstundis';
$labels['messagesdisplaying'] = 'Sýni skeyti';
@@ -359,11 +443,13 @@ $labels['checkallfolders'] = 'Athuga ný skeyti í öllum möppum';
$labels['displaynext'] = 'Að eyðingu/færslu lokinni sýna næsta skeyti';
$labels['defaultfont'] = 'Sjálfgefið letur HTML-skeyta';
$labels['mainoptions'] = 'Aðalstillingar';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Hluti';
$labels['maintenance'] = 'Viðhald';
$labels['newmessage'] = 'Nýtt skeyti';
$labels['signatureoptions'] = 'Valkostir undirskriftar';
$labels['whenreplying'] = 'Þegar svarað';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'hefja nýtt skeyti fyrir ofan eldra';
$labels['replybottomposting'] = 'hefja nýtt skeyti undir eldra';
$labels['replyremovesignature'] = 'Þegar svarað fjarlægja upphaflega undirskrift úr skeyti';
@@ -376,6 +462,7 @@ $labels['afternseconds'] = 'eftir $n sekúndur';
$labels['reqmdn'] = 'Biðja ávallt um kvittun';
$labels['reqdsn'] = 'Biðja ávallt um sendingarstöðu';
$labels['replysamefolder'] = 'Setja svarskeyti í möppu sem upphaflegt skeyti er í';
+$labels['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'Sleppa aukanetföngum í sjálfklárun';
$labels['listnamedisplay'] = 'Lista tengiliði sem';
$labels['spellcheckbeforesend'] = 'Athuga stafsetningu áður en skeyti er sent';
@@ -384,6 +471,11 @@ $labels['spellcheckignoresyms'] = 'Hunsa orð með merki';
$labels['spellcheckignorenums'] = 'Hunsa orð með tölum';
$labels['spellcheckignorecaps'] = 'Hunsa orð sem eru í hástöfum';
$labels['addtodict'] = 'Bæta við orðalista';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Mappa';
$labels['folders'] = 'Möppur';
$labels['foldername'] = 'Nafn möppu';
@@ -404,19 +496,26 @@ $labels['foldertype'] = 'Möpputegund';
$labels['personalfolder'] = 'Einkamappa';
$labels['otherfolder'] = 'Möppur annara notenda';
$labels['sharedfolder'] = 'Opin mappa';
+
$labels['sortby'] = 'Raða eftir';
$labels['sortasc'] = 'Raða vaxandi';
$labels['sortdesc'] = 'Raða minnkandi';
$labels['undo'] = 'Taka til baka';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Viðbætur';
$labels['version'] = 'Útgáfa';
$labels['source'] = 'Uppruni';
$labels['license'] = 'Notkunarleyfi';
$labels['support'] = 'Fá aðstoð';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Enska';
$labels['westerneuropean'] = 'Vesturevrópskt';
@@ -435,4 +534,5 @@ $labels['vietnamese'] = 'Víetnamskt';
$labels['japanese'] = 'Japanskt';
$labels['korean'] = 'Kóreska';
$labels['chinese'] = 'Kínverska';
+
?>
diff --git a/program/localization/is_IS/messages.inc b/program/localization/is_IS/messages.inc
index 06b707389..6e9f35af3 100644
--- a/program/localization/is_IS/messages.inc
+++ b/program/localization/is_IS/messages.inc
@@ -15,44 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Innskráning mistókst';
$messages['cookiesdisabled'] = 'Vafrinn þinn vill ekki taka við kökum (cookies)';
$messages['sessionerror'] = 'Innskráningin þín ógild eða útrunnin';
$messages['storageerror'] = 'Tengin við IMAP-miðlara mistókst';
+$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'] = 'Engin skeyti eru í þessu pósthólfi';
$messages['loggedout'] = 'Þú hefur útskráðst. Bless!';
$messages['mailboxempty'] = 'Pósthólfið er tómt';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Hleð...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Hleð gögn...';
$messages['checkingmail'] = 'Gái að nýjum skeytum...';
+$messages['sendingmessage'] = 'Sending message...';
$messages['messagesent'] = 'Skeyti var sent';
$messages['savingmessage'] = 'Vista skeyti...';
$messages['messagesaved'] = 'Skeytið vistað í Drög';
$messages['successfullysaved'] = 'Vistun heppnaðist!';
$messages['addedsuccessfully'] = 'Netfangi var bætt í netfangaskrá';
$messages['contactexists'] = 'Þetta netfang er þegar skráð í netfangaskrána';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Til verndar hafa allar myndir í þessu skeyti verið blokkaðar.';
$messages['encryptedmessage'] = 'Þetta er dulkóðað skeyti og því miður er ekki hægt að birta það';
$messages['nocontactsfound'] = 'Engin netföng';
+$messages['contactnotfound'] = 'The requested contact was not found.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Sending misheppnaðist';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Villa kom upp þegar var verið að vista';
$messages['errormoving'] = 'Gat ekki fært skeytið';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Gat ekki eytt skeytinu';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ertu viss um að þú viljir eyða völdum netföngum?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
+$messages['deletemessagesconfirm'] = 'Do you really want to delete selected message(s)?';
$messages['deletefolderconfirm'] = 'Ertu viss um að vilja eyða þessari möppu?';
+$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'] = 'Formið var ekki fyllt út að fullu';
$messages['noemailwarning'] = 'Sláðu inn gildt netfang';
$messages['nonamewarning'] = 'Sláðu inn nafn';
$messages['nopagesizewarning'] = 'Sláðu inn síðustærð';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'à það minnsta einn viðtakandi verður að vera';
$messages['nosubjectwarning'] = 'Efnislínan er tóm. Viltu slá eitthvað inn í hana?';
$messages['nobodywarning'] = 'Viltu senda tómt skeyti?';
$messages['notsentwarning'] = 'Skeytið hefur ekki verið send. Viltu henda skeytinu?';
$messages['noldapserver'] = 'Please select an ldap server to search';
$messages['nosearchname'] = 'Sláðu inn nafn eða netfang';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr skeyti fundust';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Leit skilaði engu';
$messages['searching'] = 'Leita...';
$messages['checking'] = 'Gái...';
$messages['nospellerrors'] = 'Engar innsláttarvillur fundust';
$messages['folderdeleted'] = 'Möppu var eytt';
+$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 addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/it_IT/labels.inc b/program/localization/it_IT/labels.inc
index ac8e2a6d4..75a24c5fd 100644
--- a/program/localization/it_IT/labels.inc
+++ b/program/localization/it_IT/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Benvenuto in $product';
$labels['username'] = 'Utente';
$labels['password'] = 'Password';
$labels['server'] = 'Server';
$labels['login'] = 'Entra';
+
+// taskbar
$labels['logout'] = 'Esci';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Impostazioni';
$labels['addressbook'] = 'Rubrica';
+
+// mailbox names
$labels['inbox'] = 'Posta in arrivo';
$labels['drafts'] = 'Bozze';
$labels['sent'] = 'Inviata';
$labels['trash'] = 'Cestino';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Mostra nomi reali per le cartelle speciali';
+
+// message listing
$labels['subject'] = 'Oggetto';
$labels['from'] = 'Mittente';
$labels['sender'] = 'Mittente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorità';
$labels['organization'] = 'Società';
$labels['readstatus'] = 'Visualizza lo stato';
$labels['listoptions'] = 'Elenco opzioni...';
+
$labels['mailboxlist'] = 'Cartelle';
$labels['messagesfromto'] = 'Messaggi da $from a $to di $count';
$labels['threadsfromto'] = 'Thread da $from a $to di $count';
$labels['messagenrof'] = 'Messaggio $nr di $count';
$labels['fromtoshort'] = '$from – $to di $count';
+
$labels['copy'] = 'Copia';
$labels['move'] = 'Sposta';
$labels['moveto'] = 'Sposta in...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Apri';
$labels['showattachment'] = 'Visualizza';
$labels['showanyway'] = 'Visualizza comunque';
+
$labels['filename'] = 'Nome file';
$labels['filesize'] = 'Dimensione file';
+
$labels['addtoaddressbook'] = 'Aggiungi alla rubrica';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Mer';
$labels['thu'] = 'Gio';
$labels['fri'] = 'Ven';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Domenica';
$labels['monday'] = 'Lunedì';
$labels['tuesday'] = 'Martedì';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Mercoledì';
$labels['thursday'] = 'Giovedì';
$labels['friday'] = 'Venerdì';
$labels['saturday'] = 'Sabato';
+
+// months short
$labels['jan'] = 'Gen';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Ott';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dic';
+
+// months long
$labels['longjan'] = 'Gennaio';
$labels['longfeb'] = 'Febbraio';
$labels['longmar'] = 'Marzo';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Settembre';
$labels['longoct'] = 'Ottobre';
$labels['longnov'] = 'Novembre';
$labels['longdec'] = 'Dicembre';
+
$labels['today'] = 'Oggi';
+
+// toolbar buttons
$labels['refresh'] = 'Aggiorna';
$labels['checkmail'] = 'Controlla nuovi messaggi';
$labels['compose'] = 'Scrivi un messaggio';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Altre operazioni...';
$labels['more'] = 'Di più';
$labels['back'] = 'Indietro';
$labels['options'] = 'Opzioni';
+
$labels['select'] = 'Seleziona';
$labels['all'] = 'Tutti';
$labels['none'] = 'Nessuno';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Espandi tutto';
$labels['expand-unread'] = 'Espandi non letti';
$labels['collapse-all'] = 'Richiudi tutti';
$labels['threaded'] = 'Per argomenti';
+
$labels['autoexpand_threads'] = 'Espandi';
$labels['do_expand'] = 'tutti i thread';
$labels['expand_only_unread'] = 'solo con messaggi non letti';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Elenco Colonne';
$labels['listsorting'] = 'Ordina per';
$labels['listorder'] = 'Ordinamento';
$labels['listmode'] = 'Modalità di visualizzazione';
+
$labels['folderactions'] = 'Operazioni cartella';
$labels['compact'] = 'Compatta';
$labels['empty'] = 'Svuota';
-$labels['importmessages'] = 'Importa messaggi';
+
$labels['quota'] = 'Spazio utilizzato';
$labels['unknown'] = 'sconosciuto';
$labels['unlimited'] = 'illimitato';
+
$labels['quicksearch'] = 'Ricerca veloce';
$labels['resetsearch'] = 'Annulla ricerca';
$labels['searchmod'] = 'Ambito di ricerca';
$labels['msgtext'] = 'Intero messaggio';
$labels['body'] = 'Body';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nome';
+
$labels['openinextwin'] = 'Apri in una nuova finestra';
$labels['emlsave'] = 'Scarica (.eml)';
$labels['changeformattext'] = 'Visualizza nel formato testo semplice';
$labels['changeformathtml'] = 'Visualizza nel formato HTML';
+
+// message compose
$labels['editasnew'] = 'Modifica come nuovo';
$labels['send'] = 'Invia';
$labels['sendmessage'] = 'Invia il messaggio adesso';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Ricevuta di ritorno';
$labels['dsn'] = 'Notifica di consegna';
$labels['mailreplyintro'] = 'Il $date $sender ha scritto:';
$labels['originalmessage'] = 'Messaggio originale';
+
$labels['editidents'] = 'Modifica identità';
$labels['spellcheck'] = 'Controllo ortografico';
$labels['checkspelling'] = 'Controlla ortografia';
$labels['resumeediting'] = 'Torna al messaggio';
$labels['revertto'] = 'Ripristina';
+
$labels['attach'] = 'Allega';
$labels['attachments'] = 'Allegati';
$labels['upload'] = 'Aggiungi';
$labels['uploadprogress'] = '$percent ($current di $total)';
$labels['close'] = 'Chiudi';
$labels['messageoptions'] = 'Opzioni messaggi...';
+
$labels['low'] = 'Bassa';
$labels['lowest'] = 'Molto bassa';
$labels['normal'] = 'Normale';
$labels['high'] = 'Alta';
$labels['highest'] = 'Molto alta';
+
$labels['nosubject'] = '(nessun oggetto)';
$labels['showimages'] = 'Visualizza immagini';
$labels['alwaysshow'] = 'Mostra sempre immagini da $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Questa è una bozza.';
$labels['andnmore'] = 'ancora $nr...';
$labels['togglemoreheaders'] = 'Mostra più intestazioni dei messaggi';
$labels['togglefullheaders'] = 'Visualizza header raw';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Testo semplice';
$labels['savesentmessagein'] = 'Salva i messaggi inviati in';
$labels['dontsave'] = 'non salvare';
$labels['maxuploadsize'] = 'La dimensione massima consentita è $size';
+
$labels['addcc'] = 'Aggiungi Cc';
$labels['addbcc'] = 'Aggiungi Bcc';
$labels['addreplyto'] = 'Aggiungi Rispondi a';
$labels['addfollowupto'] = 'Aggiungi Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Il mittente ha richiesto di ricevere una notifica dell\'avvenuta lettura del messaggio. Si desidera inviare tale notifica?';
$labels['receiptread'] = 'Ricevuta di ritorno (letto)';
$labels['yourmessage'] = 'Questa è la ricevuta di ritorno del messaggio inviato';
$labels['receiptnote'] = 'Nota: questa Ricevuta di ritorno attesta solamente che il messaggio è stato visualizzato nel computer del destinatario. Non c\'è pertanto alcuna garanzia che il destinatario abbia letto o compreso il suo contenuto.';
+
+// address boook
$labels['name'] = 'Nome visualizzato';
$labels['firstname'] = 'Nome';
$labels['surname'] = 'Cognome';
@@ -262,6 +301,7 @@ $labels['search'] = 'Ricerca';
$labels['advsearch'] = 'Ricerca avanzata';
$labels['advanced'] = 'Opzioni avanzate';
$labels['other'] = 'Altro';
+
$labels['typehome'] = 'Casa';
$labels['typework'] = 'Lavoro';
$labels['typeother'] = 'Altro';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Home page';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profilo';
+
$labels['addfield'] = 'Aggiungi campo...';
$labels['addcontact'] = 'Aggiungi contatto alla rubrica';
$labels['editcontact'] = 'Modifica contatto';
$labels['contacts'] = 'Contatti';
$labels['contactproperties'] = 'Proprietà contatto';
$labels['personalinfo'] = 'Informazioni personali';
+
$labels['edit'] = 'Modifica';
$labels['cancel'] = 'Annulla';
$labels['save'] = 'Salva';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Rinomina';
$labels['addphoto'] = 'Aggiungi';
$labels['replacephoto'] = 'Sostituisci';
$labels['uploadphoto'] = 'Carica foto';
+
$labels['newcontact'] = 'Crea un nuovo contatto';
$labels['deletecontact'] = 'Elimina i contatti selezionati';
$labels['composeto'] = 'Invia email a';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Crea un nuovo gruppo';
$labels['grouprename'] = 'Rinomina il gruppo';
$labels['groupdelete'] = 'Cancella il gruppo';
$labels['groupremoveselected'] = 'Rimuovi i contatti selezionati dal gruppo';
+
$labels['previouspage'] = 'Pagina precedente';
$labels['firstpage'] = 'Prima pagina';
$labels['nextpage'] = 'Pagina successiva';
$labels['lastpage'] = 'Ultima pagina';
+
$labels['group'] = 'Gruppo';
$labels['groups'] = 'Gruppi';
-$labels['listgroup'] = 'Elenca membri dei gruppi';
$labels['personaladrbook'] = 'Rubrica Personale';
+
$labels['searchsave'] = 'Salva ricerca';
$labels['searchdelete'] = 'Elimina ricerca';
+
$labels['import'] = 'Importa';
$labels['importcontacts'] = 'Importa contatti';
$labels['importfromfile'] = 'Importa da file:';
-$labels['importtarget'] = 'Aggiungi contatti a';
+$labels['importtarget'] = 'Aggiungi nuovi contattu alla rubrica:';
$labels['importreplace'] = 'Sostituisci l\'intera rubrica';
-$labels['importgroups'] = 'Importa le assegnazioni di gruppo';
-$labels['importgroupsall'] = 'Tutti (crea i gruppi se necessario)';
-$labels['importgroupsexisting'] = 'Solo per i gruppi esistenti';
$labels['importdesc'] = 'Puoi caricare i contatti da una rubrica esistente.<br/>Attualmente si possono importare contatti in formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> o CSV (comma-separated).';
$labels['done'] = 'Fatto';
+
+// settings
$labels['settingsfor'] = 'Impostazioni per';
$labels['about'] = 'Informazioni';
$labels['preferences'] = 'Preferenze';
$labels['userpreferences'] = 'Preferenze utente';
$labels['editpreferences'] = 'Modifica le preferenze per l\'utente';
+
$labels['identities'] = 'Identità';
$labels['manageidentities'] = 'Gestisci le identità per questo account';
$labels['newidentity'] = 'Nuova identità';
+
$labels['newitem'] = 'Nuovo elemento';
$labels['edititem'] = 'Modifica elemento';
+
$labels['preferhtml'] = 'Mostra HTML';
$labels['defaultcharset'] = 'Set di caratteri predefinito';
$labels['htmlmessage'] = 'Messaggio HTML';
@@ -371,7 +419,7 @@ $labels['ignore'] = 'ignora';
$labels['readwhendeleted'] = 'Marca il messaggio come letto prima di eliminarlo';
$labels['flagfordeletion'] = 'Marca il messaggio come eliminato invece di eliminarlo';
$labels['skipdeleted'] = 'Non mostrare i messaggi marcati come eliminati';
-$labels['deletealways'] = 'Quando non è possibile spostare i messaggi nel Cestino, eliminali';
+$labels['deletealways'] = 'Quando non è possinile spostare i messaggi nel Cestino eliminali';
$labels['deletejunk'] = 'Elimina direttamente i messaggi in Spam';
$labels['showremoteimages'] = 'Mostra immagini remote contenute nel messaggio';
$labels['fromknownsenders'] = 'da mittenti conosciuti';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignora le parole contenenti numeri';
$labels['spellcheckignorecaps'] = 'Ignora le parole con tutte le lettere maiuscole';
$labels['addtodict'] = 'Aggiungi al dizionario';
$labels['mailtoprotohandler'] = 'Registra gestore per mailto:';
-$labels['standardwindows'] = 'Gestisci i popup come finestre standard';
$labels['forwardmode'] = 'Inoltro messaggi';
$labels['inline'] = 'In linea';
$labels['asattachment'] = 'come allegato';
+
$labels['folder'] = 'Cartella';
$labels['folders'] = 'Cartelle';
$labels['foldername'] = 'Nome cartella';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Tipo di cartella';
$labels['personalfolder'] = 'Cartella privata';
$labels['otherfolder'] = 'Cartella di un altro utente';
$labels['sharedfolder'] = 'Cartella pubblica';
+
$labels['sortby'] = 'Ordina per';
$labels['sortasc'] = 'Ordinamento crescente';
$labels['sortdesc'] = 'Ordinamento decrescente';
$labels['undo'] = 'Annulla';
+
$labels['installedplugins'] = 'Plugin Installati';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versione';
$labels['source'] = 'Sorgente';
$labels['license'] = 'Licenza';
$labels['support'] = 'Ottieni supporto';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglese';
$labels['westerneuropean'] = 'Europa occidentale';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Giapponese';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Cinese';
+
?>
diff --git a/program/localization/it_IT/messages.inc b/program/localization/it_IT/messages.inc
index 0fd084f1b..80395b551 100644
--- a/program/localization/it_IT/messages.inc
+++ b/program/localization/it_IT/messages.inc
@@ -15,7 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'Si è verificato un errore!';
+
+$messages = array();
+$messages['errortitle'] = 'C\'è stato qualche errore';
$messages['loginfailed'] = 'Impossibile accedere. Utente o password non corretti';
$messages['cookiesdisabled'] = 'Il tuo browser non accetta i cookies';
$messages['sessionerror'] = 'Sessione non valida o scaduta';
@@ -54,8 +56,8 @@ $messages['contactnotfound'] = 'Il contatto richiesto non è stato trovato';
$messages['contactsearchonly'] = 'Inserisci dei termini per cercare i contatti';
$messages['sendingfailed'] = 'Impossibile inviare il messaggio';
$messages['senttooquickly'] = 'Per favore, attendi $sec secondi prima di inviare questo messaggio';
-$messages['errorsavingsent'] = 'Si è verificato un errore nel savare il messaggio inviato.';
-$messages['errorsaving'] = 'Si è verificato un errore nel salvataggio.';
+$messages['errorsavingsent'] = 'C\'è stato un errore nel salvare il messaggio inviato';
+$messages['errorsaving'] = 'Impossibile salvare';
$messages['errormoving'] = 'Impossibile spostare il messaggio';
$messages['errorcopying'] = 'Impossibile copiare il messaggio';
$messages['errordeleting'] = 'Impossibile eliminare il messaggio';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Rimozione della formattazione dal messaggio...';
$messages['messageopenerror'] = 'Impossibile caricare il messaggio dal server';
$messages['fileuploaderror'] = 'Errore durante il caricamento del file';
$messages['filesizeerror'] = 'Il file da caricare supera il limite massimo di $size';
-$messages['copysuccess'] = 'Copiati correttamente $nr contatti.';
-$messages['movesuccess'] = '$nr contatti spostati correttamente.';
-$messages['copyerror'] = 'Impossibile copiare i contatti.';
-$messages['moveerror'] = 'Impossibile spostare i contatti.';
+$messages['copysuccess'] = 'Copiati $nr indirizzi';
+$messages['copyerror'] = 'Impossibile copiare gli indirizzi';
$messages['sourceisreadonly'] = 'La rubrica è in sola lettura';
$messages['errorsavingcontact'] = 'Impossibile salvare il contatto';
$messages['movingmessage'] = 'Spostamento del messaggio...';
$messages['copyingmessage'] = 'Copia del messaggio...';
$messages['copyingcontact'] = 'Copia del contatto...';
-$messages['movingcontact'] = 'Spostamento contatto(i)';
$messages['deletingmessage'] = 'Cancellazione messaggio...';
$messages['markingmessage'] = 'Marca messaggio...';
$messages['addingmember'] = 'Aggiunta contatto al gruppo...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Importazione in corso, attendere...';
$messages['importformaterror'] = 'Importazione fallita! Il file caricato non è un file valido per l\'importazione.';
$messages['importconfirm'] = '<b>$inserted contatti importati con successo</p>';
$messages['importconfirmskipped'] = '<b>$skipped ignorati perché esistono già</b>';
-$messages['importmessagesuccess'] = 'Importati correttamente $nr messaggi';
-$messages['importmessageerror'] = 'Importazione fallita! Il file caricato non è un messaggio o una casella postale valida.';
$messages['opnotpermitted'] = 'Operazione non consentita!';
$messages['nofromaddress'] = 'Indirizzo e-mail mancante nell\'identità selezionata';
$messages['editorwarning'] = 'Passare all\'editor testuale farà perdere tutte le informazioni di formattazione. Sicuro di voler continuare?';
@@ -142,7 +139,7 @@ $messages['smtperror'] = 'Errore SMTP: $msg';
$messages['emailformaterror'] = 'Indirizzo e-mail non corretto: $email';
$messages['toomanyrecipients'] = 'Numero eccessivo di destinatari, ridurlo a $max';
$messages['maxgroupmembersreached'] = 'Il numero dei membri del gruppo eccede il massimo di $max';
-$messages['internalerror'] = 'Si è verificato un errore interno. Riprovare più tardi.';
+$messages['internalerror'] = 'Si è verificato un errore interno. Si prega di riprovare di nuovo.';
$messages['contactdelerror'] = 'Impossibile eliminare il/i contatto/i';
$messages['contactdeleted'] = 'Contatto/i correttamente eliminato/i';
$messages['contactrestoreerror'] = 'Impossibile ripristinare il/i contatto/i cancellato/i';
@@ -170,4 +167,5 @@ $messages['parentnotwritable'] = 'Impossibile creare o muovere la cartella: acce
$messages['messagetoobig'] = 'La parte del messaggio è troppo grande per essere processata.';
$messages['attachmentvalidationerror'] = 'ATTENZIONE! Questo allegato è sospetto poiché non rispetta il tipo dichiarato nel messaggio. Se non conosci il mittente, non dovresti aprire l\'allegato nel browser in quanto potrebbe contenere malware.<br/><br/><em>Atteso: $expected; rilevato: $detected</em>';
$messages['noscriptwarning'] = 'Attenzione: questo servizio di webmail richiede Javascript! Per utilizzarlo abilita Javascript nelle impostazioni del tuo browser.';
+
?>
diff --git a/program/localization/ja_JP/labels.inc b/program/localization/ja_JP/labels.inc
index ef52695bb..6998f0623 100644
--- a/program/localization/ja_JP/labels.inc
+++ b/program/localization/ja_JP/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$productã«ã‚ˆã†ã“ã';
$labels['username'] = 'ユーザーå';
$labels['password'] = 'パスワード';
$labels['server'] = 'サーãƒãƒ¼';
$labels['login'] = 'ログイン';
+
+// taskbar
$labels['logout'] = 'ログアウト';
$labels['mail'] = 'é›»å­ãƒ¡ãƒ¼ãƒ«';
$labels['settings'] = '設定';
$labels['addressbook'] = 'アドレス帳';
+
+// mailbox names
$labels['inbox'] = 'å—ä¿¡ç®±';
$labels['drafts'] = '下書ã';
$labels['sent'] = 'é€ä¿¡æ¸ˆã¿';
$labels['trash'] = 'ã”ã¿ç®±';
$labels['junk'] = '迷惑メール';
-$labels['show_real_foldernames'] = '特殊フォルダーã®å®Ÿéš›ã®åå‰ã‚’表示';
+
+// message listing
$labels['subject'] = '件å';
$labels['from'] = '発信者';
$labels['sender'] = 'é€ä¿¡è€…';
@@ -44,11 +53,13 @@ $labels['priority'] = '優先度';
$labels['organization'] = 'ä¼æ¥­å';
$labels['readstatus'] = '閲覧ã®çŠ¶æ…‹';
$labels['listoptions'] = '一覧ã®ã‚ªãƒ—ション...';
+
$labels['mailboxlist'] = 'フォルダー';
$labels['messagesfromto'] = '$count通ã®$from通目ã‹ã‚‰$to通目ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸';
$labels['threadsfromto'] = '$count通ã®$from通目ã‹ã‚‰$to通目ã®ã‚¹ãƒ¬ãƒƒãƒ‰';
$labels['messagenrof'] = '$count通ã®$nr通目ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸';
$labels['fromtoshort'] = '$count通ã®$from通目ã‹ã‚‰$to通目';
+
$labels['copy'] = 'コピー';
$labels['move'] = '移動';
$labels['moveto'] = 'フォルダーã«ç§»å‹•';
@@ -56,9 +67,13 @@ $labels['download'] = 'ダウンロード';
$labels['open'] = 'é–‹ã';
$labels['showattachment'] = '表示';
$labels['showanyway'] = 'ã¨ã«ã‹ã表示';
+
$labels['filename'] = 'ファイルå';
$labels['filesize'] = 'ファイルã®å¤§ãã•';
+
$labels['addtoaddressbook'] = 'アドレス帳ã«è¿½åŠ ';
+
+// weekdays short
$labels['sun'] = 'æ—¥';
$labels['mon'] = '月';
$labels['tue'] = 'ç«';
@@ -66,6 +81,8 @@ $labels['wed'] = 'æ°´';
$labels['thu'] = '木';
$labels['fri'] = '金';
$labels['sat'] = '土';
+
+// weekdays long
$labels['sunday'] = '日曜日';
$labels['monday'] = '月曜日';
$labels['tuesday'] = 'ç«æ›œæ—¥';
@@ -73,6 +90,8 @@ $labels['wednesday'] = '水曜日';
$labels['thursday'] = '木曜日';
$labels['friday'] = '金曜日';
$labels['saturday'] = '土曜日';
+
+// months short
$labels['jan'] = '1月';
$labels['feb'] = '2月';
$labels['mar'] = '3月';
@@ -85,6 +104,8 @@ $labels['sep'] = '9月';
$labels['oct'] = '10月';
$labels['nov'] = '11月';
$labels['dec'] = '12月';
+
+// months long
$labels['longjan'] = '1月';
$labels['longfeb'] = '2月';
$labels['longmar'] = '3月';
@@ -97,7 +118,10 @@ $labels['longsep'] = '9月';
$labels['longoct'] = '10月';
$labels['longnov'] = '11月';
$labels['longdec'] = '12月';
+
$labels['today'] = '今日';
+
+// toolbar buttons
$labels['refresh'] = 'å†èª­è¾¼ã¿';
$labels['checkmail'] = 'æ–°ã—ã届ã„ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’確èª';
$labels['compose'] = 'メッセージã®ä½œæˆ';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'ãã®ä»–ã®æ“作...';
$labels['more'] = '続ã';
$labels['back'] = '戻る';
$labels['options'] = 'オプション';
+
$labels['select'] = 'é¸æŠž';
$labels['all'] = 'ã™ã¹ã¦';
$labels['none'] = 'ãªã—';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'ã™ã¹ã¦å±•é–‹';
$labels['expand-unread'] = '未開å°ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’展開';
$labels['collapse-all'] = 'ã™ã¹ã¦æŠ˜ã‚ŠãŸãŸã‚€';
$labels['threaded'] = 'スレッド化';
+
$labels['autoexpand_threads'] = 'メッセージã®ã‚¹ãƒ¬ãƒƒãƒ‰ã‚’展開';
$labels['do_expand'] = 'ã™ã¹ã¦ã®ã‚¹ãƒ¬ãƒƒãƒ‰';
$labels['expand_only_unread'] = '未読ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã ã‘';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = '列を一覧';
$labels['listsorting'] = '並ã¹æ›¿ãˆã‚‹åˆ—';
$labels['listorder'] = '並ã¹æ›¿ãˆã‚‹é †åº';
$labels['listmode'] = '一覧表示モード';
+
$labels['folderactions'] = 'フォルダーã®æ“作...';
$labels['compact'] = '圧縮';
$labels['empty'] = '空';
-$labels['importmessages'] = 'メッセージをインãƒãƒ¼ãƒˆ';
+
$labels['quota'] = 'ディスクã®ä½¿ç”¨çŠ¶æ³';
$labels['unknown'] = 'ä¸æ˜Ž';
$labels['unlimited'] = '無制é™';
+
$labels['quicksearch'] = '高速検索';
$labels['resetsearch'] = '検索を解除';
$labels['searchmod'] = '検索ã®æ¡ä»¶';
$labels['msgtext'] = 'メッセージ全体';
$labels['body'] = '本文';
-$labels['type'] = '種類';
-$labels['namex'] = 'åå‰';
+
$labels['openinextwin'] = 'æ–°ã—ã„ウィンドウã§é–‹ã';
$labels['emlsave'] = 'ダウンロード(.emlå½¢å¼)';
$labels['changeformattext'] = 'テキスト形å¼ã§è¡¨ç¤º';
$labels['changeformathtml'] = 'HTMLå½¢å¼ã§è¡¨ç¤º';
+
+// message compose
$labels['editasnew'] = 'æ–°ã—ã„メッセージã¨ã—ã¦ç·¨é›†';
$labels['send'] = 'é€ä¿¡';
$labels['sendmessage'] = 'メッセージをé€ä¿¡';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'é–‹å°ç¢ºèª';
$labels['dsn'] = 'é…é€çŠ¶æ…‹é€šçŸ¥';
$labels['mailreplyintro'] = '$date ã« $sender ã•ã‚“ã¯æ›¸ãã¾ã—ãŸ:';
$labels['originalmessage'] = 'å…ƒã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸';
+
$labels['editidents'] = '識別情報を編集';
$labels['spellcheck'] = 'スペル';
$labels['checkspelling'] = 'スペルãƒã‚§ãƒƒã‚¯';
$labels['resumeediting'] = '編集をå†é–‹';
$labels['revertto'] = 'å…ƒã«æˆ»ã™';
-$labels['responses'] = '回答';
-$labels['insertresponse'] = '回答を挿入';
-$labels['manageresponses'] = '回答を管ç†';
-$labels['savenewresponse'] = 'æ–°ã—ã„回答をä¿å­˜';
-$labels['editresponses'] = '回答を編集';
-$labels['editresponse'] = '回答を編集';
-$labels['responsename'] = 'åå‰';
-$labels['responsetext'] = '回答ã®æ–‡ç« ';
+
$labels['attach'] = '添付';
$labels['attachments'] = '添付ファイル';
$labels['upload'] = 'アップロード';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = 'é–‰ã˜ã‚‹';
$labels['messageoptions'] = 'メッセージã®ã‚ªãƒ—ション...';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '通常';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(件åãªã—)';
$labels['showimages'] = 'ç”»åƒã‚’表示';
$labels['alwaysshow'] = '$sender ã‹ã‚‰å±Šã„ãŸç”»åƒã¯å¸¸ã«è¡¨ç¤º';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'ã“ã‚Œã¯ä¸‹æ›¸ãã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã§ã™ã€‚';
$labels['andnmore'] = 'ã•ã‚‰ã«$nr件...';
$labels['togglemoreheaders'] = 'ã•ã‚‰ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’表示';
$labels['togglefullheaders'] = 'メッセージヘッダーã®ç”Ÿã®è¡¨ç¤ºã¨åˆ‡ã‚Šæ›¿ãˆ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'テキスト';
$labels['savesentmessagein'] = 'é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å­˜å…ˆ';
$labels['dontsave'] = 'ä¿å­˜ã—ãªã„';
$labels['maxuploadsize'] = '添付å¯èƒ½ãªãƒ•ã‚¡ã‚¤ãƒ«ã¯æœ€å¤§ã§$sizeã§ã™ã€‚';
+
$labels['addcc'] = '写ã—(Cc)を追加';
$labels['addbcc'] = 'éš ã—ãŸå†™ã—(Bcc)を追加';
$labels['addreplyto'] = '返信先(Reply-To)を追加';
$labels['addfollowupto'] = 'フォロー先(Followup-Toを追加';
+
+// mdn
$labels['mdnrequest'] = 'ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’読んã ã¨ãã«ã€é€ä¿¡è€…ãŒé€šçŸ¥ã‚’å—ã‘ãŸã„ã¨ä¾é ¼ã—ã¦ã„ã¾ã™ã€‚é–‹å°ç¢ºèªã®é€šçŸ¥ã‚’é€ä¿¡ã—ã¾ã™ã‹?';
$labels['receiptread'] = 'é–‹å°ç¢ºèª(表示済ã¿)';
$labels['yourmessage'] = 'ã“ã‚Œã¯ã‚ãªãŸãŒé€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«å¯¾ã™ã‚‹é–‹å°ç¢ºèªã§ã™ã€‚';
$labels['receiptnote'] = '注æ„: ã“ã®é–‹å°ç¢ºèªã¯ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒå®›å…ˆã®ã‚³ãƒ³ãƒ”ューターã§è¡¨ç¤ºã•ã‚ŒãŸã“ã¨ã ã‘を知らã›ã‚‹ã‚‚ã®ã§ã™ã€‚å—信者ãŒãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’読んã ã‚Šã€å†…容をç†è§£ã—ãŸã¨ä¿è¨¼ã™ã‚‹ã‚‚ã®ã§ã¯ã‚ã‚Šã¾ã›ã‚“。';
+
+// address boook
$labels['name'] = '表示å';
$labels['firstname'] = 'å';
$labels['surname'] = '姓';
@@ -270,6 +301,7 @@ $labels['search'] = '検索';
$labels['advsearch'] = '高度ãªæ¤œç´¢';
$labels['advanced'] = '高度';
$labels['other'] = 'ãã®ä»–';
+
$labels['typehome'] = '自宅';
$labels['typework'] = 'è·å ´';
$labels['typeother'] = 'ãã®ä»–';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'アシスタント';
$labels['typehomepage'] = 'ホームページ';
$labels['typeblog'] = 'ブログ';
$labels['typeprofile'] = 'プロフィール';
+
$labels['addfield'] = '項目を追加...';
$labels['addcontact'] = 'æ–°ã—ã„連絡先を追加';
$labels['editcontact'] = '連絡先を編集';
$labels['contacts'] = '連絡先';
$labels['contactproperties'] = '連絡先ã®å±žæ€§';
$labels['personalinfo'] = '個人情報';
+
$labels['edit'] = '編集';
$labels['cancel'] = 'å–り消ã—';
$labels['save'] = 'ä¿å­˜';
@@ -298,6 +332,7 @@ $labels['rename'] = 'åå‰ã‚’変更';
$labels['addphoto'] = '追加';
$labels['replacephoto'] = 'ç½®ãæ›ãˆ';
$labels['uploadphoto'] = '写真をアップロード';
+
$labels['newcontact'] = 'æ–°ã—ã„連絡先カードを作æˆ';
$labels['deletecontact'] = 'é¸æŠžã—ãŸé€£çµ¡å…ˆã‚’削除';
$labels['composeto'] = 'ã“ã®é€£çµ¡å…ˆå®›ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’作æˆ';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = '連絡先グループを新ã—ã作æˆ';
$labels['grouprename'] = 'グループåを変更';
$labels['groupdelete'] = 'グループを削除';
$labels['groupremoveselected'] = 'é¸æŠžã—ãŸé€£çµ¡å…ˆã‚’グループã‹ã‚‰å‰Šé™¤';
+
$labels['previouspage'] = 'å‰ã®ãƒšãƒ¼ã‚¸ã‚’表示';
$labels['firstpage'] = '最åˆã®ãƒšãƒ¼ã‚¸ã‚’表示';
$labels['nextpage'] = '次ã®ãƒšãƒ¼ã‚¸ã‚’表示';
$labels['lastpage'] = '最後ã®ãƒšãƒ¼ã‚¸ã‚’表示';
+
$labels['group'] = 'グループ';
$labels['groups'] = 'グループ';
-$labels['listgroup'] = 'グループã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’一覧';
$labels['personaladrbook'] = '個人ã®ä½æ‰€';
+
$labels['searchsave'] = '検索情報をä¿å­˜';
$labels['searchdelete'] = '検索情報を削除';
+
$labels['import'] = 'インãƒãƒ¼ãƒˆ';
$labels['importcontacts'] = '連絡先をインãƒãƒ¼ãƒˆ';
$labels['importfromfile'] = 'ファイルã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆ';
-$labels['importtarget'] = '次ã«é€£çµ¡å…ˆã‚’追加';
+$labels['importtarget'] = 'アドレス帳ã«æ–°ã—ã„連絡先ã®è¿½åŠ :';
$labels['importreplace'] = 'アドレス帳全体ã¨ç½®ãæ›ãˆ';
-$labels['importgroups'] = 'グループã®å‰²ã‚Šå½“ã¦ã‚’インãƒãƒ¼ãƒˆ';
-$labels['importgroupsall'] = 'ã™ã¹ã¦ (å¿…è¦ãªã‚‰ã‚°ãƒ«ãƒ¼ãƒ—を作æˆ)';
-$labels['importgroupsexisting'] = '存在ã™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—ã ã‘';
$labels['importdesc'] = '連絡先を既存ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å¸³ã‹ã‚‰ã‚¢ãƒƒãƒ—ロードã§ãã¾ã™ã€‚<br />ç¾åœ¨ã€<a href="http://ja.wikipedia.org/wiki/VCard">vCard</a>ã¾ãŸã¯CSV(コンマ区切り)ã®ãƒ‡ãƒ¼ã‚¿å½¢å¼ã‹ã‚‰ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚';
$labels['done'] = '完了';
+
+// settings
$labels['settingsfor'] = '次ã®è¨­å®š:';
$labels['about'] = 'ã“ã®ãƒ—ログラムã«ã¤ã„ã¦';
$labels['preferences'] = '設定';
$labels['userpreferences'] = 'ユーザー設定';
$labels['editpreferences'] = 'ユーザー設定を変更';
+
$labels['identities'] = '識別情報';
$labels['manageidentities'] = 'ã“ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®è­˜åˆ¥æƒ…報を管ç†';
$labels['newidentity'] = 'æ–°ã—ã„識別情報';
+
$labels['newitem'] = 'æ–°ã—ã„é …ç›®';
$labels['edititem'] = 'é …ç›®ã®ç·¨é›†';
+
$labels['preferhtml'] = 'HTMLを表示';
$labels['defaultcharset'] = 'åˆæœŸè¨­å®šã®æ–‡å­—セット';
$labels['htmlmessage'] = 'HTMLメッセージ';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'æ•°å­—ã‚’å«ã‚€å˜èªžã‚’無視';
$labels['spellcheckignorecaps'] = 'ã™ã¹ã¦å¤§æ–‡å­—ã®å˜èªžã‚’無視';
$labels['addtodict'] = '辞書ã«è¿½åŠ ';
$labels['mailtoprotohandler'] = 'mailto: ã®ãƒªãƒ³ã‚¯ã‚’扱ã†ãƒ—ロトコル処ç†ã®ç™»éŒ²';
-$labels['standardwindows'] = 'ãƒãƒƒãƒ—アップを通常ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¨ã—ã¦å‡¦ç†';
$labels['forwardmode'] = 'メッセージã®è»¢é€å½¢å¼';
$labels['inline'] = 'インライン';
$labels['asattachment'] = '添付ファイル';
+
$labels['folder'] = 'フォルダー';
$labels['folders'] = 'フォルダー';
$labels['foldername'] = 'フォルダーå';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'フォルダーã®ç¨®é¡ž';
$labels['personalfolder'] = '個人フォルダー';
$labels['otherfolder'] = 'ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼';
$labels['sharedfolder'] = '公開フォルダー';
+
$labels['sortby'] = '並ã¹æ›¿ãˆ';
$labels['sortasc'] = '昇順ã§ä¸¦ã¹æ›¿ãˆ';
$labels['sortdesc'] = 'é™é †ã§ä¸¦ã¹æ›¿ãˆ';
$labels['undo'] = 'å–り消ã—';
+
$labels['installedplugins'] = 'インストールã—ã¦ã„るプラグイン';
$labels['plugin'] = 'プラグイン';
$labels['version'] = 'ãƒãƒ¼ã‚¸ãƒ§ãƒ³';
$labels['source'] = 'ソース';
$labels['license'] = 'ライセンス';
$labels['support'] = 'サãƒãƒ¼ãƒˆã‚’å¾—ã‚‹';
+
+// units
$labels['B'] = 'ãƒã‚¤ãƒˆ';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = '英語';
$labels['westerneuropean'] = '西ヨーロッパ言語';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'ベトナム語';
$labels['japanese'] = '日本語';
$labels['korean'] = '韓国語';
$labels['chinese'] = '中国語';
+
?>
diff --git a/program/localization/ja_JP/messages.inc b/program/localization/ja_JP/messages.inc
index abe5a6e7a..f4dd0fceb 100644
--- a/program/localization/ja_JP/messages.inc
+++ b/program/localization/ja_JP/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ!';
$messages['loginfailed'] = 'ログインã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['cookiesdisabled'] = 'ブラウザーãŒCookieã‚’å—ã‘付ã‘ã¾ã›ã‚“。';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'メッセージをé€ä¿¡ã—ã¾ã—ãŸã€‚';
$messages['savingmessage'] = 'メッセージをä¿å­˜ä¸­...';
$messages['messagesaved'] = 'メッセージを下書ãã«ä¿å­˜ã—ã¾ã—ãŸã€‚';
$messages['successfullysaved'] = 'ä¿å­˜ã—ã¾ã—ãŸã€‚';
-$messages['savingresponse'] = '回答ã®æ–‡ç« ã‚’ä¿å­˜ä¸­...';
-$messages['deleteresponseconfirm'] = 'ã“ã®å›žç­”ã®æ–‡ç« ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹?';
$messages['addedsuccessfully'] = '連絡先をアドレス帳ã«è¿½åŠ ã—ã¾ã—ãŸã€‚';
$messages['contactexists'] = 'åŒã˜ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®é€£çµ¡å…ˆãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚';
$messages['contactnameexists'] = 'åŒã˜åå‰ã®é€£çµ¡å…ˆãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚';
@@ -56,7 +56,7 @@ $messages['contactnotfound'] = '連絡先ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。';
$messages['contactsearchonly'] = '連絡先を探ã™ãŸã‚ã®æ¤œç´¢èªžã‚’入力ã—ã¦ãã ã•ã„';
$messages['sendingfailed'] = 'メッセージをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['senttooquickly'] = 'ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã™ã‚‹ã¾ã§ã€$sec秒ãŠå¾…ã¡ãã ã•ã„。';
-$messages['errorsavingsent'] = 'é€ä¿¡ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
+$messages['errorsavingsent'] = 'é€ä¿¡ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
$messages['errorsaving'] = 'ä¿å­˜ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚';
$messages['errormoving'] = 'メッセージを移動ã§ãã¾ã›ã‚“。';
$messages['errorcopying'] = 'メッセージをコピーã§ãã¾ã›ã‚“。';
@@ -101,16 +101,13 @@ $messages['converting'] = 'メールã‹ã‚‰æ›¸å¼ã‚’削除中...';
$messages['messageopenerror'] = 'サーãƒãƒ¼ã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“。';
$messages['fileuploaderror'] = 'ファイルをアップロードã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['filesizeerror'] = 'アップロードã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚µã‚¤ã‚ºãŒä¸Šé™($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['copysuccess'] = '$nr件ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’コピーã—ã¾ã—ãŸã€‚';
+$messages['copyerror'] = 'ã©ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚‚コピーã§ãã¾ã›ã‚“ã§ã—ãŸã€‚';
$messages['sourceisreadonly'] = 'ã“ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚½ãƒ¼ã‚¹ã¯èª­ã¿è¾¼ã¿å°‚用ã§ã™ã€‚';
$messages['errorsavingcontact'] = '連絡先ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ä¿å­˜ã§ãã¾ã›ã‚“。';
$messages['movingmessage'] = 'メッセージを移動中...';
$messages['copyingmessage'] = 'メッセージをコピー中...';
$messages['copyingcontact'] = '連絡先をコピー中...';
-$messages['movingcontact'] = 'Moving contact(s)...';
$messages['deletingmessage'] = 'メッセージを削除中...';
$messages['markingmessage'] = 'メッセージã«ãƒžãƒ¼ã‚¯ã‚’設定中...';
$messages['addingmember'] = 'グループã«é€£çµ¡å…ˆã‚’コピー中...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'インãƒãƒ¼ãƒˆä¸­ã§ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã
$messages['importformaterror'] = 'インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ! アップロードã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯æ­£ã—ã„データをインãƒãƒ¼ãƒˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“。';
$messages['importconfirm'] = '<b>$inserted件ã®é€£çµ¡å…ˆã‚’インãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚</b>';
$messages['importconfirmskipped'] = '<b>$skipped件ã®æ—¢å­˜ã™ã‚‹é …目を飛ã°ã—ãŸã€‚</b>';
-$messages['importmessagesuccess'] = '$nr件ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’インãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚';
-$messages['importmessageerror'] = 'インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ! アップロードã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã¯æœ‰åŠ¹ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚„メールボックスã®ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚ã‚Šã¾ã›ã‚“。';
$messages['opnotpermitted'] = '許å¯ã•ã‚Œã¦ã„ãªã„æ“作ã§ã™ã€‚';
$messages['nofromaddress'] = 'é¸æŠžã—ã¦ã„る識別情報ã«é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæŠœã‘ã¦ã„ã¾ã™ã€‚';
$messages['editorwarning'] = 'テキストエディターã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã¨ã€ã™ã¹ã¦ã®æ›¸å¼ã¯ãªããªã‚Šã¾ã™ã€‚本当ã«ç¶šã‘ã¾ã™ã‹?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'é¸æŠžã—ãŸè¦ªãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã«ä½œæˆã¾ãŸã
$messages['messagetoobig'] = 'ãã®å‡¦ç†ã‚’ã™ã‚‹ã«ã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸éƒ¨åˆ†ãŒå¤§ãã™ãŽã¾ã™ã€‚';
$messages['attachmentvalidationerror'] = '警告! ã“ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å®£è¨€ã¨ä¸€è‡´ã—ãªã„種類ã¨ã„ã†ç†ç”±ã®ãŸã‚ç–‘ã‚ã—ã„ã§ã™ã€‚é€ä¿¡è€…ã‚’ä¿¡é ¼ã§ããªã„ãªã‚‰ã€æ‚ªæ„ã®ã‚る内容をå«ã‚“ã§ã„ã‚‹ã‹ã‚‚ã—ã‚Œãªã„ã®ã§ãƒ–ラウザーã§é–‹ã„ã¦ã¯ãªã‚Šã¾ã›ã‚“。<br/><br/><em>予測ã—ãŸç¨®é¡ž: $expected; 発見ã—ãŸç¨®é¡ž: $found</em>';
$messages['noscriptwarning'] = '警告: ã“ã®ã‚¦ã‚§ãƒ–メールサービスã«ã¯JavascriptãŒå¿…è¦ã§ã™! 使用ã™ã‚‹ã«ã¯Javascriptをブラウザーã®è¨­å®šã§æœ‰åŠ¹ã«ã—ã¦ãã ã•ã„。';
+
?>
diff --git a/program/localization/ka_GE/labels.inc b/program/localization/ka_GE/labels.inc
index 7a14b6216..3ab3b6e63 100644
--- a/program/localization/ka_GE/labels.inc
+++ b/program/localization/ka_GE/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'მáƒáƒ’ესáƒáƒšáƒ›áƒ”ბáƒáƒ— $product';
$labels['username'] = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი';
$labels['password'] = 'პáƒáƒ áƒáƒšáƒ˜';
$labels['server'] = 'სერვერი';
$labels['login'] = 'შესვლáƒ';
+
+// taskbar
$labels['logout'] = 'გáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ';
$labels['mail'] = 'ელფáƒáƒ¡áƒ¢áƒ';
$labels['settings'] = 'პáƒáƒ áƒáƒ›áƒ”ტრები';
$labels['addressbook'] = 'მისáƒáƒ›áƒáƒ áƒ—ები';
+
+// mailbox names
$labels['inbox'] = 'მიღებული';
$labels['drafts'] = 'დრáƒáƒ”ბითი';
$labels['sent'] = 'გáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒšáƒ˜';
$labels['trash'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜';
$labels['junk'] = 'სპáƒáƒ›áƒ˜';
+
+// message listing
$labels['subject'] = 'სáƒáƒ—áƒáƒ£áƒ áƒ˜';
$labels['from'] = 'გáƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ˜';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ვის';
$labels['cc'] = 'áƒáƒ¡áƒšáƒ˜';
$labels['bcc'] = 'ფáƒáƒ áƒ£áƒšáƒ˜';
$labels['replyto'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'თáƒáƒ áƒ˜áƒ¦áƒ˜';
$labels['size'] = 'ზáƒáƒ›áƒ';
$labels['priority'] = 'პრიáƒáƒ áƒ˜áƒ¢áƒ”ტი';
$labels['organization'] = 'áƒáƒ áƒ’áƒáƒœáƒ˜áƒ–áƒáƒªáƒ˜áƒ';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეები';
+$labels['messagesfromto'] = 'Messages $from to $to of $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'შეტყáƒáƒ‘ინებრ$nr დáƒáƒœ $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'áƒáƒ¡áƒšáƒ˜';
$labels['move'] = 'გáƒáƒ“áƒáƒ¢áƒáƒœáƒ';
$labels['moveto'] = 'გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...';
$labels['download'] = 'გáƒáƒ“მáƒáƒ¬áƒ”რáƒ';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი';
$labels['filesize'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ ზáƒáƒ›áƒ';
+
$labels['addtoaddressbook'] = 'მისáƒáƒ›áƒáƒ áƒ—ებში დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
+
+// weekdays short
$labels['sun'] = 'კვი';
$labels['mon'] = 'áƒáƒ áƒ¨';
$labels['tue'] = 'სáƒáƒ›';
@@ -55,6 +81,8 @@ $labels['wed'] = 'áƒáƒ—ხ';
$labels['thu'] = 'ხუთ';
$labels['fri'] = 'პáƒáƒ ';
$labels['sat'] = 'შáƒáƒ‘';
+
+// weekdays long
$labels['sunday'] = 'კვირáƒ';
$labels['monday'] = 'áƒáƒ áƒ¨áƒáƒ‘áƒáƒ—ი';
$labels['tuesday'] = 'სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი';
$labels['thursday'] = 'ხუთშáƒáƒ‘áƒáƒ—ი';
$labels['friday'] = 'პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი';
$labels['saturday'] = 'შáƒáƒ‘áƒáƒ—ი';
+
+// months short
$labels['jan'] = 'იáƒáƒœ';
$labels['feb'] = 'თებ';
$labels['mar'] = 'მáƒáƒ ';
@@ -74,6 +104,8 @@ $labels['sep'] = 'სექ';
$labels['oct'] = 'áƒáƒ¥áƒ¢';
$labels['nov'] = 'ნáƒáƒ”';
$labels['dec'] = 'დეკ';
+
+// months long
$labels['longjan'] = 'იáƒáƒœáƒ•áƒáƒ áƒ˜';
$labels['longfeb'] = 'თებერვáƒáƒšáƒ˜';
$labels['longmar'] = 'მáƒáƒ áƒ¢áƒ˜';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'სექტემბერი';
$labels['longoct'] = 'áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი';
$labels['longnov'] = 'ნáƒáƒ”მბერი';
$labels['longdec'] = 'დეკემბერი';
+
$labels['today'] = 'დღეს';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'შემáƒáƒ¬áƒ›áƒ”ბრáƒáƒ®áƒáƒš შეტყáƒáƒ‘ინებáƒáƒ–ე';
$labels['compose'] = 'შეტყáƒáƒ‘ინების დáƒáƒ¬áƒ”რáƒ';
$labels['writenewmessage'] = 'áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜';
$labels['replytoallmessage'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜ ყველáƒáƒ¡';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'გáƒáƒ“áƒáƒ’ზáƒáƒ•áƒœáƒ';
$labels['deletemessage'] = 'წáƒáƒ¨áƒšáƒ';
$labels['movemessagetotrash'] = 'შეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ˜áƒšáƒ”ბში გáƒáƒ“áƒáƒ¢áƒáƒœáƒ';
@@ -102,12 +144,17 @@ $labels['nextmessage'] = 'შემდეგი შეტყáƒáƒ‘ინე
$labels['lastmessage'] = 'ბáƒáƒšáƒ შეტყáƒáƒ‘ინების ნáƒáƒ®áƒ•áƒ';
$labels['backtolist'] = 'უკáƒáƒœ ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ¨áƒ˜';
$labels['viewsource'] = 'შიგთáƒáƒ•áƒ¡áƒ˜';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ”თ შეტყáƒáƒ‘ინებები';
$labels['markread'] = 'რáƒáƒ’áƒáƒ áƒª წáƒáƒ™áƒ˜áƒ—ხული';
$labels['markunread'] = 'რáƒáƒ’áƒáƒ áƒª წáƒáƒ£áƒ™áƒ˜áƒ—ხáƒáƒ•áƒ˜';
$labels['markflagged'] = 'რáƒáƒ’áƒáƒ áƒª მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜';
$labels['markunflagged'] = 'რáƒáƒ’áƒáƒ áƒª მáƒáƒ£áƒœáƒ˜áƒ¨áƒœáƒáƒ•áƒ˜';
$labels['moreactions'] = 'მეტი მáƒáƒ¥áƒ›áƒ”დებáƒ...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ';
$labels['all'] = 'ყველáƒ';
$labels['none'] = 'áƒáƒ áƒªáƒ”რთი';
@@ -115,70 +162,122 @@ $labels['currpage'] = 'მიმდინáƒáƒ áƒ” გვერდი';
$labels['unread'] = 'წáƒáƒ£áƒ™áƒ˜áƒ—ხáƒáƒ•áƒ˜';
$labels['flagged'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜';
$labels['unanswered'] = 'უპáƒáƒ¡áƒ£áƒ®áƒ';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'შებრუნებული';
$labels['filter'] = 'ფილტრი';
$labels['list'] = 'სიáƒ';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'ყველáƒáƒ¡ გáƒáƒ¨áƒšáƒ';
$labels['expand-unread'] = 'წáƒáƒ£áƒ™áƒ˜áƒ—ხáƒáƒ•áƒ˜áƒ¡ გáƒáƒ¨áƒšáƒ';
$labels['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'] = 'ვისგáƒáƒœ/ვის';
$labels['flag'] = 'დრáƒáƒ¨áƒ';
$labels['attachment'] = 'მიმáƒáƒ’რებული ფáƒáƒ˜áƒšáƒ˜';
$labels['nonesort'] = 'áƒáƒ áƒªáƒ”რთი';
$labels['sentdate'] = 'გáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒ¡ თáƒáƒ áƒ˜áƒ¦áƒ˜';
+$labels['arrival'] = 'Arrival date';
$labels['asc'] = 'ზრდáƒáƒ“áƒáƒ‘ით';
$labels['desc'] = 'კლებáƒáƒ“áƒáƒ‘ით';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
$labels['listorder'] = 'დáƒáƒšáƒáƒ’ებáƒ';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'შეკუმშვáƒ';
$labels['empty'] = 'გáƒáƒªáƒáƒ áƒ˜áƒ”ლებáƒ';
+
$labels['quota'] = 'შეზღუდვáƒ';
$labels['unknown'] = 'უცნáƒáƒ‘ი';
$labels['unlimited'] = 'შეუზღუდáƒáƒ•áƒ˜';
+
$labels['quicksearch'] = 'სწრáƒáƒ¤áƒ˜ ძიებáƒ';
$labels['resetsearch'] = 'ძიების გáƒáƒ¡áƒ£áƒ¤áƒ—áƒáƒ•áƒ”ბáƒ';
$labels['searchmod'] = 'ძებნის ვáƒáƒ áƒ˜áƒáƒœáƒ¢áƒ”ბი';
$labels['msgtext'] = 'ყველრშეტყáƒáƒ‘ინებáƒ';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'გáƒáƒ®áƒ¡áƒœáƒ áƒáƒ®áƒáƒš ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜';
$labels['emlsave'] = 'გáƒáƒ“მáƒáƒ¬áƒ”რრ(.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბრრáƒáƒ’áƒáƒ áƒª áƒáƒ®áƒšáƒ˜áƒ¡';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'შეტყáƒáƒ‘ინების გáƒáƒ’ზáƒáƒ•áƒœáƒ';
$labels['savemessage'] = 'დრáƒáƒ”ბით შენáƒáƒ®áƒ•áƒ';
$labels['addattachment'] = 'ფáƒáƒ˜áƒšáƒ˜áƒ¡ áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ';
$labels['charset'] = 'კáƒáƒ“ირებáƒ';
$labels['editortype'] = 'რედáƒáƒ¥áƒ¢áƒáƒ áƒ˜';
$labels['returnreceipt'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ მáƒáƒ—ხáƒáƒ•áƒœáƒ';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'áƒáƒ áƒ—áƒáƒ’რáƒáƒ¤áƒ˜áƒ£áƒšáƒ˜ შემáƒáƒ¬áƒ›áƒ”ბáƒ';
$labels['resumeediting'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბის გáƒáƒ’რძელებáƒ';
$labels['revertto'] = 'გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'გზáƒáƒ•áƒœáƒ˜áƒšáƒ”ბი';
$labels['upload'] = 'áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'დáƒáƒ®áƒ£áƒ áƒ•áƒ';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'დáƒáƒ‘áƒáƒšáƒ˜';
$labels['lowest'] = 'უდáƒáƒ‘ლესი';
$labels['normal'] = 'სáƒáƒ¨áƒ£áƒáƒšáƒ';
$labels['high'] = 'მáƒáƒ¦áƒáƒšáƒ˜';
$labels['highest'] = 'უმáƒáƒ¦áƒšáƒ”სი';
+
$labels['nosubject'] = '(უსáƒáƒ—áƒáƒ£áƒ áƒ)';
$labels['showimages'] = 'გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ჩვენებáƒ';
$labels['alwaysshow'] = 'ყáƒáƒ•áƒ”ლთვის გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” სურáƒáƒ—ები $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'] = 'ტექსტური';
$labels['savesentmessagein'] = 'შეინáƒáƒ®áƒ” შეტყáƒáƒ‘ინებáƒ';
$labels['dontsave'] = 'áƒáƒ  შეინáƒáƒ®áƒ';
$labels['maxuploadsize'] = 'მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ áƒ˜ დáƒáƒ¨áƒ•áƒ”ბული ფáƒáƒ˜áƒšáƒ˜áƒ¡ ზáƒáƒ›áƒ $size';
+
$labels['addcc'] = 'დáƒáƒáƒ›áƒáƒ¢áƒ” კáƒáƒžáƒ˜áƒ';
$labels['addbcc'] = 'დáƒáƒáƒ›áƒáƒ¢áƒ” ფáƒáƒ áƒ£áƒšáƒ˜ კáƒáƒžáƒ˜áƒ';
$labels['addreplyto'] = 'დáƒáƒáƒ›áƒáƒ¢áƒ” გáƒáƒ›áƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ˜';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'გáƒáƒ›áƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ¡ სურს შეიტყáƒáƒ¡ წერილის მიღებáƒ. გსურთ შეáƒáƒ¢áƒ§áƒáƒ‘ინáƒáƒ— გáƒáƒ›áƒáƒ›áƒ’ზáƒáƒ•áƒœáƒ¡?';
$labels['receiptread'] = 'გზáƒáƒ•áƒœáƒ˜áƒšáƒ˜áƒ¡ დáƒáƒ‘რუნებáƒ';
$labels['yourmessage'] = 'ეს áƒáƒ áƒ˜áƒ¡ მიღების დáƒáƒ¡áƒ¢áƒ£áƒ áƒ˜ თქვენს შეტყáƒáƒ‘ინებáƒáƒ–ე';
$labels['receiptnote'] = 'გáƒáƒœáƒ›áƒáƒ áƒ¢áƒ”ბáƒ: ეს ნიშნáƒáƒ•áƒ¡ რáƒáƒ› áƒáƒ“რესáƒáƒ¢áƒ›áƒ მიიღრშეტყáƒáƒ‘ინებáƒ. მáƒáƒ’რáƒáƒ›, áƒáƒ  ნიშნáƒáƒ•áƒ¡ რáƒáƒ› წáƒáƒ˜áƒ™áƒ˜áƒ—ხრáƒáƒœ გáƒáƒ˜áƒ’რტექსტი';
+
+// address boook
$labels['name'] = 'სრული სáƒáƒ®áƒ”ლი';
$labels['firstname'] = 'სáƒáƒ®áƒ”ლი';
$labels['surname'] = 'გვáƒáƒ áƒ˜';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
+$labels['nickname'] = 'Nickname';
+$labels['jobtitle'] = 'Job Title';
$labels['department'] = 'დეპáƒáƒ áƒ¢áƒáƒ›áƒ”ნტი';
$labels['gender'] = 'სქესი';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'ელ–ფáƒáƒ¡áƒ¢áƒ';
$labels['phone'] = 'ტელეფáƒáƒœáƒ˜';
$labels['address'] = 'მისáƒáƒ›áƒáƒ áƒ—ი';
@@ -188,14 +287,21 @@ $labels['zipcode'] = 'ZIP კáƒáƒ“ი';
$labels['region'] = 'შტáƒáƒ¢áƒ˜/პრáƒáƒ•áƒ˜áƒœáƒªáƒ˜áƒ';
$labels['country'] = 'ქვეყáƒáƒœáƒ';
$labels['birthday'] = 'დáƒáƒ‘áƒáƒ“ების დღე';
+$labels['anniversary'] = 'Anniversary';
$labels['website'] = 'ვებგვერდი';
+$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
$labels['male'] = 'მáƒáƒ›áƒ áƒáƒ‘ითი';
$labels['female'] = 'მდედრáƒáƒ‘ით';
$labels['manager'] = 'მენეჯერი';
+$labels['assistant'] = 'Assistant';
+$labels['spouse'] = 'Spouse';
$labels['allfields'] = 'ყველრველი';
$labels['search'] = 'ძებნáƒ';
$labels['advsearch'] = 'გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბული ძებნáƒ';
+$labels['advanced'] = 'Advanced';
$labels['other'] = 'სხვáƒ';
+
$labels['typehome'] = 'სáƒáƒ®áƒšáƒ˜';
$labels['typework'] = 'სáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ˜';
$labels['typeother'] = 'სხვáƒ';
@@ -206,13 +312,18 @@ $labels['typeworkfax'] = 'სáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ˜áƒ¡ ფáƒáƒ¥áƒ¡áƒ˜';
$labels['typecar'] = 'მáƒáƒœáƒ¥áƒáƒœáƒ';
$labels['typepager'] = 'პეიჯერი';
$labels['typevideo'] = 'ვიდეáƒ';
+$labels['typeassistant'] = 'Assistant';
+$labels['typehomepage'] = 'Home Page';
$labels['typeblog'] = 'ბლáƒáƒ’ი';
$labels['typeprofile'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ˜';
+
$labels['addfield'] = 'ველის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ...';
$labels['addcontact'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბში დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
$labels['editcontact'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜áƒ¡ რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
$labels['contacts'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბი';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'პირáƒáƒ“ი ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ';
+
$labels['edit'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
$labels['cancel'] = 'გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ';
$labels['save'] = 'შენáƒáƒ®áƒ•áƒ';
@@ -220,42 +331,61 @@ $labels['delete'] = 'წáƒáƒ¨áƒšáƒ';
$labels['rename'] = 'გáƒáƒ“áƒáƒ áƒ¥áƒ›áƒ”ვáƒ';
$labels['addphoto'] = 'დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
$labels['replacephoto'] = 'გáƒáƒ›áƒáƒªáƒ•áƒšáƒ';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜áƒ¡ შექმნáƒ';
$labels['deletecontact'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ”ლი კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜áƒ¡ წáƒáƒ¨áƒšáƒ';
$labels['composeto'] = 'ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ გáƒáƒ’ზáƒáƒ•áƒœáƒ შერჩეულ áƒáƒ“რესáƒáƒ¢áƒ”ბთáƒáƒœ';
$labels['contactsfromto'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბი $from დáƒáƒœ $to ში $count';
$labels['print'] = 'დáƒáƒ‘ეჭვდáƒ';
$labels['export'] = 'ექსპáƒáƒ áƒ¢áƒ˜';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის ექსპáƒáƒ áƒ¢áƒ˜ vCard ფáƒáƒ áƒ›áƒáƒ¢áƒ¨áƒ˜';
$labels['newcontactgroup'] = 'áƒáƒ®áƒáƒšáƒ˜ სáƒáƒ™áƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ ჯგუფის შექმნáƒ';
$labels['grouprename'] = 'ჯგუფის სáƒáƒ®áƒ”ლის შეცვლáƒ';
$labels['groupdelete'] = 'ჯგუფის წáƒáƒ¨áƒšáƒ';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'წინáƒáƒ¡ ჩვენებáƒ';
$labels['firstpage'] = 'პირველის ჩვენებáƒ';
$labels['nextpage'] = 'შემდეგის ჩვენებáƒ';
$labels['lastpage'] = 'ბáƒáƒšáƒáƒ¡ ჩვენებáƒ';
+
$labels['group'] = 'ჯგუფი';
$labels['groups'] = 'ჯგუფები';
$labels['personaladrbook'] = 'პერსáƒáƒœáƒáƒšáƒ£áƒ áƒ˜ მისáƒáƒ›áƒáƒ áƒ—ები';
+
$labels['searchsave'] = 'ძებნის შენáƒáƒ®áƒ•áƒ';
$labels['searchdelete'] = 'ძებნის წáƒáƒ¨áƒšáƒ';
+
$labels['import'] = 'შემáƒáƒ¢áƒáƒœáƒ';
$labels['importcontacts'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის შემáƒáƒ¢áƒáƒœáƒ';
$labels['importfromfile'] = 'შემáƒáƒ¢áƒáƒœáƒ ფáƒáƒ˜áƒšáƒ˜áƒ“áƒáƒœ:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'ჩáƒáƒáƒœáƒáƒªáƒ•áƒšáƒ”თ áƒáƒ áƒ¡áƒ”ბული მისáƒáƒ›áƒáƒ áƒ—ები';
+$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'] = 'დáƒáƒ¡áƒ áƒ£áƒšáƒ”ბულიáƒ';
+
+// settings
$labels['settingsfor'] = 'პáƒáƒ áƒáƒ›áƒ”ტრები';
+$labels['about'] = 'About';
$labels['preferences'] = 'პáƒáƒ áƒáƒ›áƒ”ტრები';
$labels['userpreferences'] = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პáƒáƒ áƒáƒ›áƒ”ტრები';
$labels['editpreferences'] = 'მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის პáƒáƒ áƒáƒ›áƒ”ტრების რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
+
$labels['identities'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ”ბი';
$labels['manageidentities'] = 'პრáƒáƒ¤áƒ˜áƒšáƒ”ბის მáƒáƒ áƒ—ვáƒ';
$labels['newidentity'] = 'áƒáƒ®áƒáƒšáƒ˜ პრáƒáƒ¤áƒ˜áƒšáƒ˜';
+
$labels['newitem'] = 'áƒáƒ®áƒáƒšáƒ˜';
$labels['edititem'] = 'რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒ';
+
$labels['preferhtml'] = 'რáƒáƒ’áƒáƒ áƒª HTML';
$labels['defaultcharset'] = 'ნáƒáƒ’ულისხმები სიმბáƒáƒšáƒáƒ—რნáƒáƒ™áƒ áƒ”ბი';
$labels['htmlmessage'] = 'HTML შეტყáƒáƒ‘ინებáƒ';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'თáƒáƒ áƒ˜áƒ¦áƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜';
$labels['timeformat'] = 'დრáƒáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜';
$labels['prettydate'] = 'კáƒáƒ áƒ’ი თáƒáƒ áƒ˜áƒ¦áƒ”ბი';
@@ -266,8 +396,13 @@ $labels['timezone'] = 'დრáƒáƒ˜áƒ—ი ზáƒáƒœáƒ';
$labels['pagesize'] = 'სტრიქáƒáƒœáƒ˜ გვერდზე';
$labels['signature'] = 'ხელმáƒáƒ¬áƒ”რáƒ';
$labels['dstactive'] = 'დრáƒáƒ˜áƒ¡ გáƒáƒ“áƒáƒ§áƒ•áƒáƒœáƒ';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'შეტყáƒáƒ‘ინების შექმნრHTML –ში';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML ხელმáƒáƒ¬áƒ”რáƒ';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'ჩვენებáƒ';
$labels['skin'] = 'ინტერფეისი';
$labels['logoutclear'] = 'წáƒáƒ¨áƒšáƒ˜áƒšáƒ”ბის გáƒáƒ¡áƒ£áƒ¤áƒ—áƒáƒ•áƒ”ბრგáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ˜áƒ¡áƒáƒ¡';
@@ -278,16 +413,21 @@ $labels['mailboxview'] = 'სáƒáƒ¤áƒáƒ¡áƒ¢áƒ ყუთის ჩვენეá
$labels['mdnrequests'] = 'მგზáƒáƒ•áƒœáƒ”ლის შეტყáƒáƒ‘ინებები';
$labels['askuser'] = 'ჰკითხე მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელს';
$labels['autosend'] = 'გáƒáƒ’ზáƒáƒ•áƒœáƒ” áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'იგნáƒáƒ áƒ˜áƒ áƒ”ბáƒ';
$labels['readwhendeleted'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ” გზáƒáƒ•áƒœáƒ˜áƒšáƒ˜ წáƒáƒ™áƒ˜áƒ—ხულáƒáƒ“ წáƒáƒ¨áƒšáƒ˜áƒ¡ დრáƒáƒ¡';
$labels['flagfordeletion'] = 'áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ”თ გზáƒáƒ•áƒœáƒ˜áƒšáƒ”ბი რáƒáƒ’áƒáƒ áƒª წáƒáƒ¡áƒáƒ¨áƒšáƒ”ლი წáƒáƒ¨áƒšáƒ˜áƒ¡ ნáƒáƒªáƒ•áƒšáƒáƒ“';
$labels['skipdeleted'] = 'áƒáƒ  გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ წáƒáƒ¨áƒšáƒ˜áƒšáƒ˜ გზáƒáƒ•áƒœáƒ˜áƒšáƒ”ბი';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” მáƒáƒ¨áƒáƒ áƒ”ბული სურáƒáƒ—ები';
$labels['fromknownsenders'] = 'ნáƒáƒªáƒœáƒáƒ‘ი მგზáƒáƒ•áƒœáƒ”ლებისგáƒáƒœ';
$labels['always'] = 'ყáƒáƒ•áƒ”ლთვის';
$labels['showinlineimages'] = 'áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ული სურáƒáƒ—ები გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” გზáƒáƒ•áƒœáƒ˜áƒšáƒ˜áƒ¡ ქვემáƒáƒ—';
$labels['autosavedraft'] = 'áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒ˜ შენáƒáƒ®áƒ•áƒ';
$labels['everynminutes'] = 'ყáƒáƒ•áƒ”ლ $n წუთში';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'áƒáƒ áƒáƒ¡áƒ“რáƒáƒ¡';
$labels['immediately'] = 'დáƒáƒ£áƒ§áƒáƒœáƒ”ბლივ';
$labels['messagesdisplaying'] = 'გáƒáƒ›áƒáƒáƒ©áƒ˜áƒœáƒ” შეტყáƒáƒ‘ინებები';
@@ -301,12 +441,15 @@ $labels['advancedoptions'] = 'დáƒáƒ›áƒáƒ¢áƒ”ბითი პáƒáƒ áƒáƒ›áƒ”á
$labels['focusonnewmessage'] = 'ფáƒáƒ™áƒ£áƒ¡áƒ˜áƒ áƒ”ბრáƒáƒ®áƒáƒš შეტყáƒáƒ‘ინებებზე';
$labels['checkallfolders'] = 'შეáƒáƒ›áƒáƒ¬áƒ›áƒ” ყველრსáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე áƒáƒ®áƒáƒš შეტყáƒáƒ‘ინებáƒáƒ–ე';
$labels['displaynext'] = 'შეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ˜áƒ¡ áƒáƒœ გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒ¡ შემდეგ გáƒáƒ›áƒáƒ©áƒœáƒ“ეს შემდეგი შეტყáƒáƒ‘ინებáƒ';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'ძირითáƒáƒ“ი პáƒáƒ áƒáƒ›áƒ”ტრები';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'გáƒáƒœáƒ§áƒáƒ¤áƒ˜áƒšáƒ”ბáƒ';
$labels['maintenance'] = 'მáƒáƒ›áƒ¡áƒáƒ®áƒ£áƒ áƒ”ბáƒ';
$labels['newmessage'] = 'áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
$labels['signatureoptions'] = 'ხელმáƒáƒ¬áƒ”რის áƒáƒ¤áƒªáƒ˜áƒ”ბი';
$labels['whenreplying'] = 'პáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ შემთხვევáƒáƒ¨áƒ˜';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'დáƒáƒ˜áƒ¬áƒ§áƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებრáƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜áƒ¡ ზემáƒáƒ—';
$labels['replybottomposting'] = 'დáƒáƒ˜áƒ¬áƒ§áƒáƒ¡ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებრáƒáƒ áƒ˜áƒ’ინáƒáƒšáƒ˜áƒ¡ ქვემáƒáƒ—';
$labels['replyremovesignature'] = 'წáƒáƒ˜áƒ¨áƒáƒšáƒáƒ¡ ხელმáƒáƒ¬áƒ”რრპáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ შემთხვევáƒáƒ¨áƒ˜';
@@ -314,8 +457,25 @@ $labels['autoaddsignature'] = 'áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“ დáƒáƒ”მáƒ
$labels['newmessageonly'] = 'მხáƒáƒšáƒáƒ“ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
$labels['replyandforwardonly'] = 'მხáƒáƒšáƒáƒ“ გáƒáƒ“áƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒ¡ დრპáƒáƒ¡áƒ£áƒ®áƒ˜áƒ¡ შემთხვევáƒáƒ¨áƒ˜';
$labels['insertsignature'] = 'ხელმáƒáƒªáƒ”რის ჩáƒáƒ¡áƒ›áƒ';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
$labels['afternseconds'] = '$n წáƒáƒ›áƒ˜áƒ¡ შემდეგ';
+$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'] = 'ლექსიკáƒáƒœáƒ¨áƒ˜ დáƒáƒ›áƒáƒ¢áƒ”ბáƒ';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე';
$labels['folders'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეები';
$labels['foldername'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის დáƒáƒ¡áƒáƒ®áƒ”ლებáƒ';
@@ -325,33 +485,54 @@ $labels['create'] = 'შექმნáƒ';
$labels['createfolder'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის შექმნáƒ';
$labels['managefolders'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეების მáƒáƒ áƒ—ვáƒ';
$labels['specialfolders'] = 'სპეციáƒáƒšáƒ£áƒ áƒ˜ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე';
+$labels['properties'] = 'Properties';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
$labels['location'] = 'მდებáƒáƒ áƒ”áƒáƒ‘áƒ';
$labels['info'] = 'ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'დáƒáƒ¡áƒ¢áƒ˜áƒ¡ ტიპი';
$labels['personalfolder'] = 'კერძრდáƒáƒ¡áƒ¢áƒ';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'სáƒáƒ¯áƒáƒ áƒ დáƒáƒ¡áƒ¢áƒ';
+
$labels['sortby'] = 'დáƒáƒšáƒáƒ’ებáƒ';
$labels['sortasc'] = 'დáƒáƒšáƒáƒ’ებრზრდáƒáƒ“áƒáƒ‘ით';
$labels['sortdesc'] = 'დáƒáƒšáƒáƒ’ებრკლებáƒáƒ“áƒáƒ‘ით';
$labels['undo'] = 'დáƒáƒ‘რუნებáƒ';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'ბტ';
$labels['KB'] = 'კბტ';
$labels['MB'] = 'მბტ';
$labels['GB'] = 'გბტ';
+
+// character sets
$labels['unicode'] = 'უნიკáƒáƒ“ი';
$labels['english'] = 'ინსგლისური';
$labels['westerneuropean'] = 'დáƒáƒ¡áƒáƒ•áƒšáƒ£áƒ áƒ”ვრáƒáƒžáƒ£áƒšáƒ˜';
$labels['easterneuropean'] = 'áƒáƒ¦áƒ›áƒáƒ¡áƒáƒ•áƒšáƒ”თევრáƒáƒžáƒ£áƒšáƒ˜';
+$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'ბáƒáƒšáƒ¢áƒ˜áƒ£áƒ áƒ˜';
$labels['cyrillic'] = 'კირილიცáƒ';
$labels['arabic'] = 'áƒáƒ áƒáƒ‘ული';
$labels['greek'] = 'ბერძნული';
$labels['hebrew'] = 'ებრáƒáƒ£áƒšáƒ˜';
$labels['turkish'] = 'თურქული';
+$labels['nordic'] = 'Nordic';
$labels['thai'] = 'ტáƒáƒ˜';
$labels['celtic'] = 'კელტური';
$labels['vietnamese'] = 'ვიეტნáƒáƒ›áƒ£áƒ áƒ˜';
$labels['japanese'] = 'იáƒáƒžáƒáƒœáƒ£áƒ áƒ˜';
$labels['korean'] = 'კáƒáƒ áƒ”ული';
$labels['chinese'] = 'ჩინური';
+
?>
diff --git a/program/localization/ka_GE/messages.inc b/program/localization/ka_GE/messages.inc
index 2c544e17d..754343fac 100644
--- a/program/localization/ka_GE/messages.inc
+++ b/program/localization/ka_GE/messages.inc
@@ -15,6 +15,9 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'შესვლრშეუძლებელიáƒ';
$messages['cookiesdisabled'] = 'თქვენი ბრáƒáƒ£áƒ–ერი კუკიებს áƒáƒ  პáƒáƒ¡áƒ£áƒ®áƒáƒ‘ს';
$messages['sessionerror'] = 'თქვენი სესირáƒáƒ áƒ˜áƒ¡ მცდáƒáƒ áƒ˜ áƒáƒœ ვáƒáƒ“áƒáƒ’áƒáƒ¡áƒ£áƒšáƒ˜';
@@ -22,11 +25,17 @@ $messages['storageerror'] = 'IMAP სერვერთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨
$messages['servererror'] = 'შეცდáƒáƒ›áƒ სერვერზე!';
$messages['servererrormsg'] = 'სერვერის შეცდáƒáƒ›áƒ: $msg';
$messages['dberror'] = 'მáƒáƒœáƒáƒªáƒ”მთრბáƒáƒ–ის შეცდáƒáƒ›áƒ!';
+$messages['requesttimedout'] = 'Request timed out';
+$messages['errorreadonly'] = 'Unable to perform operation. Folder is read-only.';
$messages['errornoperm'] = 'მáƒáƒ¥áƒ›áƒ”დების შესრულებრშეუძლებáƒáƒšáƒ˜áƒ. წვდáƒáƒ›áƒ áƒáƒ™áƒ áƒ«áƒáƒšáƒ£áƒšáƒ˜áƒ.';
+$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'] = 'áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მáƒáƒ—ხáƒáƒ•áƒœáƒ! მáƒáƒœáƒáƒªáƒ”მების შენáƒáƒ®áƒ•áƒ áƒáƒ  მáƒáƒ®áƒ”რხდáƒ.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'áƒáƒ  áƒáƒ áƒ˜áƒ¡ áƒáƒ®áƒáƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
$messages['loggedout'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ˜áƒ®áƒ£áƒ áƒ თქვენი სესიáƒ';
$messages['mailboxempty'] = 'სáƒáƒ¤áƒáƒ¡áƒ¢áƒ ყუთი ცáƒáƒ áƒ˜áƒ”ლიáƒ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'იტვირთებáƒ...';
$messages['uploading'] = 'ფáƒáƒ˜áƒšáƒ˜ იტვირთებáƒ...';
$messages['uploadingmany'] = 'ფáƒáƒ˜áƒšáƒ”ბის áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ...';
@@ -39,22 +48,31 @@ $messages['messagesaved'] = 'შეტყáƒáƒ‘ინების დრáƒáƒ”áƒ
$messages['successfullysaved'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით შეინáƒáƒ®áƒ';
$messages['addedsuccessfully'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ”მáƒáƒ¢áƒ მისáƒáƒ›áƒáƒ áƒ—ებში';
$messages['contactexists'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ áƒáƒ› მისáƒáƒ›áƒáƒ áƒ—ზე უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'უსáƒáƒ¤áƒ áƒ—ხáƒáƒ”ბის მიზნით სურáƒáƒ—ების ჩვენებრშეზღუდულიáƒ';
$messages['encryptedmessage'] = 'შეტყáƒáƒ‘ინებრდáƒáƒ¨áƒ˜áƒ¤áƒ áƒ£áƒšáƒ˜áƒ დრსáƒáƒ›áƒ¬áƒ£áƒ®áƒáƒ áƒáƒ“ ჩვენებრშეუძლებელიáƒ';
$messages['nocontactsfound'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ';
$messages['contactnotfound'] = 'მáƒáƒ—ხáƒáƒ•áƒœáƒ˜áƒšáƒ˜ კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ˜ ვერ მáƒáƒ˜áƒ«áƒ”ბნáƒ';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'შეტყáƒáƒ‘ინებრვერ გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ';
$messages['senttooquickly'] = 'გთხáƒáƒ•áƒ— მáƒáƒ˜áƒªáƒáƒ“áƒáƒ— $sec წáƒáƒ›áƒ˜. სáƒáƒœáƒáƒ› იგზáƒáƒ•áƒœáƒ”ბრშეტყáƒáƒ‘ინებáƒ';
+$messages['errorsavingsent'] = 'შეცდáƒáƒ›áƒ სáƒáƒœáƒáƒ› ინáƒáƒ®áƒ”ბრგáƒáƒ’ზáƒáƒ•áƒœáƒ˜áƒšáƒ˜ შეტყáƒáƒ‘ინებáƒ';
+$messages['errorsaving'] = 'შენáƒáƒ®áƒ•áƒ˜áƒ¡ დრáƒáƒ¡ მáƒáƒ®áƒ“რშეცდáƒáƒ›áƒ';
$messages['errormoving'] = 'შეტყáƒáƒ‘ინების გáƒáƒ“áƒáƒ¢áƒáƒœáƒ შეუძლებელიáƒ';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'შეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ';
$messages['errormarking'] = 'შეტყáƒáƒ‘ინების მáƒáƒœáƒ˜áƒ¨áƒ•áƒœáƒ შეუძლებელიáƒ';
$messages['deletecontactconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის წáƒáƒ¨áƒšáƒ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ შეტყáƒáƒ‘ინებების წáƒáƒ¨áƒšáƒ?';
$messages['deletefolderconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ áƒáƒ› სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ?';
$messages['purgefolderconfirm'] = 'ნáƒáƒ›áƒ“ვილáƒáƒ“ გსურთ ყველრშეტყáƒáƒ‘ინების წáƒáƒ¨áƒšáƒ áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ£áƒš სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
$messages['groupdeleting'] = 'ჯგუფის წáƒáƒ¨áƒšáƒ...';
$messages['folderdeleting'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის წáƒáƒ¨áƒšáƒ...';
$messages['foldermoving'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'ყველრველი áƒáƒ  áƒáƒ áƒ˜áƒ¡ შევსებული';
$messages['noemailwarning'] = 'მიუთითეთ სწáƒáƒ áƒ˜ ელ–ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი';
$messages['nonamewarning'] = 'მიუთითეთ სáƒáƒ®áƒ”ლი';
@@ -74,22 +92,40 @@ $messages['searching'] = 'ძიებáƒ...';
$messages['checking'] = 'შემáƒáƒ¬áƒ›áƒ”ბáƒ...';
$messages['nospellerrors'] = 'áƒáƒ áƒ—áƒáƒ’რáƒáƒ¤áƒ˜áƒ£áƒšáƒ˜ შეცდáƒáƒ›áƒ áƒáƒ  áƒáƒ áƒ˜áƒ¡';
$messages['folderdeleted'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ';
$messages['converting'] = 'შეტყáƒáƒ‘ინების ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ áƒ”ბის გáƒáƒ£áƒ¥áƒ›áƒ”ბáƒ...';
$messages['messageopenerror'] = 'შეტყáƒáƒ‘ინებრვერ ჩáƒáƒ˜áƒ¢áƒ•áƒ˜áƒ áƒ—რსერვერიდáƒáƒœ';
$messages['fileuploaderror'] = 'ფáƒáƒ˜áƒšáƒ˜ ვერ áƒáƒ˜áƒ¢áƒ•áƒ˜áƒ áƒ—áƒ';
$messages['filesizeerror'] = 'áƒáƒ¢áƒ•áƒ˜áƒ áƒ—ული ფáƒáƒ˜áƒšáƒ˜áƒ¡ ზáƒáƒ›áƒ მეტირდáƒáƒ¡áƒáƒ¨áƒ•áƒ”ბ ფáƒáƒ˜áƒšáƒ˜áƒ¡ მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ  ზáƒáƒ›áƒáƒ–ე ($size)';
+$messages['copysuccess'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ™áƒáƒžáƒ˜áƒ áƒ“რ$nr მისáƒáƒ›áƒáƒ áƒ—ი';
+$messages['copyerror'] = 'ვერცერთი მისáƒáƒ›áƒáƒ áƒ—ი ვერ დáƒáƒ™áƒáƒžáƒ˜áƒ áƒ“áƒ';
$messages['sourceisreadonly'] = 'áƒáƒ¦áƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ მისáƒáƒ›áƒáƒ áƒ—ის მხáƒáƒšáƒáƒ“ წáƒáƒ™áƒ˜áƒ—ხვáƒáƒ შესáƒáƒ«áƒšáƒ”ბელი';
$messages['errorsavingcontact'] = 'სáƒáƒ™áƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ მისáƒáƒ›áƒáƒ áƒ—ის შენáƒáƒ®áƒ•áƒ შეუძლებელიáƒ';
$messages['movingmessage'] = 'შეტყáƒáƒ‘ინების გáƒáƒ“áƒáƒ¢áƒáƒœáƒ...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ';
$messages['errorsendingreceipt'] = 'áƒáƒ  გáƒáƒ˜áƒ’ზáƒáƒ•áƒœáƒ';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'წáƒáƒ¨áƒšáƒ შეუძლებელიáƒ, ის თქვენთვის ერთáƒáƒ“ერთიáƒ';
$messages['forbiddencharacter'] = 'სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის სáƒáƒ®áƒ”ლი შეიცáƒáƒ•áƒ¡ áƒáƒ™áƒ áƒ«áƒáƒšáƒ£áƒš სიმბáƒáƒšáƒáƒ”ბს';
$messages['selectimportfile'] = 'გთხáƒáƒ•áƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒáƒ— ფáƒáƒ˜áƒšáƒ˜ áƒáƒ¡áƒáƒ¢áƒ•áƒ˜áƒ áƒ—áƒáƒ“';
$messages['addresswriterror'] = 'მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒš მისáƒáƒ›áƒáƒ áƒ—ებში ჩáƒáƒ¬áƒ”რრშეუძლებელიáƒ';
+$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'] = 'გთხáƒáƒ•áƒ— მáƒáƒ˜áƒªáƒáƒ“áƒáƒ—, მიმდინáƒáƒ áƒ”áƒáƒ‘ს შემáƒáƒ¢áƒáƒœáƒ';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით დáƒáƒ¡áƒ áƒ£áƒšáƒ“რ$inserted კáƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ”ბის შემáƒáƒ¢áƒáƒœáƒ, $skipped áƒáƒ áƒ¡áƒ”ბულის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ შეზღუდულიáƒ';
$messages['nofromaddress'] = 'ელ–ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ';
$messages['editorwarning'] = 'რედáƒáƒ¥áƒ¢áƒáƒ áƒ˜áƒ¡ გáƒáƒ“áƒáƒ áƒ—ვრტექსტურ რეჟიმში გáƒáƒ›áƒáƒ˜áƒ¬áƒ•áƒ”ვს áƒáƒ áƒ¡áƒ”ბული ტექსტის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ დáƒáƒ™áƒáƒ áƒ’ვáƒáƒ¡. გსურთ გáƒáƒ’რძელებáƒ?';
@@ -101,16 +137,35 @@ $messages['smtptoerror'] = 'SMTP Error ($code): ვერ დáƒáƒ”მáƒáƒ¢áƒ
$messages['smtprecipientserror'] = 'SMTP Error: მიმღებთრჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜áƒ¡ დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბრვერ მáƒáƒ®áƒ”რხდáƒ';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'ელ-ფáƒáƒ¡áƒ¢áƒ˜áƒ¡ მისáƒáƒ›áƒáƒ áƒ—ი áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
$messages['contactdeleted'] = 'კáƒáƒœáƒ¢áƒáƒ¥áƒ¢(ებ)ი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
$messages['contactrestored'] = 'კáƒáƒœáƒ áƒáƒ¥áƒ¢(ებ)ი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით áƒáƒ¦áƒ“გáƒ,';
$messages['groupdeleted'] = 'ჯგუფი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
$messages['groupcreated'] = 'ჯგუფი წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით შეიქმნáƒ.';
+$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'] = 'შეტყáƒáƒ‘ინებები წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით წáƒáƒ˜áƒ¨áƒáƒšáƒ.';
$messages['messagemoved'] = 'შეტყáƒáƒ‘ინებები გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒšáƒ˜áƒ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
$messages['messagemarked'] = 'შეტყáƒáƒ‘ინებები წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით მáƒáƒ˜áƒœáƒ˜áƒ¨áƒœáƒ.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'სáƒáƒ®áƒ”ლი áƒáƒ  შეიძლებრიყáƒáƒ¡ ცáƒáƒ áƒ˜áƒ”ლი.';
$messages['nametoolong'] = 'სáƒáƒ®áƒ”ლი ძáƒáƒšáƒ˜áƒáƒœ მáƒáƒ™áƒšáƒ”áƒ.';
$messages['folderupdated'] = 'დáƒáƒ¡áƒ¢áƒ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით გáƒáƒœáƒáƒ®áƒšáƒ“áƒ.';
$messages['foldercreated'] = 'დáƒáƒ¡áƒ¢áƒ წáƒáƒ áƒ›áƒáƒ¢áƒ”ბით შეიქმნáƒ.';
$messages['invalidimageformat'] = 'გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ.';
+$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/km_KH/labels.inc b/program/localization/km_KH/labels.inc
index 9a2799922..7b10b5f7f 100644
--- a/program/localization/km_KH/labels.inc
+++ b/program/localization/km_KH/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product សូមស្វាគមនáŸ';
$labels['username'] = 'ឈ្មោះអ្នកប្រើ';
$labels['password'] = 'ពាក្យសំងាážáŸ‹';
$labels['server'] = 'ម៉ាស៊ីនមáŸ';
$labels['login'] = 'áž–áž·áž“áž·ážáŸ’យចូល';
+
+// taskbar
$labels['logout'] = 'áž–áž·áž“áž·ážáŸ’យចáŸáž‰';
$labels['mail'] = 'អ៊ីមែល';
$labels['settings'] = 'កំនážáŸ‹áž€áž¶ážšáž”្រើប្រាស់';
$labels['addressbook'] = 'សៀវភៅអាសយដ្ឋាន';
+
+// mailbox names
$labels['inbox'] = 'ប្រអប់សំបុážáŸ’ážš';
$labels['drafts'] = 'សំបុážáŸ’រពង្រៀង';
$labels['sent'] = 'សំបុážáŸ’រដែលបានបញ្ជូន';
$labels['trash'] = 'ធុងសំរាម';
$labels['junk'] = 'សំបុážáŸ’រមិនល្អ';
+
+// message listing
$labels['subject'] = 'ចំណងជើង';
$labels['from'] = 'អ្នកផ្ញើ';
+$labels['sender'] = 'Sender';
$labels['to'] = 'អ្នកទទួល';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -41,17 +52,28 @@ $labels['size'] = 'ទំហំ';
$labels['priority'] = 'អទិភាព';
$labels['organization'] = 'អង្គភាព';
$labels['readstatus'] = 'ស្ážáž¶áž“ភាពនៃការអាន';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'ážážáž‘ាំងអស់';
$labels['messagesfromto'] = 'សំបុážáŸ’រពី $from ទៅដល់ $toក្នុងចំណោម $count សំបុážáŸ’ážš';
$labels['threadsfromto'] = 'បន្ážáž»áŸ†ážŸáŸ†áž”áž»ážáŸ’រពី $from ទៅដល់ $toក្នុងចំណោម $count សំបុážáŸ’ážš';
$labels['messagenrof'] = 'សំបុážáŸ’ážš $nr នៃ $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'ចំលង';
$labels['move'] = 'ផ្ទáŸážš';
$labels['moveto'] = 'ផ្ទáŸážšáž‘ៅ';
$labels['download'] = 'ទាញយក';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ឈ្មោះឯកសារ';
$labels['filesize'] = 'ទំហំឯកសារ';
+
$labels['addtoaddressbook'] = 'រក្សាទុកក្នុងសៀវភៅអាសយដ្ឋាន';
+
+// weekdays short
$labels['sun'] = 'អាទិážáŸ’áž™';
$labels['mon'] = 'áž…áŸáž“្ទ';
$labels['tue'] = 'អង្គារ';
@@ -59,6 +81,8 @@ $labels['wed'] = 'ពុធ';
$labels['thu'] = 'ព្រហស្បážáž·áŸ';
$labels['fri'] = 'សុក្រ';
$labels['sat'] = 'សៅរáŸ';
+
+// weekdays long
$labels['sunday'] = 'អាទិážáŸ’áž™';
$labels['monday'] = 'áž…áŸáž“្ទ';
$labels['tuesday'] = 'អង្គារ';
@@ -66,6 +90,8 @@ $labels['wednesday'] = 'ពុធ';
$labels['thursday'] = 'ព្រហស្បážáž·áŸ';
$labels['friday'] = 'សុក្រ';
$labels['saturday'] = 'សៅរáŸ';
+
+// months short
$labels['jan'] = 'មករា';
$labels['feb'] = 'កុម្ភះ';
$labels['mar'] = 'មិនា';
@@ -78,6 +104,8 @@ $labels['sep'] = 'កញ្ញា';
$labels['oct'] = 'ážáž»áž›áž¶';
$labels['nov'] = 'វិច្ឆិកា';
$labels['dec'] = 'ធ្នូ';
+
+// months long
$labels['longjan'] = 'មករា';
$labels['longfeb'] = 'កុម្ភះ';
$labels['longmar'] = 'មិនា';
@@ -90,14 +118,22 @@ $labels['longsep'] = 'កញ្ញា';
$labels['longoct'] = 'ážáž»áž›áž¶';
$labels['longnov'] = 'វិច្ឆិកា';
$labels['longdec'] = 'ធ្នូ';
+
$labels['today'] = 'ážáŸ’ងៃនáŸáŸ‡';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'áž–áž·áž“áž·ážáŸ’យសំបុážáŸ’ážšážáŸ’មី';
$labels['compose'] = 'សរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáŸ’មី';
$labels['writenewmessage'] = 'សរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáŸ’មី';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'ឆ្លើយážáž”ទៅអ្នកផ្ញើ';
$labels['replytoallmessage'] = 'ឆ្លើយážáž”ទៅ អ្នកទទួលទាំងអស់និង ក្រុម ឬ អ្នកផ្ញើ';
$labels['replyall'] = 'ឆ្លើយážáž”ទៅទាំងអស់គ្នា';
$labels['replylist'] = 'ឆ្លើយážáž”ទៅក្រុម';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'ផ្ញើសំបុážáŸ’របន្ážážš';
$labels['deletemessage'] = 'លុបសំបុážáŸ’រចោល';
$labels['movemessagetotrash'] = 'ផ្ទáŸážšážŸáŸ†áž”áž»ážáŸ’រទៅក្នុងធុងសំរាម';
@@ -108,11 +144,17 @@ $labels['nextmessage'] = 'បង្ហាញសំបុážáŸ’របន្á
$labels['lastmessage'] = 'បង្ហាញសំបុážáŸ’រចុងក្រោយ';
$labels['backtolist'] = 'ážáŸ’រលប់ទៅកាន់ក្រុមសំបុážáŸ’ážš';
$labels['viewsource'] = 'បង្ហាញ Source របស់សំបុážáŸ’ážš';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'កំណážáŸ‹ážŸáŸ†áž‚ាល់សំបុážáŸ’ážš';
$labels['markread'] = 'កំណážáŸ‹ážáž¶áž”ានអានរួច';
$labels['markunread'] = 'កំណážáŸ‹ážáž¶áž˜áž·áž“ទាន់បានអាន';
$labels['markflagged'] = 'កំណážáŸ‹ážŸáŸ†áž‚ាល់ដោយផ្កាយ';
$labels['markunflagged'] = 'លុបកំណážáŸ‹ážŸáŸ†áž‚ាល់ដោយផ្កាយ';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'ជ្រើសរើស';
$labels['all'] = 'ទាំងអស់';
$labels['none'] = 'មិនážáŸ†ážšáŸ€áž”';
@@ -120,7 +162,9 @@ $labels['currpage'] = 'ទំពáŸážšáž“áŸáŸ‡';
$labels['unread'] = 'មិនទាន់អាន';
$labels['flagged'] = 'មានកំណážáŸ‹ážŸáŸ†áž‚ាល់ដោយផ្កាយ';
$labels['unanswered'] = 'មិនទាន់ឆ្លើយážáž”';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'បានលុបរួច';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'បញ្ច្រស់';
$labels['filter'] = 'លក្ážážáŸážŽáŸ’ឌ';
$labels['list'] = 'ážáž¶ážšáž¶áž„';
@@ -129,6 +173,7 @@ $labels['expand-all'] = 'បង្ហាញសំបុážáŸ’រទាំងអá
$labels['expand-unread'] = 'បង្ហាញសំបុážáŸ’រមិនទាន់អាន';
$labels['collapse-all'] = 'បិទសំបុážáŸ’រទាំងអស់';
$labels['threaded'] = 'បានបែកចែកជាក្រុមរួច';
+
$labels['autoexpand_threads'] = 'បង្ហាញបណ្ážáž»áŸ†ážŸáŸ†áž”áž»ážáŸ’ážš';
$labels['do_expand'] = 'បណ្ážáž»áŸ†áž‘ាំងអស់';
$labels['expand_only_unread'] = 'បង្ហាញážáŸ‚សំបុážáŸ’រដែលមិនទាន់អាន';
@@ -144,19 +189,29 @@ $labels['listcolumns'] = 'ážáž¶ážšáž¶áž„ជួរឈ';
$labels['listsorting'] = 'ážáŸ†ážšáŸ€áž”ជួរឈ';
$labels['listorder'] = 'លំដាប់នៃការážáŸ†ážšáŸ€áž”';
$labels['listmode'] = 'បង្ហាញជាážáž¶ážšáž¶áž„';
+
$labels['folderactions'] = 'មុážáž„ារážáž';
$labels['compact'] = 'បង្រួម';
$labels['empty'] = 'áž‘áž‘áŸážš';
+
$labels['quota'] = 'ទំហំសំបុážáŸ’រទាំងអស់ដែលមាន';
$labels['unknown'] = 'មិនស្គាល់';
$labels['unlimited'] = 'គ្មានកំនážáŸ‹';
+
$labels['quicksearch'] = 'ស្វែងរក';
$labels['resetsearch'] = 'កំណážáŸ‹áž›áž€áŸ’ážážáŸážŽáŸ’ឌស្វែងរកជាážáŸ’មី';
$labels['searchmod'] = 'កែសំរួលលក្ážážáŸážŽáŸ’ឌស្វែងរក';
$labels['msgtext'] = 'សំបុážáŸ’រទាំងមូល';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'បើកក្នុងវីនដូវážáŸ’មី';
$labels['emlsave'] = 'រក្សាទុកទិន្ននáŸáž™áž‡áž¶áž¯áž€ážŸáž¶ážšáž”្រភáŸáž‘(.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'កែហើយរក្សាទុកដូចជាសំបុážáŸ’ážšážáŸ’មី';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ផ្ញើសំបុážáŸ’ážšáž“áŸáŸ‡';
$labels['savemessage'] = 'រក្សាទុកសំបុážáŸ’រពង្រៀង';
$labels['addattachment'] = 'ឯកសារភ្ជាប់';
@@ -164,33 +219,54 @@ $labels['charset'] = 'ប្រភáŸáž‘អក្សរ';
$labels['editortype'] = 'ប្រភáŸáž‘ Editor';
$labels['returnreceipt'] = 'អážáŸ’ážáž”ទបញ្ជាក់ពីការážáŸ’រឡប់';
$labels['dsn'] = 'ប្រាប់អំពីស្ážáž¶áž“ភាពផ្ញើ';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
$labels['editidents'] = 'ផ្លាស់ប្ážáž¼ážšáž¢ážáŸ’ážážŸáž‰áŸ’ញាណ';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'áž–áž·áž“áž·ážáŸ’យអក្ážážšáž¶ážœáž·ážšáž»áž‘្ធ';
$labels['resumeediting'] = 'បន្ážážšáž€áž¶ážšáž€áŸ‚ážáŸ†ážšáž¼ážœ';
$labels['revertto'] = 'ážáŸ’រលប់ទៅ';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'ឯកសារភ្ជាប់';
$labels['upload'] = 'ភ្ជាប់ឯកសារ';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'បិទ';
$labels['messageoptions'] = 'កំណážáŸ‹áž‡áŸ†ážšáž¾ážŸážšáž”ស់សំបុážáŸ’ážš';
+
$labels['low'] = 'ទាប';
$labels['lowest'] = 'ទាបបំផុáž';
$labels['normal'] = 'ធម្មážáž¶';
$labels['high'] = 'ážáŸ’ពស់';
$labels['highest'] = 'ážáŸ’ពស់បំផុáž';
+
$labels['nosubject'] = '(គ្មានចំណងជើង)';
$labels['showimages'] = 'បង្ហាញរូបភាព';
$labels['alwaysshow'] = 'បង្ហាញជានិច្ចរាល់រូបភាពបញ្ជូនពី$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'] = 'អážáŸ’ážáž”ទធម្មážáž¶';
$labels['savesentmessagein'] = 'រក្សាសំបុážáŸ’រដែលបានផ្ញើក្នុង';
$labels['dontsave'] = 'មិនរក្សាទុក';
$labels['maxuploadsize'] = 'ទំហំឯកសារធំបំផុážážŠáŸ‚លអាចភ្ជាប់បានគឺ$size';
+
$labels['addcc'] = 'បន្ážáŸ‚ម Cc';
$labels['addbcc'] = 'បន្ážáŸ‚ម Bcc';
$labels['addreplyto'] = 'បន្ážáŸ‚ម Reply-To';
$labels['addfollowupto'] = 'បន្ážáŸ‚ម Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
$labels['receiptread'] = 'អážáŸ’ážáž”ទផ្ញើážáŸ’រលប់ (បានអាន)';
$labels['yourmessage'] = 'áž“áŸáŸ‡áž‚ឺជាអážáŸ’ážáž”ទផ្ញើážáŸ’រលប់សំរាប់សំបុážáŸ’ររបស់លោកអ្នក។';
+$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.';
+
+// address boook
$labels['name'] = 'ឈ្មោះសំរាប់បង្ហាញ';
$labels['firstname'] = 'នាមážáŸ’រកូល';
$labels['surname'] = 'នាមážáŸ’លួន';
@@ -220,7 +296,12 @@ $labels['female'] = 'ស្រី';
$labels['manager'] = 'នាយក';
$labels['assistant'] = 'ជំនួយការ';
$labels['spouse'] = 'គ្រួសារ';
+$labels['allfields'] = 'All fields';
+$labels['search'] = 'Search';
+$labels['advsearch'] = 'Advanced Search';
+$labels['advanced'] = 'Advanced';
$labels['other'] = 'ផ្សáŸáž„ពីនáŸáŸ‡';
+
$labels['typehome'] = 'áž‚áŸáž ážŠáŸ’ឋាន';
$labels['typework'] = 'កន្លែងធ្វើការ';
$labels['typeother'] = 'ផ្សáŸáž„ពីនáŸáŸ‡';
@@ -232,12 +313,17 @@ $labels['typecar'] = 'ážšážáž™áž“្áž';
$labels['typepager'] = 'ឧបករណáŸáž•áŸ’ážáž›áŸ‹ážŸáž¶ážš';
$labels['typevideo'] = 'វីដáŸáž¢áž¼ážš';
$labels['typeassistant'] = 'ជំនួយការ';
+$labels['typehomepage'] = 'Home Page';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
$labels['addfield'] = 'បន្ážáŸ‚ម';
$labels['addcontact'] = 'បន្ážáŸ‚មអាសយដ្ឋានទាក់ទង';
$labels['editcontact'] = 'កែប្រែអាសយដ្ឋានទាក់ទង';
$labels['contacts'] = 'អាសយដ្ឋានទាក់ទងទាំងអស់';
$labels['contactproperties'] = 'áž–áŸážáŸŒáž˜áž¶áž“អំពីទំនាក់ទំនង';
$labels['personalinfo'] = 'áž–áŸážáŸŒáž˜áž¶áž“ផ្ទាល់ážáŸ’លួន';
+
$labels['edit'] = 'កែážáŸ†ážšáž¼ážœ';
$labels['cancel'] = 'លះបង់';
$labels['save'] = 'រក្សាទុក';
@@ -245,38 +331,63 @@ $labels['delete'] = 'លុបចោល';
$labels['rename'] = 'ប្ážáž¼ážšážˆáŸ’មោះ';
$labels['addphoto'] = 'បន្ážáŸ‚មរូបážáž';
$labels['replacephoto'] = 'លុបរូបážáž';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'បង្កើážáž¢áž¶ážŸáž™ážŠáŸ’ឋានទាក់ទងážáŸ’មី';
$labels['deletecontact'] = 'លុបអាសយដ្ឋានទាក់ទងដែលបានជ្រើសរើស';
$labels['composeto'] = 'ផ្ញើសំបុážáŸ’រទៅ';
$labels['contactsfromto'] = 'អាសយដ្ឋានទាក់ទង $from ដល់ $to នៃ$count';
$labels['print'] = 'បោះពុម្ភ';
$labels['export'] = 'ទាញនិងរក្សាទុក';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'ទាញនិងរក្សាទុកអាសយដ្ឋានជាប្រភáŸáž‘vCard';
$labels['newcontactgroup'] = 'បង្កើážáž€áŸ’រុមអាសយដ្ឋានážáŸ’មី';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'ទំពáŸážšáž˜áž»áž“';
$labels['firstpage'] = 'ទំពáŸážšážŠáŸ†áž”ូង';
$labels['nextpage'] = 'ទំពáŸážšáž”ន្ទាប់';
$labels['lastpage'] = 'ទំពáŸážšáž…ុងក្រោយ';
+
$labels['group'] = 'ក្រុម';
$labels['groups'] = 'ក្រុម';
$labels['personaladrbook'] = 'អាសយដ្ឋានផ្ទាល់ážáŸ’លួន';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'បញ្ចូល';
$labels['importcontacts'] = 'បញ្ចូលអាសយដ្ឋាន';
$labels['importfromfile'] = 'បញ្ចូលពី ឯកសារ';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'ផ្លាស់ប្ážáž¼ážšáž¢áž¶ážŸáž™ážŠáŸ’ឋានទាំងអស់';
+$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'] = 'ចប់រួចរាល់';
+
+// settings
$labels['settingsfor'] = 'កំណážáŸ‹ážŸáŸ†ážšáž¶áž”់';
+$labels['about'] = 'About';
$labels['preferences'] = 'កំណážáŸ‹ážáž¶áž˜áž€áž¶ážšáž…ូលចិážáŸ’áž';
$labels['userpreferences'] = 'កំណážáŸ‹ážáž¶áž˜áž€áž¶ážšáž…ូលចិážáŸ’ážážšáž”ស់អ្នកប្រើ';
$labels['editpreferences'] = 'ផ្លាស់ប្ážáž¼ážšáž€áž¶ážšáž…ូលចិážáŸ’ážážšáž”ស់អ្នកប្រើ';
+
$labels['identities'] = 'អážáŸ’ážážŸáž‰áŸ’ញាណ';
$labels['manageidentities'] = 'គ្រប់គ្រងអážáŸ’ážážŸáž‰áŸ’ញាណ';
$labels['newidentity'] = 'អážáŸ’ážážŸáž‰áŸ’ញាណážáŸ’មី';
+
$labels['newitem'] = 'ážœážáŸ’ážáž»ážáŸ’មី';
$labels['edititem'] = 'កែប្រែវážáŸ’ážáž»';
+
$labels['preferhtml'] = 'បង្ហាញជា HTML';
$labels['defaultcharset'] = 'áž›áŸážáž€áž¼ážáž¢áž€áŸ’សរមានស្រាប់';
$labels['htmlmessage'] = 'សំបុážáŸ’រប្រភáŸáž‘ HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'កាលបរិច្ឆáŸážáž„ាយស្រួលមើល';
$labels['setdefault'] = 'កំណážáŸ‹áž‘ុក';
$labels['autodetect'] = 'ស្វáŸáž™áž”្រវážáŸ’ážáž·';
@@ -285,9 +396,13 @@ $labels['timezone'] = 'ម៉ោង';
$labels['pagesize'] = 'ចំនួនសំបុážáŸ’រក្នុងមួយទំពáŸážš';
$labels['signature'] = 'áž ážáŸ’ážáž›áŸážáž¶';
$labels['dstactive'] = 'ម៉ោងវស្សានរដូវ';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'សរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáž¶áž˜áž”ែប HTML';
$labels['htmlonreply'] = 'ឆ្លើយážáž”សំបុážáŸ’ážšážáž¶áž˜áž”ែប HTML';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'áž ážáŸ’ážáž›áŸážáž¶ážáž¶áž˜áž”ែប HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'បង្ហាញប្រអប់សំរាប់មើលសំបុážáŸ’ážš';
$labels['skin'] = 'ការរចនាទំពáŸážš';
$labels['logoutclear'] = 'សំអាážáž’ុងសំរាមពáŸáž›áž–áž·áž“áž·ážáŸ’យចáŸáž‰';
@@ -305,12 +420,14 @@ $labels['readwhendeleted'] = 'កំណážáŸ‹ážŸáŸ†áž”áž»ážáŸ’ážšážáž¶áž”ាáž
$labels['flagfordeletion'] = 'កំណážáŸ‹ážŸáž‰áŸ’ញាផ្កាយអោយសំបុážáŸ’ážšážáž¶áž”ានលុបដោយមិនចាំបាច់លុបជាក់ស្ážáŸ‚áž„';
$labels['skipdeleted'] = 'មិនបង្ហាញសំបុážáŸ’រដែលបានលុប';
$labels['deletealways'] = 'លុបសំបុážáŸ’រចោលប្រសិនជាមិនអាចផ្ទáŸážŸáŸ†áž”áž»ážáŸ’រនោះទៅធុងសំរាមបាន';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'បង្ហាញរូបភាពដែលគáŸáž•áŸ’ញើមក';
$labels['fromknownsenders'] = 'ពីអ្នកផ្ញើដែលស្គាល់';
$labels['always'] = 'គ្រប់ពáŸáž›';
$labels['showinlineimages'] = 'បង្ហាញរូបភាពនៅក្រោមអážáŸ’ážáž”ទសំបុážáŸ’ážš';
$labels['autosavedraft'] = 'រក្សាទុកសំបុážáŸ’រពង្រៀងដោយស្វáŸáž™áž”្រវážáŸ’ážáž·';
$labels['everynminutes'] = 'រៀងរាល់ $n នាទី';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'មិនដែល';
$labels['immediately'] = 'ភ្លាមៗ';
$labels['messagesdisplaying'] = 'កំពុងបង្ហាញសំបុážáŸ’ážš';
@@ -324,12 +441,15 @@ $labels['advancedoptions'] = 'ការកំណážáŸ‹áž–ឹស្ážáž¶ážš';
$labels['focusonnewmessage'] = 'ផ្ážáŸ„ážáž›áž¾ážœáž¸áž“ដូវដែលកំពុងសរសáŸážšážŸáŸ†áž”áž»ážáŸ’ážšážáŸ’មី';
$labels['checkallfolders'] = 'áž–áž·áž“áž·ážáŸ’យសំបុážáŸ’ážšážáŸ’មីនៅគ្រប់ážážáž‘ាំងអស់';
$labels['displaynext'] = 'បន្ទាប់ពីសំបុážáŸ’ážšážáŸ’រូវបានលុប​ឬផ្ទáŸážšáž”ង្ហាញសំបុážáŸ’របន្ទាប់';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'ជំរើសដែលជាគោល';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'ផ្នែក';
$labels['maintenance'] = 'ការážáŸ‚រក្សា';
$labels['newmessage'] = 'សំបុážáŸ’ážšážáŸ’មី';
$labels['signatureoptions'] = 'កំណážáŸ‹áž ážáŸ’ážáž›áŸážáž¶';
$labels['whenreplying'] = 'នៅពáŸáž›áž€áŸ†áž–ុងឆ្លើយážáž”';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'ចាប់ផ្ážáž¾áž˜â€‹ážŸážšážŸáŸážšâ€‹áž–ី​លើ​សំបុážáŸ’រ​ដើម';
$labels['replybottomposting'] = 'ចាប់ផ្ážáž¾áž˜ážŸážšážŸáŸážšáž–ីក្រោមសំបុážáŸ’រដើម';
$labels['replyremovesignature'] = 'នៅ​ពáŸáž›â€‹áž†áŸ’លើយ​ážáž”​លុប​ហážáŸ’ážáž›áŸážáž¶â€‹áž…áŸáž‰â€‹áž–ីសំបុážáŸ’ážš';
@@ -342,6 +462,20 @@ $labels['afternseconds'] = 'ក្រោយពី $n វិនាទី';
$labels['reqmdn'] = 'ក្រោយពី $n វិនាទី';
$labels['reqdsn'] = 'ក្រោយពី $n វិនាទី';
$labels['replysamefolder'] = 'ក្រោយពី $n វិនាទី';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'ážáž';
$labels['folders'] = 'ážážáž‘ាំងអស់';
$labels['foldername'] = 'ឈ្មោះážáž';
@@ -358,13 +492,30 @@ $labels['location'] = 'ទីកន្លែង';
$labels['info'] = 'áž–áŸážáŸŒáž˜áž¶áž“';
$labels['getfoldersize'] = 'ទំហំážáž';
$labels['changesubscription'] = 'ផ្លាស់ប្ážáž¼ážšáž€áž¶ážšáž‡áž¶ážœ';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜';
$labels['sortasc'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜áž›áŸ†ážŠáž¶áž”់ចុះ';
$labels['sortdesc'] = 'ážáŸ†ážšáŸ€áž”ážáž¶áž˜áž›áŸ†ážŠáž¶áž”់ឡើង';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'យូនីកូដ';
$labels['english'] = 'ភាសាអង់គ្លáŸážŸ';
$labels['westerneuropean'] = 'អឺរ៉ុបážáž¶áž„លិច';
@@ -383,4 +534,5 @@ $labels['vietnamese'] = 'ភាសាវៀážážŽáž¶áž˜';
$labels['japanese'] = 'ភាសាជប៉ុន';
$labels['korean'] = 'ភាសាកូរ៉áŸ';
$labels['chinese'] = 'ភាសាចិន';
+
?>
diff --git a/program/localization/km_KH/messages.inc b/program/localization/km_KH/messages.inc
index a2c4bab20..1f629fa6c 100644
--- a/program/localization/km_KH/messages.inc
+++ b/program/localization/km_KH/messages.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'ការពិនិážáŸ’យចូលមិនបានសំរáŸáž…ព្រោះមានបញ្ហាកើážáž¡áž¾áž„';
$messages['cookiesdisabled'] = 'កម្មវិធីមើលគáŸáž áž‘ំពáŸážšáž“áŸáŸ‡áž˜áž·áž“ទទួលយកCookies';
$messages['sessionerror'] = 'Session មិនážáŸ’រឹមážáŸ’រូវ ឬហួសកំណážáŸ‹';
$messages['storageerror'] = 'មិនអាចភ្ជាប់ទៅកាន់ម៉ាស៊ីនIMAP';
$messages['servererror'] = 'មានបញ្ហានៅម៉ាស៊ីនមáŸ';
$messages['servererrormsg'] = 'បញ្ហា: $msg';
+$messages['dberror'] = 'Database Error!';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'មិនអាចប្រážáž·áž”ážáŸ’ážáž·áž”ានពីព្រោះážážáž“áŸáŸ‡ážáŸ’រូវបានគáŸáž€áŸ†ážŽážáŸ‹ážŸáŸ†ážšáž¶áž”់ážáŸ‚មើល';
$messages['errornoperm'] = 'មិនអាចប្រážáž·áž”ážáŸ’ážáž·áž”ានពីព្រោះមិនមានសិទ្ទគ្រប់គ្រាន់';
+$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'] = 'មិនអាចរក្សាទុកទិន្ននáŸáž™áž”ានពីព្រោះមានបញ្ហានៅពáŸáž›áž”ញ្ជូនទិន្ននáŸáž™';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'ពុំមានសំបុážáŸ’រក្នុងប្រអប់សំបុážáŸ’ážšáž“áŸáŸ‡áž‘áŸ';
$messages['loggedout'] = 'អ្នកបានពិនិážáŸ’យចáŸáž‰ážŠáŸ„យជោគជáŸáž™áŸ”';
$messages['mailboxempty'] = 'ប្រអប់សំបុážáŸ’ážšáž‘áž‘áŸ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'កំពុងដំណើរការ...';
$messages['uploading'] = 'កំពុងបញ្ជូនឯកសារ...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'កំពុងបើកឯកសារ...';
$messages['checkingmail'] = 'កំពុងស្វែងរកមើលសំបុážáŸ’ážšážáŸ’មីáŸ...';
$messages['sendingmessage'] = 'កំពុងផ្ញើសំបុážáŸ’ážš...';
@@ -38,20 +48,27 @@ $messages['messagesaved'] = 'សំបុážáŸ’ážšážáŸ’រូវបានរក
$messages['successfullysaved'] = 'រក្សាទុកដោយជោគជáŸáž™';
$messages['addedsuccessfully'] = 'អាសយដ្ឋានážáŸ’រូវបានរក្សាទុកដោយជោគជáŸáž™';
$messages['contactexists'] = 'áž–áŸážáŸŒáž˜áž¶áž“ទាក់ទងដែលមានអ៊ីមែលនáŸáŸ‡áž˜áž¶áž“ក្នុងសៀវភៅអាសយដ្ឋានរួចហើយ';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'រូបភាពដែលមានក្នុងសំបុážáŸ’ážšáž“áŸáŸ‡ážáŸ’រូវបានបិទដើម្បីរក្សាសុវážáŸ’ážáž—ាព';
$messages['encryptedmessage'] = 'លោកអ្នកមិនអាចមើលសំបុážáŸ’ážšáž“áŸáŸ‡áž”ានទáŸáž–ីព្រោះសំបុážáŸ’ážšáž“áŸáŸ‡áž‡áž¶ážŸáŸ†áž”áž»ážáŸ’រសំងាážáŸ‹';
$messages['nocontactsfound'] = 'ពុំមានអាសយដ្ឋានទាក់ទងទáŸ';
$messages['contactnotfound'] = 'អាសយដ្ឋានទាក់ទងដែលលោកអ្នកចង់រកពុំមានឡើយ';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'មិនអាចផ្ញើសំបុážáŸ’របាន';
$messages['senttooquickly'] = 'សូមរងចាំ $sec វិនាទីមុននឹងផ្ញើសំបុážáŸ’ážšáž“áŸáŸ‡';
+$messages['errorsavingsent'] = 'មានបញ្ហាកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងរក្សាទុកសំបុážáŸ’រដែលបានផ្ញើរួច';
+$messages['errorsaving'] = 'មានបញ្ហាកើážáž¡áž¾áž„នៅពáŸáž›áž€áŸ†áž–ុងរក្សាសំបុážáŸ’រទុក';
$messages['errormoving'] = 'មិនអាចផ្ទáŸážšážŸáŸ†áž”áž»ážáŸ’របាន';
$messages['errorcopying'] = 'មិនអាចចំលងសំបុážáŸ’របាន';
$messages['errordeleting'] = 'មិនអាចលុបសំបុážáŸ’រចោលបាន';
$messages['errormarking'] = 'មិនអាចកំណážáŸ‹áž…ំណាំលើសំបុážáŸ’របាន';
$messages['deletecontactconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបពáŸážáŸŒáž˜áž¶áž“ទំនាក់ទំនងនáŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបសំបុážáŸ’ážšáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
$messages['deletefolderconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបážážáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
$messages['purgefolderconfirm'] = 'ážáž¾áž›áŸ„កអ្នកពិážáž‡áž¶áž…ង់លុបសំបុážáŸ’រទាំងអស់នៅក្នុងážážáž“áŸáŸ‡áž˜áŸ‚áž“áž‘áŸ?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'កំពុងលុបážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...';
$messages['foldermoving'] = 'កំពុងផ្ទáŸážšážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...';
$messages['foldersubscribing'] = 'កំពុងកំណážáŸ‹áž”្រើážážážŸáŸ†ážšáž¶áž”់ទុកឯកសារ...';
@@ -67,7 +84,9 @@ $messages['nobodywarning'] = 'ážáž¾áž›áŸ„កអ្នកចង់ផ្ញើáž
$messages['notsentwarning'] = 'សំបុážáŸ’ážšáž“áŸáŸ‡áž˜áž·áž“ទាន់បានផ្ញើទáŸáŸ” ážáž¾áž›áŸ„កអ្នកចង់លុបចោលទáŸ?';
$messages['noldapserver'] = 'សូមកំណážáŸ‹áž˜áŸ‰áž¶ážŸáŸŠáž¸áž“ LDAPដើម្បីស្វែងរក';
$messages['nosearchname'] = 'សូមបំពáŸáž‰ážˆáŸ’មោះទំនាក់ទំនង ឬអាសយដ្ឋានអ៊ីមែល';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'រកឃើញសំបុážáŸ’រចំនួន $nr';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'រកមិនឃើញអ្វីទាំងអស់';
$messages['searching'] = 'កំពុងស្វែងរក...';
$messages['checking'] = 'កំពុងពិនិážáŸ’យរក...';
@@ -82,24 +101,35 @@ $messages['converting'] = 'កំពុងលុបការរចនាចោáž
$messages['messageopenerror'] = 'មិនអាចទាញយកសំបុážáŸ’រពីម៉ាស៊ីនមáŸáž”ានទáŸ';
$messages['fileuploaderror'] = 'មិនអាចបញ្ជូលភ្ជាប់ឯកសារ';
$messages['filesizeerror'] = 'ទំហំឯកសារážáŸ’រូវបញ្ជូនលើសចំណុះទំហំធំបំផុážáž‚ឺ $size';
+$messages['copysuccess'] = 'បានចំលងអាសយដ្ឋានចំនួន $nrដោយជោគជáŸáž™';
+$messages['copyerror'] = 'មិនអាចចំលងអាសយដ្ឋានណាមួយឡើយ';
$messages['sourceisreadonly'] = 'លោកអ្នកមានសិទ្ធážáŸ’រឹមážáŸ‚មើលប្រភពនៃអាសយដ្ឋាននáŸáŸ‡';
$messages['errorsavingcontact'] = 'មិនអាចរក្សាអាសយដ្ឋានបានទáŸ';
$messages['movingmessage'] = 'កំពុកផ្ážáŸážšážŸáŸ†áž”áž»ážáŸ’ážš...';
$messages['copyingmessage'] = 'កំពុងចំលងសំបុážáŸ’ážš...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
$messages['deletingmessage'] = 'កំពុងលុបសំបុážáŸ’ážš...';
$messages['markingmessage'] = 'កំពុងកំណážáŸ‹ážŸáŸ†áž‚ាល់សំបុážáŸ’ážš...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'បានបញ្ជូនអážáŸ’ážáž”ទបញ្ជាក់ážáž¶áž”ានអានបានសំរáŸáž…';
$messages['errorsendingreceipt'] = 'មិនអាចបញ្ជូនអážáŸ’ážáž”ទបញ្ជាក់ážáž¶áž”ានអាន áž‘áŸ';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'លោកអ្នកមិនអាចលុបអážáŸ’ážážŸáž‰áŸ’ញាណនáŸáŸ‡áž‘áŸáž–្រោះវានៅសល់ចុងក្រោយគáŸ';
$messages['forbiddencharacter'] = 'ឈ្មោះážážáž“áŸáŸ‡áž˜áž¶áž“អក្សរដែលážáŸ’រូវហាមឃាážáŸ‹';
$messages['selectimportfile'] = 'សូមជ្រើសរើសឯកសារដើម្បីបញ្ជូនភ្ជាប់';
$messages['addresswriterror'] = 'សៀវភៅអាសយដ្ឋាននោះមិនអាចសរសáŸážšáž…ូលបានទáŸ';
$messages['contactaddedtogroup'] = 'បានដាក់ពážáŸŒáž˜áž¶áž“ទំនាក់ទំនងចូលក្នុងក្រុមនáŸáŸ‡ážŠáŸ„យជោគជáŸáž™';
$messages['contactremovedfromgroup'] = 'បានលុបពážáŸŒáž˜áž¶áž“ទំនាក់ទំនងចáŸáž‰áž–ីក្រុមនáŸáŸ‡ážŠáŸ„យជោគជáŸáž™';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'សូមមáŸážáŸ’ážáž¶ážšáž„់ចាំកំពុងទាញទិន្ននáŸáž™áž…ូល ...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>áž–áŸážáŸŒáž˜áž¶áž“ទំនាក់ទំនង $insertedបានបញ្ចូលដោយជោគជáŸáž™,ហើយបានរំលងចោលពážáŸŒáž˜áž¶áž“ដែលមានស្រាប់$skipped </b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'ប្រážáž·áŸ’ážáž”ážáŸ’ážáž·áž€áž¶ážšážáŸ’រូវបានគáŸáž áž¶áž˜ážƒáž¶ážáŸ‹!';
$messages['nofromaddress'] = 'ážáŸ’វះអាសយដ្ឋានអ៊ីមែលក្នុងអážáŸ’ážážŸáž‰áŸ’ណាណមួយនáŸáŸ‡';
+$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):មិនអាចភ្ជាប់ទៅម៉ាស៊ីនមáŸ';
$messages['smtpautherror'] = 'SMTP Error ($code):áž–áŸážáŸŒáž˜áž¶áž“គនីយមិនážáŸ’រឹមážáŸ’រូវ';
$messages['smtpfromerror'] = 'SMTP Error ($code):មិនអាចកំនážáŸ‹áž¢áŸ’នកផ្ញើ "$from" ($msg)';
@@ -109,19 +139,33 @@ $messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'អាសយដ្ឋានអ៊ីមែលមិនážáŸ’រឹមážáŸ’រូវទáŸ:$email';
$messages['toomanyrecipients'] = 'ចំនួនអ្នកទទួលច្រើនលើសកំនážáŸ‹!សូមមáŸážáŸ’ážáž¶áž›áž»áž”ចោលរហូážážŠáž›áŸ‹ $max។';
$messages['maxgroupmembersreached'] = 'ចំនួនក្រុមលើសកំនážáŸ‹áž áž¾áž™áž…ំនួនច្រើនបំផុážáž‚ឺ $max';
+$messages['internalerror'] = 'មានបញ្ហាážáž¶áž„ម៉ាស៊ីនម០។សូមព្យាយាមម្ážáž„ទៀáž!';
$messages['contactdelerror'] = 'មិនអាចលុបអាសយដ្ឋានទំនាក់ទំនង';
$messages['contactdeleted'] = 'អាសយដ្ឋានទំនាក់ទំនងážáŸ’រូវបានលុបដោយជោគជáŸáž™';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
$messages['groupdeleted'] = 'លុបក្រុមបានដោយជោគជáŸáž™';
$messages['grouprenamed'] = 'ប្ážáž¼ážšážˆáŸ’មោះក្រុមបានដោយជោគជáŸáž™';
$messages['groupcreated'] = 'បង្កើážáž€áŸ’រុមបានដោយជោគជáŸáž™';
+$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'] = 'លុបសំបុážáŸ’របានដោយជោគជáŸáž™';
$messages['messagemoved'] = 'ផ្ទáŸážšážŸáŸ†áž”áž»ážáŸ’របានដោយជោគជáŸáž™';
$messages['messagecopied'] = 'ចំលងសំបុážáŸ’របានដោយជោគជáŸáž™';
$messages['messagemarked'] = 'កំណážáŸ‹ážŸáŸ†áž‚ាល់សំបុážáŸ’របានដោយជោគជáŸáž™';
$messages['autocompletechars'] = 'សូមសរសáŸážšáž¢áž€áŸ’សរយ៉ាងážáž·áž… $minដើម្បីបង្ហាយដោយស្វáŸáž™áž”្រវážáŸ’ážáž·';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'សូមសរសáŸážšážˆáŸ’មោះ';
$messages['nametoolong'] = 'ឈ្មោះវែងពáŸáž€';
$messages['folderupdated'] = 'ផ្លាស់ប្ážáž¼ážšážážáž”ានដោយជោគជáŸáž™';
$messages['foldercreated'] = 'បង្កើážážážáž”ានដោយជោគជáŸáž™';
$messages['invalidimageformat'] = 'ប្រភáŸáž‘រូបភាពមិនážáŸ’រឹមážáŸ’រូវ';
+$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/ko_KR/labels.inc b/program/localization/ko_KR/labels.inc
index bccd42163..950928767 100644
--- a/program/localization/ko_KR/labels.inc
+++ b/program/localization/ko_KR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$productì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤';
$labels['username'] = '사용ìžëª…';
$labels['password'] = '암호';
$labels['server'] = '서버';
$labels['login'] = '로그ì¸';
+
+// taskbar
$labels['logout'] = '로그아웃';
$labels['mail'] = 'ë©”ì¼';
$labels['settings'] = '설정';
$labels['addressbook'] = '주소ë¡';
+
+// mailbox names
$labels['inbox'] = 'ë°›ì€ íŽ¸ì§€í•¨';
$labels['drafts'] = '임시 보관함';
$labels['sent'] = '보낸 편지함';
$labels['trash'] = '휴지통';
$labels['junk'] = '스팸 편지함';
-$labels['show_real_foldernames'] = '특별 í´ë”ì—ì„œ 실제 ì´ë¦„ ë³´ì´ê¸°';
+
+// message listing
$labels['subject'] = '제목';
$labels['from'] = '보내는 사람';
$labels['sender'] = '발신ì¸';
@@ -44,11 +53,13 @@ $labels['priority'] = '우선순위';
$labels['organization'] = '기관';
$labels['readstatus'] = 'ì½ìŒ ìƒíƒœ';
$labels['listoptions'] = 'ëª©ë¡ ì˜µì…˜...';
+
$labels['mailboxlist'] = 'í´ë”';
$labels['messagesfromto'] = 'ì´ $countê°œ 중 $from 번째부터 $to ë²ˆì§¸ê¹Œì§€ì˜ ë©”ì‹œì§€';
$labels['threadsfromto'] = 'ì´ $countê°œ 중 $from 번째부터 $to ë²ˆì§¸ê¹Œì§€ì˜ ìŠ¤ë ˆë“œ';
$labels['messagenrof'] = 'ì´ $countê°œ 중 $nr 번째 메시지';
$labels['fromtoshort'] = 'ì´ $countê°œ 중 $from 번째 - $to 번째';
+
$labels['copy'] = '복사';
$labels['move'] = 'ì´ë™';
$labels['moveto'] = 'ì´ë™í•  위치...';
@@ -56,9 +67,13 @@ $labels['download'] = '다운로드';
$labels['open'] = '열기';
$labels['showattachment'] = '보기';
$labels['showanyway'] = 'ê·¸ëž˜ë„ í•­ìƒ ë³´ê¸°';
+
$labels['filename'] = '파ì¼ëª…';
$labels['filesize'] = 'íŒŒì¼ í¬ê¸°';
+
$labels['addtoaddressbook'] = '주소ë¡ì— 추가';
+
+// weekdays short
$labels['sun'] = 'ì¼';
$labels['mon'] = 'ì›”';
$labels['tue'] = 'í™”';
@@ -66,6 +81,8 @@ $labels['wed'] = '수';
$labels['thu'] = '목';
$labels['fri'] = '금';
$labels['sat'] = '토';
+
+// weekdays long
$labels['sunday'] = 'ì¼ìš”ì¼';
$labels['monday'] = '월요ì¼';
$labels['tuesday'] = '화요ì¼';
@@ -73,6 +90,8 @@ $labels['wednesday'] = '수요ì¼';
$labels['thursday'] = '목요ì¼';
$labels['friday'] = '금요ì¼';
$labels['saturday'] = '토요ì¼';
+
+// months short
$labels['jan'] = '1ì›”';
$labels['feb'] = '2ì›”';
$labels['mar'] = '3ì›”';
@@ -85,6 +104,8 @@ $labels['sep'] = '9ì›”';
$labels['oct'] = '10ì›”';
$labels['nov'] = '11ì›”';
$labels['dec'] = '12ì›”';
+
+// months long
$labels['longjan'] = '1ì›”';
$labels['longfeb'] = '2ì›”';
$labels['longmar'] = '3ì›”';
@@ -97,7 +118,10 @@ $labels['longsep'] = '9ì›”';
$labels['longoct'] = '10ì›”';
$labels['longnov'] = '11ì›”';
$labels['longdec'] = '12ì›”';
+
$labels['today'] = '오늘';
+
+// toolbar buttons
$labels['refresh'] = '새로 고침';
$labels['checkmail'] = '새 메시지 확ì¸';
$labels['compose'] = '메시지 작성';
@@ -130,6 +154,7 @@ $labels['moreactions'] = '추가 ë™ìž‘...';
$labels['more'] = 'ë”보기';
$labels['back'] = '뒤로';
$labels['options'] = '옵션';
+
$labels['select'] = 'ì„ íƒ';
$labels['all'] = '모ë‘';
$labels['none'] = 'ì—†ìŒ';
@@ -137,7 +162,7 @@ $labels['currpage'] = '현재 페ì´ì§€';
$labels['unread'] = 'ì½ì§€ ì•ŠìŒ';
$labels['flagged'] = '깃발로 표시ë¨';
$labels['unanswered'] = '답장하지 ì•ŠìŒ';
-$labels['withattachment'] = 'ì²¨ë¶€íŒŒì¼ í¬í•¨';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'ì‚­ì œë¨';
$labels['undeleted'] = 'ì‚­ì œë˜ì§€ ì•ŠìŒ';
$labels['invert'] = '반전';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'ëª¨ë‘ í™•ìž¥';
$labels['expand-unread'] = 'ì½ì§€ ì•Šì€ ë©”ì‹œì§€ 확장';
$labels['collapse-all'] = 'ëª¨ë‘ ì ‘ê¸°';
$labels['threaded'] = '스레드화ë¨';
+
$labels['autoexpand_threads'] = '메시지 스레드 확장';
$labels['do_expand'] = '모든 스레드';
$labels['expand_only_unread'] = 'ì½ì§€ ì•Šì€ ë©”ì‹œì§€ì—만 ì ìš©';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'ì—´ ëª©ë¡ ë³´ê¸°';
$labels['listsorting'] = 'ì—´ ì •ë ¬';
$labels['listorder'] = '정렬 순서';
$labels['listmode'] = '화면 모드 ëª©ë¡ ë³´ê¸°';
+
$labels['folderactions'] = 'í´ë” 명령';
$labels['compact'] = '간단하게';
$labels['empty'] = '비어 있ìŒ';
-$labels['importmessages'] = '메시지 가져오기';
+
$labels['quota'] = 'ë””ìŠ¤í¬ ì‚¬ìš©ëŸ‰';
$labels['unknown'] = 'ì•Œ 수 ì—†ìŒ';
$labels['unlimited'] = '제한 ì—†ìŒ';
+
$labels['quicksearch'] = '빠른 검색';
$labels['resetsearch'] = '검색 재설정';
$labels['searchmod'] = 'ìˆ˜ì •ìž ê²€ìƒ‰';
$labels['msgtext'] = '전체 메시지';
$labels['body'] = '본문';
-$labels['type'] = '유형';
-$labels['namex'] = 'ì´ë¦„';
+
$labels['openinextwin'] = '새 ì°½ì—ì„œ 열기';
$labels['emlsave'] = '다운로드(.eml)';
-$labels['changeformattext'] = '메시지를 í‰ë¬¸ 형ì‹ìœ¼ë¡œ 표시';
-$labels['changeformathtml'] = 'HTML 형ì‹ìœ¼ë¡œ 표시';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = '새 메시지로 편집';
$labels['send'] = '보내기';
$labels['sendmessage'] = 'ë©”ì¼ ë³´ë‚´ê¸°';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = '수신 확ì¸';
$labels['dsn'] = '전송 ìƒíƒœ 알림';
$labels['mailreplyintro'] = '$dateì— $senderì´(ê°€) 작성한 ë‚´ìš©:';
$labels['originalmessage'] = 'ì›ë³¸ 메세지';
+
$labels['editidents'] = 'ì‹ ì› íŽ¸ì§‘';
$labels['spellcheck'] = '맞춤법';
$labels['checkspelling'] = '맞춤법 검사하기';
$labels['resumeediting'] = '편집 계ì†í•˜ê¸°';
$labels['revertto'] = 'ëŒì•„가기';
+
$labels['attach'] = '첨부';
$labels['attachments'] = '첨부파ì¼';
$labels['upload'] = '업로드';
$labels['uploadprogress'] = '$percent ($total개 중 $current개)';
$labels['close'] = '닫기';
$labels['messageoptions'] = '메시지 옵션...';
+
$labels['low'] = 'ë‚®ìŒ';
$labels['lowest'] = '가장 ë‚®ìŒ';
$labels['normal'] = '보통';
$labels['high'] = '높ìŒ';
$labels['highest'] = '가장 높ìŒ';
+
$labels['nosubject'] = '(제목 ì—†ìŒ)';
$labels['showimages'] = 'ì´ë¯¸ì§€ 보기';
$labels['alwaysshow'] = '$senderì—ì„œ ìˆ˜ì‹ ëœ ì´ë¯¸ì§€ í•­ìƒ ë³´ê¸°';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'ì´ê²ƒì€ 작성 ì¤‘ì¸ ë©”ì‹œì§€ìž…ë‹ˆë‹¤.';
$labels['andnmore'] = '$nr ë” ë³´ê¸°...';
$labels['togglemoreheaders'] = '메시지 í—¤ë” ë” ë³´ê¸°';
$labels['togglefullheaders'] = 'ì› ë©”ì‹œì§€ í—¤ë” í‘œì‹œ/숨기기';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ì¼ë°˜ í…스트';
$labels['savesentmessagein'] = '보낸 메시지를 ë‹¤ìŒ ìœ„ì¹˜ì— ì €ìž¥';
$labels['dontsave'] = '저장하지 ì•ŠìŒ';
$labels['maxuploadsize'] = '최대 허용 íŒŒì¼ í¬ê¸°ëŠ” $size 입니다';
+
$labels['addcc'] = '참조 추가';
$labels['addbcc'] = 'ìˆ¨ì€ ì°¸ì¡° 추가';
$labels['addreplyto'] = '회신 주소 추가';
$labels['addfollowupto'] = '전달 추가';
+
+// mdn
$labels['mdnrequest'] = 'ì´ ë©”ì‹œì§€ë¥¼ 보낸 ì‚¬ëžŒì´ ì‚¬ìš©ìžê°€ ì´ ë©”ì‹œì§€ë¥¼ ì½ì—ˆì„ ë•Œ ì½ìŒ 확ì¸ì„ 요청했습니다. 보낸 사람ì—게 알리시겠습니까?';
$labels['receiptread'] = '수신 í™•ì¸ (ì½ìŒ)';
$labels['yourmessage'] = 'ì´ê²ƒì€ 사용ìžì˜ ë©”ì‹œì§€ì— ëŒ€í•œ 수신 확ì¸ìž…니다.';
$labels['receiptnote'] = '참고: ì´ ìˆ˜ì‹  확ì¸ì€ ì´ ë©”ì‹œì§€ê°€ 받는 ì‚¬ëžŒì˜ ì»´í“¨í„°ì— í‘œì‹œë˜ì—ˆë‹¤ëŠ” ê²ƒë§Œì„ ì˜ë¯¸í•©ë‹ˆë‹¤. 받는 ì‚¬ëžŒì´ ë©”ì‹œì§€ ë‚´ìš©ì„ ì½ê±°ë‚˜ ì´í•´í–ˆë‹¤ëŠ” ë³´ìž¥ì€ ì—†ìŠµë‹ˆë‹¤.';
+
+// address boook
$labels['name'] = '표시명';
$labels['firstname'] = 'ì´ë¦„';
$labels['surname'] = '성';
@@ -262,6 +301,7 @@ $labels['search'] = '검색';
$labels['advsearch'] = '고급 검색';
$labels['advanced'] = '고급';
$labels['other'] = '기타';
+
$labels['typehome'] = 'ìžíƒ';
$labels['typework'] = 'ì§ìž¥';
$labels['typeother'] = '기타';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = '비서';
$labels['typehomepage'] = '홈페ì´ì§€';
$labels['typeblog'] = '블로그';
$labels['typeprofile'] = 'ìžê¸°ì†Œê°œ';
+
$labels['addfield'] = '필드 추가..';
$labels['addcontact'] = '새 ì—°ë½ì²˜ 추가';
$labels['editcontact'] = 'ì—°ë½ì²˜ 편집';
$labels['contacts'] = 'ì—°ë½ì²˜';
$labels['contactproperties'] = 'ì—°ë½ì²˜ ì†ì„±';
$labels['personalinfo'] = 'ê°œì¸ ì •ë³´';
+
$labels['edit'] = '편집';
$labels['cancel'] = '취소';
$labels['save'] = '저장';
@@ -290,6 +332,7 @@ $labels['rename'] = 'ì´ë¦„ 변경';
$labels['addphoto'] = '추가';
$labels['replacephoto'] = '바꾸기';
$labels['uploadphoto'] = '사진 업로드';
+
$labels['newcontact'] = '새 ì—°ë½ì²˜ ì¹´ë“œ ìƒì„±';
$labels['deletecontact'] = 'ì„ íƒí•œ ì—°ë½ì²˜ ì‚­ì œ';
$labels['composeto'] = 'ë©”ì¼ ìž‘ì„± 대ìƒ';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = '새 ì—°ë½ì²˜ 그룹 ìƒì„±';
$labels['grouprename'] = '그룹명 변경';
$labels['groupdelete'] = '그룹 삭제';
$labels['groupremoveselected'] = '그룹ì—ì„œ ì„ íƒí•œ ì—°ë½ì²˜ 제거';
+
$labels['previouspage'] = 'ì´ì „ 페ì´ì§€ 보기';
$labels['firstpage'] = 'ì²˜ìŒ íŽ˜ì´ì§€ 보기';
$labels['nextpage'] = 'ë‹¤ìŒ íŽ˜ì´ì§€ 보기';
$labels['lastpage'] = '마지막 페ì´ì§€ 보기';
+
$labels['group'] = '그룹';
$labels['groups'] = '그룹';
-$labels['listgroup'] = '그룹 êµ¬ì„±ì› ëª©ë¡ ë³´ê¸°';
$labels['personaladrbook'] = 'ê°œì¸ ì£¼ì†Œ';
+
$labels['searchsave'] = '검색 저장';
$labels['searchdelete'] = '검색 삭제';
+
$labels['import'] = '가져오기';
$labels['importcontacts'] = 'ì—°ë½ì²˜ 가져오기';
$labels['importfromfile'] = '파ì¼ì—ì„œ 가져오기:';
-$labels['importtarget'] = 'ì—°ë½ì²˜ 추가 위치';
+$labels['importtarget'] = '새 ì—°ë½ì²˜ë¥¼ 주소ë¡ì— 추가:';
$labels['importreplace'] = 'ì „ì²´ 주소ë¡ì„ 바꾸기';
-$labels['importgroups'] = '그룹 할당 가져오기';
-$labels['importgroupsall'] = 'ì „ì²´ (í•„ìš”ì— ë”°ë¼ ê·¸ë£¹ ìƒì„±)';
-$labels['importgroupsexisting'] = '기존 그룹ì—만 해당';
$labels['importdesc'] = '기존 주소ë¡ì—ì„œ ì—°ë½ì²˜ë¥¼ 가져올 수 있습니다.<br/> 현재 <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ë°ì´í„° 형ì‹ì—ì„œ 주소 가져오기를 지ì›í•©ë‹ˆë‹¤.\'';
$labels['done'] = '완료';
+
+// settings
$labels['settingsfor'] = '설정';
$labels['about'] = 'ì •ë³´...';
$labels['preferences'] = '환경설정';
$labels['userpreferences'] = 'ì‚¬ìš©ìž í™˜ê²½ì„¤ì •';
$labels['editpreferences'] = 'ì‚¬ìš©ìž í™˜ê²½ì„¤ì • 편집';
+
$labels['identities'] = 'ì‹ ì›';
$labels['manageidentities'] = 'ì´ ê³„ì •ì˜ ì‹ ì› ê´€ë¦¬';
$labels['newidentity'] = '새 ì‹ ì›';
+
$labels['newitem'] = '새 항목';
$labels['edititem'] = '항목 편집';
+
$labels['preferhtml'] = 'HTML 표시';
$labels['defaultcharset'] = '기본 ì¸ì½”딩';
$labels['htmlmessage'] = 'HTML 메시지';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'HTML 메시지 작성';
$labels['htmlonreply'] = 'HTML 메시지 회신 시';
$labels['htmlonreplyandforward'] = '전달 ë˜ëŠ” HTML 메시지 회신 ì‹œ';
$labels['htmlsignature'] = 'HTML 서명';
-$labels['showemail'] = 'ì´ë©”ì¼ ì£¼ì†Œë¥¼ 표시 ì´ë¦„ê³¼ 함께 보기';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = '미리보기 창 보기';
$labels['skin'] = 'ì¸í„°íŽ˜ì´ìŠ¤ 스킨';
$labels['logoutclear'] = '로그아웃할 때 휴지통 비우기';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = '숫ìžê°€ í¬í•¨ëœ 단어 무시';
$labels['spellcheckignorecaps'] = 'ëª¨ë‘ ëŒ€ë¬¸ìžë¡œ í‘œê¸°ëœ ë‹¨ì–´ 무시';
$labels['addtodict'] = 'ì‚¬ì „ì— ì¶”ê°€';
$labels['mailtoprotohandler'] = 'mailto: ë§í¬ì˜ 프로토콜 ì²˜ë¦¬ìž ë“±ë¡';
-$labels['standardwindows'] = 'íŒì—…ì„ ì¼ë°˜ ì°½ê°™ì´ ì·¨ê¸‰';
$labels['forwardmode'] = '메시지 전달';
$labels['inline'] = '본문 내용으로';
$labels['asattachment'] = '첨부파ì¼ë¡œ';
+
$labels['folder'] = 'í´ë”';
$labels['folders'] = 'í´ë”';
$labels['foldername'] = 'í´ë”명';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'í´ë” 유형';
$labels['personalfolder'] = 'ê°œì¸ í´ë”';
$labels['otherfolder'] = '다른 사용ìžì˜ í´ë”';
$labels['sharedfolder'] = '공유 í´ë”';
+
$labels['sortby'] = 'ì •ë ¬ ë°©ì‹';
$labels['sortasc'] = '오름차순으로 정렬';
$labels['sortdesc'] = '내림차순으로 정렬';
$labels['undo'] = '실행 취소';
+
$labels['installedplugins'] = 'ì„¤ì¹˜ëœ í”ŒëŸ¬ê·¸ì¸';
$labels['plugin'] = '플러그ì¸';
$labels['version'] = '버전';
$labels['source'] = '소스';
$labels['license'] = 'ë¼ì´ì„ ìŠ¤';
$labels['support'] = 'ì§€ì› ìš”ì²­';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = '유니코드';
$labels['english'] = 'ì˜ì–´';
$labels['westerneuropean'] = '서유럽어';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = '베트남어';
$labels['japanese'] = 'ì¼ë³¸ì–´';
$labels['korean'] = '한국어';
$labels['chinese'] = '중국어';
+
?>
diff --git a/program/localization/ko_KR/messages.inc b/program/localization/ko_KR/messages.inc
index f6f274c43..bf42c9c89 100644
--- a/program/localization/ko_KR/messages.inc
+++ b/program/localization/ko_KR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = '오류 ë°œìƒ!';
$messages['loginfailed'] = '로그ì¸ì´ 실패하였습니다.';
$messages['cookiesdisabled'] = '브ë¼ìš°ì €ê°€ 쿠키를 지ì›í•˜ì§€ 않습니다.';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '요청한 ì—°ë½ì²˜ë¥¼ ì°¾ì„ ìˆ˜ 없었습니ë‹
$messages['contactsearchonly'] = 'ì—°ë½ì²˜ë¥¼ 찾기 위해 ì¼ë¶€ 검색용어를 입력하세요.';
$messages['sendingfailed'] = '메시지 보내기를 실패하였ìŒ.';
$messages['senttooquickly'] = 'ì´ ë©”ì‹œì§€ë¥¼ 보내기 ì „ì— $secì´ˆ ë™ì•ˆ 기다리세요.';
+$messages['errorsavingsent'] = '보낸 메시지를 저장하는 ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.';
+$messages['errorsaving'] = '저장 중 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤.';
$messages['errormoving'] = '메시지를 ì´ë™í•  수 없었ìŒ.';
$messages['errorcopying'] = '메시지를 복사할 수 없었ìŒ.';
$messages['errordeleting'] = '메시지를 삭제할 수 없었ìŒ.';
@@ -97,16 +101,13 @@ $messages['converting'] = 'ì„œì‹ ì„¤ì • ì‚­ì œ 중...';
$messages['messageopenerror'] = '서버ì—ì„œ 메시지를 불러올 수 ì—†ìŒ.';
$messages['fileuploaderror'] = 'íŒŒì¼ ì—…ë¡œë“œë¥¼ 실패함.';
$messages['filesizeerror'] = 'ì—…ë¡œë“œëœ íŒŒì¼ì´ 최대 í¬ê¸°ì¸ $size를 초과하였습니다.';
-$messages['copysuccess'] = '$nrê°œì˜ ì—°ë½ì²˜ë¥¼ 성공ì ìœ¼ë¡œ 복사함';
-$messages['movesuccess'] = '$nrê°œì˜ ì—°ë½ì²˜ë¥¼ 성공ì ìœ¼ë¡œ ì´ë™í•¨';
-$messages['copyerror'] = 'ì „ì²´ ì—°ë½ì²˜ë¥¼ 복사할 수 없없ìŒ';
-$messages['moveerror'] = 'ì „ì²´ ì—°ë½ì²˜ë¥¼ ì´ë™í•  수 없없ìŒ';
+$messages['copysuccess'] = '$nrê°œì˜ ì£¼ì†Œë¥¼ 성공ì ìœ¼ë¡œ 복사함.';
+$messages['copyerror'] = '모든 주소를 복사할 수 ì—†ìŒ.';
$messages['sourceisreadonly'] = 'ì´ ì£¼ì†Œì˜ ì†ŒìŠ¤ëŠ” ì½ê¸° 전용입니다.';
$messages['errorsavingcontact'] = 'ì—°ë½ì²˜ì˜ 주소를 저장할 수 ì—†ìŒ.';
$messages['movingmessage'] = '메시지를 ì´ë™í•˜ëŠ” 중...';
$messages['copyingmessage'] = '메시지 복사하는 중...';
$messages['copyingcontact'] = 'ì—°ë½ì²˜ 복사하는 중...';
-$messages['movingcontact'] = 'ì—°ë½ì²˜ ì´ë™ 중...';
$messages['deletingmessage'] = '메시지 삭제하는 중...';
$messages['markingmessage'] = 'ë©”ì‹œì§€ì— í‘œì‹œí•˜ëŠ” 중...';
$messages['addingmember'] = 'ê·¸ë£¹ì— ì—°ë½ì²˜ë¥¼ 추가하는 중...';
@@ -125,8 +126,6 @@ $messages['importwait'] = '가져오는 중, 기다려주시기 ë°”ëžë‹ˆë‹¤...'
$messages['importformaterror'] = '가져오기를 실패함! ì—…ë¡œë“œëœ íŒŒì¼ì€ 유효하지 ì•Šì€ ê°€ì ¸ì˜¤ê¸° ë°ì´í„° 파ì¼ìž…니다.';
$messages['importconfirm'] = '<b>$inserted ì—°ë½ì²˜ë¥¼ 성공ì ìœ¼ë¡œ 가져옴<b>';
$messages['importconfirmskipped'] = '<b>기존 ê¸°ìž¬ì‚¬í•­ì¸ $skippedì„(를) 건너뜀</b>';
-$messages['importmessagesuccess'] = '$nrê°œì˜ ë©”ì‹œì§€ë¥¼ 성공ì ìœ¼ë¡œ 가져옴';
-$messages['importmessageerror'] = '가져오기 실패! ì—…ë¡œë“œëœ íŒŒì¼ì€ 유효하지 ì•Šì€ ë©”ì‹œì§€ ë˜ëŠ” ë©”ì¼í•¨ 파ì¼ìž„';
$messages['opnotpermitted'] = 'ìž‘ì—…ì´ í—ˆê°€ë˜ì§€ ì•ŠìŒ!';
$messages['nofromaddress'] = 'ì„ íƒëœ ì‹ ì›ì— ì´ë©”ì¼ ì£¼ì†Œ ê°€ 누ë½ë¨.';
$messages['editorwarning'] = 'ì¼ë°˜ í…스트 편집기로 바꾸면 모든 í…스트 ì„œì‹ì´ 사ë¼ì§‘니다. 계ì†í•˜ì‹œê² ìŠµë‹ˆê¹Œ?';
@@ -141,6 +140,7 @@ $messages['smtperror'] = 'SMTP 오류: $msg';
$messages['emailformaterror'] = '유효하지 ì•Šì€ ì´ë©”ì¼ ì£¼ì†Œ: $email';
$messages['toomanyrecipients'] = '수신ì¸ì´ 너무 많ìŒ. ìˆ˜ì‹ ì¸ ìˆ˜ë¥¼ $max명으로 줄ì´ì„¸ìš”.';
$messages['maxgroupmembersreached'] = '그룹 구성ì›ì˜ 수가 최대 ì¸ì›ì¸ $maxëª…ì„ ì´ˆê³¼í•©ë‹ˆë‹¤.';
+$messages['internalerror'] = '내부 오류가 ë°œìƒí•¨. ìž¬ì‹œë„ í•´ì£¼ì‹œê¸° ë°”ëžë‹ˆë‹¤.';
$messages['contactdelerror'] = 'ì—°ë½ì²˜ë¥¼ 삭제할 수 ì—†ìŒ.';
$messages['contactdeleted'] = 'ì—°ë½ì²˜ê°€ 성공ì ìœ¼ë¡œ ì‚­ì œë¨.';
$messages['contactrestoreerror'] = 'ì‚­ì œëœ ì—°ë½ì²˜ë¥¼ 복구할 수 ì—†ìŒ.';
@@ -168,4 +168,5 @@ $messages['parentnotwritable'] = 'ì„ íƒí•œ ìƒìœ„ í´ë”ì— í´ë”를 ìƒì„±/ì
$messages['messagetoobig'] = '메시지 ë¶€ë¶„ì´ ì²˜ë¦¬í•˜ê¸°ì—는 너무 í½ë‹ˆë‹¤.';
$messages['attachmentvalidationerror'] = '경고! ì´ ì²¨ë¶€ 파ì¼ì˜ ìœ í˜•ì´ ë©”ì‹œì§€ì—ì„œ ì„ ì–¸ëœ ìœ í˜•ê³¼ ì¼ì¹˜í•˜ì§€ 않기 ë•Œë¬¸ì— ì˜ì‹¬ë©ë‹ˆë‹¤. 발신ì¸ì„ 신뢰할 수 ì—†ì„ ê²½ìš°, 악성 코드를 í¬í•¨í•  ìˆ˜ë„ ìžˆê¸° ë•Œë¬¸ì— ë¸Œë¼ìš°ì €ì—ì„œ 열지 않는 ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤. <br/><br/><em> 예ìƒí•œ 유형: $expected; ë°œê²¬ëœ ìœ í˜•: $found</ em>';
$messages['noscriptwarning'] = '경고: ì´ ì›¹ ë©”ì¼ ì„œë¹„ìŠ¤ëŠ” ìžë°”스í¬ë¦½íŠ¸ê°€ 필요합니다! ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ì‹œë ¤ë©´ ìžë°”스í¬ë¦½íŠ¸ë¥¼ 브ë¼ìš°ì € 설정ì—ì„œ 활성화하시기 ë°”ëžë‹ˆë‹¤.';
+
?>
diff --git a/program/localization/ku/labels.inc b/program/localization/ku/labels.inc
index c88b52d46..a4f6cb568 100644
--- a/program/localization/ku/labels.inc
+++ b/program/localization/ku/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bixêr hatî $product \'ê';
$labels['username'] = 'Bikarhêner';
$labels['password'] = 'Nasnav';
$labels['server'] = 'Pêşkêşkar';
$labels['login'] = 'Têkevê';
+
+// taskbar
$labels['logout'] = 'Derkeve';
$labels['mail'] = 'E-Peyam';
$labels['settings'] = 'Mîhengên Takekesî';
$labels['addressbook'] = 'Lênûska Navnîşanan';
+
+// mailbox names
$labels['inbox'] = 'Hatî';
$labels['drafts'] = 'Hilanînî';
$labels['sent'] = 'Şandî';
$labels['trash'] = 'Çop';
$labels['junk'] = 'Biikêrnehatî';
+
+// message listing
$labels['subject'] = 'Mijar';
$labels['from'] = 'Åžandyar';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Standyar';
$labels['cc'] = 'Kopiya Karbon';
$labels['bcc'] = 'Kopiya karbon a Veşartî';
$labels['replyto'] = 'Navnîşanên Standyar';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Dîrok';
$labels['size'] = 'Mezinahî';
$labels['priority'] = 'Girîngî';
$labels['organization'] = 'Sazî';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Peldank';
$labels['messagesfromto'] = 'Peyam $count ên di navbera $from - $to';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$nr a peyama $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopiya Karbon';
+$labels['move'] = 'Move';
$labels['moveto'] = 'bibe...';
$labels['download'] = 'daxe';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Navê pelê';
$labels['filesize'] = 'Mezinahiya pelê';
+
$labels['addtoaddressbook'] = 'Têxe lênûska navnîşanan';
+
+// weekdays short
$labels['sun'] = 'YÅŸ';
$labels['mon'] = 'DÅŸ';
$labels['tue'] = 'SÅŸ';
@@ -55,6 +81,8 @@ $labels['wed'] = 'Çş';
$labels['thu'] = 'PÅŸ';
$labels['fri'] = 'ÃŽn';
$labels['sat'] = 'Åže';
+
+// weekdays long
$labels['sunday'] = 'YekÅŸem';
$labels['monday'] = 'DuÅŸem';
$labels['tuesday'] = 'Sêşem';
@@ -62,12 +90,50 @@ $labels['wednesday'] = 'Çarşem';
$labels['thursday'] = 'Pêncşem';
$labels['friday'] = 'ÃŽn';
$labels['saturday'] = 'Şemî';
+
+// months short
+$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';
+
+// months long
+$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'] = 'ÃŽro';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Li peyamên nû venihêre';
$labels['compose'] = 'Peyamekê biafirîne';
$labels['writenewmessage'] = 'Peyameke nû biafirîne';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Bersivê bide peyamê';
$labels['replytoallmessage'] = 'Bersivê ji bo hemû kesên ku ev peyan standine bişîne';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Bersivê bide peyamê';
$labels['deletemessage'] = 'Peyamê jê bibe';
$labels['movemessagetotrash'] = 'Peyamê dake çopê';
@@ -78,94 +144,338 @@ $labels['nextmessage'] = 'Peyama di rêzê de nîşan bide';
$labels['lastmessage'] = 'Peyama dawî nîşan bide';
$labels['backtolist'] = 'Vegere lîsteya peyaman';
$labels['viewsource'] = 'Çavkaniyê nîşan bide';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Peyamê nîşan bike';
$labels['markread'] = 'Wekî xwendî';
$labels['markunread'] = 'Wekî nexwendî';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Hilbijêre';
$labels['all'] = 'Hemû';
$labels['none'] = 'Ne yek jî';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Nexwendî';
+$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'] = 'Ne yek jî';
+$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'] = 'Kompakt';
$labels['empty'] = 'Vala Bike';
+
$labels['quota'] = 'Bikaranîna dîskê';
$labels['unknown'] = 'nayê zanîn';
$labels['unlimited'] = 'bêsînor';
+
$labels['quicksearch'] = 'Lêgerîna bilez';
$labels['resetsearch'] = 'Lêgerînê reset bike';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Peyamê niha bişîne';
$labels['savemessage'] = 'Hilîne';
$labels['addattachment'] = 'Pelekê lê zêde bike';
$labels['charset'] = 'Curetîp';
$labels['editortype'] = 'Cureyê serastkat';
$labels['returnreceipt'] = 'Rapora Vegerînê';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Kontrola rastnivîsê';
$labels['resumeediting'] = 'Serastkirinê bidomîne';
$labels['revertto'] = 'Şûnde bîne';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Pêvek';
$labels['upload'] = 'Bar bike';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Bigire';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Nizm';
$labels['lowest'] = 'Nizmtirîn';
$labels['normal'] = 'Asayî';
$labels['high'] = 'Bilind';
$labels['highest'] = 'Bilintirîn';
+
$labels['nosubject'] = '(bê mijar)';
$labels['showimages'] = 'Xuyakirina wêneyan';
+$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'] = 'Deqa tazî';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Cc Têxê';
$labels['addbcc'] = 'Bcc Têxê';
$labels['addreplyto'] = 'Bibersivîne têxê';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Şandyara/ê vê peyamê xwest dema ku te peyam vekir, jê re hişyarî here. Dixwazî jê re hişyarî here?';
$labels['receiptread'] = 'Rapora Vegerînê (xwendî)';
$labels['yourmessage'] = 'Ev rapora vegerîna peyama te ye';
$labels['receiptnote'] = 'Nîşe: Ev dide zanîn ka peyama te şand hat xwendin an na. Naveroka peyamê bi mîgogerî nayê zanîn.';
+
+// address boook
$labels['name'] = 'Navê xuya dibe';
$labels['firstname'] = 'Nav';
$labels['surname'] = 'PaÅŸnav';
+$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'] = 'E-Peyam';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Têkiliyeke nû têxê';
$labels['editcontact'] = 'Têkiliyê serast bike';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Serast bike';
$labels['cancel'] = 'Betal';
$labels['save'] = 'Tomar bike';
$labels['delete'] = 'Jê Bibe';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'kardeke nû a têkiliyê biafirîne';
$labels['deletecontact'] = 'Têkiliyên hilbijartî jê bibe';
$labels['composeto'] = 'Ji têkiliya hilbijartî re peyam bişîne';
$labels['contactsfromto'] = 'Têkiliyên $count ên di navbera $from - $to de';
$labels['print'] = 'çap bike';
$labels['export'] = 'Derxe';
+$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'] = 'Seta berê nîşan bide';
$labels['firstpage'] = 'Seta yekemîn nîşan bide';
$labels['nextpage'] = 'Seta di rêzê de nîşan bide';
$labels['lastpage'] = 'Seta dawî nîşan bide';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Kom';
$labels['personaladrbook'] = 'Navnîşanên Takekesî';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Mîheng ji bo';
+$labels['about'] = 'About';
$labels['preferences'] = 'Vebijêrk';
$labels['userpreferences'] = 'Vebijêrkên bikarhêner';
$labels['editpreferences'] = 'Vebijêrkên bikarhêner serast bike';
+
$labels['identities'] = 'Nasname';
$labels['manageidentities'] = 'Nasnameyên vê hesabê serast bike';
$labels['newidentity'] = 'Nasnameya nû';
+
$labels['newitem'] = 'Parçeya nû';
$labels['edititem'] = 'Parçeyê serast bike';
+
$labels['preferhtml'] = 'Wekî HTML nîşan bide';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Peyama HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Kurtenivîsa Dîrokê';
$labels['setdefault'] = 'Wekî standard tomar bike';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Ziman';
$labels['timezone'] = 'Herêma demê';
$labels['pagesize'] = 'Hejmara peyamên her rûpelekê';
$labels['signature'] = 'Åžanenav';
$labels['dstactive'] = 'Demjimêra havînî';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Peyameke HTML biafirîne';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Åžanenava HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Panela berê nîşan bide';
+$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'] = 'Xweber hilîne';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'qet';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Peldank';
$labels['folders'] = 'Peldank';
$labels['foldername'] = 'Navê peldankê';
@@ -174,7 +484,55 @@ $labels['messagecount'] = 'Peyam';
$labels['create'] = 'Biafirîne';
$labels['createfolder'] = 'Peldankeke nû biafirîne';
$labels['managefolders'] = 'Rêveberiya peldankan';
+$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'] = 'Şêweyê rêzkirinê';
$labels['sortasc'] = 'Wekî zêde dibe';
$labels['sortdesc'] = 'Wekî kêm dibe';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/ku/messages.inc b/program/localization/ku/messages.inc
index 6000aacb0..9d219cbf5 100644
--- a/program/localization/ku/messages.inc
+++ b/program/localization/ku/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Têketin têk çû';
$messages['cookiesdisabled'] = 'Geroka te destûrê nade çerezan';
$messages['sessionerror'] = 'Danişîna te çewt e an jî bi dawî bûye';
$messages['storageerror'] = 'Girêdana pêşkêşkara IMAP têk çû';
+$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'] = 'Di vê peyamdankê de tu peyam nehat dîtin';
$messages['loggedout'] = 'Te danişînî bi dawî anî. Oxir be!';
$messages['mailboxempty'] = 'Peyamdank vala ye';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Tê barkirin...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Dane tên barkirin...';
$messages['checkingmail'] = 'Li peyamên nû vedinihêre...';
$messages['sendingmessage'] = 'Peyamê dişîne...';
@@ -32,42 +48,124 @@ $messages['messagesaved'] = 'Peyam di Hilanînî de hat hilanîn';
$messages['successfullysaved'] = 'Hat hilanîn';
$messages['addedsuccessfully'] = 'Têkilî li navnîşanan hat zêdekirin';
$messages['contactexists'] = 'Têkiliyeke bi vê navnîşanê jixwe heye';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Ji bo ewlekariya te wêneyên cuda yên vê peyamê hatin astenkirin.';
$messages['encryptedmessage'] = 'Ev peyamenek şîfrekirî ye, bibore, nayê vekirin!';
$messages['nocontactsfound'] = 'Tu têkiliyek nehat dîtin';
$messages['contactnotfound'] = 'Têkiliya dihat xwestin nehat dîtin';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Peyam nehat ÅŸandin';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Di tomarkirinê de çewtiyek derket';
$messages['errormoving'] = 'Ciyê peyamê nehat guherandin';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Peyam nehat jêbirin';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Ji dil dixwazî têkiliya/ên nîşankirî jê bibî?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Ji dil dixwazî peya/ên nîşankirî jê bibî?';
$messages['deletefolderconfirm'] = 'Ji dil dixwazî vê peldankê jê bibî?';
$messages['purgefolderconfirm'] = 'Ji dil dixwazî hemû peyamên di vê peldankê de jê bibî?';
+$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'] = 'Form bi temamî nehat tijekirin';
$messages['noemailwarning'] = 'Tika ye, navnîşaneke rast têkevê';
$messages['nonamewarning'] = 'Tika ye, navekî têkevê';
$messages['nopagesizewarning'] = 'Tika ye, mezinahiyeke pelê têkevê';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Tika ye, herî kêm standyarekê têkevê';
$messages['nosubjectwarning'] = 'Qada "Mijar"ê vala ye. Dixwazî niha tiştekî lê binivîsî?';
$messages['nobodywarning'] = 'Peyamê bê nivîs bişeyînî?';
$messages['notsentwarning'] = 'Peyam nehat şandin. Dixwazî peyamê pişTgo bikî?';
$messages['noldapserver'] = 'Tika ye, ji bo lêgerînê pêşkêşkareke Idap têkevê';
$messages['nosearchname'] = 'Tika ye, nav an jî navnîşaneke têkiliyê têkevê';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr peyam hat(in) dîtin';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Di lêgerînê de tu tişt nehat dîtin';
$messages['searching'] = 'Digere...';
$messages['checking'] = 'Vedinihêre...';
$messages['nospellerrors'] = 'Tu şaşiyeke rastnivîsê nehat dîtin';
$messages['folderdeleted'] = 'Peldank hat jêbirin';
+$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'] = 'Hat jêbirin';
$messages['converting'] = 'Formatkirin ji peyamê tê birin...';
$messages['messageopenerror'] = 'Peyam ji pêşkêşkar nehat barkirin';
$messages['fileuploaderror'] = 'Barkirina pelê têk çû';
$messages['filesizeerror'] = 'Pel pir mezin e. Herî zêde divê $size be';
+$messages['copysuccess'] = '$nr navnîşan hat(in) jibergirtin';
+$messages['copyerror'] = 'Tu navnîşan nehat jibergirtin';
$messages['sourceisreadonly'] = 'Çavkaniya vê navnîşanê tenê-xwendin e';
$messages['errorsavingcontact'] = 'Navnîşana têkiliyê nehat barkirin';
$messages['movingmessage'] = 'Ciyê peyamê tê guhertin...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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'] = 'Rapora şandina serkeftî';
$messages['errorsendingreceipt'] = 'Rapor nehat ÅŸandin';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Nikarî vê nasnameyê jê bibî. Ew ya dawî ye.';
+$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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/lt_LT/labels.inc b/program/localization/lt_LT/labels.inc
index 129b0de47..6398a3683 100644
--- a/program/localization/lt_LT/labels.inc
+++ b/program/localization/lt_LT/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Sveiki! ÄŒia $product';
$labels['username'] = 'Naudotojo vardas';
$labels['password'] = 'Slaptažodis';
$labels['server'] = 'Serveris';
$labels['login'] = 'Prisijungti';
+
+// taskbar
$labels['logout'] = 'Atsijungti';
$labels['mail'] = 'El. paštas';
$labels['settings'] = 'Nuostatos';
$labels['addressbook'] = 'Adresų knyga';
+
+// mailbox names
$labels['inbox'] = 'Gauti laiškai';
$labels['drafts'] = 'JuodraÅ¡Äiai';
$labels['sent'] = 'Išsiųsti laiškai';
$labels['trash'] = 'Šiukšlinė';
$labels['junk'] = 'Brukalas';
-$labels['show_real_foldernames'] = 'Rodyti tikrus specialiųjų aplankų vardus';
+
+// message listing
$labels['subject'] = 'Tema';
$labels['from'] = 'SiuntÄ—jas';
$labels['sender'] = 'SiuntÄ—jas';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritetas';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'Neskaitytas';
$labels['listoptions'] = 'Sąrašo nuostatos…';
+
$labels['mailboxlist'] = 'Aplankai';
$labels['messagesfromto'] = 'Laiškai nuo $from iki $to iš $count';
$labels['threadsfromto'] = 'Gijos nuo $from iki $to iš $count';
$labels['messagenrof'] = 'Laiškas $nr iš $count';
$labels['fromtoshort'] = '$from – $to iš $count';
+
$labels['copy'] = 'Kopijuoti';
$labels['move'] = 'Perkelti';
$labels['moveto'] = 'Perkelti į…';
@@ -56,9 +67,13 @@ $labels['download'] = 'Parsisiųsti';
$labels['open'] = 'Atverti';
$labels['showattachment'] = 'Rodyti';
$labels['showanyway'] = 'Vistiek rodyti';
+
$labels['filename'] = 'Failo vardas';
$labels['filesize'] = 'Failo dydis';
+
$labels['addtoaddressbook'] = 'Įtraukti į adresų knygą';
+
+// weekdays short
$labels['sun'] = 'Sek';
$labels['mon'] = 'Pir';
$labels['tue'] = 'Ant';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Tre';
$labels['thu'] = 'Ket';
$labels['fri'] = 'Pen';
$labels['sat'] = 'Šeš';
+
+// weekdays long
$labels['sunday'] = 'Sekmadienis';
$labels['monday'] = 'Pirmadienis';
$labels['tuesday'] = 'Antradienis';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'TreÄiadienis';
$labels['thursday'] = 'Ketvirtadienis';
$labels['friday'] = 'Penktadienis';
$labels['saturday'] = 'Šeštadienis';
+
+// months short
$labels['jan'] = 'Sau';
$labels['feb'] = 'Vas';
$labels['mar'] = 'Kov';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Rgs';
$labels['oct'] = 'Spl';
$labels['nov'] = 'Lap';
$labels['dec'] = 'Grd';
+
+// months long
$labels['longjan'] = 'Sausis';
$labels['longfeb'] = 'Vasaris';
$labels['longmar'] = 'Kovas';
@@ -97,10 +118,13 @@ $labels['longsep'] = 'RugsÄ—jis';
$labels['longoct'] = 'Spalis';
$labels['longnov'] = 'Lapkritis';
$labels['longdec'] = 'Gruodis';
+
$labels['today'] = 'Å iandien';
+
+// toolbar buttons
$labels['refresh'] = 'Atnaujinti';
$labels['checkmail'] = 'Tikrinti, ar yra naujų laiškų';
-$labels['compose'] = 'Rašyti';
+$labels['compose'] = 'Rašyti naują laišką';
$labels['writenewmessage'] = 'Rašyti naują laišką';
$labels['reply'] = 'Atsakyti';
$labels['replytomessage'] = 'Atsakyti siuntÄ—jui';
@@ -127,9 +151,10 @@ $labels['markunread'] = 'Kaip neskaitytus';
$labels['markflagged'] = 'Pažymėti gairele';
$labels['markunflagged'] = 'Pašalinti gairelę';
$labels['moreactions'] = 'Kiti veiksmai…';
-$labels['more'] = 'Kita';
+$labels['more'] = 'Daugiau';
$labels['back'] = 'Grįžti';
$labels['options'] = 'Nuostatos';
+
$labels['select'] = 'Pažymėti';
$labels['all'] = 'visus';
$labels['none'] = 'Nerūšiuoti';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'išskleisti visas';
$labels['expand-unread'] = 'iÅ¡skleisti turinÄias neskaitytų laiÅ¡kų';
$labels['collapse-all'] = 'suskleisti visas';
$labels['threaded'] = 'Rodyti gijas';
+
$labels['autoexpand_threads'] = 'IÅ¡skleisti gijas';
$labels['do_expand'] = 'visas';
$labels['expand_only_unread'] = 'tik turinÄias neskaitytų laiÅ¡kų';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Stulpelių sąrašas';
$labels['listsorting'] = 'Stulpelis rikiavimui';
$labels['listorder'] = 'Rikiavimo tvarka';
$labels['listmode'] = 'Sąrašo rodymo veiksena';
+
$labels['folderactions'] = 'Veiksmai su aplankais…';
$labels['compact'] = 'Suglaudinti';
$labels['empty'] = 'Ištuštinti';
-$labels['importmessages'] = 'Importuoti laiškus';
+
$labels['quota'] = 'Disko naudojimas';
$labels['unknown'] = 'nežinomas';
$labels['unlimited'] = 'neribotas';
+
$labels['quicksearch'] = 'SparÄioji paieÅ¡ka';
$labels['resetsearch'] = 'Atšaukti paiešką';
$labels['searchmod'] = 'Paieškos modifikatoriai';
$labels['msgtext'] = 'Visas laiškas';
$labels['body'] = 'Laiško tekstas';
-$labels['type'] = 'Tipas';
-$labels['namex'] = 'Vardas';
+
$labels['openinextwin'] = 'Atverti naujame lange';
$labels['emlsave'] = 'Parsisiųsti (.eml)';
$labels['changeformattext'] = 'Rodyti grynojo teksto formatu';
$labels['changeformathtml'] = 'Rodyti HTML formatu';
+
+// message compose
$labels['editasnew'] = 'Redaguoti kaip naujÄ…';
$labels['send'] = 'Siųsti';
$labels['sendmessage'] = 'Išsiųsti laiską';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Prašyti pristatymo pažymos';
$labels['dsn'] = 'Laiško pristatymo pažyma';
$labels['mailreplyintro'] = '$date, $sender rašė:';
$labels['originalmessage'] = 'Originalus laiškas';
+
$labels['editidents'] = 'Tvarkyti tapatybes';
$labels['spellcheck'] = 'Tikrinti rašybą';
$labels['checkspelling'] = 'Tikrinti rašybą';
$labels['resumeediting'] = 'Tęsti redagavimą';
$labels['revertto'] = 'Atstatyti į';
+
$labels['attach'] = 'PridÄ—ti failÄ…';
$labels['attachments'] = 'PridÄ—ti failai';
$labels['upload'] = 'Įkelti';
$labels['uploadprogress'] = '$percent ($current iš $total)';
$labels['close'] = 'Užverti';
$labels['messageoptions'] = 'Laiško savybės…';
+
$labels['low'] = 'Žemas';
$labels['lowest'] = 'Žemiausias';
$labels['normal'] = 'Normalus';
$labels['high'] = 'Aukštas';
$labels['highest'] = 'AukÅ¡Äiausias';
+
$labels['nosubject'] = '(tema nenurodyta)';
$labels['showimages'] = 'Rodyti paveikslÄ—lius';
$labels['alwaysshow'] = 'Visada rodyti paveikslėlius $sender laiškuose';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Tai – laiško juodraštis.';
$labels['andnmore'] = '$nr daugiau...';
$labels['togglemoreheaders'] = 'Rodyti daugiau antraÅ¡Äių';
$labels['togglefullheaders'] = 'Įjungti/išjungti neapdorotas laiškų antraštes';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Grynasis tekstas';
$labels['savesentmessagein'] = 'Išsiųstus laiškus įrašyti į';
$labels['dontsave'] = 'neįrašyti';
$labels['maxuploadsize'] = 'Maksimalus leistinas failo dydis yra $size';
+
$labels['addcc'] = 'PridÄ—ti Cc';
$labels['addbcc'] = 'PridÄ—ti Bcc';
$labels['addreplyto'] = 'PridÄ—ti Reply-To';
$labels['addfollowupto'] = 'PridÄ—ti Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Å io laiÅ¡ko siuntÄ—jas papraÅ¡Ä— patvirtinti, kad jÅ«s jį perskaitÄ—te. Ar iÅ¡siųsti tai patvirtinanÄiÄ… pažymÄ…?';
$labels['receiptread'] = 'Patvirtinimas (laiškas perskaitytas)';
$labels['yourmessage'] = 'Tai – pažyma, patvirtinanti, jog buvo perskaitytas Jūsų laiškas';
$labels['receiptnote'] = 'Pastaba: šia pažyma patvirtinamas tik faktas, jog laiškas buvo parodytas gavėjui. Ja negarantuojama, jog gavėjas perskaitė ir suprato laiško turinį.';
+
+// address boook
$labels['name'] = 'Rodomas vardas';
$labels['firstname'] = 'Vardas';
$labels['surname'] = 'PavardÄ—';
@@ -262,6 +301,7 @@ $labels['search'] = 'Paieška';
$labels['advsearch'] = 'Išplėstinė paieška';
$labels['advanced'] = 'IÅ¡samiau';
$labels['other'] = 'Kitas';
+
$labels['typehome'] = 'Namų';
$labels['typework'] = 'Darbo';
$labels['typeother'] = 'Kitas';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'PadÄ—jÄ—jo(-os)';
$labels['typehomepage'] = 'Tinklalapis';
$labels['typeblog'] = 'Tinklaraštis';
$labels['typeprofile'] = 'Profilis';
+
$labels['addfield'] = 'Pridėti lauką…';
$labels['addcontact'] = 'PridÄ—ti adresatÄ…';
$labels['editcontact'] = 'Taisyti adresatÄ…';
$labels['contacts'] = 'Adresatai';
$labels['contactproperties'] = 'Adresato savybÄ—s';
$labels['personalinfo'] = 'Asmeniniai duomenys';
+
$labels['edit'] = 'Redaguoti';
$labels['cancel'] = 'Atsisakyti';
$labels['save'] = 'Įrašyti';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Pervardinti';
$labels['addphoto'] = 'PridÄ—ti';
$labels['replacephoto'] = 'Pakeisti';
$labels['uploadphoto'] = 'Įkelti nuotrauką';
+
$labels['newcontact'] = 'Sukurti naujÄ… adresatÄ…';
$labels['deletecontact'] = 'Ištrinti pažymėtus adresatus';
$labels['composeto'] = 'Rašyti laišką';
@@ -303,32 +346,41 @@ $labels['newcontactgroup'] = 'Kurti adresatų grupę';
$labels['grouprename'] = 'Pervardinti grupÄ™';
$labels['groupdelete'] = 'Pašalinti grupę';
$labels['groupremoveselected'] = 'Pašalinti pažymėtus adresatus iš grupės';
+
$labels['previouspage'] = 'Rodyti ankstesnį puslapį';
$labels['firstpage'] = 'Rodyti pirmąjį puslapį';
$labels['nextpage'] = 'Rodyti tolesnį puslapį';
$labels['lastpage'] = 'Rodyti paskutinį puslapį';
+
$labels['group'] = 'GrupÄ—';
$labels['groups'] = 'GrupÄ—s';
-$labels['listgroup'] = 'IÅ¡vardinti grupÄ—s narius';
$labels['personaladrbook'] = 'Asmeniniai adresai';
+
$labels['searchsave'] = 'Įrašyti kaip radinių aplanką';
$labels['searchdelete'] = 'Pašalinti radinių aplanką';
+
$labels['import'] = 'Importuoti';
$labels['importcontacts'] = 'Importuoti adresatus';
$labels['importfromfile'] = 'Importuoti iš failo:';
+$labels['importtarget'] = 'Pridėti naujus adresatus į adresų knygą:';
$labels['importreplace'] = 'Perrašyti visą adresų knygą';
$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';
+
+// settings
$labels['settingsfor'] = 'Nuostatos';
$labels['about'] = 'Apie';
$labels['preferences'] = 'Nuostatos';
$labels['userpreferences'] = 'Naudotojo nuostatos';
$labels['editpreferences'] = 'Keisti naudotojo nuostatas';
+
$labels['identities'] = 'TapatybÄ—s';
$labels['manageidentities'] = 'Tvarkyti Å¡ios paskyros tapatybes';
$labels['newidentity'] = 'Nauja tapatybÄ—';
+
$labels['newitem'] = 'Naujas elementas';
$labels['edititem'] = 'Redaguoti elementÄ…';
+
$labels['preferhtml'] = 'Rodyti HTML';
$labels['defaultcharset'] = 'Numatytoji koduotÄ—';
$labels['htmlmessage'] = 'HTML laiškas';
@@ -350,7 +402,7 @@ $labels['htmleditor'] = 'Laiškus kurti HTML formatu';
$labels['htmlonreply'] = 'tik atsakymus į HTML formato laiškus';
$labels['htmlonreplyandforward'] = 'atsakant į HTML laiÅ¡kÄ… arba jį persiunÄiant';
$labels['htmlsignature'] = 'HTML parašas';
-$labels['showemail'] = 'Rodyti el. pašto adresą ir asmenvardį';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Rodyti laiško peržiūros polangį';
$labels['skin'] = 'Grafinis apvalkalas';
$labels['logoutclear'] = 'Išvalyti Šiukšlinę atsijungiant';
@@ -420,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Nepaisyti žodžių su skaitmenimis';
$labels['spellcheckignorecaps'] = 'Nepaisyti žodžių vien iš didžiųjų raidžių';
$labels['addtodict'] = 'Įtraukti į žodyną';
$labels['mailtoprotohandler'] = 'Užregistruoti svetainÄ™ kaip dirbanÄiÄ… su „mailto:“ saitais';
-$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['folder'] = 'Aplankas';
$labels['folders'] = 'Aplankai';
$labels['foldername'] = 'Aplanko vardas';
@@ -444,20 +496,26 @@ $labels['foldertype'] = 'Aplanko tipas';
$labels['personalfolder'] = 'Asmeninis aplankas';
$labels['otherfolder'] = 'Kito naudotojo aplankas';
$labels['sharedfolder'] = 'Viešas aplankas';
+
$labels['sortby'] = 'Rikiuoti pagal';
$labels['sortasc'] = 'Rikiuoti didÄ—janÄiai';
$labels['sortdesc'] = 'Rikiuoti mažėjanÄiai';
$labels['undo'] = 'Atšaukti';
+
$labels['installedplugins'] = 'Įdiegti įskiepiai';
$labels['plugin'] = 'Papildinys';
$labels['version'] = 'Versija';
$labels['source'] = 'Å altinis';
$labels['license'] = 'Licencija';
$labels['support'] = 'Gauti pagalbos';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unikodas';
$labels['english'] = 'Anglų';
$labels['westerneuropean'] = 'Vakarų Europos';
@@ -476,4 +534,5 @@ $labels['vietnamese'] = 'VietnamieÄių';
$labels['japanese'] = 'Japonų';
$labels['korean'] = 'KorÄ—jieÄių';
$labels['chinese'] = 'Kinų';
+
?>
diff --git a/program/localization/lt_LT/messages.inc b/program/localization/lt_LT/messages.inc
index f3feedd47..df19c291b 100644
--- a/program/localization/lt_LT/messages.inc
+++ b/program/localization/lt_LT/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Įvyko klaida!';
$messages['loginfailed'] = 'Prisijungti nepavyko.';
$messages['cookiesdisabled'] = 'Jūsų naršyklė nepriima slapukų.';
@@ -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'] = 'Įrašant įvyko klaida.';
$messages['errormoving'] = 'Laiško(-ų) perkelti nepavyko.';
$messages['errorcopying'] = 'Laiško(-ų) nukopijuoti nepavyko.';
$messages['errordeleting'] = 'Laiško(-ų) pašalinti nepavyko.';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Šalinamas laiško formatavimas…';
$messages['messageopenerror'] = 'Nepavyko įkelti laiško iš serverio.';
$messages['fileuploaderror'] = 'Nepavyko įkelti failo.';
$messages['filesizeerror'] = 'Įkeltas failas viršija maksimalų leistiną dydį – $size.';
-$messages['copysuccess'] = 'Nukopijuota adresatų: $nr.';
-$messages['movesuccess'] = 'Perkelta adresatų: $nr.';
-$messages['copyerror'] = 'Adresatų nukopijuoti nepavyko.';
-$messages['moveerror'] = 'Adresatų perkelti nepavyko.';
+$messages['copysuccess'] = 'Nukopijuota adresų: $nr.';
+$messages['copyerror'] = 'Adresų nukopijuoti nepavyko.';
$messages['sourceisreadonly'] = 'Šis adresų šaltinis prieinamas tik skaitymui.';
$messages['errorsavingcontact'] = 'Asmens adreso įrašyti nepavyko.';
$messages['movingmessage'] = 'Laiškas(-ai) perkeliamas(-i)…';
$messages['copyingmessage'] = 'Laiškas(-ai) kopijuojamas(-i)…';
$messages['copyingcontact'] = 'Adresatas(-ai) kopijuojamas(-i)…';
-$messages['movingcontact'] = 'Adresatas(-ai) perkeliamas(-i)…';
$messages['deletingmessage'] = 'Laiškas(-ai) šalinamas(-i)…';
$messages['markingmessage'] = 'Laiškas(-ai) žymimas(-i)…';
$messages['addingmember'] = 'Adresatas(-ai) įtraukiamas(-i) į grupę…';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Importuojama, prašome palaukti…';
$messages['importformaterror'] = 'Importas nepavyko! Įkeltasis failas nėra tinkamas importavimui duomenų failas.';
$messages['importconfirm'] = '<b>Sėkmingai importuoti $inserted adresatai(-ų)</b>';
$messages['importconfirmskipped'] = '<b>Praleisti $skipped jau egzistuojantys adresatai(-ų)</b>';
-$messages['importmessagesuccess'] = 'Importuota laiškų: $nr';
-$messages['importmessageerror'] = 'Importas nepavyko! Įkeltasis failas nėra tinkamas importavimui laiško arba pašto dėžutės failas';
$messages['opnotpermitted'] = 'Veiksmas neleistinas!';
$messages['nofromaddress'] = 'Nenurodytas pasirinktosios tapatybės el. pašto adresas.';
$messages['editorwarning'] = 'Pereinant į grynojo teksto redagavimą, visas laiško formatavimas bus prarastas. Ar tęsti?';
@@ -140,6 +139,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(-ų).';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Nepavyko sukurti arba perkelti aplanko į pari
$messages['messagetoobig'] = 'Laiško dalis yra per didelė, kad galėtų būti apdorota.';
$messages['attachmentvalidationerror'] = 'Dėmesio! Šis priedas yra įtartinas, nes jo tipas nesutampa su deklaruotu laiške. Jeigu nepasitikite šiuo siuntėju, šio priedo atverti naršyklėje nepatartina, nes jis gali būti kenksmingas.<br/><br/><em>Tikėtasi: $expected; aptikta: $detected</em>';
$messages['noscriptwarning'] = 'Dėmesio: šiai saityno el. pašto sistemai veikti būtini „JavaScript“ scenarijai! Norėdami ja naudotis, įjunkite „JavaScript“ savo naršyklės nuostatose.';
+
?>
diff --git a/program/localization/lv_LV/labels.inc b/program/localization/lv_LV/labels.inc
index 0f80350bb..7d4de2564 100644
--- a/program/localization/lv_LV/labels.inc
+++ b/program/localization/lv_LV/labels.inc
@@ -15,50 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Esiet laipni lūgti $product';
$labels['username'] = 'LietotÄjvÄrds';
$labels['password'] = 'Parole';
$labels['server'] = 'Serveris';
-$labels['login'] = 'Autorizēties';
-$labels['logout'] = 'Iziet';
+$labels['login'] = 'Pieslēgties';
+
+// taskbar
+$labels['logout'] = 'Atslēgties';
$labels['mail'] = 'E-pasts';
-$labels['settings'] = 'Iestatījumi';
+$labels['settings'] = 'Personīgie iestatījumi';
$labels['addressbook'] = 'AdreÅ¡u grÄmata';
+
+// mailbox names
$labels['inbox'] = 'IenÄkoÅ¡Äs';
$labels['drafts'] = 'Uzmetumi';
$labels['sent'] = 'NosÅ«tÄ«tÄs';
-$labels['trash'] = 'Papīrgrozs';
+$labels['trash'] = 'Miskaste';
$labels['junk'] = 'MÄ“stules';
-$labels['show_real_foldernames'] = 'SistÄ“mas mapÄ“m rÄdÄ«t Ä«stos nosaukumus';
+
+// message listing
$labels['subject'] = 'Temats';
$labels['from'] = 'No';
-$labels['sender'] = 'SÅ«tÄ«tÄjs';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Kam';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
-$labels['replyto'] = 'Atbildēt-Uz';
-$labels['followupto'] = 'Sekot-Uz';
+$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Datums';
$labels['size'] = 'Izmērs';
$labels['priority'] = 'PrioritÄte';
$labels['organization'] = 'Uzņēmums';
$labels['readstatus'] = 'Izlasīšanas statuss';
-$labels['listoptions'] = 'Vēstuļu saraksta attēlošanas iestatījumi...';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Mapes';
$labels['messagesfromto'] = 'Vēstules $from līdz $to no $count';
$labels['threadsfromto'] = 'Vijumi $from līdz $to no $count';
-$labels['messagenrof'] = '$nr. vēstule no $count';
-$labels['fromtoshort'] = '$from – $to no $count';
+$labels['messagenrof'] = '$nr. vēstule no $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopēt';
$labels['move'] = 'PÄrvietot';
-$labels['moveto'] = 'PÄrvietot uz...';
+$labels['moveto'] = 'pÄrvietot uz...';
$labels['download'] = 'lejupielÄdÄ“t';
-$labels['open'] = 'Atvērt';
-$labels['showattachment'] = 'RÄdÄ«t';
-$labels['showanyway'] = 'Vienalga rÄdÄ«t';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Faila nosaukums';
$labels['filesize'] = 'Faila izmērs';
+
$labels['addtoaddressbook'] = 'Pievienot adreÅ¡u grÄmatai';
+
+// weekdays short
$labels['sun'] = 'Sv';
$labels['mon'] = 'P';
$labels['tue'] = 'O';
@@ -66,6 +81,8 @@ $labels['wed'] = 'T';
$labels['thu'] = 'C';
$labels['fri'] = 'P';
$labels['sat'] = 'Se';
+
+// weekdays long
$labels['sunday'] = 'Svētdiena';
$labels['monday'] = 'Pirmdiena';
$labels['tuesday'] = 'Otrdiena';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Trešdiena';
$labels['thursday'] = 'Ceturtdiena';
$labels['friday'] = 'Piektdiena';
$labels['saturday'] = 'Sestdiena';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'JanvÄris';
$labels['longfeb'] = 'FebruÄris';
$labels['longmar'] = 'Marts';
@@ -97,199 +118,212 @@ $labels['longsep'] = 'Septembris';
$labels['longoct'] = 'Oktobris';
$labels['longnov'] = 'Novembris';
$labels['longdec'] = 'Decembris';
+
$labels['today'] = 'Å odien';
-$labels['refresh'] = 'Atjaunot';
-$labels['checkmail'] = 'PÄrbaudÄ«t e-pastu';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
+$labels['checkmail'] = 'PÄrbaudÄ«t pastu';
$labels['compose'] = 'Rakstīt vēstuli';
$labels['writenewmessage'] = 'Rakstīt jaunu vēstuli';
-$labels['reply'] = 'Atbildēt';
-$labels['replytomessage'] = 'AtbildÄ“t sÅ«tÄ«tÄjam';
-$labels['replytoallmessage'] = 'AtbildÄ“t sÅ«tÄ«tÄjam vai listei un visiem adresÄtiem';
+$labels['reply'] = 'Reply';
+$labels['replytomessage'] = 'Atbildēt';
+$labels['replytoallmessage'] = 'AtbildÄ“t sÅ«tÄ«tÄjam un visiem saņēmÄ“jiem';
$labels['replyall'] = 'Atbildēt visiem';
$labels['replylist'] = 'Atbildēt listei';
-$labels['forward'] = 'PÄrsÅ«tÄ«t';
+$labels['forward'] = 'Forward';
$labels['forwardinline'] = 'PÄrsÅ«tÄ«t iekļaujot vÄ“stulÄ“';
$labels['forwardattachment'] = 'PÄrsÅ«tÄ«t kÄ pielikumu';
$labels['forwardmessage'] = 'PÄrsÅ«tÄ«t vÄ“stuli';
$labels['deletemessage'] = 'Dzēst vēstuli';
-$labels['movemessagetotrash'] = 'PÄrvietot vÄ“stuli uz papÄ«rgrozu';
-$labels['printmessage'] = 'IzdrukÄt Å¡o vÄ“stuli';
+$labels['movemessagetotrash'] = 'PÄrvietot vÄ“stuli uz miskasti';
+$labels['printmessage'] = 'izdrukÄt';
$labels['previousmessage'] = 'ParÄdÄ«t iepriekÅ¡Ä“jo vÄ“stuli';
$labels['firstmessage'] = 'ParÄdÄ«t pirmo vÄ“stuli';
$labels['nextmessage'] = 'ParÄdÄ«t nÄkamo vÄ“stuli';
$labels['lastmessage'] = 'ParÄdÄ«t pÄ“dÄ“jo vÄ“stuli';
$labels['backtolist'] = 'Atpakaļ uz vēstuļu sarakstu';
-$labels['viewsource'] = 'ParÄdÄ«t pirmtekstu';
-$labels['mark'] = 'Atzīmēt';
-$labels['markmessages'] = 'AtzÄ«mÄ“t vÄ“stules kÄ:';
-$labels['markread'] = 'KÄ lasÄ«tas';
-$labels['markunread'] = 'KÄ nelasÄ«tas';
-$labels['markflagged'] = 'KÄ atÄ«mÄ“tas';
-$labels['markunflagged'] = 'KÄ neatzÄ«mÄ“tas';
-$labels['moreactions'] = 'Papildus darbības...';
-$labels['more'] = 'VairÄk';
-$labels['back'] = 'Atpakaļ';
-$labels['options'] = 'Opcijas';
-$labels['select'] = 'Atzīmēt';
-$labels['all'] = 'Visas';
-$labels['none'] = 'Nevienu';
+$labels['viewsource'] = 'parÄdÄ«t pirmtekstu';
+$labels['mark'] = 'Mark';
+$labels['markmessages'] = 'MarÄ·Ä“t vÄ“stules kÄ:';
+$labels['markread'] = 'lasītas';
+$labels['markunread'] = 'nelasītas';
+$labels['markflagged'] = 'iezīmētas';
+$labels['markunflagged'] = 'neiezīmētas';
+$labels['moreactions'] = 'Citas darbības...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
+$labels['select'] = 'Iezīmēt';
+$labels['all'] = 'visas';
+$labels['none'] = 'Neviens';
$labels['currpage'] = 'PaÅ¡reizÄ“jÄ lapa';
-$labels['unread'] = 'NelasÄ«tÄs';
-$labels['flagged'] = 'AtzÄ«mÄ“tÄs';
-$labels['unanswered'] = 'NeatbildÄ“tÄs';
-$labels['withattachment'] = 'Ar pielikumu';
-$labels['deleted'] = 'DzÄ“stÄs';
-$labels['undeleted'] = 'Nav izdzēstas';
-$labels['invert'] = 'Pretēji';
+$labels['unread'] = 'nelasÄ«tÄs';
+$labels['flagged'] = 'iezÄ«mÄ“tÄs';
+$labels['unanswered'] = 'neatbildÄ“tÄs';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'dzÄ“stÄs';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'invertēt';
$labels['filter'] = 'Filtrēt';
-$labels['list'] = 'RÄdÄ«t kÄ sarakstu';
-$labels['threads'] = 'RÄdÄ«t kÄ vijumus';
+$labels['list'] = 'Saraksts';
+$labels['threads'] = 'Vijumi';
$labels['expand-all'] = 'Izvērst visus';
-$labels['expand-unread'] = 'IzvÄ“rst neizlasÄ«tÄs';
-$labels['collapse-all'] = 'Sakļaut visas';
-$labels['threaded'] = 'RÄdÄ«t vijumus';
+$labels['expand-unread'] = 'Izvērst neizlasītos';
+$labels['collapse-all'] = 'Savērst visu';
+$labels['threaded'] = 'Savīts';
+
$labels['autoexpand_threads'] = 'Izvērst vēstuļu vijumus';
-$labels['do_expand'] = 'visus vijumus';
-$labels['expand_only_unread'] = 'tikai ar neizlasÄ«tÄm vÄ“stulÄ“m';
-$labels['fromto'] = 'No/Kam';
-$labels['flag'] = 'Atzīmēt';
+$labels['do_expand'] = 'visiem vijumiem';
+$labels['expand_only_unread'] = 'tikai tad, ja ir neizlasītas vēstules';
+$labels['fromto'] = 'SÅ«tÄ«tÄjs/SaņēmÄ“js';
+$labels['flag'] = 'Iezīmēts';
$labels['attachment'] = 'Pielikums';
-$labels['nonesort'] = 'Neviena';
+$labels['nonesort'] = 'Neviens';
$labels['sentdate'] = 'Nosūtīšanas datums';
$labels['arrival'] = 'PienÄkÅ¡anas datums';
$labels['asc'] = 'augoša';
$labels['desc'] = 'dilstoša';
$labels['listcolumns'] = 'Saraksta kolonnas';
-$labels['listsorting'] = 'KÄrtoÅ¡anas kolonnas';
+$labels['listsorting'] = 'KÄrtot pÄ“c kolonnas';
$labels['listorder'] = 'KÄrtoÅ¡anas secÄ«ba';
-$labels['listmode'] = 'Attēlošanas veids';
+$labels['listmode'] = 'Saraksta režīms';
+
$labels['folderactions'] = 'Darbības ar mapēm...';
-$labels['compact'] = 'Saspiest';
-$labels['empty'] = 'Iztukšot';
-$labels['importmessages'] = 'Importēt vēstules';
+$labels['compact'] = 'saspiest';
+$labels['empty'] = 'iztukšot';
+
$labels['quota'] = 'Kvota';
$labels['unknown'] = 'nezinÄms';
$labels['unlimited'] = 'neierobežots';
+
$labels['quicksearch'] = 'Ä€rtÄ meklÄ“Å¡ana';
$labels['resetsearch'] = 'Atstatīt meklēšanu';
-$labels['searchmod'] = 'Meklēšanas modifikatori:';
-$labels['msgtext'] = 'VisÄ vÄ“stulÄ“';
-$labels['body'] = 'Pamatteksts';
-$labels['type'] = 'Tips';
-$labels['namex'] = 'VÄrds';
-$labels['openinextwin'] = 'AtvÄ“rt jaunÄ logÄ';
+$labels['searchmod'] = 'Meklēt laukos:';
+$labels['msgtext'] = 'VÄ“stules tekstÄ';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'atvÄ“rt jaunÄ logÄ';
$labels['emlsave'] = 'lejupielÄdÄ“t (.eml)';
-$labels['changeformattext'] = 'RÄdÄ«t kÄ neformatÄ“tu tekstu';
-$labels['changeformathtml'] = 'RÄdÄ«t kÄ HTML formatÄ“tu';
-$labels['editasnew'] = 'Rediģēt kÄ jaunu';
-$labels['send'] = 'Sūtīt';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'rediģēt kÄ jaunu';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Sūtīt vēstuli';
-$labels['savemessage'] = 'SaglabÄt kÄ uzmetumu';
+$labels['savemessage'] = 'SaglabÄt uzmetumu';
$labels['addattachment'] = 'Pievienot failu';
$labels['charset'] = 'Rakstzīmju kopa';
$labels['editortype'] = 'Redaktora tips';
$labels['returnreceipt'] = 'SaņemÅ¡anas apstiprinÄjums';
-$labels['dsn'] = 'PiegÄdes atskaite';
+$labels['dsn'] = 'Atskaite par piegÄdi';
$labels['mailreplyintro'] = '$sender @ $date rakstīja:';
$labels['originalmessage'] = 'SÄkotnÄ“jÄ vÄ“stule';
+
$labels['editidents'] = 'Rediģēt identitÄtes';
-$labels['spellcheck'] = 'IzrunÄt';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'PÄrbaudÄ«t pareizrakstÄ«bu';
$labels['resumeediting'] = 'TurpinÄt rediģēšanu';
$labels['revertto'] = 'Atgriezt uz';
-$labels['responses'] = 'Atbildes';
-$labels['insertresponse'] = 'Ievietot atbildi';
-$labels['manageresponses'] = 'PÄrvaldÄ«t atbildes';
-$labels['savenewresponse'] = 'SaglabÄt jauno atbildi';
-$labels['editresponses'] = 'Rediģēt atbildes';
-$labels['editresponse'] = 'Rediģēt atbildi';
-$labels['responsename'] = 'VÄrds';
-$labels['responsetext'] = 'Atbildes teksts';
-$labels['attach'] = 'Pievienot';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Pielikumi';
$labels['upload'] = 'AugÅ¡upielÄdÄ“t';
$labels['uploadprogress'] = '$percent ($current no $total)';
$labels['close'] = 'Aizvērt';
$labels['messageoptions'] = 'Vēstuļu iestatījumi...';
+
$labels['low'] = 'Zema';
$labels['lowest'] = 'ZemÄkÄ';
$labels['normal'] = 'NormÄla';
$labels['high'] = 'Augsta';
$labels['highest'] = 'AugstÄkÄ';
-$labels['nosubject'] = '(bez tēmas)';
+
+$labels['nosubject'] = '(no subject)';
$labels['showimages'] = 'RÄdÄ«t attÄ“lus';
-$labels['alwaysshow'] = 'VienmÄ“r rÄdÄ«t attÄ“lus vÄ“stulÄ“s, kuras sÅ«tÄ«jis $sender';
+$labels['alwaysshow'] = 'VienmÄ“r rÄdÄ«t attÄ“lus no $sender';
$labels['isdraft'] = 'Å is ir melnraksts.';
-$labels['andnmore'] = '$nr vairÄk...';
-$labels['togglemoreheaders'] = 'RÄdÄ«t galvenes papildus informÄciju';
-$labels['togglefullheaders'] = 'SlÄ“pt galvenes papildus informÄciju';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'VienkÄrÅ¡s teksts';
$labels['savesentmessagein'] = 'SaglabÄt nosÅ«tÄ«to vÄ“stuli mapÄ“';
$labels['dontsave'] = 'nesaglabÄt';
$labels['maxuploadsize'] = 'MaksimÄlais atļautais faila izmÄ“rs ir $size';
+
$labels['addcc'] = 'Pievienot Cc';
$labels['addbcc'] = 'Pievienot Bcc';
-$labels['addreplyto'] = 'Pievienot Atbildēt-Uz';
+$labels['addreplyto'] = 'Pievienot Reply-To';
$labels['addfollowupto'] = 'Pievienot Followup-To';
-$labels['mdnrequest'] = 'Å Ä«s vÄ“stules sÅ«tÄ«tÄjs vÄ“las redzÄ“t vÄ“stules saņemÅ¡anas apstiprinÄjumu. Vai JÅ«s vÄ“laties nosÅ«tÄ«t Å¡o apstiprinÄjumu?';
+
+// mdn
+$labels['mdnrequest'] = 'Å Ä«s vÄ“stules sÅ«tÄ«tÄjs vÄ“las redzÄ“t vÄ“stules saņemÅ¡anas apstiprinÄjumu. Vai jÅ«s vÄ“laties nosÅ«tÄ«t apstiprinÄjumu?';
$labels['receiptread'] = 'SaņemÅ¡anas apstiprinÄjums';
-$labels['yourmessage'] = 'Å is ir JÅ«su nosÅ«tÄ«tÄs vÄ“stules saņemÅ¡anas apstiprinÄjums';
-$labels['receiptnote'] = 'PiezÄ«me: Å is apsiprinÄjums nozÄ«mÄ“ tikai to, ka vÄ“stule tika parÄdÄ«ta uz saņēmÄja datora. Tas nenozÄ«mÄ“, ka saņēmÄ“js ir izlasÄ«jis vai sapratis vÄ“stules saturu.';
+$labels['yourmessage'] = 'Å Ä«s ir jÅ«su vÄ“stules saņemÅ¡anas apstiprinÄjums';
+$labels['receiptnote'] = 'PiezÄ«me: Å Ä«s apsiprinÄjums nozÄ«mÄ“ tikai to, ka vÄ“stule tika parÄdÄ«ta uz saņēmÄja datora. Tas nenozÄ«mÄ“, ka saņēmÄ“js ir izlasÄ«jis vai izpratis vÄ“stules saturu.';
+
+// address boook
$labels['name'] = 'UzrÄdÄ«tais vÄrds';
$labels['firstname'] = 'VÄrds';
$labels['surname'] = 'UzvÄrds';
$labels['middlename'] = 'Otrais vÄrds';
$labels['nameprefix'] = 'Prefikss';
$labels['namesuffix'] = 'Sufikss';
-$labels['nickname'] = 'SegvÄrds';
+$labels['nickname'] = 'Iesauka (nick)';
$labels['jobtitle'] = 'Amats';
$labels['department'] = 'Nodaļa';
$labels['gender'] = 'Dzimums';
-$labels['maidenname'] = 'PirmslaulÄ«bas uzvÄrds';
+$labels['maidenname'] = 'PirmslaulÄ«bu uzvÄrds';
$labels['email'] = 'E-pasts';
$labels['phone'] = 'TÄlrunis';
$labels['address'] = 'Adrese';
$labels['street'] = 'Iela';
$labels['locality'] = 'Pilsēta';
-$labels['zipcode'] = 'Pasta indekss';
+$labels['zipcode'] = 'Pasta kods';
$labels['region'] = 'Novads';
$labels['country'] = 'Pilsēta';
$labels['birthday'] = 'Dzimšanas diena';
$labels['anniversary'] = 'Gadadiena';
-$labels['website'] = 'MÄjaslapa';
+$labels['website'] = 'Web lapa';
$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'Piezīmes';
$labels['male'] = 'vīrietis';
$labels['female'] = 'sieviete';
$labels['manager'] = 'Menedžeris';
$labels['assistant'] = 'Asistents';
-$labels['spouse'] = 'LaulÄtais';
+$labels['spouse'] = 'LaulÄtais draugs';
$labels['allfields'] = 'Visi lauki';
$labels['search'] = 'Meklēt';
$labels['advsearch'] = 'PaplaÅ¡inÄtÄ meklÄ“Å¡ana';
-$labels['advanced'] = 'PaplaÅ¡inÄtie iestatÄ«jumi';
+$labels['advanced'] = 'Advanced';
$labels['other'] = 'Cits';
+
$labels['typehome'] = 'MÄjas';
$labels['typework'] = 'Darbs';
$labels['typeother'] = 'Cits';
$labels['typemobile'] = 'Mobilais tÄlrunis';
$labels['typemain'] = 'Galvenais';
-$labels['typehomefax'] = 'Fakss mÄjÄs';
-$labels['typeworkfax'] = 'Fakss darbÄ';
+$labels['typehomefax'] = 'MÄjas Fax';
+$labels['typeworkfax'] = 'Darba Fax';
$labels['typecar'] = 'Auto';
$labels['typepager'] = 'Peidžeris';
$labels['typevideo'] = 'Video';
$labels['typeassistant'] = 'Asistents';
-$labels['typehomepage'] = 'MÄjaslapa';
+$labels['typehomepage'] = 'Web lapa';
$labels['typeblog'] = 'Blogs';
$labels['typeprofile'] = 'Profils';
+
$labels['addfield'] = 'Pievienot lauku...';
-$labels['addcontact'] = 'Pievienot jaunu kontaktu';
-$labels['editcontact'] = 'Rediģēt kontaktu';
+$labels['addcontact'] = 'Pievienot iezÄ«mÄ“to ierakstu adreÅ¡u grÄmatai';
+$labels['editcontact'] = 'Rediģēt adreÅ¡u grÄmatas ierakstu';
$labels['contacts'] = 'Kontakti';
$labels['contactproperties'] = 'Kontakta īpašības';
-$labels['personalinfo'] = 'PersonÄ«gÄ informÄcija';
+$labels['personalinfo'] = 'PersoniskÄ informÄcija';
+
$labels['edit'] = 'Rediģēt';
$labels['cancel'] = 'Atcelt';
$labels['save'] = 'SaglabÄt';
@@ -297,97 +331,103 @@ $labels['delete'] = 'Dzēst';
$labels['rename'] = 'PÄrdÄ“vÄ“t';
$labels['addphoto'] = 'Pievienot';
$labels['replacephoto'] = 'Aizvietot';
-$labels['uploadphoto'] = 'AugÅ¡upielÄdÄ“t fotogrÄfiju';
-$labels['newcontact'] = 'Izveidot jaunu kontaktu';
-$labels['deletecontact'] = 'Dzēst atzīmētos kontaktus';
+$labels['uploadphoto'] = 'Upload photo';
+
+$labels['newcontact'] = 'Izveidot jaunu ierakstu';
+$labels['deletecontact'] = 'Dzēst iezīmētos ierakstus';
$labels['composeto'] = 'Rakstīt vēstuli';
-$labels['contactsfromto'] = 'Ieraksti no $from lÄ«dz $to - kopÄ $count';
+$labels['contactsfromto'] = 'Ieraksti $from līdz $to no $count';
$labels['print'] = 'DrukÄt';
$labels['export'] = 'Eksportēt';
-$labels['exportall'] = 'Eksportēt visu';
-$labels['exportsel'] = 'Eksportēt atzīmēto';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'EksportÄ“t kontaktus vCard formÄtÄ';
$labels['newcontactgroup'] = 'Izveidot jaunu kontaktu grupu';
$labels['grouprename'] = 'PÄrdÄ“vÄ“t grupu';
$labels['groupdelete'] = 'Izdzēst grupu';
-$labels['groupremoveselected'] = 'Dzēst atzīmētos kontaktus no grupas';
-$labels['previouspage'] = 'ParÄdÄ«t iepriekÅ¡Ä“jo lapu';
-$labels['firstpage'] = 'ParÄdÄ«t pirmo lapu';
-$labels['nextpage'] = 'ParÄdÄ«t nÄkamo lapu';
-$labels['lastpage'] = 'ParÄdÄ«t pÄ“dÄ“jo lapu';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
+$labels['previouspage'] = 'ParÄdÄ«t iepriekÅ¡Ä“jo kopu';
+$labels['firstpage'] = 'ParÄdÄ«t pirmo kopu';
+$labels['nextpage'] = 'ParÄdÄ«t nÄkamo kopu';
+$labels['lastpage'] = 'ParÄdÄ«t pÄ“dÄ“jo kopu';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupas';
-$labels['listgroup'] = 'RÄdÄ«t grupas kontaktus';
$labels['personaladrbook'] = 'PersonÄ«gÄs adreses';
+
$labels['searchsave'] = 'SaglabÄt meklÄ“Å¡anas pieprasÄ«jumu';
$labels['searchdelete'] = 'DzÄ“st saglabÄto meklÄ“Å¡anas pieprasÄ«jumu';
+
$labels['import'] = 'Importēt';
$labels['importcontacts'] = 'Importēt kontaktus';
$labels['importfromfile'] = 'Importēt no faila:';
-$labels['importtarget'] = 'Kontaktus pievienot';
+$labels['importtarget'] = 'Pievienot jaunus kontaktus adreÅ¡u grÄmatai';
$labels['importreplace'] = 'Aizvietot visu adreÅ¡u grÄmatu';
-$labels['importgroups'] = 'Importēt grupu piesaistes';
-$labels['importgroupsall'] = 'Visus (ja nepieciešams, izveidojiet grupas)';
-$labels['importgroupsexisting'] = 'Tikai esoÅ¡Äm grupÄm';
-$labels['importdesc'] = 'JÅ«s varat ieimportÄ“t kontaktus no jau esoÅ¡as adreÅ¡u grÄmatas.<br/>Uz doto brÄ«di tiek atbalstÄ«ti <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> vai CSV (ar komatu atdalÄ«tie) datu formÄti.';
+$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'] = 'Pabeigts';
+
+// settings
$labels['settingsfor'] = 'Iestatījumi';
$labels['about'] = 'Par';
$labels['preferences'] = 'Iestatījumi';
-$labels['userpreferences'] = 'LietotÄja iestatÄ«jumi';
-$labels['editpreferences'] = 'Rediģēt iestatījumus';
+$labels['userpreferences'] = 'LietotÄja preferences';
+$labels['editpreferences'] = 'Rediģēt lietotÄja preferences';
+
$labels['identities'] = 'IdentitÄtes';
-$labels['manageidentities'] = 'Rediģēt identitÄtes';
+$labels['manageidentities'] = 'Rediģēt Å¡Ä« konta identitÄtes';
$labels['newidentity'] = 'Jauna identitÄte';
+
$labels['newitem'] = 'Jauns';
$labels['edititem'] = 'Rediģēt';
-$labels['preferhtml'] = 'RÄdÄ«t HTML formatÄ“tÄs vÄ“stules';
+
+$labels['preferhtml'] = 'Dot priekÅ¡roku HTML formatÄ“tÄm vÄ“stulÄ“m';
$labels['defaultcharset'] = 'NoklusÄ“tÄ rakstzÄ«mju kopa';
-$labels['htmlmessage'] = 'HTML formatēta vēstule';
-$labels['messagepart'] = 'Daļa';
-$labels['digitalsig'] = 'DigitÄlais paraksts';
+$labels['htmlmessage'] = 'HTML vēstule';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Datuma formÄts';
$labels['timeformat'] = 'Laika formÄts';
-$labels['prettydate'] = 'RÄdÄ«t Ä«sos datumus';
+$labels['prettydate'] = 'Formatēt datumus';
$labels['setdefault'] = 'Uzlikt kÄ noklusÄ“to';
-$labels['autodetect'] = 'AutomÄtiska';
+$labels['autodetect'] = 'AutomÄtiski';
$labels['language'] = 'Valoda';
$labels['timezone'] = 'Laika zona';
$labels['pagesize'] = 'Rindas lapÄ';
$labels['signature'] = 'Paraksts';
$labels['dstactive'] = 'Vasaras/ziemas laiks';
-$labels['showinextwin'] = 'VÄ“stules atvÄ“rt jaunÄ logÄ';
-$labels['composeextwin'] = 'VÄ“stuli rakstÄ«t jaunÄ logÄ';
-$labels['htmleditor'] = 'Rakstīt HTML formatētas vēstules';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
+$labels['htmleditor'] = 'Rakstīt HTML vēstules';
$labels['htmlonreply'] = 'tikai atbildot uz HTML formatÄ“tÄm vÄ“stulÄ“m';
-$labels['htmlonreplyandforward'] = 'tikai pÄrsÅ«tot vai atbildot uz HTML formatÄ“tu vÄ“stuli';
-$labels['htmlsignature'] = 'HTML formatēts paraksts';
-$labels['showemail'] = 'Pie vÄrda rÄdÄ«t arÄ« e-pasta adresi';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
+$labels['htmlsignature'] = 'HTML paraksts';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'RÄdÄ«t priekÅ¡skatÄ«juma paneli';
-$labels['skin'] = 'Saskarnes izskats';
-$labels['logoutclear'] = 'Izejot no e-pasta, iztīrīt papīrgrozu';
-$labels['logoutcompact'] = 'Izejot no e-pasta, saspiest iesūtni';
+$labels['skin'] = 'Interfeisa izskats';
+$labels['logoutclear'] = 'Izejot no sistēmas, iztīrīt miskasti';
+$labels['logoutcompact'] = 'Izejot no sistēmas, saspiest iesūtni';
$labels['uisettings'] = 'LietotÄja saskarne';
$labels['serversettings'] = 'Servera iestatījumi';
$labels['mailboxview'] = 'Pastkastes skats';
$labels['mdnrequests'] = 'Vēstules izlasīšanas atskaites sūtīšana';
-$labels['askuser'] = 'jautÄt man vai sÅ«tÄ«t';
+$labels['askuser'] = 'jautÄt lietotÄjam';
$labels['autosend'] = 'sÅ«tÄ«t automÄtiski';
-$labels['autosendknown'] = 'automÄtiski sÅ«tÄ«t ja pieprasÄ«tÄjs ir manos kontaktos, par citiem jautÄt';
-$labels['autosendknownignore'] = 'automÄtiski sÅ«tÄ«t ja pieprasÄ«tÄjs ir manos kontaktos, citiem ignorÄ“t un nesÅ«tÄ«t';
-$labels['ignore'] = 'ignorēt un nesūtīt';
-$labels['readwhendeleted'] = 'DzÄ“Å¡ot vÄ“stules tÄs atzÄ«mÄ“t kÄ izlasÄ«tas';
-$labels['flagfordeletion'] = 'DzÄ“Å¡ot vÄ“stules tÄs nedzÄ“st, bet marÄ·Ä“t kÄ dzÄ“Å¡amas';
+$labels['autosendknown'] = 'automÄtiski sÅ«tÄ«t maniem kontaktiem, par citiem jautÄt';
+$labels['autosendknownignore'] = 'automÄtiski sÅ«tÄ«t maniem kontaktiem, citiem nesÅ«tÄ«t';
+$labels['ignore'] = 'ignorēt';
+$labels['readwhendeleted'] = 'AtzÄ«mÄ“t dzÄ“stÄs vÄ“stules kÄ izlasÄ«tas';
+$labels['flagfordeletion'] = 'DzÄ“Å¡ot marÄ·Ä“t vÄ“stules kÄ dzÄ“stas, bet nedzÄ“st';
$labels['skipdeleted'] = 'NerÄdÄ«t dzÄ“stÄs vÄ“stules';
-$labels['deletealways'] = 'IzdzÄ“st vÄ“stules, ja tÄs neizdodas pÄrvietot uz papÄ«rgrozu';
-$labels['deletejunk'] = 'AutomÄtiski dzÄ“st vÄ“stules no mÄ“stuļu mapÄ«tes';
-$labels['showremoteimages'] = 'RÄdÄ«t vÄ“stulÄ“s attÄ“lus, kuri atrodas uz cita servera';
-$labels['fromknownsenders'] = 'tikai no zinÄmiem sÅ«tÄ«tÄjiem';
+$labels['deletealways'] = 'IzdzÄ“st vÄ“stules, ja tÄs neizdodas pÄrvietot uz miskasti';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'RÄdÄ«t attÄ“lus, kas atrodas uz cita servera';
+$labels['fromknownsenders'] = 'no zinÄmiem sÅ«tÄ«tÄjiem';
$labels['always'] = 'vienmēr';
$labels['showinlineimages'] = 'RÄdÄ«t pielikuma attÄ“lus zem vÄ“stules';
-$labels['autosavedraft'] = 'AutomÄtiski saglabÄt vÄ“stules uzmetumu';
-$labels['everynminutes'] = 'ik pēc $n minūtes(ēm)';
-$labels['refreshinterval'] = 'PÄrbaudÄ«t jaunÄs vÄ“stules';
+$labels['autosavedraft'] = 'AutomÄtiski saglabÄt uzmetumu';
+$labels['everynminutes'] = 'ik pa $n minūti(ēm)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nekad';
$labels['immediately'] = 'nekavējoties';
$labels['messagesdisplaying'] = 'Vēstuļu attēlošana';
@@ -397,45 +437,45 @@ $labels['2231folding'] = 'Pilns RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Pilns RFC 2047 (citi)';
$labels['force7bit'] = 'Izmantot MIME kodējumu 8-bitu simboliem';
-$labels['advancedoptions'] = 'PaplaÅ¡inÄtie iestatÄ«jumi';
-$labels['focusonnewmessage'] = 'UzstÄdÄ«t pÄrlÅ«ka fokusu uz jaunu vÄ“stuli';
-$labels['checkallfolders'] = 'MeklÄ“t visÄs mapÄ“s jaunÄs vÄ“stules';
-$labels['displaynext'] = 'PÄ“c vÄ“stules dzÄ“Å¡anas/pÄrvietoÅ¡anas rÄdÄ«t nÄkamo vÄ“stuli';
-$labels['defaultfont'] = 'NoklusÄ“tais fonts vÄ“stulÄ“m HTML formÄtÄ';
+$labels['advancedoptions'] = 'PaplaÅ¡inÄti iestatÄ«jumi';
+$labels['focusonnewmessage'] = 'UztÄdÄ«t pÄrlÅ«ka fokusu uz jaunu vÄ“stuli';
+$labels['checkallfolders'] = 'PÄrbaudÄ«t visas mapes pÄ“c jaunÄm vÄ“stulÄ“m';
+$labels['displaynext'] = 'RÄdÄ«t nÄkamo vÄ“stuli pÄ“c dzÄ“Å¡anas/pÄrvietoÅ¡anas';
+$labels['defaultfont'] = 'NoklusÄ“tais fonts vÄ“stulei HTML formÄtÄ';
$labels['mainoptions'] = 'Galvenie iestatījumi';
-$labels['browseroptions'] = 'PÄrlÅ«ka iestatÄ«jumi';
-$labels['section'] = 'Sadaļa';
+$labels['browseroptions'] = 'Browser Options';
+$labels['section'] = 'Kategorija';
$labels['maintenance'] = 'Uzturēšana';
$labels['newmessage'] = 'VÄ“stuļu pienÄkÅ¡ana';
$labels['signatureoptions'] = 'Paraksta iestatījumi';
$labels['whenreplying'] = 'Atbildot';
-$labels['replyempty'] = 'neiekļaut vÄ“stules sÄkotnÄ“jo tekstu';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'sÄkt jaunu vÄ“stuli virs oriÄ£inÄla';
$labels['replybottomposting'] = 'sÄkt jaunu vÄ“stuli zem oriÄ£inÄla';
$labels['replyremovesignature'] = 'Atbildot izņemt oriÄ£inÄlo parakstu no vÄ“stules';
$labels['autoaddsignature'] = 'AutomÄtiski pievienot parakstu';
-$labels['newmessageonly'] = 'tikai jaunÄm vÄ“stulÄ“m';
-$labels['replyandforwardonly'] = 'tikai atbildÄ“m un pÄrsÅ«tÄ«jumiem';
+$labels['newmessageonly'] = 'tikai jaunas vēstules';
+$labels['replyandforwardonly'] = 'tikai atbildes un pÄrsÅ«tÄ«jumi';
$labels['insertsignature'] = 'Ievietot parakstu';
$labels['previewpanemarkread'] = 'AtzÄ«mÄ“t priekÅ¡skatÄ«tÄs vÄ“stules kÄ lasÄ«tas';
$labels['afternseconds'] = 'pēc $n sekundēm';
-$labels['reqmdn'] = 'VienmÄ“r pieprasÄ«t saņemÅ¡anas apstiprinÄjumu';
-$labels['reqdsn'] = 'VienmÄ“r pieprasÄ«t atskati par piegÄdi';
+$labels['reqmdn'] = 'Vienmēr pieprasīt atskati par vēstules izlasīšanu';
+$labels['reqdsn'] = 'VienmÄ“r pieprasÄ«t atskati par vÄ“stules piegÄdÄÅ¡anu saņēmÄ“ja serverim';
$labels['replysamefolder'] = 'GlabÄt atbildes tajÄ paÅ¡Ä mapÄ“, kurÄ ir vÄ“stule, uz kuru tika atbildÄ“ts';
-$labels['defaultabook'] = 'NoklusÄ“tÄ adreÅ¡u grÄmata';
-$labels['autocompletesingle'] = 'AutomÄtiski aizpildot, nerÄdÄ«t alternatÄ«vÄs e-pasta adreses';
-$labels['listnamedisplay'] = 'RÄdÄ«t kontaktus kÄ';
-$labels['spellcheckbeforesend'] = 'Pirms vÄ“stules nosÅ«tÄ«Å¡anas pÄrbaudÄ«t pareizrakstÄ«bu';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'AutomÄtiski aizpildot, izlaist alternatÄ«vÄs e-pasta adreses';
+$labels['listnamedisplay'] = 'List contacts as';
+$labels['spellcheckbeforesend'] = 'PÄrbaudÄ«t pareizrakstÄ«bu pirms vÄ“stules nosÅ«tÄ«Å¡anas';
$labels['spellcheckoptions'] = 'Pareizrakstības iestatījumi';
$labels['spellcheckignoresyms'] = 'IgnorÄ“t vÄrdus, kuri satur simbolus';
$labels['spellcheckignorenums'] = 'IgnorÄ“t vÄrdus, kuri satur skaitļus';
$labels['spellcheckignorecaps'] = 'IgnorÄ“t vÄrdus, kuri rakstÄ«ti ar lielajiem burtiem';
$labels['addtodict'] = 'Pievienot vÄrdnÄ«cai';
-$labels['mailtoprotohandler'] = 'Atverot mailto: saites, lietot Å¡o e-pasta programmu';
-$labels['standardwindows'] = 'IzlÄ“coÅ¡ie logi kÄ parasti logi';
-$labels['forwardmode'] = 'VÄ“stuļu pÄrsÅ«tÄ«Å¡ana';
-$labels['inline'] = 'iekļaujot';
-$labels['asattachment'] = 'kÄ pielikumu';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Mapi';
$labels['folders'] = 'Mapes';
$labels['foldername'] = 'Mapes nosaukums';
@@ -451,26 +491,32 @@ $labels['parentfolder'] = 'Virsmape';
$labels['location'] = 'AtraÅ¡anÄs vieta';
$labels['info'] = 'InformÄcija';
$labels['getfoldersize'] = 'UzklikÅ¡Ä·iniet, lai uzzinÄtu mapes izmÄ“ru';
-$labels['changesubscription'] = 'Uzklikšķiniet, lai mainītu abonēšanas iestatījumus';
-$labels['foldertype'] = 'Mapes tips';
+$labels['changesubscription'] = 'Uzklikšķiniet, lai mainītu abonēšanu';
+$labels['foldertype'] = 'Mapes veids';
$labels['personalfolder'] = 'PrivÄta mape';
$labels['otherfolder'] = 'Cita lietotÄja mape';
$labels['sharedfolder'] = 'Publiska mape';
+
$labels['sortby'] = 'KÄrtot pÄ“c';
$labels['sortasc'] = 'KÄrtot augoÅ¡Ä secÄ«bÄ';
$labels['sortdesc'] = 'KÄrtot dilstoÅ¡Ä secÄ«bÄ';
$labels['undo'] = 'Atsaukt';
-$labels['installedplugins'] = 'UzstÄdÄ«tie spraudņi';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Spraudnis';
$labels['version'] = 'Versija';
$labels['source'] = 'OriÄ£inÄls';
$labels['license'] = 'Licence';
$labels['support'] = 'Atbalsts';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'kB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
-$labels['unicode'] = 'Unikods';
+
+// character sets
+$labels['unicode'] = 'Unikoda';
$labels['english'] = 'Angļu';
$labels['westerneuropean'] = 'Rietumeiropas';
$labels['easterneuropean'] = 'Austrumeiropas';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vjetnamiešu';
$labels['japanese'] = 'JapÄņu';
$labels['korean'] = 'Korejiešu';
$labels['chinese'] = 'Ķīniešu';
+
?>
diff --git a/program/localization/lv_LV/messages.inc b/program/localization/lv_LV/messages.inc
index 55cff4134..b69a73e2b 100644
--- a/program/localization/lv_LV/messages.inc
+++ b/program/localization/lv_LV/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'RadÄs kļūda!';
$messages['loginfailed'] = 'PieslÄ“gties neizdevÄs';
$messages['cookiesdisabled'] = 'JÅ«su pÄrlÅ«kprogramma neatbalsta sÄ«kdatnes (cookies)';
@@ -26,7 +28,7 @@ $messages['dberror'] = 'DatubÄzes kļūda!';
$messages['requesttimedout'] = 'PieprasÄ«jumam iestÄjÄs noilgums';
$messages['errorreadonly'] = 'NeizdevÄs veikt darbÄ«bu: mape ir tikai lasÄma (read only)';
$messages['errornoperm'] = 'NeizdevÄs veikt darbÄ«bu: piekļuve liegta';
-$messages['erroroverquota'] = 'OperÄciju veikt nav iespÄ“jams. Uz diska nav brÄ«vas veitas.';
+$messages['erroroverquota'] = 'OperÄciju nav iespÄ“jams veikt. Uz diska nav brÄ«vas veitas.';
$messages['erroroverquotadelete'] = 'Uz diska nav brīvas vietas. Lai dzēstu vēstuli, lietojiet SHIFT+DEL.';
$messages['invalidrequest'] = 'NederÄ«gs pieprasÄ«jums! Dati netika saglabÄti ...';
$messages['invalidhost'] = 'Nederīgs servera nosaukums';
@@ -43,9 +45,7 @@ $messages['sendingmessage'] = 'Tiek sūtīta vēstule ...';
$messages['messagesent'] = 'Vēstule nosūtīta veiksmīgi';
$messages['savingmessage'] = 'VÄ“stule tiek saglabÄta ...';
$messages['messagesaved'] = 'VÄ“stule saglabÄta Uzmetumos';
-$messages['successfullysaved'] = 'VeiksmÄ«gi saglabÄts.';
-$messages['savingresponse'] = 'Tiek saglabÄts atbildes teksts ...';
-$messages['deleteresponseconfirm'] = 'Vai JÅ«s tieÅ¡Äm gribat dzÄ“st Å¡o atbildes tekstu?';
+$messages['successfullysaved'] = 'VÄ“stule veiksmÄ«gi saglabÄta';
$messages['addedsuccessfully'] = 'Kontakts veiksmÄ«gi pievienots adreÅ¡u grÄmatai';
$messages['contactexists'] = 'Kontakts ar Å¡Ädu e-pasta adresi jau eksistÄ“';
$messages['contactnameexists'] = 'Kontakts ar Å¡Ädu vÄrdu jau eksistÄ“.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'Pieprasītais kontakts nav atrasts';
$messages['contactsearchonly'] = 'Lai atrastu kontaktus, ievadiet meklēšanas kritērijus';
$messages['sendingfailed'] = 'Vēstule netika nosūtīta';
$messages['senttooquickly'] = 'Lūdzu uzgaidiet $sec sekundi(-es) pirms sūtiet šo vēstuli';
-$messages['errorsavingsent'] = 'SaglabÄjot nosÅ«tÄ«to vÄ“stuli notika kļūda - vÄ“stule netika saglabÄta';
-$messages['errorsaving'] = 'SaglabÄjot vÄ“stuli notika kļūda - vÄ“stule netika saglabÄta';
+$messages['errorsavingsent'] = 'SaglabÄjot vÄ“stuli notika kļūda - vÄ“stule netika saglabÄta';
+$messages['errorsaving'] = 'SaglabÄjot notika kļūda';
$messages['errormoving'] = 'VÄ“stule(s) netika pÄrvietota(s)';
$messages['errorcopying'] = 'VÄ“stules pÄrkopÄ“t neizdevÄs';
$messages['errordeleting'] = 'VÄ“stules izdzÄ“st neizdevÄs';
@@ -100,76 +100,72 @@ $messages['deletedsuccessfully'] = 'Veiksmīgi izdzēsts';
$messages['converting'] = 'Tiek noņemts vēstules formatējums...';
$messages['messageopenerror'] = 'NevarÄ“ja ielÄdÄ“t vÄ“stuli no servera';
$messages['fileuploaderror'] = 'Faila augÅ¡upielÄde neveiksmÄ«ga';
-$messages['filesizeerror'] = 'AugÅ¡upielÄdÄ“tais fails pÄrsniedz pieļaujamo $size izmÄ“ru.';
-$messages['copysuccess'] = '$nr kontakti tika veiksmÄ«gi pÄrkopÄ“ti.';
-$messages['movesuccess'] = '$nr kontakti tika veiksmÄ«gi pÄrvietoti.';
-$messages['copyerror'] = 'Kontaktus pÄrkopÄ“t neizdevÄs.';
-$messages['moveerror'] = 'Kontaktus pÄrvietot neizdevÄs.';
+$messages['filesizeerror'] = 'IelÄdÄ“tais fails pÄrsniedz pieļaujamo $size apjomu';
+$messages['copysuccess'] = 'Veiksmīgi nokopētas $nr vēstules';
+$messages['copyerror'] = 'Nevarēja nokopēt nevienu adresi';
$messages['sourceisreadonly'] = 'Adreses avots ir lasÄ«Å¡anas režīmÄ tikai';
-$messages['errorsavingcontact'] = 'Kontakta adresi nevarÄ“ja saglabÄt.';
-$messages['movingmessage'] = 'PÄrvieto vÄ“stules...';
+$messages['errorsavingcontact'] = 'NevarÄ“ja saglabÄt kontakta adreses';
+$messages['movingmessage'] = 'PÄrvietoju vÄ“stules...';
$messages['copyingmessage'] = 'Kopē vēstules...';
$messages['copyingcontact'] = 'Kopē kontaktus...';
-$messages['movingcontact'] = 'PÄrvieto kontaktu(s)...';
$messages['deletingmessage'] = 'Dzēš vēstules...';
$messages['markingmessage'] = 'Atzīmē vēstules...';
-$messages['addingmember'] = 'Kontaktus pievieno grupai...';
-$messages['removingmember'] = 'Kontaktus atvieno no grupas...';
-$messages['receiptsent'] = 'SaņemÅ¡anas apstiprinÄjums nosÅ«tÄ«ts veiksmÄ«gi.';
-$messages['errorsendingreceipt'] = 'NeizdevÄs nosÅ«tÄ«t saņemÅ¡anas apstiprinÄjumu.';
-$messages['deleteidentityconfirm'] = 'Vai JÅ«s tieÅ¡Äm vÄ“laties dzÄ“st Å¡o identitÄti?';
-$messages['nodeletelastidentity'] = 'Å o identitÄti nav iespÄ“jams izdzÄ“st, jo tÄ ir pati pÄ“dÄ“jÄ.';
-$messages['forbiddencharacter'] = 'Mapes nosaukums satur aizliegtus simbolus.';
-$messages['selectimportfile'] = 'LÅ«dzu norÄdiet failu, kuru vÄ“laties augÅ¡upielÄdÄ“t.';
-$messages['addresswriterror'] = 'IzvÄ“lÄ“tÄs adreÅ¡u grÄmatas datus nav iespÄ“jams rediģēt.';
+$messages['addingmember'] = 'Pievieno kontaktu(s) grupai...';
+$messages['removingmember'] = 'Atvieno kontaktu(s) no grupas...';
+$messages['receiptsent'] = 'SaņemÅ¡anas apstiprinÄjums nosÅ«tÄ«ts';
+$messages['errorsendingreceipt'] = 'NeizdevÄs nosÅ«tÄ«t apstiprinÄjumu';
+$messages['deleteidentityconfirm'] = 'Vai tieÅ¡Äm vÄ“laties dzÄ“st Å¡o identitÄti?';
+$messages['nodeletelastidentity'] = 'Å o identitÄti nevar izdzÄ“st, tÄ ir pati pÄ“dÄ“jÄ.';
+$messages['forbiddencharacter'] = 'Mapes nosaukums satur aizliegtus simbolus';
+$messages['selectimportfile'] = 'LÅ«dzu izvÄ“lieties failu, ko vÄ“laties augÅ¡upielÄdÄ“t';
+$messages['addresswriterror'] = 'IzvÄ“lÄ“tÄs adreÅ¡u grÄmatas datus nevar labot';
$messages['contactaddedtogroup'] = 'Kontakti tika veiksmīgi pievienoti šai grupai.';
$messages['contactremovedfromgroup'] = 'Kontakti tika veiksmīgi atvienoti no šīs grupas.';
$messages['nogroupassignmentschanged'] = 'GrupÄ nekas netika mainÄ«ts.';
$messages['importwait'] = 'Importēju, lūdzu uzgaidiet...';
$messages['importformaterror'] = 'Imports neizdevÄs! AugÅ¡upielÄdÄ“tais fails nav derÄ«gs importam.';
-$messages['importconfirm'] = '<b>Veiksmīgi ieimportēti $inserted kontakti</b>';
+$messages['importconfirm'] = '<b>Veiksmīgi ieimportēti $inserted kontakti, netika importēti $skipped esoši ieraksti</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Izlaida $skipped jau eksistējošus ierakstus</b>';
-$messages['importmessagesuccess'] = 'Veiksmīgi ieimportētas $nr vēstules';
-$messages['importmessageerror'] = 'ImportÄ“Å¡anas kļūda! AugÅ¡upielÄdÄ“tÄ datne satur nekorektus datus';
$messages['opnotpermitted'] = 'Darbība nav atļauta!';
-$messages['nofromaddress'] = 'IzvÄ“lÄ“tajai identitÄtei nav norÄdÄ«ta e-pasta adrese.';
-$messages['editorwarning'] = 'PÄrslÄ“dzoties uz vienkÄrÅ¡otu teksta redaktoru, tiks pazaudÄ“ts esoÅ¡ais teksta formatÄ“jums. Vai tieÅ¡Äm vÄ“laties turpinÄt?';
-$messages['httpreceivedencrypterror'] = 'Notika kritiska kļūme. Lūdzu nekavējoties sazinieties ar Jūsu administratoru. <b>Jūsu vēstuli nosūtīt nav iespējams.</b>';
+$messages['nofromaddress'] = 'IzvÄ“lÄ“tajai identitÄtei nav norÄdÄ«ta e-pasta adrese';
+$messages['editorwarning'] = 'PÄrslÄ“dzoties uz vienkÄrÅ¡otu teksta redaktoru, tiks pazaudÄ“ts esoÅ¡ais teksta formatÄ“jums. Vai vÄ“laties turpinÄt?';
+$messages['httpreceivedencrypterror'] = 'Kļūme. Lūdzu sazinieties ar administratoru. <b>Nav iespējams nosūtīt vēstuli.</b>';
$messages['smtpconnerror'] = 'SMTP kļūme ($code): NeizdevÄs pieslÄ“gties serverim';
-$messages['smtpautherror'] = 'SMTP kļūda ($code): NeizdevÄs autorizÄ“ties.';
-$messages['smtpfromerror'] = 'SMTP kļūda ($code): NeizdevÄs iestatÄ«t sÅ«tÄ«tÄju "$from" ($msg).';
-$messages['smtptoerror'] = 'SMTP kļūda ($code): NeizdevÄs pievienot saņēmÄ“ju "$to" ($msg).';
-$messages['smtprecipientserror'] = 'SMTP kļūda: Nav iespÄ“jams aptrÄdÄt saņēmÄ“ju sarakstu.';
-$messages['smtperror'] = 'SMTP kļūda: $msg';
+$messages['smtpautherror'] = 'SMTP kļūme ($code): NeizdevÄs autentificÄ“ties';
+$messages['smtpfromerror'] = 'SMTP kļūme ($code): NeizdevÄs iestatÄ«t sÅ«tÄ«tÄju "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP kļūme ($code): NeizdevÄs pievienot saņēmÄ“ju "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP kļūme: Nav iespējams parsēt saņēmēju sarakstu';
+$messages['smtperror'] = 'SMTP kļūme: $msg';
$messages['emailformaterror'] = 'Nepareiza e-pasta adrese: $email';
$messages['toomanyrecipients'] = 'PÄrÄk daudz saņēmÄ“ju. Samaziniet skaitu lÄ«dz $max.';
$messages['maxgroupmembersreached'] = 'Grupas dalÄ«bnieku skaits pÄrsniedz limitu $max.';
-$messages['internalerror'] = 'AtgadÄ«jÄs servera iekÅ¡Ä“jÄ kļūda. LÅ«dzu mÄ“Ä£iniet vÄ“lreiz.';
-$messages['contactdelerror'] = 'Kontaktus izdzÄ“st neizdevÄs.';
-$messages['contactdeleted'] = 'Kontakti izdzēsti veiksmīgi.';
-$messages['contactrestoreerror'] = 'IzdzÄ“stos kontaktus atjaunot neizdevÄs.';
-$messages['contactrestored'] = 'Kontakti atjaunoti veiksmīgi.';
-$messages['groupdeleted'] = 'Grupa izdzēsta veiksmīgi.';
-$messages['grouprenamed'] = 'Grupa pÄrdÄ“vÄ“ta veiksmÄ«gi.';
-$messages['groupcreated'] = 'Grupa izveidota veiksmīgi.';
-$messages['savedsearchdeleted'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums izdzÄ“sts veiksmÄ«gi.';
-$messages['savedsearchdeleteerror'] = 'SaglabÄto meklÄ“Å¡anas pieprasÄ«jumu izdzÄ“st neizdevÄs.';
-$messages['savedsearchcreated'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums saglabÄts veiksmÄ«gi.';
-$messages['savedsearchcreateerror'] = 'MeklÄ“Å¡anas pieprasÄ«jumu izveidot neizdevÄs.';
+$messages['internalerror'] = 'Servera iekÅ¡Ä“jÄ kļūda. LÅ«dzu mÄ“Ä£iniet vÄ“lreiz.';
+$messages['contactdelerror'] = 'NeizdevÄs izdzÄ“st kontaktu(s).';
+$messages['contactdeleted'] = 'Kontakti veiksmīgi izdzēsti.';
+$messages['contactrestoreerror'] = 'NeizdevÄs atjaunot izdzÄ“stos kontaktus.';
+$messages['contactrestored'] = 'Kontakti veiksmīgi atjaunoti.';
+$messages['groupdeleted'] = 'Grupa veiksmīgi izdzēsta.';
+$messages['grouprenamed'] = 'Grupa veiksmÄ«gi pÄrdÄ“vÄ“ta.';
+$messages['groupcreated'] = 'Grupa veiksmīgi izveidota.';
+$messages['savedsearchdeleted'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums veiksmÄ«gi dzÄ“sts.';
+$messages['savedsearchdeleteerror'] = 'NeizdevÄs nodzÄ“st saglabÄto meklÄ“Å¡anas pieprasÄ«jumu.';
+$messages['savedsearchcreated'] = 'SaglabÄtais meklÄ“Å¡anas pieprasÄ«jums veiksmÄ«gi saglabÄts.';
+$messages['savedsearchcreateerror'] = 'NeizdevÄs saglabÄt meklÄ“Å¡anas pieprasÄ«jumu.';
$messages['messagedeleted'] = 'Vēstule(s) veiksmīgi izdzēsta(s).';
$messages['messagemoved'] = 'VÄ“stule(s) veiksmÄ«gi pÄrvietota(s).';
$messages['messagecopied'] = 'VÄ“stule(s) veiksmÄ«gi pÄrkopÄ“ta(s).';
-$messages['messagemarked'] = 'Vēstule(s) veiksmīgi atzīmēta(s).';
-$messages['autocompletechars'] = 'Lai automÄtiski meklÄ“tu, ievadiet vismaz $min burtus.';
-$messages['autocompletemore'] = 'Atrasti vairÄki ieraksti. Papildiniet meklÄ“Å¡anas kritÄ“riju ar vairÄk burtiem.';
+$messages['messagemarked'] = 'Vēstule(s) veiksmīgi iezīmēta(s).';
+$messages['autocompletechars'] = 'Ievadiet vismaz $min burtus, lai meklÄ“tu automÄtiski.';
+$messages['autocompletemore'] = 'Atrasti vairÄki ieraksti. Papildiniet meklÄ“Å¡anas kritÄ“riju.';
$messages['namecannotbeempty'] = 'LÅ«dzu ievadiet vÄrdu.';
-$messages['nametoolong'] = 'VÄrds ir pÄrÄk garÅ¡.';
+$messages['nametoolong'] = 'VÄrds ir par garu.';
$messages['folderupdated'] = 'Mape vieksmīgi atjaunota.';
$messages['foldercreated'] = 'Mape veiksmīgi izveidota.';
$messages['invalidimageformat'] = 'NederÄ«gs attÄ“la formÄts.';
$messages['mispellingsfound'] = 'Vēstulē atrastas pareizrakstības kļūdas.';
-$messages['parentnotwritable'] = 'NeizdevÄs izveidot/pÄrvietot mapi atzÄ«mÄ“tajÄ virsmapÄ“. Nav piekļuves tiesÄ«bu.';
-$messages['messagetoobig'] = 'VÄ“stule daļa ir pÄrÄk liela, lai to varÄ“tu apstrÄdÄt.';
+$messages['parentnotwritable'] = 'NeizdevÄs izveidot/pÄrvietot mapi uz atzÄ«mÄ“to virsmapi. Nav piekļuves tiesÄ«bu.';
+$messages['messagetoobig'] = 'VÄ“stule ir pÄrÄk liela, lai to varÄ“tu apstrÄdÄt.';
$messages['attachmentvalidationerror'] = 'BRĪDINÄ€JUMS! Å is pielikums ir aizdomÄ«gs, jo tÄ tips neatbilst tipam, kurÅ¡ ir uzrÄdÄ«ts e-pasta ziņojumÄ. Ja jÅ«s neuzticaties sÅ«tÄ«tÄjam, Å¡o failu Jums vaÄ¼Ä vÄ“rt nevajadzÄ“tu, jo tas var saturÄ“t ļaunprÄtÄ«gu saturu. <br/><br/><em>BÅ«tu jÄbÅ«t: $expected; Bet ir: $detected</em>';
-$messages['noscriptwarning'] = 'UzmanÄ«bu: lai lasÄ«tu e-pastus, JÅ«su pÄrlÅ«kprogrammÄ jÄbÅ«t ieslÄ“gtiem JavaScript.';
+$messages['noscriptwarning'] = 'UzmanÄ«bu: lai lasÄ«tu e-pastus, JÅ«su tÄ«mekļa pÄrlÅ«kÄ jÄbÅ«t iespÄ“jotiem JavaScript.';
+
?>
diff --git a/program/localization/mk_MK/labels.inc b/program/localization/mk_MK/labels.inc
index 2c6c422b3..bb9606e6a 100644
--- a/program/localization/mk_MK/labels.inc
+++ b/program/localization/mk_MK/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добредојдовте во $product';
$labels['username'] = 'КориÑничко име';
$labels['password'] = 'Лозинка';
$labels['server'] = 'Сервер';
$labels['login'] = 'Ðајава';
+
+// taskbar
$labels['logout'] = 'Одјава';
$labels['mail'] = 'Е-пошта';
$labels['settings'] = 'Ðагодувања';
$labels['addressbook'] = 'Именик';
+
+// mailbox names
$labels['inbox'] = 'Примени';
$labels['drafts'] = 'Ðепратени';
$labels['sent'] = 'Пратени';
$labels['trash'] = 'Корпа';
$labels['junk'] = 'Ѓубре';
+
+// message listing
$labels['subject'] = 'ÐаÑлов';
$labels['from'] = 'Праќач';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Примач';
$labels['cc'] = 'Копирај';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Препрати на';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Датум';
$labels['size'] = 'Големина';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'Организација';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Папки';
$labels['messagesfromto'] = 'ПиÑма од $from до $to од $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'ПиÑмо $nr од $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Копирај';
+$labels['move'] = 'Move';
$labels['moveto'] = 'ПремеÑти во...';
$labels['download'] = 'Преземи';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Име на податотеката';
$labels['filesize'] = 'Големина на податотеката';
+
$labels['addtoaddressbook'] = 'Додај во именик';
+
+// weekdays short
$labels['sun'] = 'Ðед';
$labels['mon'] = 'Пон';
$labels['tue'] = 'Вто';
@@ -55,6 +81,8 @@ $labels['wed'] = 'Сре';
$labels['thu'] = 'Чет';
$labels['fri'] = 'Пет';
$labels['sat'] = 'Саб';
+
+// weekdays long
$labels['sunday'] = 'Ðедела';
$labels['monday'] = 'Понеделник';
$labels['tuesday'] = 'Вторник';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'Среда';
$labels['thursday'] = 'Четврток';
$labels['friday'] = 'Петок';
$labels['saturday'] = 'Сабота';
+
+// months short
$labels['jan'] = 'Јан';
$labels['feb'] = 'Фев';
$labels['mar'] = 'Мар';
@@ -74,6 +104,8 @@ $labels['sep'] = 'Сеп';
$labels['oct'] = 'Окт';
$labels['nov'] = 'Ðое';
$labels['dec'] = 'Дек';
+
+// months long
$labels['longjan'] = 'Јануари';
$labels['longfeb'] = 'Февруари';
$labels['longmar'] = 'Март';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'Септември';
$labels['longoct'] = 'Октомври';
$labels['longnov'] = 'Ðоември';
$labels['longdec'] = 'Декември';
+
$labels['today'] = 'ДенеÑ';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Провери пошта';
$labels['compose'] = 'Пиши ново пиÑмо';
$labels['writenewmessage'] = 'Ðово пиÑмо';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Одговори на иÑпраќачот';
$labels['replytoallmessage'] = 'Одговори на иÑпраќачот и Ñите примачи';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Препрати пиÑмо';
$labels['deletemessage'] = 'Избриши пиÑмо';
$labels['movemessagetotrash'] = 'ПремеÑти ги пиÑмата во Корпа';
@@ -102,104 +144,250 @@ $labels['nextmessage'] = 'Прикажи го Ñледното пиÑмо';
$labels['lastmessage'] = 'Прикажи го поÑледното пиÑмо';
$labels['backtolist'] = 'Ðазад кон лиÑта на пиÑма';
$labels['viewsource'] = 'Покажи го изворот на пиÑмото';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Обележи ги пиÑмата';
$labels['markread'] = 'Како прочитани';
$labels['markunread'] = 'Како непрочитани';
$labels['markflagged'] = 'Како обележано';
$labels['markunflagged'] = 'Како необележано';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Одбери';
$labels['all'] = 'Сите';
$labels['none'] = 'Ðиедно';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Ðепрочитани';
$labels['flagged'] = 'Обележано';
$labels['unanswered'] = 'Ðеодговорено';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Избришано';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Обратно';
$labels['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'] = 'Ðиедно';
+$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'] = 'Компактно';
$labels['empty'] = 'ИÑпразни';
+
$labels['quota'] = 'ИÑкориÑтен проÑтор';
$labels['unknown'] = 'непознато';
$labels['unlimited'] = 'неограничено';
+
$labels['quicksearch'] = 'Брзо пребарување';
$labels['resetsearch'] = 'Ðово пребарување';
$labels['searchmod'] = 'Модификатори на пребарувањето';
$labels['msgtext'] = 'Цело пиÑмо';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Отвори во нов прозорец';
$labels['emlsave'] = 'Преземи (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Уреди како ново';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ИÑпрати Ñега';
$labels['savemessage'] = 'Зачувај го пиÑмото во Ðепратени';
$labels['addattachment'] = 'Приложи податотека';
$labels['charset'] = 'Збир од знаци';
$labels['editortype'] = 'Тип на уредник';
$labels['returnreceipt'] = 'Врати';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Провери правопиÑ';
$labels['resumeediting'] = 'Продолжи Ñо уредување';
$labels['revertto'] = 'Врати на';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Приложено';
$labels['upload'] = 'Подигни';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Затвори';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'Ðизок';
$labels['lowest'] = 'Ðајнизок';
$labels['normal'] = 'Ðормален';
$labels['high'] = 'ВиÑок';
$labels['highest'] = 'ÐајвиÑок';
+
$labels['nosubject'] = '(без наÑлов)';
$labels['showimages'] = 'Прикажи Ñлики';
$labels['alwaysshow'] = 'Секогаш прикажувај ги Ñликите од $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'] = 'Обичен текÑÑ‚';
$labels['savesentmessagein'] = 'Сними го пратеното пиÑмо во';
$labels['dontsave'] = 'не зачувувај';
$labels['maxuploadsize'] = 'МакÑималната дозволена големина за податотеката е $size';
+
$labels['addcc'] = 'Додај Cc';
$labels['addbcc'] = 'Додај Bcc';
$labels['addreplyto'] = 'Додај Одговори-на';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Праќачот на оваа порака Ñака да биде извеÑтен кога ќе го прочитате пиÑмото. Дали Ñакате да го извеÑтите?';
$labels['receiptread'] = 'ИзвеÑти (прочитано)';
$labels['yourmessage'] = 'Ова е извеÑтување за вашата порака';
$labels['receiptnote'] = 'Ðапомена: Ова извеÑтување Ñамо потврдува дека пиÑмото кое Ñте го пратиле е отворено. Ðе е гаранција дека примачот го прочитал или разбрал иÑтото.';
+
+// address boook
$labels['name'] = 'Име за приказ';
$labels['firstname'] = 'Име';
$labels['surname'] = 'Презиме';
+$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'] = 'Е-пошта';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Додај нов контакт';
$labels['editcontact'] = 'Уреди контакт';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Уреди';
$labels['cancel'] = 'Откажи';
$labels['save'] = 'Зачувај';
$labels['delete'] = 'Избриши';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Додај ново име';
$labels['deletecontact'] = 'Избриши ги Ñледните имиња';
$labels['composeto'] = 'Ðапиши порака за';
$labels['contactsfromto'] = 'Имиња од $from до $to од $count';
$labels['print'] = 'ИÑпечати';
$labels['export'] = 'Извези како';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Извези ги контактите во vCard формат';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Прикажи претходна Ñтрана';
$labels['firstpage'] = 'Прикажи ја првата Ñтрана';
$labels['nextpage'] = 'Прикажи ја Ñледната Ñтрана';
$labels['lastpage'] = 'Прикажи ја поÑледната Ñтрана';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Групи';
$labels['personaladrbook'] = 'Лични адреÑи';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Увези';
$labels['importcontacts'] = 'Увези контакти';
$labels['importfromfile'] = 'Увези од податотека:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Замени го целиот именик';
+$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'] = 'Завршено';
+
+// settings
$labels['settingsfor'] = 'Ðагодувања за';
+$labels['about'] = 'About';
$labels['preferences'] = 'Ðагодувања';
$labels['userpreferences'] = 'КориÑнички нагодувања';
$labels['editpreferences'] = 'Промени кориÑнички нагодувања';
+
$labels['identities'] = 'Идентитети';
$labels['manageidentities'] = 'Организирај ги идентитетите за овој кориÑник';
$labels['newidentity'] = 'Ðов идентитет';
+
$labels['newitem'] = 'Ðов објект';
$labels['edititem'] = 'Промени објект';
+
$labels['preferhtml'] = 'Прикажи во HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML пиÑмо';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Убави датуми';
$labels['setdefault'] = 'ПоÑтави за оÑновно';
$labels['autodetect'] = 'ÐвтоматÑки';
@@ -208,8 +396,13 @@ $labels['timezone'] = 'ЧаÑовна зона';
$labels['pagesize'] = 'Редови по Ñтрана';
$labels['signature'] = 'ПотпиÑ';
$labels['dstactive'] = 'Промени на времето';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Пиши HTML порака';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML потпиÑ';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Прикажи прозорец за преглед';
$labels['skin'] = 'Модел на изгледот';
$labels['logoutclear'] = 'ИÑчиÑти ја Кантата при излез';
@@ -220,33 +413,43 @@ $labels['mailboxview'] = 'Приказ на поштенÑкото ÑандачÐ
$labels['mdnrequests'] = 'ИзвеÑтувања за праќачот';
$labels['askuser'] = 'прашај го кориÑникот';
$labels['autosend'] = 'иÑпрати автоматÑки';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'игнорирај';
$labels['readwhendeleted'] = 'Обележи го пиÑмото како прочитано при бришење';
$labels['flagfordeletion'] = 'Обележи го пиÑмото за бришење намеÑто да го избришеш';
$labels['skipdeleted'] = 'Ðе ги прикажувај избришаните пиÑма';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Прикажи вметнати Ñлики';
$labels['fromknownsenders'] = 'од познати праќачи';
$labels['always'] = 'Ñекогаш';
$labels['showinlineimages'] = 'Прикажи приложени Ñлики под пиÑмото';
$labels['autosavedraft'] = 'ÐвоматÑки зачувувај во Ðепратени';
$labels['everynminutes'] = 'Ñекои $n минути';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'никогаш';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'Прикажување на пиÑма';
$labels['messagescomposition'] = 'Пишување на пиÑма';
$labels['mimeparamfolding'] = 'Име на прикачените податотеки';
$labels['2231folding'] = 'Полн RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Полн RFC 2047 (друго)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Ðапредни можноÑти';
$labels['focusonnewmessage'] = 'ФокуÑирај го прозорецот на прелиÑтувачот на новото пиÑмо';
$labels['checkallfolders'] = 'Провери ги Ñите папки за нови пиÑма';
$labels['displaynext'] = 'По бришење/премеÑтување на пиÑмото прикажи го Ñледното пиÑмо';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Главни можноÑти';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Заглавие';
$labels['maintenance'] = 'Одржување';
$labels['newmessage'] = 'Ðово пиÑмо';
$labels['signatureoptions'] = 'МожноÑти за потпиÑот';
$labels['whenreplying'] = 'При одговарање';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'новото пиÑмо започни го над оригиналот';
$labels['replybottomposting'] = 'новото пиÑмо започни го под оригиналот';
$labels['replyremovesignature'] = 'При одговарање отÑтрани го изворниот Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ Ð¾Ð´ пиÑмото';
@@ -254,6 +457,25 @@ $labels['autoaddsignature'] = 'ÐвтоматÑки додавај потпиÑ'
$labels['newmessageonly'] = 'Ñамо нови пиÑма';
$labels['replyandforwardonly'] = 'Ñамо одгорови и препраќања';
$labels['insertsignature'] = 'Вметни потпиÑ';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Име на папката';
@@ -263,11 +485,54 @@ $labels['create'] = 'Создај';
$labels['createfolder'] = 'Создај нова папка';
$labels['managefolders'] = 'Организирање на папки';
$labels['specialfolders'] = 'Специјални папки';
+$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'] = 'Сортирај по';
$labels['sortasc'] = 'Сортирај нагорно';
$labels['sortdesc'] = 'Сортирај надолно';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
+$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/mk_MK/messages.inc b/program/localization/mk_MK/messages.inc
index d123bada9..f7a8d9a12 100644
--- a/program/localization/mk_MK/messages.inc
+++ b/program/localization/mk_MK/messages.inc
@@ -15,17 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Ðајавата не уÑпеа';
$messages['cookiesdisabled'] = 'Вашиот прелиÑтувач не прифаќа колачиња';
$messages['sessionerror'] = 'СеÑијата е неважечка или е иÑтечена';
$messages['storageerror'] = 'Поврзувањето Ñо IMAP не уÑпеа';
$messages['servererror'] = 'Грешка во Ñерверот!';
+$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'] = 'Ðеважечко барање! Податоците не Ñе зачувани.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'Ðемате пиÑма во ова Ñандаче';
$messages['loggedout'] = 'УÑпешно Ñе одјавивте. Ви благодариме и довидување!';
$messages['mailboxempty'] = 'ПоштенÑкото Ñандаче е празно.';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Вчитувам...';
$messages['uploading'] = 'Ја подигам податотеката...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Ги вчитувам податоците...';
$messages['checkingmail'] = 'Проверувам нова пошта...';
$messages['sendingmessage'] = 'Ја иÑпраќам пораката...';
@@ -35,21 +48,31 @@ $messages['messagesaved'] = 'Пораката е зачувана во ÐепрÐ
$messages['successfullysaved'] = 'УÑпешно зачувано';
$messages['addedsuccessfully'] = 'Името е уÑпешно додадено во Именикот';
$messages['contactexists'] = 'Веќе поÑтои име Ñо зададената Е-поштенÑка адреÑа';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'За да Ñе заштити вашата приватноÑÑ‚, Ñликите во оваа порака не Ñе прикажани.';
$messages['encryptedmessage'] = 'Оваа порака е кодирана и не може да Ñе прикаже. Жалиме!';
$messages['nocontactsfound'] = 'Ðема пронајдено имиња.';
$messages['contactnotfound'] = 'Бараното име не е пронајдено';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Ðе упеав да го иÑпратам пиÑмото';
$messages['senttooquickly'] = 'Почекајте $sec Ñекунда/и пред да го иÑпратите пиÑмото';
+$messages['errorsavingsent'] = 'Грешка при зачувувањето на пратеното пиÑмо';
+$messages['errorsaving'] = 'Грешка при зачувувањето';
$messages['errormoving'] = 'Ðе можев да го премеÑтам пиÑмото';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Ðе можев да го избришам пиÑмото';
$messages['errormarking'] = 'Ðе можев да го обележам пиÑмото';
$messages['deletecontactconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да го избришете одбраното(те) име(ња)?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да го(и) избришете обележаниот(те) пиÑмо(а)?';
$messages['deletefolderconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да ја избришете оваа папка?';
$messages['purgefolderconfirm'] = 'Дали Ñте Ñигурни дека Ñакате да ги избршете Ñите пиÑма во оваа папка?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'Ја бришам папката...';
$messages['foldermoving'] = 'Ја премеÑтувам папката...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'Имате изоÑтавено непополнети информации';
$messages['noemailwarning'] = 'ВнеÑете валидна е-поштенÑка адреÑа';
$messages['nonamewarning'] = 'ВнеÑете име';
@@ -63,27 +86,46 @@ $messages['noldapserver'] = 'Изберете LDAP Ñервер за пребаÑ
$messages['nosearchname'] = 'ВнеÑете име или е-поштенÑка адреÑа';
$messages['notuploadedwarning'] = 'Сè уште нема подигнати прилози. Почекајте или откажете го подигањето';
$messages['searchsuccessful'] = 'Пронајадени Ñе $nr пораки';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Пребарувањето не даде резлутати';
$messages['searching'] = 'Пребарувам....';
$messages['checking'] = 'Проверувам...';
$messages['nospellerrors'] = 'Ðема грешки во Ñпелувањето';
$messages['folderdeleted'] = 'Папката е уÑпешно избришана';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'УÑпешно избришано';
$messages['converting'] = 'Форматирањето на пиÑмото е отÑтрането...';
$messages['messageopenerror'] = 'Ðе можев да го вчитам пиÑното од Ñерверот';
$messages['fileuploaderror'] = 'Прикачувањето е неуÑпешно';
$messages['filesizeerror'] = 'Подигнатата податотека го надминува ограничувањето од $size';
+$messages['copysuccess'] = 'УÑпешно Ñе копирани $nr имиња';
+$messages['copyerror'] = 'Ðе можам да ги копирам адреÑите';
$messages['sourceisreadonly'] = 'Изворот на оваа адреÑа неможе да Ñе промени';
$messages['errorsavingcontact'] = 'Името неможе да Ñе Ñними';
$messages['movingmessage'] = 'Пораката Ñе премеÑтува...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'ИзвеÑтувањето е уÑпешно пратено';
$messages['errorsendingreceipt'] = 'ИзвеÑтувањето не е пратено';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Овој идентитет неможе да Ñе избрише, тој е поÑледниот.';
$messages['forbiddencharacter'] = 'Името на папката Ñодржи неÑоодветен формат';
$messages['selectimportfile'] = 'Изберете ја податотеката која Ñакате да ја прикачите';
$messages['addresswriterror'] = 'Одбраниот именик не може да Ñе менува';
+$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'] = 'Убезувам,, почекајте...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>УÑпешно Ñе увезени $inserted имиња, $skipped веќе поÑтојат и Ñе преÑкокнати</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'Операцијата не е дозволена';
$messages['nofromaddress'] = 'Ðе е внеÑена е-пошта во одберениот идентитет';
$messages['editorwarning'] = 'Префрлањето на уредникот на обичен текÑÑ‚ ќе резултира Ñо губење на целото форматирање на текÑтот. Дали Ñакате да продолжите?';
@@ -95,4 +137,35 @@ $messages['smtptoerror'] = 'SMTP грешка ($code): Ðе уÑпеав да г
$messages['smtprecipientserror'] = 'SMTP грешка: Ðе уÑпеав да ја иÑпарÑирам лиÑтата на примачи';
$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'Ðеправилна поштенÑка адреÑа: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/ml_IN/labels.inc b/program/localization/ml_IN/labels.inc
index 395893afb..ed0e7402a 100644
--- a/program/localization/ml_IN/labels.inc
+++ b/program/localization/ml_IN/labels.inc
@@ -15,34 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product ലേയàµà´•àµà´•àµ à´¸àµà´µà´¾à´—തം';
$labels['username'] = 'ഉപയോകàµà´¤àµƒà´¨à´¾à´®à´‚';
$labels['password'] = 'രഹസàµà´¯à´µà´¾à´•àµà´•àµ';
$labels['server'] = 'സേവകനàµâ€';
$labels['login'] = 'à´ªàµà´°à´µàµ‡à´¶à´¿à´•àµà´•àµà´•';
+
+// taskbar
$labels['logout'] = 'à´ªàµà´±à´¤àµà´¤àµ à´•à´Ÿà´•àµà´•àµà´•';
$labels['mail'] = 'തപാലàµâ€';
$labels['settings'] = 'à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµâ€';
$labels['addressbook'] = 'വിലാസ à´ªàµà´¸àµà´¤à´•à´‚';
+
+// mailbox names
$labels['inbox'] = 'ഇനàµâ€à´¬àµ‹à´•àµà´¸àµ';
$labels['drafts'] = 'പൂരàµâ€à´¤àµà´¤à´¿à´¯à´¾à´•à´¾à´¤àµà´¤à´µ';
$labels['sent'] = 'അയചàµà´šà´µ';
$labels['trash'] = 'ചവറàµà´±àµà´•àµà´Ÿàµà´Ÿ';
$labels['junk'] = 'ആവശàµà´¯à´®à´¿à´²àµà´²à´¾à´¤àµà´¤à´µ';
+
+// message listing
$labels['subject'] = 'വിഷയം';
$labels['from'] = 'à´ªàµà´°àµ‡à´·à´¿à´¤à´¨àµâ€';
+$labels['sender'] = 'Sender';
$labels['to'] = 'à´¸àµà´µàµ€à´•à´°àµâ€à´¤àµà´¤à´¾à´µàµ';
+$labels['cc'] = 'Cc';
+$labels['bcc'] = 'Bcc';
+$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'തീയതി';
$labels['size'] = 'വലിപàµà´ªà´‚';
$labels['priority'] = 'à´®àµà´¨àµâ€à´—ണന';
+$labels['organization'] = 'Organization';
$labels['readstatus'] = 'അവസàµà´¥ വായികàµà´•àµà´•';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'ഫോളàµâ€à´¡à´±àµà´•à´³àµâ€';
+$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'] = 'പകരàµâ€à´¤àµà´¤àµà´•';
$labels['move'] = 'നീകàµà´•àµà´•';
+$labels['moveto'] = 'Move to...';
$labels['download'] = 'ഡൗണàµâ€à´²àµ‹à´¡àµ';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ഫയലàµâ€ നാമം';
$labels['filesize'] = 'ഫയലിനàµà´±àµ† വലിപàµà´ªà´‚';
+
$labels['addtoaddressbook'] = 'മേലàµâ€à´µà´¿à´²à´¾à´¸à´™àµà´™à´³à´¿à´²àµâ€ ചേരàµâ€à´•àµà´•àµà´•.';
+
+// weekdays short
$labels['sun'] = 'à´žà´¾';
$labels['mon'] = 'തി';
$labels['tue'] = 'ചൊ';
@@ -50,6 +81,8 @@ $labels['wed'] = 'à´¬àµ';
$labels['thu'] = 'à´µàµà´¯à´¾';
$labels['fri'] = 'വെ';
$labels['sat'] = 'à´¶';
+
+// weekdays long
$labels['sunday'] = 'ഞായരàµâ€';
$labels['monday'] = 'തിങàµà´•à´³àµâ€';
$labels['tuesday'] = 'ചൊവàµà´µ';
@@ -57,6 +90,8 @@ $labels['wednesday'] = 'à´¬àµà´§à´¨àµâ€';
$labels['thursday'] = 'à´µàµà´¯à´¾à´´à´‚';
$labels['friday'] = 'വെളàµà´³à´¿';
$labels['saturday'] = 'ശനി';
+
+// months short
$labels['jan'] = 'ജനàµ';
$labels['feb'] = 'ഫെബàµ';
$labels['mar'] = 'മാരàµâ€';
@@ -69,6 +104,8 @@ $labels['sep'] = 'സെപàµà´±àµà´±à´‚ബരàµâ€';
$labels['oct'] = 'à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€';
$labels['nov'] = 'നവംബരàµâ€';
$labels['dec'] = 'ഡിസംബരàµâ€';
+
+// months long
$labels['longjan'] = 'ജനàµà´µà´°à´¿';
$labels['longfeb'] = 'ഫെബàµà´°àµà´µà´°à´¿';
$labels['longmar'] = 'മാരàµâ€à´šàµà´šàµ';
@@ -81,12 +118,22 @@ $labels['longsep'] = 'സെപàµà´¤à´‚ബ‌രàµâ€';
$labels['longoct'] = 'à´’à´•àµà´Ÿàµ‹à´¬à´°àµâ€';
$labels['longnov'] = 'നവംബ‌രàµâ€';
$labels['longdec'] = 'ഡിസംബ‌രàµâ€';
+
$labels['today'] = 'ഇനàµà´¨àµ';
+
+// toolbar buttons
$labels['refresh'] = 'à´ªàµà´¤àµà´•àµà´•àµà´•';
$labels['checkmail'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¶à´¤àµà´¤à´¿à´¨à´¾à´¯à´¿ തിരയàµà´•';
$labels['compose'] = 'à´°à´šà´¨';
+$labels['writenewmessage'] = 'Create a new message';
$labels['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'] = 'കൈമാറàµà´•';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'സനàµà´¦àµ‡à´¶à´‚ കൈമാറàµà´•';
$labels['deletemessage'] = 'സനàµà´¦àµ‡à´¶à´‚ മായàµà´•àµà´•àµà´•';
$labels['movemessagetotrash'] = 'സനàµà´¦àµ‡à´¶à´‚ ചവറàµà´±àµà´•àµà´Ÿàµà´Ÿà´¯à´¿à´²àµ‡à´•àµà´•àµ നീകàµà´•àµà´•';
@@ -95,15 +142,19 @@ $labels['previousmessage'] = 'à´®àµà´¨àµâ€à´ªàµà´³à´³ സനàµà´¦àµ‡à´¶à´‚
$labels['firstmessage'] = 'ആദàµà´¯à´¤àµà´¤àµ† സനàµà´¦àµ‡à´¶à´‚ കാണികàµà´•àµà´•.';
$labels['nextmessage'] = 'à´…à´Ÿàµà´¤àµà´¤ സനàµà´¦àµ‡à´¶à´‚ കാണികàµà´•àµà´•.';
$labels['lastmessage'] = 'അവസാനതàµà´¤àµ† സനàµà´¦àµ‡à´¶à´‚ കാണികàµà´•àµà´•.';
+$labels['backtolist'] = 'Back to message list';
$labels['viewsource'] = 'ഉറവിടം കാണികàµà´•àµà´•.';
$labels['mark'] = 'അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµ';
$labels['markmessages'] = 'സനàµà´¤àµ‡à´¶à´™àµà´™à´³àµâ€ അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤àµ';
$labels['markread'] = 'വായിചàµà´šà´¤à´¾à´¯à´¿';
$labels['markunread'] = 'വായികàµà´•à´¾à´¤àµà´¤à´¤à´¾à´¯à´¿';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['moreactions'] = 'കൂടàµà´¤à´²àµâ€ ചെയàµà´¤à´¿à´•à´³àµâ€...';
$labels['more'] = 'കൂടàµà´¤à´²àµâ€';
$labels['back'] = 'പിനàµà´¨àµ‹à´Ÿàµà´Ÿàµ';
$labels['options'] = 'à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€â€Œ';
+
$labels['select'] = 'തെരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•';
$labels['all'] = 'à´Žà´²àµà´²à´¾à´‚';
$labels['none'] = 'à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²';
@@ -111,54 +162,117 @@ $labels['currpage'] = 'നിലവിലàµà´³à´³ പേജàµ';
$labels['unread'] = 'വായികàµà´•à´¾à´¤àµà´¤à´¤àµ';
$labels['flagged'] = 'അടയാളപàµà´ªàµ†à´Ÿàµà´¤àµà´¤à´¿à´¯à´µ';
$labels['unanswered'] = 'മറàµà´ªà´Ÿà´¿ കൊടàµà´•àµà´•à´¾à´¤àµà´¤';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'മായàµà´šàµà´šà´µ';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'തലതിരികàµà´•àµà´•';
$labels['filter'] = 'à´…à´°à´¿à´ªàµà´ª';
$labels['list'] = 'പടàµà´Ÿà´¿à´•';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'à´Žà´²àµà´²à´¾à´‚ വികസിപàµà´ªà´¿à´•àµà´•àµà´•';
$labels['expand-unread'] = 'വായികàµà´•à´¾à´¤àµà´¤à´µ വികസിപàµà´ªà´¿à´•àµà´•àµà´•';
$labels['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'] = 'എവിടàµà´¨àµà´¨àµ /à´Žà´™àµà´™àµŠà´Ÿàµà´Ÿàµ';
+$labels['flag'] = 'Flag';
+$labels['attachment'] = 'Attachment';
$labels['nonesort'] = 'à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²';
$labels['sentdate'] = 'അയചàµà´š തീയതി';
$labels['arrival'] = 'വനàµà´¨ തീയതി';
$labels['asc'] = 'ആരോഹണം';
$labels['desc'] = 'അവരോഹണം';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
$labels['listorder'] = 'തരംതിരികàµà´•à´£àµà´Ÿ രീതി';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'à´šàµà´°àµà´•àµà´•àµ';
$labels['empty'] = 'ശൂനàµà´¯à´‚';
+
$labels['quota'] = 'à´¡à´¿à´¸àµà´•àµà´•àµ ഉപയോഗം';
$labels['unknown'] = 'അറിയാതàµà´¤';
$labels['unlimited'] = 'പരിമിതികളിലàµà´²à´¾à´¤àµà´¤';
+
$labels['quicksearch'] = 'പെടàµà´Ÿàµ†à´¨àµà´¨àµ തെരയàµ';
+$labels['resetsearch'] = 'Reset search';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'à´®àµà´´àµà´µà´¨àµâ€ സനàµà´¦àµ‡à´¶à´µàµà´‚';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'à´ªàµà´¤à´¿à´¯ വിനàµâ€à´¡àµ‹à´¯à´¿à´²àµâ€ à´¤àµà´±à´•àµà´•àµà´•';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'à´ªàµà´¤à´¿à´¯à´¤à´¾à´¯à´¿ തിരàµà´¤àµà´¤àµà´•';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'സനàµà´¦àµ‡à´¶à´‚ അയയàµà´•àµà´•àµà´•';
$labels['savemessage'] = 'പൂരàµâ€à´¤àµà´¤à´¿à´¯à´¾à´•à´¾à´¤àµà´¤à´µ ആയി സൂകàµà´·à´¿à´•àµà´•àµà´•';
$labels['addattachment'] = 'ഒരൠഫയലàµâ€ മെയിലിനൊപàµà´ªà´‚ ചേരàµâ€à´•àµà´•àµà´•';
+$labels['charset'] = 'Charset';
$labels['editortype'] = 'തിരàµà´¤àµà´¤à´²àµâ€ രീതി';
+$labels['returnreceipt'] = 'Return receipt';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
$labels['originalmessage'] = 'യഥാരàµâ€à´¥ സനàµà´¦àµ‡à´¶à´‚';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'à´…à´•àµà´·à´°à´¤àµà´¤àµ†à´±àµà´±àµàµ പരിശോധികàµà´•àµà´•';
$labels['resumeediting'] = 'തിരàµà´¤àµà´¤à´²àµâ€ à´¤àµà´Ÿà´°àµà´•';
+$labels['revertto'] = 'Revert to';
+
$labels['attach'] = 'സംയോജിപàµà´ªà´¿à´•àµà´•àµ';
$labels['attachments'] = 'à´…à´±àµà´±à´¾à´šàµà´šàµà´®àµ†à´¨àµà´±àµà´•à´³àµâ€';
$labels['upload'] = 'à´…à´ªàµâ€Œà´²àµ‹à´¡àµ ചെയàµà´¯àµà´•';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'à´…à´Ÿà´¯àµà´•àµà´•àµà´•';
$labels['messageoptions'] = 'സനàµà´¦àµ‡à´¶ ​à´à´šàµà´›à´¿à´•à´™àµà´™à´³àµâ€...';
+
$labels['low'] = 'à´•àµà´±à´žàµà´ž';
$labels['lowest'] = 'à´à´±àµà´±à´µàµà´‚ à´•àµà´±à´žàµà´ž';
$labels['normal'] = 'സാധാരണ';
$labels['high'] = 'കൂടിയ';
$labels['highest'] = 'à´à´±àµà´±à´µàµà´‚ കൂടിയതàµ';
+
$labels['nosubject'] = '(വിഷയം ഇലàµà´²)';
$labels['showimages'] = 'à´šà´¿à´¤àµà´°à´™àµà´™à´³àµâ€ കാണികàµà´•àµà´•';
+$labels['alwaysshow'] = 'Always show images from $sender';
$labels['isdraft'] = 'ഇതൊരൠകരടàµà´°àµ‚പമാണàµ.';
+$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'] = 'à´¸àµà´•àµà´·à´¿à´•àµà´•à´°àµà´¤àµ';
$labels['maxuploadsize'] = '$size ആണൠപരമാവധി ഫയലàµâ€ വലിപàµà´ªà´‚';
+
+$labels['addcc'] = 'Add Cc';
+$labels['addbcc'] = 'Add Bcc';
+$labels['addreplyto'] = 'Add Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
+$labels['name'] = 'Display Name';
$labels['firstname'] = 'ആദàµà´¯ നാമം';
$labels['surname'] = 'അവസാന നാമം';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'ചെലàµà´²à´ªàµ‡à´°àµ';
$labels['jobtitle'] = 'ജോലിയàµà´Ÿàµ† പേരàµ';
$labels['department'] = 'വകàµà´ªàµà´ªàµ';
@@ -175,16 +289,19 @@ $labels['country'] = 'രാജàµà´¯à´‚';
$labels['birthday'] = 'പിറനàµà´¨à´¾à´³àµâ€';
$labels['anniversary'] = 'വാരàµâ€à´·à´¿à´•à´‚';
$labels['website'] = 'വെബàµà´¸àµˆà´±àµà´±àµ';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'à´•àµà´±à´¿à´ªàµà´ªàµà´•à´³àµâ€';
$labels['male'] = 'à´ªàµà´°àµà´·à´¨àµâ€';
$labels['female'] = 'à´¸àµâ€Œà´¤àµà´°àµ€';
$labels['manager'] = 'പരിപാലകനàµâ€';
$labels['assistant'] = 'സഹായി';
$labels['spouse'] = 'ഭാരàµà´¯/à´­à´°àµâ€à´¤àµà´¤à´¾à´µàµ';
+$labels['allfields'] = 'All fields';
$labels['search'] = 'തെരയàµà´•';
$labels['advsearch'] = 'വിപàµà´²à´®à´¾à´¯ തിരചàµà´šà´¿à´²àµâ€';
$labels['advanced'] = 'സങàµà´•àµ€à´°àµâ€à´£àµà´£à´‚';
$labels['other'] = 'മറàµà´±àµà´³àµà´³à´¤àµ';
+
$labels['typehome'] = 'ആസàµà´¥à´¾à´¨à´‚';
$labels['typework'] = 'ജോലി';
$labels['typeother'] = 'മറàµà´±àµà´³àµà´³à´¤àµ';
@@ -199,7 +316,14 @@ $labels['typeassistant'] = 'സഹായി';
$labels['typehomepage'] = 'ഹോം പേജàµ';
$labels['typeblog'] = 'à´¬àµà´²àµ‹à´—àµ';
$labels['typeprofile'] = 'à´ªàµà´°àµŠà´«àµˆà´²àµâ€';
+
+$labels['addfield'] = 'Add field...';
+$labels['addcontact'] = 'Add new contact';
+$labels['editcontact'] = 'Edit contact';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'à´¸àµà´µà´•à´¾à´°àµà´¯ വിവരങàµà´™à´³àµâ€';
+
$labels['edit'] = 'തിരàµà´¤àµà´¤àµà´•';
$labels['cancel'] = 'റദàµà´¦à´¾à´•àµà´•àµà´•';
$labels['save'] = 'സൂകàµà´·à´¿à´•àµà´•àµà´•';
@@ -207,58 +331,196 @@ $labels['delete'] = 'നീകàµà´•à´‚ ചെയàµà´¯àµà´•';
$labels['rename'] = 'പേരàµà´®à´¾à´±àµà´±àµà´•';
$labels['addphoto'] = 'ചേരàµâ€à´•àµà´•àµà´•';
$labels['replacephoto'] = 'പകരം വയàµà´•àµà´•àµà´•';
+$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'] = 'à´…à´šàµà´šà´Ÿà´¿';
$labels['export'] = 'à´ªàµà´±à´¤àµà´¤àµ†à´Ÿàµà´•àµà´•àµà´•';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
+$labels['exportvcards'] = 'Export contacts in vCard format';
+$labels['newcontactgroup'] = 'Create new contact group';
$labels['grouprename'] = 'à´•àµà´Ÿàµà´Ÿà´¤àµà´¤à´¿à´¨àµà´±àµ† പേരൠമാറàµà´±àµà´•';
$labels['groupdelete'] = 'കൂടàµà´Ÿà´‚ മായàµà´•àµà´•àµà´•';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'à´®àµà´®àµà´ªàµà´³à´³ താളàµâ€ കാണിയàµà´•àµà´•àµà´•';
+$labels['firstpage'] = 'Show first page';
+$labels['nextpage'] = 'Show next page';
+$labels['lastpage'] = 'Show last page';
+
$labels['group'] = 'കൂടàµà´Ÿà´‚';
$labels['groups'] = 'കൂടàµà´Ÿà´™àµà´™à´³àµâ€';
$labels['personaladrbook'] = 'à´¸àµà´µà´•à´¾à´°àµà´¯ വിലാസങàµà´™à´³àµâ€';
+
$labels['searchsave'] = 'തിരയലàµâ€ സൂകàµà´·à´¿à´•àµà´•àµà´•';
$labels['searchdelete'] = 'തിരയലàµâ€ നീകàµà´•à´‚ചെയàµà´¯àµà´•';
+
$labels['import'] = 'à´ªàµà´°àµ‹à´—àµà´°à´®àµà´®à´¿à´²àµ‡à´•àµà´•àµ à´Žà´Ÿàµà´•àµà´•àµà´•';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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'] = 'പൂരàµâ€à´¤àµà´¤àµ€à´•à´°à´¿à´šàµà´šàµ';
+
+// settings
+$labels['settingsfor'] = 'Settings for';
$labels['about'] = 'വിവരം';
+$labels['preferences'] = 'Preferences';
$labels['userpreferences'] = 'ഉപയൊകàµà´¤ à´®àµà´¨àµâ€à´—ണനകളàµâ€';
+$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'] = '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'] = 'ഭാഷ';
$labels['timezone'] = 'സമയ മേഖല';
$labels['pagesize'] = 'ഒരൠതാളിലെ വരികളàµâ€';
$labels['signature'] = 'à´’à´ªàµà´ªàµ';
+$labels['dstactive'] = 'Daylight saving time';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML സനàµà´¦àµ‡à´¶à´™àµà´™à´³àµâ€ à´°à´šà´¿à´•àµà´•àµà´•';
+$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'] = 'സേവകനàµà´±àµ† à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµâ€';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
$labels['askuser'] = 'à´Žà´¨àµà´¨àµŠà´Ÿàµ ചോദികàµà´•àµà´•';
+$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'] = 'അവഗണികàµà´•àµà´•';
+$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'] = 'à´Žà´ªàµà´ªàµ‹à´´àµà´‚';
+$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'] = 'à´’à´°à´¿à´•àµà´•à´²àµà´®à´¿à´²àµà´²';
$labels['immediately'] = 'ഉടനടി';
+$labels['messagesdisplaying'] = 'Displaying Messages';
+$labels['messagescomposition'] = 'Composing Messages';
+$labels['mimeparamfolding'] = 'Attachment names';
$labels['2231folding'] = 'Full RFC 2231 (തണàµà´Ÿà´°àµâ€à´¬àµ‡à´Ÿàµ )';
$labels['miscfolding'] = 'Full RFC 2231 ( മൈകàµà´°àµŠà´¸àµŠà´«àµà´±àµà´±àµ ഔടàµà´Ÿàµà´²àµ‚à´•àµà´•àµàµ )';
$labels['2047folding'] = 'Full RFC 2047 (മറàµà´±àµà´³àµà´³à´µ)';
$labels['force7bit'] = '8-bit à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€à´•àµà´•àµ "MIME encoding" ഉപയോഗികàµà´•àµà´•';
$labels['advancedoptions'] = 'വിപàµà´²àµ€à´•àµà´°à´¿à´¤à´®à´¾à´¯ à´•àµà´°à´®àµ€à´•à´°à´£à´™àµà´™à´³àµâ€';
+$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'] = 'HTML സനàµà´¦àµ‡à´¶à´¤àµà´¤à´¿à´¨àµà´±àµ† തനതായ ലിപി';
+$labels['mainoptions'] = 'Main Options';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'വിഭാഗം';
+$labels['maintenance'] = 'Maintenance';
$labels['newmessage'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¶à´‚';
+$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'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¶à´‚ മാതàµà´°à´‚';
+$labels['replyandforwardonly'] = 'replies and forwards only';
+$labels['insertsignature'] = 'Insert signature';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
$labels['afternseconds'] = '$n നിമിഷങàµà´™à´³àµâ€ à´•à´´à´¿à´žàµà´žàµàµ';
+$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'] = 'à´…à´•àµà´•à´™àµà´™à´³àµâ€ ഉളàµà´³ വാകàµà´•àµà´•à´³àµ† അവഗണികàµà´•àµà´•';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'നിഘണàµà´Ÿàµà´µà´¿à´²àµâ€ ചേരàµâ€à´•àµà´•àµà´•';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
+$labels['folder'] = 'Folder';
$labels['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'] = 'സവിശേഷതകളàµâ€';
+$labels['folderproperties'] = 'Folder properties';
+$labels['parentfolder'] = 'Parent folder';
+$labels['location'] = 'Location';
$labels['info'] = 'വിവരം';
$labels['getfoldersize'] = 'അറയàµà´Ÿàµ† വലàµà´ªàµà´ªà´‚ അരിയാനàµâ€ à´•àµà´²à´¿à´•àµà´•àµ ചെയàµà´¯àµà´•';
+$labels['changesubscription'] = 'Click to change subscription';
+$labels['foldertype'] = 'Folder Type';
$labels['personalfolder'] = 'à´¸àµà´µà´•à´¾à´°àµà´¯ à´…à´±';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'പൊതൠ- അറ';
+
+$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'] = 'സഹായം തേടàµà´•';
+
+// units
+$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'യൂണികàµà´•àµ‹à´¡àµ';
$labels['english'] = 'ഇംഗàµà´²àµ€à´·àµ';
$labels['westerneuropean'] = 'പടിഞàµà´žà´¾à´±à´¨àµâ€ യൂറോപàµà´¯à´¨àµâ€';
$labels['easterneuropean'] = 'à´•à´¿à´´à´•àµà´•à´¨àµâ€ യൂറോപàµà´¯à´¨àµâ€';
+$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'ബാളàµâ€à´Ÿàµà´Ÿà´¿à´•àµà´•àµ';
$labels['cyrillic'] = 'സിറിലàµà´²à´¿à´•àµà´•àµ';
$labels['arabic'] = 'അറബികàµà´•àµ';
@@ -272,4 +534,5 @@ $labels['vietnamese'] = 'വിയറàµà´±àµà´¨à´¾à´®àµ€à´¸àµ';
$labels['japanese'] = 'ജാപàµà´ªà´¨àµ€à´¸àµ';
$labels['korean'] = 'കൊറിയനàµâ€';
$labels['chinese'] = 'ചൈനീസàµâ€Œ';
+
?>
diff --git a/program/localization/ml_IN/messages.inc b/program/localization/ml_IN/messages.inc
index 9abaeda99..28eb22be2 100644
--- a/program/localization/ml_IN/messages.inc
+++ b/program/localization/ml_IN/messages.inc
@@ -15,13 +15,157 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
+$messages['loginfailed'] = 'Login failed.';
$messages['cookiesdisabled'] = 'തങàµà´•à´³àµà´Ÿàµ† à´¬àµà´°à´µàµàµà´¸à´°àµâ€ à´•àµà´•àµà´•àµ€à´¸àµ à´¸àµà´µàµ€à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´²àµà´²';
+$messages['sessionerror'] = 'Your session is invalid or expired.';
+$messages['storageerror'] = 'Connection to storage server failed.';
$messages['servererror'] = 'സരàµâ€à´µà´°àµâ€ പിഴവൠ!';
+$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'] = 'à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¨à´‚ തടസപàµà´ªàµ†à´Ÿàµà´Ÿàµ . à´…à´¨àµà´®à´¤à´¿ നിഷേധികàµà´•à´ªàµ†à´Ÿàµà´Ÿà´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ';
+$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'] = 'അസാധàµà´µà´¾à´¯ അപേകàµà´· ! ഒരൠരേഖയàµà´‚ സൂകàµà´·à´¿à´šàµà´šà´¿à´Ÿàµà´Ÿà´¿à´²àµà´²';
+$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'] = 'à´¤àµà´±à´•àµà´•àµà´¨àµà´¨àµ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
+$messages['loadingdata'] = 'Loading data...';
$messages['checkingmail'] = 'à´ªàµà´¤à´¿à´¯ സനàµà´¦àµ‡à´¸à´™àµà´™à´³àµâ€à´•àµà´µàµ‡à´£àµà´Ÿà´¿ തിരയàµà´¨àµà´¨àµ...';
$messages['sendingmessage'] = 'സനàµà´¦àµ‡à´¶à´‚ അയകàµà´•àµà´¨àµà´¨àµ...';
+$messages['messagesent'] = 'Message sent successfully.';
+$messages['savingmessage'] = 'Saving message...';
+$messages['messagesaved'] = 'Message saved to Drafts.';
+$messages['successfullysaved'] = 'Successfully saved.';
+$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'] = 'സനàµà´¦àµ‡à´¶à´‚ അയകàµà´•à´¾à´¨àµâ€ സാധിചàµà´šà´¿à´²àµà´².';
$messages['senttooquickly'] = 'സനàµà´¦àµ‡à´¶à´‚ അയകàµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´®àµà´¨àµà´ªàµ ദയവായൠ$sec കാതàµà´¤à´¿à´°à´¿à´•àµà´•àµ‚';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'An error occured 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['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 addresses.';
+$messages['copyerror'] = 'Could not copy any addresses.';
+$messages['sourceisreadonly'] = 'This address source is read only.';
+$messages['errorsavingcontact'] = 'Could not save the contact address.';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/mr_IN/labels.inc b/program/localization/mr_IN/labels.inc
index 9eb878782..02b129e0b 100644
--- a/program/localization/mr_IN/labels.inc
+++ b/program/localization/mr_IN/labels.inc
@@ -15,43 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product वरती सà¥à¤µà¤¾à¤—त आहे';
$labels['username'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥‡ नाव(तà¥à¤®à¤šà¥‡ इमेल)';
$labels['password'] = 'परवलीचा शबà¥à¤¦';
$labels['server'] = 'सरà¥à¤µà¥à¤¹à¤°';
$labels['login'] = 'पà¥à¤°à¤µà¥‡à¤¶';
+
+// taskbar
$labels['logout'] = 'बाहेर जा';
$labels['mail'] = 'इ-मेल';
$labels['settings'] = 'तà¥à¤®à¤šà¥€ पसंती';
$labels['addressbook'] = 'पतà¥à¤¤à¤¾ नोंदवही';
+
+// mailbox names
$labels['inbox'] = 'आलेले संदेश';
$labels['drafts'] = 'मसà¥à¤¦à¤¾';
$labels['sent'] = 'पाठवलेले';
$labels['trash'] = 'कचरा पेटी';
$labels['junk'] = 'नको असलेले कचरा संदेश';
+
+// message listing
$labels['subject'] = 'विषय';
$labels['from'] = 'पà¥à¤°à¥‡à¤·à¤•';
+$labels['sender'] = 'Sender';
$labels['to'] = 'पà¥à¤°à¤¤à¥€';
$labels['cc'] = 'पà¥à¤°à¤¤';
$labels['bcc'] = 'गà¥à¤ªà¥à¤¤ पà¥à¤°à¤¤';
$labels['replyto'] = 'यास उतà¥à¤¤à¤° दà¥à¤¯à¤¾';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'दिनांक';
$labels['size'] = 'आकार';
$labels['priority'] = 'पà¥à¤°à¤¾à¤§à¤¾à¤¨à¥à¤¯';
$labels['organization'] = 'संसà¥à¤¥à¤¾';
$labels['readstatus'] = 'वाचन सà¥à¤¥à¤¿à¤¤à¥€';
$labels['listoptions'] = 'विकलà¥à¤ª सूची';
+
$labels['mailboxlist'] = 'फोलà¥à¤¡à¤°à¥à¤¸';
$labels['messagesfromto'] = 'संदेश $from कडून $to साठी $count वा';
$labels['threadsfromto'] = 'धागे $from कडून $to साठी $count वा';
$labels['messagenrof'] = 'Message $nr of $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'नकà¥â€à¤•à¤²';
$labels['move'] = 'हलवा';
$labels['moveto'] = 'या फोलà¥à¤¡à¤°à¤®à¤§à¥‡ ठेवा';
$labels['download'] = 'उतरवून घà¥à¤¯à¤¾';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'फाईलचे नाव';
$labels['filesize'] = 'फाईलचा आकार';
+
$labels['addtoaddressbook'] = 'पतà¥à¤¤à¤¾ नोंदवहीत नोंदवा';
+
+// weekdays short
$labels['sun'] = 'रवी';
$labels['mon'] = 'सोम';
$labels['tue'] = 'मंगळ';
@@ -59,6 +81,8 @@ $labels['wed'] = 'बà¥à¤§';
$labels['thu'] = 'गà¥à¤°à¥';
$labels['fri'] = 'शà¥à¤•à¥à¤°';
$labels['sat'] = 'शनी';
+
+// weekdays long
$labels['sunday'] = 'रविवार';
$labels['monday'] = 'सोमवार';
$labels['tuesday'] = 'मंगळवार';
@@ -66,6 +90,8 @@ $labels['wednesday'] = 'बà¥à¤§à¤µà¤¾à¤°';
$labels['thursday'] = 'गà¥à¤°à¥à¤µà¤¾à¤°';
$labels['friday'] = 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°';
$labels['saturday'] = 'शनीवार';
+
+// months short
$labels['jan'] = 'जाने';
$labels['feb'] = 'फेबà¥';
$labels['mar'] = 'मारà¥à¤š';
@@ -78,6 +104,8 @@ $labels['sep'] = 'सपà¥à¤Ÿà¥‡à¤‚';
$labels['oct'] = 'ऑकà¥à¤Ÿà¥‹';
$labels['nov'] = 'नोवà¥à¤¹à¥‡à¤‚';
$labels['dec'] = 'डिसें';
+
+// months long
$labels['longjan'] = 'जानेवारी';
$labels['longfeb'] = 'फेबà¥à¤°à¥‚वारी';
$labels['longmar'] = 'मारà¥à¤š';
@@ -90,7 +118,10 @@ $labels['longsep'] = 'सपà¥à¤Ÿà¥‡à¤‚बर';
$labels['longoct'] = 'ऑकà¥à¤Ÿà¥‹à¤¬à¤°';
$labels['longnov'] = 'नोवà¥à¤¹à¥‡à¤‚बर';
$labels['longdec'] = 'डिसेंबर';
+
$labels['today'] = 'आज';
+
+// toolbar buttons
$labels['refresh'] = 'अदà¥à¤¯à¤¯à¤¾à¤µà¤¤ करा';
$labels['checkmail'] = 'नवीन संदेश आले आहेत का पहा';
$labels['compose'] = 'नवीन संदेश तयार करा';
@@ -99,6 +130,10 @@ $labels['reply'] = 'उतà¥à¤¤à¤° दया';
$labels['replytomessage'] = 'पाठवणारà¥â€à¤¯à¤¾à¤²à¤¾ उतà¥à¤¤à¤° दà¥à¤¯à¤¾';
$labels['replytoallmessage'] = 'पाठवणारà¥â€à¤¯à¤¾à¤²à¤¾ आणि पà¥à¤°à¤¤ केलेलà¥à¤¯à¤¾ सरà¥à¤µà¤¾à¤‚ना संदेश पाठवा';
$labels['replyall'] = 'सरà¥à¤µà¤¾à¤‚ना उतà¥à¤¤à¤° दया';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'हा संदेश पà¥à¤¢à¥‡ पाठवा';
$labels['deletemessage'] = 'संदेश काढून टाका';
$labels['movemessagetotrash'] = 'संदेश कचरापेटीत टाका';
@@ -119,6 +154,7 @@ $labels['moreactions'] = 'अधिक कृती..';
$labels['more'] = 'अधिक';
$labels['back'] = 'मागे';
$labels['options'] = 'परà¥à¤¯à¤¾à¤¯';
+
$labels['select'] = 'निवडा';
$labels['all'] = 'सरà¥à¤µ';
$labels['none'] = 'कोणताही नाही';
@@ -126,7 +162,9 @@ $labels['currpage'] = 'सधà¥â€à¤¯à¤¾à¤šà¥‡ पान';
$labels['unread'] = 'न वाचलेले';
$labels['flagged'] = 'खूण लावलेले';
$labels['unanswered'] = 'उतà¥à¤¤à¤° न दिलेले';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'काढून टाकलेला(ले)';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'उलट करा';
$labels['filter'] = 'गाळणी';
$labels['list'] = 'यादी';
@@ -135,6 +173,7 @@ $labels['expand-all'] = 'सरà¥à¤µ विसà¥â€à¤¤à¤¾à¤°à¥€à¤¤ करा';
$labels['expand-unread'] = 'न वाचलेला विसà¥â€à¤¤à¤¾à¤°à¤¾';
$labels['collapse-all'] = 'सरà¥à¤µ मिटवा';
$labels['threaded'] = 'धागा लावलेला';
+
$labels['autoexpand_threads'] = 'संदेश धागे विसà¥â€à¤¤à¤¾à¤°à¤¾';
$labels['do_expand'] = 'सरà¥à¤µ धागे';
$labels['expand_only_unread'] = 'फकà¥â€à¤¤ न वाचलेलà¥â€à¤¯à¤¾ संदेशांबददल';
@@ -150,19 +189,29 @@ $labels['listcolumns'] = 'सà¥à¤šà¥€ सà¥â€à¤¤à¤‚भ';
$labels['listsorting'] = 'सà¥â€à¤¤à¤‚भ वरà¥à¤—ीकरण';
$labels['listorder'] = 'वरà¥à¤—ीकरण कà¥à¤°à¤®';
$labels['listmode'] = 'यादी दरà¥à¤¶à¤• पधà¥â€à¤¦à¤¤';
+
$labels['folderactions'] = 'फोलà¥à¤¡à¤° कृती..';
$labels['compact'] = 'छोटा';
$labels['empty'] = 'रिकामा';
+
$labels['quota'] = 'डिसà¥à¤•à¤šà¤¾ वापर';
$labels['unknown'] = 'माहित नसलेला';
$labels['unlimited'] = 'अमरà¥à¤¯à¤¾à¤¦';
+
$labels['quicksearch'] = 'चटकन शोध';
$labels['resetsearch'] = 'परत शोध';
$labels['searchmod'] = 'बदलकरà¥à¤¤à¥â€à¤¯à¤¾à¤‚ना शोधा';
$labels['msgtext'] = 'संपूरà¥à¤£ संदेश';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'नवीन खिडकी उघडा';
$labels['emlsave'] = 'इà¤à¤®à¤à¤² सà¥â€à¤µà¤°à¥‚पात उतरवून घà¥à¤¯à¤¾';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'नवीन आहे असा संपादित करा';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'आतà¥à¤¤à¤¾ पाठवा';
$labels['savemessage'] = 'हा मसूदा साठवून ठेवा';
$labels['addattachment'] = 'फाईल सोबत जोडा';
@@ -172,75 +221,109 @@ $labels['returnreceipt'] = 'पोच पावती';
$labels['dsn'] = 'पोच सà¥à¤¥à¤¿à¤¤à¥€ निरà¥à¤¦à¥‡à¤¶à¤•';
$labels['mailreplyintro'] = '$date या दिवशी $sender ने लिहीले :';
$labels['originalmessage'] = 'खरा संदेश';
+
$labels['editidents'] = 'ओळख संपादित करा';
$labels['spellcheck'] = 'लिखाण';
$labels['checkspelling'] = 'शà¥à¤§à¥à¤¦ लेखन';
$labels['resumeediting'] = 'परत संदेश संपादित करा';
$labels['revertto'] = 'परत जा';
+
$labels['attach'] = 'जोडा';
$labels['attachments'] = 'जोडलेलà¥à¤¯à¤¾';
$labels['upload'] = 'चढवा';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'बंद';
$labels['messageoptions'] = 'संदेश परà¥à¤¯à¤¾à¤¯..';
+
$labels['low'] = 'कमी';
$labels['lowest'] = 'कमित कमी';
$labels['normal'] = 'नेहमी पà¥à¤°à¤®à¤¾à¤£à¥‡';
$labels['high'] = 'तातडीचे';
$labels['highest'] = 'अतिशय तातडीचे';
+
$labels['nosubject'] = '(विषय नाही)';
$labels['showimages'] = 'चितà¥à¤° दाखवा';
$labels['alwaysshow'] = '$sender कडून आलेलà¥à¤¯à¤¾ संदेशातील चितà¥à¤°à¥‡ नेहमी दाखवा';
$labels['isdraft'] = 'हा मसà¥à¤¦à¤¾ संदेश आहे';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'à¤à¤š टी à¤à¤® à¤à¤²';
$labels['plaintoggle'] = 'साधे लिखाण';
$labels['savesentmessagein'] = 'पाठवलेला संदेश या फोलà¥à¤¡à¤°à¤®à¤§à¥‡ ठेवा';
$labels['dontsave'] = 'संदेश साठवू नका';
$labels['maxuploadsize'] = 'जासà¥â€à¤¤à¥€à¤¤ जासà¥â€à¤¤ फाइलचा आकार $size असू शकतो';
+
$labels['addcc'] = 'पà¥à¤°à¤¤ करा';
$labels['addbcc'] = 'गà¥à¤ªà¥à¤¤ पà¥à¤°à¤¤ करा';
$labels['addreplyto'] = 'आणखी लोकांना संदेश पाठवा';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'हा संदेश पाठवणारà¥â€à¤¯à¤¾à¤¨à¥‡ हा संदेश तà¥à¤®à¥à¤¹à¥€ वाचलà¥à¤¯à¤¾à¤µà¤° कळवावयाला सांगितले आहे. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ असे कळवणे चालेल ना?';
$labels['receiptread'] = 'पोच पावती (संदेश वाचला)';
$labels['yourmessage'] = 'ही तà¥à¤®à¤šà¥à¤¯à¤¾ संदेशाची पोच पावती आहे.';
$labels['receiptnote'] = 'सूचना: ही पोच पावती तà¥à¤®à¥à¤¹à¥€ जà¥à¤¯à¤¾à¤‚ना संदेश पाठवला तà¥à¤¯à¤¾à¤‚चà¥à¤¯à¤¾ संगणकावर दिसला à¤à¤µà¤¢à¥‡à¤š सांगते. तà¥à¤®à¥à¤¹à¥€ जà¥à¤¯à¤¾à¤‚ना हा संदेश पाठवला, तà¥à¤¯à¤¾à¤‚नी तो वाचला, आणि तà¥à¤¯à¤¾à¤‚ना तो नकà¥à¤•à¥€ समजला हे मातà¥à¤° सांगत नाही.';
+
+// address boook
$labels['name'] = 'टोपणनाव';
$labels['firstname'] = 'नाव';
$labels['surname'] = 'आडनाव';
$labels['middlename'] = 'मधले नाव';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'टोपणनाव';
$labels['jobtitle'] = 'कामाचे शिरà¥à¤·à¤•';
$labels['department'] = 'विभाग';
$labels['gender'] = 'लिंग';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'इ-मेलà¥';
$labels['phone'] = 'दूरधà¥à¤µà¤¨à¥€';
$labels['address'] = 'पतà¥à¤¤à¤¾';
$labels['street'] = 'रसà¥à¤¤à¤¾';
$labels['locality'] = 'शहर';
+$labels['zipcode'] = 'ZIP Code';
$labels['region'] = 'राजà¥à¤¯ / संसà¥à¤¥à¤¾à¤¨';
$labels['country'] = 'देश';
$labels['birthday'] = 'वाढदिवस';
+$labels['anniversary'] = 'Anniversary';
$labels['website'] = 'संकेतसà¥à¤¥à¤³';
+$labels['instantmessenger'] = 'IM';
$labels['notes'] = 'टिपा';
$labels['male'] = 'पà¥à¤°à¥‚ष';
$labels['female'] = 'सà¥à¤¤à¥à¤°à¥€';
$labels['manager'] = 'वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾à¤ªà¤•';
$labels['assistant'] = 'सहायà¥à¤¯à¤•';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
$labels['search'] = 'शोध';
$labels['advsearch'] = 'पà¥à¤°à¤—त शोध';
$labels['advanced'] = 'आधà¥à¤¨à¤¿à¤•';
$labels['other'] = 'इतर';
+
$labels['typehome'] = 'मà¥à¤–à¥à¤¯à¤ªà¥ƒà¤·à¥à¤ ';
$labels['typework'] = 'काम';
$labels['typeother'] = 'इतर';
$labels['typemobile'] = 'भà¥à¤°à¤®à¤£à¤§à¥à¤µà¤¨à¥€';
$labels['typemain'] = 'मà¥à¤–à¥à¤¯';
+$labels['typehomefax'] = 'Home Fax';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
+$labels['typepager'] = 'Pager';
$labels['typevideo'] = 'चलचितà¥à¤°';
$labels['typeassistant'] = 'सहायà¥à¤¯à¤•';
$labels['typehomepage'] = 'मà¥à¤–à¥à¤¯ पृषà¥à¤ ';
+$labels['typeblog'] = 'Blog';
+$labels['typeprofile'] = 'Profile';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'नवीन पतà¥à¤¤à¤¾ नोंदवहीत ठेवा';
$labels['editcontact'] = 'नोंदवहीतील पतà¥à¤¤à¤¾ सà¥à¤§à¤¾à¤°à¤¾';
$labels['contacts'] = 'संपरà¥à¤•';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'वैयकà¥à¤¤à¤¿à¤• माहिती';
+
$labels['edit'] = 'संदेश तयार करा';
$labels['cancel'] = 'रदà¥à¤¦ करा';
$labels['save'] = 'ठेवून दà¥à¤¯à¤¾';
@@ -248,42 +331,63 @@ $labels['delete'] = 'काढून टाका';
$labels['rename'] = 'दूसरे नाव दà¥à¤¯à¤¾';
$labels['addphoto'] = 'समावेश करा';
$labels['replacephoto'] = 'बदला';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'नोंदवहीत नवीन संपरà¥à¤• लिहिणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€';
$labels['deletecontact'] = 'खूण केलेले सरà¥à¤µ संपरà¥à¤•à¤¾à¤šà¥‡ पतà¥à¤¤à¥‡ काढून टाका';
$labels['composeto'] = 'साठी नवीन संदेश तयार करा';
$labels['contactsfromto'] = '$from पासून ते $to परà¥à¤¯à¤‚त $count पैकी';
$labels['print'] = 'छापा';
$labels['export'] = 'निरà¥à¤¯à¤¾à¤¤ करा';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'वà¥à¤¹à¥€ कारà¥à¤¡ सà¥à¤µà¤°à¥à¤ªà¤¾à¤¤ पतà¥à¤¤à¥‡ निरà¥à¤¯à¤¾à¤¤ करा';
$labels['newcontactgroup'] = 'नवीन पतà¥â€à¤¤à¥â€à¤¯à¤¾à¤‚चा गट बनवा';
+$labels['grouprename'] = 'Rename group';
$labels['groupdelete'] = 'गट नषà¥à¤Ÿ करा';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'आधिचा संच दाखवा';
$labels['firstpage'] = 'पहिला संच दाखवा';
$labels['nextpage'] = 'नंतरचा संच दाखवा';
$labels['lastpage'] = 'शेवटचा संच दाखवा';
+
$labels['group'] = 'गट';
$labels['groups'] = 'अनेक गट';
$labels['personaladrbook'] = 'वैयकà¥à¤¤à¤¿à¤• पतà¥à¤¤à¥‡';
+
$labels['searchsave'] = 'शोध जतन करा';
$labels['searchdelete'] = 'शोध नषà¥à¤Ÿ करा';
+
$labels['import'] = 'आयात करा';
$labels['importcontacts'] = 'पतà¥à¤¤à¥‡ आयात करा';
$labels['importfromfile'] = 'या फाईल मधून आयात करा';
+$labels['importtarget'] = 'नवीन पतà¥à¤¤à¤¾ नोंदवहीत नोंदवा';
$labels['importreplace'] = 'संपूरà¥à¤£ पतà¥à¤¤à¤¾ नोंदवही बदला';
+$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'] = 'à¤à¤¾à¤²à¥‡';
+
+// settings
$labels['settingsfor'] = 'साठी सेटिंगà¥à¤œ';
$labels['about'] = 'चà¥à¤¯à¤¾ विषयी';
$labels['preferences'] = 'तà¥à¤®à¤šà¥€ पसंती';
$labels['userpreferences'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ पसंती';
$labels['editpreferences'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ पसंती सà¥à¤§à¤¾à¤°à¤¾';
+
$labels['identities'] = 'ओळख';
$labels['manageidentities'] = 'या खातà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ ओळखींचे नियोजन करा';
$labels['newidentity'] = 'नवीन ओळख';
+
$labels['newitem'] = 'नवीन पà¥à¤°à¤•à¤¾à¤°';
$labels['edititem'] = 'पà¥à¤°à¤•à¤¾à¤° सà¥à¤§à¤¾à¤°à¤¾';
+
$labels['preferhtml'] = 'à¤à¤š टी à¤à¤® à¤à¤² दाखवा';
$labels['defaultcharset'] = 'नेहमीचा अकà¥à¤·à¤° संच';
$labels['htmlmessage'] = 'à¤à¤š टी à¤à¤® à¤à¤² संदेश';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'विशेष दिवस';
$labels['setdefault'] = 'हा नेहमीसाठी वापरा';
$labels['autodetect'] = 'सà¥à¤µà¤¯à¤‚चलित';
@@ -292,8 +396,13 @@ $labels['timezone'] = 'वेळ कà¥à¤·à¥‡à¤¤à¥à¤°';
$labels['pagesize'] = 'पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पानावरील ओळी';
$labels['signature'] = 'सही';
$labels['dstactive'] = 'दिवसाची वेळ';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'à¤à¤š टी à¤à¤® à¤à¤² संदेश तयारा करा';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'à¤à¤š टी à¤à¤® à¤à¤² सही';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾à¤ªà¥‚रà¥à¤µ तावदान दाखवा';
$labels['skin'] = 'दृषà¥à¤¯ गोषà¥à¤Ÿà¥€';
$labels['logoutclear'] = 'खातà¥à¤¯à¤¾à¤¤à¥‚न बाहेर पडतांना कचरा पेटी साफ करा';
@@ -304,17 +413,21 @@ $labels['mailboxview'] = 'टपालपेटी पहाणे';
$labels['mdnrequests'] = 'पाठवणारà¥â€à¤¯à¤¾à¤šà¥à¤¯à¤¾ सूचना';
$labels['askuser'] = 'वापरकरà¥à¤¤à¥à¤¯à¤¾à¤²à¤¾ विचारा';
$labels['autosend'] = 'सà¥à¤µà¤¯à¤‚चलित (आपोआप पाठवणे)';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'दà¥à¤°à¥à¤²à¤•à¥à¤· करा';
$labels['readwhendeleted'] = 'काढून टाकलà¥à¤¯à¤¾à¤µà¤° संदेश वाचला असे दाखवा';
$labels['flagfordeletion'] = 'संदेश काढून टाकणà¥à¤¯à¤¾ ऎवजी संदेश काढून टाकणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आहे अशी खूण करा';
$labels['skipdeleted'] = 'काढून टाकलेले संदेश दाखवू नका';
$labels['deletealways'] = 'जर संदेश कचरापेटीत गेले नाहीत तर काढून टाका';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'संदेशातील चितà¥à¤°à¥‡ दाखवा';
$labels['fromknownsenders'] = 'माहितीतील पाठवणारà¥â€à¤¯à¤¾à¤•à¤¡à¥‚न संदेश';
$labels['always'] = 'नेहमी';
$labels['showinlineimages'] = 'सोबत जोडलेली चितà¥à¤°à¥‡ संदेशाचà¥à¤¯à¤¾ खाली दाखवा';
$labels['autosavedraft'] = 'मसूदा आपोआप जतन करा';
$labels['everynminutes'] = 'पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• $n मिनिटांनी';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'कधीच नाही';
$labels['immediately'] = 'ताबडतोब';
$labels['messagesdisplaying'] = 'संदेश दाखवा';
@@ -328,12 +441,15 @@ $labels['advancedoptions'] = 'अधिक परà¥à¤¯à¤¾à¤¯';
$labels['focusonnewmessage'] = 'बà¥à¤°à¤¾à¤Šà¤à¤° खिडकी नवीन संदेशावर केंदà¥à¤°à¤¿à¤¤ करा';
$labels['checkallfolders'] = 'सरà¥à¤µ फोलà¥à¤¡à¤°à¤®à¤§à¥‡ नवीन संदेश शोधा';
$labels['displaynext'] = 'संदेश काढलà¥â€à¤¯à¤¾à¤¨à¤‚तर किंवा हलवलà¥â€à¤¯à¤¾à¤¨à¤‚तर पà¥à¤¢à¤šà¤¾ संदेश दाखवा';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'मà¥à¤–à¥â€à¤¯ परà¥à¤¯à¤¾à¤¯';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'भाग';
$labels['maintenance'] = 'देखभाल';
$labels['newmessage'] = 'नवीन संदेश';
$labels['signatureoptions'] = 'सही परà¥à¤¯à¤¾à¤¯';
$labels['whenreplying'] = 'उतà¥â€à¤¤à¤° देताना';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'नवीन संदेश मà¥à¤³ संदेशाचà¥â€à¤¯à¤¾ वर चालू करा';
$labels['replybottomposting'] = 'नवीन संदेश मà¥à¤³ संदेशाचà¥â€à¤¯à¤¾ खाली चालू करा';
$labels['replyremovesignature'] = 'उतà¥â€à¤¤à¤° देताना मà¥à¤³ सही संदेशातून काढून टाका';
@@ -345,6 +461,21 @@ $labels['previewpanemarkread'] = 'पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ संदेश à
$labels['afternseconds'] = '$n कà¥à¤·à¤£à¤¾à¤¨à¤‚तर';
$labels['reqmdn'] = 'नेहमी पोचपावतीची विनंती करा';
$labels['reqdsn'] = 'नेहमी पोचपावती सà¥à¤¥à¤¿à¤¤à¥€ निरà¥à¤¦à¥‡à¤¶à¤¾à¤šà¥€ विनंती करा';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'फोलà¥à¤¡à¤°';
$labels['folders'] = 'फोलà¥à¤¡à¤°à¥à¤¸';
$labels['foldername'] = 'फोलà¥à¤¡à¤°à¤šà¥‡ नाव';
@@ -354,13 +485,37 @@ $labels['create'] = 'तयार करा';
$labels['createfolder'] = 'नवीन फोलà¥à¤¡à¤° तयार करा';
$labels['managefolders'] = 'फोलà¥à¤¡à¤°à¥à¤¸à¤šà¥‡ नियोजन करा';
$labels['specialfolders'] = 'विषेश फोलà¥à¤¡à¤°';
+$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'] = 'ने वरà¥à¤—वारी करा';
$labels['sortasc'] = 'चढतà¥à¤¯à¤¾ कà¥à¤°à¤®à¤¾à¤¨à¥‡';
$labels['sortdesc'] = 'उतरतà¥à¤¯à¤¾ कà¥à¤°à¤®à¤¾à¤¨à¥‡';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'बाइट';
$labels['KB'] = 'केबी';
$labels['MB'] = 'à¤à¤®à¤¬à¥€';
$labels['GB'] = 'जीबी';
+
+// character sets
$labels['unicode'] = 'यà¥à¤¨à¤¿à¤•à¥‹à¤¡';
$labels['english'] = 'इंगà¥à¤°à¤œà¥€';
$labels['westerneuropean'] = 'पशà¥à¤šà¤¿à¤® यà¥à¤°à¥‹à¤ªà¤¿à¤¯à¤¨';
@@ -379,4 +534,5 @@ $labels['vietnamese'] = 'वà¥à¤¹à¤¿à¤à¤¤à¤¨à¤¾à¤®à¥€';
$labels['japanese'] = 'जपानी';
$labels['korean'] = 'कोरियन';
$labels['chinese'] = 'चिनी';
+
?>
diff --git a/program/localization/mr_IN/messages.inc b/program/localization/mr_IN/messages.inc
index 36eb8dc04..bc4097fb5 100644
--- a/program/localization/mr_IN/messages.inc
+++ b/program/localization/mr_IN/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'काहीतरी चूक à¤à¤¾à¤²à¥€';
$messages['loginfailed'] = 'पà¥à¤°à¤µà¥‡à¤¶ करता आला नाही';
$messages['cookiesdisabled'] = 'तà¥à¤®à¤šà¤¾ बà¥à¤°à¤¾à¤Šà¤à¤° कà¥à¤•à¥€à¤œ घेऊ शकत नाही';
@@ -23,14 +25,20 @@ $messages['storageerror'] = 'आयमॅप सरà¥à¤µà¥à¤¹à¤°à¤¶à¥€ संà
$messages['servererror'] = 'सरà¥à¤µà¥â€à¤¹à¤° चूक !';
$messages['servererrormsg'] = 'सरà¥à¤µà¥à¤¹à¤° चूक : $msg';
$messages['dberror'] = 'माहितीसाठा चूक !';
+$messages['requesttimedout'] = 'Request timed out';
$messages['errorreadonly'] = 'कृती करणà¥à¤¯à¤¾à¤¸ असमरà¥à¤¥, फोलà¥à¤¡à¤° फकà¥à¤¤ बघणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€';
$messages['errornoperm'] = 'कृती करणà¥à¤¯à¤¾à¤¸ असमरà¥à¤¥, परवानगी अमानà¥à¤¯';
+$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'] = 'अवैध विनंती! माहिती साठवलेली नाही.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'या खातà¥à¤¯à¤¾à¤®à¤§à¥‡ कोणताही संदेश आलेला नाही';
$messages['loggedout'] = 'तà¥à¤®à¥à¤¹à¥€ यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ खाते बंद केले आहे . राम राम !';
$messages['mailboxempty'] = 'खातà¥à¤¯à¤¾à¤¤ कोणताही संदेश नाही';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'संदेश आणत आहे';
$messages['uploading'] = 'फाईल चढवली जात आहे...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'माहिती आणत आहे';
$messages['checkingmail'] = 'नवीन संदेश आले आहेत का हे पहात आहे';
$messages['sendingmessage'] = 'संदेश पाठवत आहे';
@@ -45,8 +53,11 @@ $messages['blockedimages'] = 'तà¥à¤®à¤šà¥€ गोपनीयता पाळ
$messages['encryptedmessage'] = 'हा गà¥à¤ªà¥à¤¤ व सांकेतिक संदेश आहे. तो तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ असा दाखवता येणार नाही.';
$messages['nocontactsfound'] = 'कोणताच पतà¥à¤¤à¤¾ नोंदवहीत नाही.';
$messages['contactnotfound'] = 'या नावाचा कोणताच पतà¥à¤¤à¤¾ नोंदवहीत नाही.';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'संदेश पाठवता आला नाही.';
$messages['senttooquickly'] = 'कृपया हा संदेश पाठवणà¥à¤¯à¤¾à¤ªà¥‚रà¥à¤µà¥€ $sec थांबा';
+$messages['errorsavingsent'] = 'पाठवलेला संदेश ठेवून देतांना काहीतरी चूक à¤à¤¾à¤²à¥€.';
+$messages['errorsaving'] = 'संदेश ठेवून देतांना काहीतरी चूक à¤à¤¾à¤²à¥€.';
$messages['errormoving'] = 'संदेश तेथे ठेवता आला नाही.';
$messages['errorcopying'] = 'संदेशांची नकà¥â€à¤•à¤² करता आली नाही';
$messages['errordeleting'] = 'संदेश काढून टाकता आला नाही.';
@@ -56,8 +67,12 @@ $messages['deletegroupconfirm'] = 'निवडलेला गट तà¥à¤®à¥
$messages['deletemessagesconfirm'] = 'खूण केलेले सरà¥à¤µ संदेश खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचे आहेत का?';
$messages['deletefolderconfirm'] = 'हा फोलà¥à¤¡à¤° खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचा आहेत का?';
$messages['purgefolderconfirm'] = 'या फोलà¥à¤¡à¤°à¤®à¤§à¤¿à¤² सरà¥à¤µ संदेश खरोखरच तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ काढून टाकायचे आहेत का?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'फोलà¥à¤¡à¤° काढून टाकत आहे';
$messages['foldermoving'] = 'फोलà¥à¤¡à¤° हलवत आहे.';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'फॉरà¥à¤® पूरà¥à¤£à¤ªà¤£à¥‡ भरलेला नाही.';
$messages['noemailwarning'] = 'योगà¥à¤¯, बरोबर, आणि वैध इमेल पतà¥à¤¤à¤¾ दà¥à¤¯à¤¾.';
$messages['nonamewarning'] = 'नाव दà¥à¤¯à¤¾';
@@ -71,11 +86,14 @@ $messages['noldapserver'] = 'शोधणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ ldap सरà¥à¤µ
$messages['nosearchname'] = 'कृपया जà¥à¤¯à¤¾à¤‚ना तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ संदेश पाठवावयाचा आहे तà¥à¤¯à¤¾à¤‚चे नाव किंवा इमेल पतà¥à¤¤à¤¾ दà¥à¤¯à¤¾.';
$messages['notuploadedwarning'] = 'सरà¥à¤µ फाईल अजून चढवलà¥â€à¤¯à¤¾ गेलेलà¥â€à¤¯à¤¾ नाहीत. कृपया वाट पहा किंवा मागे फिरा';
$messages['searchsuccessful'] = '$nr संदेष मिळाले.';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'शोध घेतलà¥à¤¯à¤¾à¤¨à¤‚तर à¤à¤•à¤¹à¥€ संदेश मिळाला नाही';
$messages['searching'] = 'शोधत आहे......';
$messages['checking'] = 'तपासत आहे.....';
$messages['nospellerrors'] = 'शà¥à¤§à¥à¤¦à¤²à¥‡à¤–नाची चूक सापडली नाही';
$messages['folderdeleted'] = 'फोलà¥à¤¡à¤° यशसà¥à¤µà¥€ रितà¥à¤¯à¤¾ काढून टाकणà¥à¤¯à¤¾à¤¤ आला आहे.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
$messages['folderpurged'] = 'फोलà¥à¤¡à¤° यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ रिकामा केला';
$messages['folderexpunged'] = 'फोलà¥à¤¡à¤° यशसà¥à¤µà¥€à¤°à¥€à¤¤à¥à¤¯à¤¾ संकà¥à¤·à¤¿à¤ªà¥à¤¤ केला';
$messages['deletedsuccessfully'] = 'यशसà¥à¤µà¥€ रितà¥à¤¯à¤¾ काढून टाकणà¥à¤¯à¤¾à¤¤ आला आहे.';
@@ -83,10 +101,17 @@ $messages['converting'] = 'दृषà¥à¤¯ सà¥à¤µà¤°à¥à¤ª काढून à¤
$messages['messageopenerror'] = 'सरà¥à¤µà¥à¤¹à¤°à¤µà¤°à¥à¤¨ संदेश आणता आला नाही.';
$messages['fileuploaderror'] = 'फाईल चढवता आली नाही';
$messages['filesizeerror'] = 'तà¥à¤®à¥à¤¹à¥€ चढवलेली फाईल कà¥à¤·à¤®à¤¤à¥‡à¤ªà¥‡à¤•à¥à¤·à¤¾ जासà¥à¤¤ मोठी आहे.';
+$messages['copysuccess'] = '$nr पतà¥à¤¤à¥à¤¯à¤¾à¤‚ची यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ पà¥à¤°à¤¤ केली.';
+$messages['copyerror'] = 'कोणतà¥à¤¯à¤¾à¤¹à¥€ पतà¥à¤¤à¥à¤¯à¤¾à¤šà¥€ पà¥à¤°à¤¤ बनवता आली नाही.';
$messages['sourceisreadonly'] = 'पतà¥à¤¤à¤¾ फकà¥à¤¤ वाचणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ आहे.';
$messages['errorsavingcontact'] = 'पतà¥à¤¤à¤¾ नोंदवहीत ठेवता आला नाही.';
$messages['movingmessage'] = 'संदेश हलवत आहे..';
$messages['copyingmessage'] = 'संदेशाची नकà¥â€à¤•à¤² करत आहे...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'पोचपावती यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ पाठवणà¥à¤¯à¤¾à¤¤ आली आहे.';
$messages['errorsendingreceipt'] = 'पोचपावती पाठवता आली नाही.';
$messages['deleteidentityconfirm'] = 'तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ ही ओळख नकà¥à¤•à¥€ नषà¥à¤Ÿ करायची आहे का?';
@@ -96,8 +121,11 @@ $messages['selectimportfile'] = 'चढवणà¥à¤¯à¤¾à¤¸à¤¾à¤ à¥€ फाईल
$messages['addresswriterror'] = 'निवडलेलà¥à¤¯à¤¾ पतà¥à¤¤à¤¾ नोंदवहीत नोंद करता येत नाही.';
$messages['contactaddedtogroup'] = 'पतà¥â€à¤¤à¥‡ यशसà¥â€à¤µà¥€à¤°à¤¿à¤¤à¥â€à¤¯à¤¾ हया गटात वाढवणà¥â€à¤¯à¤¾à¤¤ आले.';
$messages['contactremovedfromgroup'] = 'पतà¥â€à¤¤à¥‡ यशसà¥â€à¤µà¥€à¤°à¤¿à¤¤à¥â€à¤¯à¤¾ हया गटातून काढून टाकले.';
+$messages['nogroupassignmentschanged'] = 'No group assignments changed.';
$messages['importwait'] = 'आयात करत आहे, कृपया वाट पहा.....';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>$inserted पतà¥à¤¤à¥‡ यशसà¥à¤µà¥€à¤°à¤¿à¤¤à¥à¤¯à¤¾ आयात केल, $skipped आधिच असलेलà¥à¤¯à¤¾ नोंदी केलà¥à¤¯à¤¾ नाहीत</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'ही कà¥à¤°à¤¿à¤¯à¤¾ करणà¥à¤¯à¤¾à¤¸ परवानगी नाही.';
$messages['nofromaddress'] = 'निवडलेलà¥à¤¯à¤¾ खातà¥à¤¯à¤¾à¤¤ इमेल पतà¥à¤¤à¤¾ दिलेला नाही.';
$messages['editorwarning'] = 'टेकà¥à¤¸à¥à¤Ÿ संपादन निवडलà¥à¤¯à¤¾à¤¸ संदेशाचे दृषà¥à¤¯ सà¥à¤µà¤°à¥à¤ª बदलून जाईल. तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ असेच करायचे आहे ना?';
@@ -111,4 +139,33 @@ $messages['smtperror'] = 'SMTP चूक : $msg';
$messages['emailformaterror'] = 'अवैध ईमेल पतà¥â€à¤¤à¤¾ : $email';
$messages['toomanyrecipients'] = 'खूप जासà¥â€à¤¤ पà¥à¤°à¤¾à¤ªà¥â€à¤¤à¤•à¤°à¥à¤¤à¥‡. पà¥à¤°à¤¾à¤ªà¥â€à¤¤à¤•à¤°à¥à¤¤à¥â€à¤¯à¤¾à¤‚ची संखà¥â€à¤¯à¤¾ $max परà¥à¤¯à¤‚त कमी करा';
$messages['maxgroupmembersreached'] = 'गट सभासद संखà¥â€à¤¯à¤¾ $max पेकà¥à¤·à¤¾ जासà¥â€à¤¤ à¤à¤¾à¤²à¥€ आहे';
+$messages['internalerror'] = 'अंतरà¥à¤—त चूक à¤à¤¾à¤²à¥€. कृपया परत पà¥à¤°à¤¯à¤¤à¥â€à¤¨ करा.';
+$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/ms_MY/labels.inc b/program/localization/ms_MY/labels.inc
index 13d9d89fc..318af05ad 100644
--- a/program/localization/ms_MY/labels.inc
+++ b/program/localization/ms_MY/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Selamat datang ke $product';
$labels['username'] = 'Nama Pengguna';
$labels['password'] = 'Katalaluan';
$labels['server'] = 'Pelayan';
$labels['login'] = 'Log Masuk';
+
+// taskbar
$labels['logout'] = 'Log Keluar';
$labels['mail'] = 'Mel';
$labels['settings'] = 'Tetapan';
$labels['addressbook'] = 'Buku Alamat';
+
+// mailbox names
$labels['inbox'] = 'Peti Masuk';
$labels['drafts'] = 'Draf';
$labels['sent'] = 'Hantar';
$labels['trash'] = 'Tong Sampah';
$labels['junk'] = 'Junk';
+
+// message listing
$labels['subject'] = 'Subjek';
$labels['from'] = 'Daripada';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Kepada';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
@@ -42,18 +53,27 @@ $labels['priority'] = 'Prioriti';
$labels['organization'] = 'Organisasi';
$labels['readstatus'] = 'Status baca';
$labels['listoptions'] = 'Senarai pilihan';
+
$labels['mailboxlist'] = 'Folder';
$labels['messagesfromto'] = 'Mesej $from ke $to dari $count';
$labels['threadsfromto'] = 'Urutan $from ke $to dari $count';
$labels['messagenrof'] = 'Mesej $nr dari $count';
$labels['fromtoshort'] = '$from - $to dari $count';
+
$labels['copy'] = 'Salin';
$labels['move'] = 'Alih';
$labels['moveto'] = 'Alih ke...';
$labels['download'] = 'Muat Turun';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Nama Fail';
$labels['filesize'] = 'Saiz Fail';
+
$labels['addtoaddressbook'] = 'Tambah ke buku alamat';
+
+// weekdays short
$labels['sun'] = 'Aha';
$labels['mon'] = 'Isn';
$labels['tue'] = 'Sel';
@@ -61,6 +81,8 @@ $labels['wed'] = 'Rab';
$labels['thu'] = 'Kha';
$labels['fri'] = 'Jum';
$labels['sat'] = 'Sab';
+
+// weekdays long
$labels['sunday'] = 'Ahad';
$labels['monday'] = 'Isnin';
$labels['tuesday'] = 'Selasa';
@@ -68,6 +90,8 @@ $labels['wednesday'] = 'Rabu';
$labels['thursday'] = 'Khamis';
$labels['friday'] = 'Jumaat';
$labels['saturday'] = 'Sabtu';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mac';
@@ -80,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dis';
+
+// months long
$labels['longjan'] = 'Januari';
$labels['longfeb'] = 'Februari';
$labels['longmar'] = 'March';
@@ -92,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Disember';
+
$labels['today'] = 'Hari Ini';
+
+// toolbar buttons
$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Semak mesej baru';
$labels['compose'] = 'Karang mesej';
@@ -125,6 +154,7 @@ $labels['moreactions'] = 'Tindakan lanjut..';
$labels['more'] = 'Seterusnya';
$labels['back'] = 'Kembali';
$labels['options'] = 'Opsyen';
+
$labels['select'] = 'Pilih';
$labels['all'] = 'Semua';
$labels['none'] = 'Tiada';
@@ -132,7 +162,9 @@ $labels['currpage'] = 'Muka terkini';
$labels['unread'] = 'Belum dibaca';
$labels['flagged'] = 'Ditanda';
$labels['unanswered'] = 'Belum dijawab';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Telah dipadam';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Songsangkan';
$labels['filter'] = 'Tapis';
$labels['list'] = 'Senarai';
@@ -141,6 +173,7 @@ $labels['expand-all'] = 'Buka Semua';
$labels['expand-unread'] = 'Buka yang belum dibaca';
$labels['collapse-all'] = 'Tutup Semua';
$labels['threaded'] = 'Telah urutan';
+
$labels['autoexpand_threads'] = 'Buka mesej mengikut urutan';
$labels['do_expand'] = 'Kesemua urutan';
$labels['expand_only_unread'] = 'hanya dengan mesej yang belum dibaca';
@@ -156,19 +189,29 @@ $labels['listcolumns'] = 'Senarai ruang';
$labels['listsorting'] = 'pengisihan ruang';
$labels['listorder'] = 'Urutan pengisihan';
$labels['listmode'] = 'Mod senarai paparan';
+
$labels['folderactions'] = 'Aksi folder';
$labels['compact'] = 'Kompak';
$labels['empty'] = 'Kosong';
+
$labels['quota'] = 'Penggunaan cakera';
$labels['unknown'] = 'tidak diketahui';
$labels['unlimited'] = 'Tidak terhad';
+
$labels['quicksearch'] = 'Carian pantas';
$labels['resetsearch'] = 'Set semula carian';
$labels['searchmod'] = 'Pengubah carian';
$labels['msgtext'] = 'Keseluruhan mesej';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Buka dalam tetingkap baru';
$labels['emlsave'] = 'Muat-turun (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Ubah seperti baharu';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Hantar mesej';
$labels['savemessage'] = 'Simapan sebagai draf';
$labels['addattachment'] = 'Lampir fail';
@@ -178,82 +221,190 @@ $labels['returnreceipt'] = 'Penerimaan semula';
$labels['dsn'] = 'Status pemberitahuan penghantaran';
$labels['mailreplyintro'] = 'Pada $date, $sender menulis';
$labels['originalmessage'] = 'Mesej Asal';
+
$labels['editidents'] = 'Ubah identiti';
$labels['spellcheck'] = 'Eja';
$labels['checkspelling'] = 'Semak ejaan';
$labels['resumeediting'] = 'Sambung pengeditan';
$labels['revertto'] = 'Kembali kepada';
+
$labels['attach'] = 'Lampirkan';
$labels['attachments'] = 'Lampiran';
$labels['upload'] = 'Muat naik';
$labels['uploadprogress'] = '$percent ($current dari $total)';
$labels['close'] = 'Tutup';
$labels['messageoptions'] = 'Opsyen mesej';
+
$labels['low'] = 'Rendah';
$labels['lowest'] = 'Paling Rendah';
$labels['normal'] = 'Normal';
$labels['high'] = 'Tinggi';
$labels['highest'] = 'Paling Tinggi';
+
$labels['nosubject'] = '(tiada subjek)';
$labels['showimages'] = 'Papar imej';
$labels['alwaysshow'] = 'selalu paparkan imej dari $sender';
$labels['isdraft'] = 'Ini adalah draf mesej';
+$labels['andnmore'] = '$nr more...';
+$labels['togglemoreheaders'] = 'Show more message headers';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Teks kosong';
$labels['savesentmessagein'] = 'Simpan mesej yang telah dihantar dalam';
$labels['dontsave'] = 'Jangan simpan';
$labels['maxuploadsize'] = 'maksimum saiz fail yang dibenarkan ialah $size';
+
$labels['addcc'] = 'Tambah Cc';
$labels['addbcc'] = 'Tambah Bcc';
$labels['addreplyto'] = 'Tambah Reply-To';
$labels['addfollowupto'] = 'Tambah Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Pengirim mesej ini mahu diberitahu apabila anda membaca mesej ini. Adakah anda ingin memberitahu pengirim?';
$labels['receiptread'] = 'Balas Resip (dibaca)';
$labels['yourmessage'] = 'Ini adalah Resip Balasan untuk mesej anda';
$labels['receiptnote'] = 'Perhatian: Resip ini hanya untuk memberitahu yang mesej ini telah dipaparkan di komputer penerima. Tidak ada jaminan yang penerima telah membaca atau memahami kandungan mesej.';
+
+// address boook
$labels['name'] = 'Nama paparan';
$labels['firstname'] = 'Nama pertama';
$labels['surname'] = 'Nama akhir';
+$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'] = 'E-Mel';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Tambah kontek baru';
$labels['editcontact'] = 'Ubahsuai Kontek';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Sunting';
$labels['cancel'] = 'Batal';
$labels['save'] = 'Simpan';
$labels['delete'] = 'Padam';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Cipta kad kontek baru';
$labels['deletecontact'] = 'Hapus kontek yang dipilih';
$labels['composeto'] = 'Karang mel kepada';
$labels['contactsfromto'] = 'Kontek $from ke $to dari $count';
$labels['print'] = 'Cetak';
$labels['export'] = 'Eksport';
+$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'] = 'Papar set sebelumnya';
$labels['firstpage'] = 'Papar set pertama';
$labels['nextpage'] = 'Papar set seterusnya';
$labels['lastpage'] = 'Papar set akhir';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Kumpulan';
$labels['personaladrbook'] = 'Alamat-alamat Peribadi';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Tetapan bagi';
+$labels['about'] = 'About';
$labels['preferences'] = 'Keutamaan';
$labels['userpreferences'] = 'Keutamaan pengguna';
$labels['editpreferences'] = 'Sunting keutamaan pengguna';
+
$labels['identities'] = 'Identiti';
$labels['manageidentities'] = 'Urus identiti bagi akaun ini';
$labels['newidentity'] = 'Identiti baru';
+
$labels['newitem'] = 'Butiran baru';
$labels['edititem'] = 'Ubahsuai butiran';
+
$labels['preferhtml'] = 'Papar HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Mesej HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Tarikh-tarikh cantik';
$labels['setdefault'] = 'Tetap asal';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Bahasa';
$labels['timezone'] = 'Zon Masa';
$labels['pagesize'] = 'Baris setiap muka';
$labels['signature'] = 'Tandatangan';
$labels['dstactive'] = 'Simpanan siang hari';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Karang mesej HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Tandatangan HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Pamer ruang previu';
+$labels['skin'] = 'Interface skin';
$labels['logoutclear'] = 'Kosongkan Tong sampah ketika keluar';
$labels['logoutcompact'] = 'Padatkan Inbox ketika keluar';
$labels['uisettings'] = 'Antaramuka Pengguna';
@@ -262,11 +413,69 @@ $labels['mailboxview'] = 'Pandangan kotak Mel';
$labels['mdnrequests'] = 'Pemberitahuan Pengirim';
$labels['askuser'] = 'Tanya pengguna';
$labels['autosend'] = 'Hantar automatik';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'Biarkan';
$labels['readwhendeleted'] = 'Tanda mesej sebagai dibaca ketika hapus';
$labels['flagfordeletion'] = 'Tanda mesej untuk pembuangan (tidak delete terus)';
+$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'] = 'Simpan draf dengan automatik';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'tidak pernah';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Kabinet Fail';
$labels['folders'] = 'Folder';
$labels['foldername'] = 'Nama Kabinet Fail';
@@ -275,7 +484,55 @@ $labels['messagecount'] = 'Mesej-mesej';
$labels['create'] = 'Cipta';
$labels['createfolder'] = 'Cipta kabinet fail baru';
$labels['managefolders'] = 'Urus kabinet fail';
+$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'] = 'Susun dengan';
$labels['sortasc'] = 'Susun menaik';
$labels['sortdesc'] = 'Susun menurun';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/ms_MY/messages.inc b/program/localization/ms_MY/messages.inc
index c2140e216..72d2e3075 100644
--- a/program/localization/ms_MY/messages.inc
+++ b/program/localization/ms_MY/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Log masuk gagal';
$messages['cookiesdisabled'] = 'Pelayar anda tidak menerima cookies';
$messages['sessionerror'] = 'Sesi anda tidak sah atau telah tamat';
$messages['storageerror'] = 'Sambungan ke pelayan IMAP gagal';
+$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'] = 'Tiada mesej dijumpai dalam kotak mel ini';
$messages['loggedout'] = 'Sesi anda telah tamat. Selamat tinggal!';
$messages['mailboxempty'] = 'Kotak mail kosong';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Memuat...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Memuat data...';
$messages['checkingmail'] = 'Menyemak mesej baru...';
$messages['sendingmessage'] = 'Menghantar mesej...';
@@ -32,42 +48,124 @@ $messages['messagesaved'] = 'Mesej disimpan dalam Draf';
$messages['successfullysaved'] = 'Berjaya disimpan';
$messages['addedsuccessfully'] = 'Kontek berjaya disimpan ke dalam buku alamat';
$messages['contactexists'] = 'Kontek dengan alamat emel ini sudah wujud';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Untuk melindungi kebesasan peribadi anda, imej jauh dihalang dalam mesej ini.';
$messages['encryptedmessage'] = 'Ini adalah mesej yang di\'encrypted\' dan tidak boleh dipamerkan. Maaf!';
$messages['nocontactsfound'] = 'Tiada kontek dijumpai';
$messages['contactnotfound'] = 'Kontek yang diminta tidak dijumpai';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Gagal menghantar mesej';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Terdapat ralat ketika menyimpan';
$messages['errormoving'] = 'Tidak boleh pindah mesej';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Tidak boleh hapus mesej';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Adakah anda ingin hapuskan kontek yang dipilih?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Adakah anda ingin hapuskan mesej yang dipilih?';
$messages['deletefolderconfirm'] = 'Adakah anda ingin hapuskan kabinet fail ini?';
$messages['purgefolderconfirm'] = 'Adakah anda ingin hapuskan semua mesej dalam kabinet fail ini?';
+$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'] = 'Borang tidak diisi dengan lengkap';
$messages['noemailwarning'] = 'Sila masukkan alamat emel yang sah';
$messages['nonamewarning'] = 'Sila masukkan nama';
$messages['nopagesizewarning'] = 'Sila masukkan saiz halaman';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Sila masukkan sekurang-kurangnya satu penerima';
$messages['nosubjectwarning'] = 'Ruang "Subjek" kosong. Adakah anda ingin masukkannya sekarang?';
$messages['nobodywarning'] = 'Hantar mesej ini tanpa teks?';
$messages['notsentwarning'] = 'Mesej tidak dihantar. Adakah anda ingin menyingkir mesej anda?';
$messages['noldapserver'] = 'Sila pilih satu pelayan ldap untuk carian';
$messages['nosearchname'] = 'Sila masukkan nama kontek atau alamat emel';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr mesej dijumpai';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Carian tiada padanan';
$messages['searching'] = 'Menggelintar...';
$messages['checking'] = 'Menyemak...';
$messages['nospellerrors'] = 'Tiada kesalah ejaan dijumpai';
$messages['folderdeleted'] = 'Kabinet fail berjaya dihapuskan';
+$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'] = 'Berjaya dihapuskan';
$messages['converting'] = 'Singkir format dari mesej...';
$messages['messageopenerror'] = 'Tidak boleh muat mesej dari server';
$messages['fileuploaderror'] = 'Muatnaik fail gagal';
$messages['filesizeerror'] = 'Fail yang dimuatnaik melampaui saiz maksima $size';
+$messages['copysuccess'] = 'Berjaya salin alamat-alamat $nr';
+$messages['copyerror'] = 'Tidak boleh salin apa-apa alamat';
$messages['sourceisreadonly'] = 'Sumber alamat ini adalah untuk bacaan sahaja';
$messages['errorsavingcontact'] = 'Tidak boleh simmpan alamat kontek';
$messages['movingmessage'] = 'Memindah mesej...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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'] = 'Berjaya menghantar resip bacaan';
$messages['errorsendingreceipt'] = 'Tidak dapat menghantar resip';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Anda tidak boleh membuang identiti ini, ia milik anda yang terakhir.';
+$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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/nb_NO/labels.inc b/program/localization/nb_NO/labels.inc
index 20bbd1383..cba58dc9c 100644
--- a/program/localization/nb_NO/labels.inc
+++ b/program/localization/nb_NO/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkommen til $product';
$labels['username'] = 'Brukernavn';
$labels['password'] = 'Passord';
$labels['server'] = 'Tjener';
$labels['login'] = 'Logg inn';
+
+// taskbar
$labels['logout'] = 'Logg ut';
$labels['mail'] = 'E-post';
$labels['settings'] = 'Innstillinger';
$labels['addressbook'] = 'Adressebok';
+
+// mailbox names
$labels['inbox'] = 'Innboks';
$labels['drafts'] = 'Kladd';
$labels['sent'] = 'Sendt';
$labels['trash'] = 'Slettet';
$labels['junk'] = 'Spam';
+
+// message listing
$labels['subject'] = 'Emne';
$labels['from'] = 'Avsender';
$labels['sender'] = 'Avsender';
@@ -43,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisasjon';
$labels['readstatus'] = 'Lese status';
$labels['listoptions'] = 'List muligheter';
+
$labels['mailboxlist'] = 'Mapper';
$labels['messagesfromto'] = 'Meldinger $from til $to av $count';
$labels['threadsfromto'] = 'Tråder $from til $to av $count';
$labels['messagenrof'] = 'Melding $nr av $count';
$labels['fromtoshort'] = '$from – $to av $count';
+
$labels['copy'] = 'Kopier';
$labels['move'] = 'Flytt';
$labels['moveto'] = 'flytt til...';
@@ -55,9 +67,13 @@ $labels['download'] = 'last ned';
$labels['open'] = 'Ã…pen';
$labels['showattachment'] = 'Vis';
$labels['showanyway'] = 'Vis likevel';
+
$labels['filename'] = 'Filnavn';
$labels['filesize'] = 'Filstørrelse';
+
$labels['addtoaddressbook'] = 'Legg til i adressebok';
+
+// weekdays short
$labels['sun'] = 'Søn';
$labels['mon'] = 'Man';
$labels['tue'] = 'Tir';
@@ -65,6 +81,8 @@ $labels['wed'] = 'Ons';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lør';
+
+// weekdays long
$labels['sunday'] = 'Søndag';
$labels['monday'] = 'Mandag';
$labels['tuesday'] = 'Tirsdag';
@@ -72,6 +90,8 @@ $labels['wednesday'] = 'Onsdag';
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Lørdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -84,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Des';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Mars';
@@ -96,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Desember';
+
$labels['today'] = 'I dag';
+
+// toolbar buttons
$labels['refresh'] = 'Oppdater';
$labels['checkmail'] = 'Se etter nye meldinger';
$labels['compose'] = 'Skriv ny e-post';
@@ -129,6 +154,7 @@ $labels['moreactions'] = 'Flere handlinger …';
$labels['more'] = 'Mer';
$labels['back'] = 'Tilbake';
$labels['options'] = 'Alternativer';
+
$labels['select'] = 'Velg';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
@@ -147,6 +173,7 @@ $labels['expand-all'] = 'Utvid alle';
$labels['expand-unread'] = 'Utvid uleste';
$labels['collapse-all'] = 'Skjul alle';
$labels['threaded'] = 'Trådet';
+
$labels['autoexpand_threads'] = 'Utvid tråder';
$labels['do_expand'] = 'alle tråder';
$labels['expand_only_unread'] = 'kun med uleste meldinger';
@@ -162,21 +189,27 @@ $labels['listcolumns'] = 'Listekolonner';
$labels['listsorting'] = 'Sorteringskolonne';
$labels['listorder'] = 'Sorteringsrekkefølge';
$labels['listmode'] = 'Listevisningsmodus';
+
$labels['folderactions'] = 'Mappehandlinger...';
$labels['compact'] = 'Rydd opp';
$labels['empty'] = 'Tøm';
+
$labels['quota'] = 'Plassforbruk';
$labels['unknown'] = 'ukjent';
$labels['unlimited'] = 'ubegrenset';
+
$labels['quicksearch'] = 'Hurtigsøk';
$labels['resetsearch'] = 'Nullstill søk';
$labels['searchmod'] = 'Søke felt';
$labels['msgtext'] = 'Hele meldingen';
$labels['body'] = 'Meldingstekst';
+
$labels['openinextwin'] = 'Ã…pne i nytt vindu';
$labels['emlsave'] = 'Last ned (.eml)';
$labels['changeformattext'] = 'Vis i ren tekst';
$labels['changeformathtml'] = 'Vis i HTML';
+
+// message compose
$labels['editasnew'] = 'Rediger som ny';
$labels['send'] = 'Send.';
$labels['sendmessage'] = 'Send e-posten';
@@ -188,22 +221,26 @@ $labels['returnreceipt'] = 'Be om kvittering';
$labels['dsn'] = 'Leveringsstatus notifikasjon';
$labels['mailreplyintro'] = 'Den $date, skrev $sender:';
$labels['originalmessage'] = 'Opprinnelig melding';
+
$labels['editidents'] = 'Endre identiteter';
$labels['spellcheck'] = 'Stavekontroll';
$labels['checkspelling'] = 'Stavekontroll';
$labels['resumeediting'] = 'Fortsett redigering';
$labels['revertto'] = 'Tilbake til';
+
$labels['attach'] = 'Legg ved';
$labels['attachments'] = 'Vedlegg';
$labels['upload'] = 'Last opp';
$labels['uploadprogress'] = '$percent ($current fra $total)';
$labels['close'] = 'Lukk';
$labels['messageoptions'] = 'Meldingsalternativer...';
+
$labels['low'] = 'Lav';
$labels['lowest'] = 'Lavest';
$labels['normal'] = 'Normal';
$labels['high'] = 'Høy';
$labels['highest'] = 'Høyest';
+
$labels['nosubject'] = '(intet emne)';
$labels['showimages'] = 'Vis bilder';
$labels['alwaysshow'] = 'Vis alltid bilder fra $sender';
@@ -211,19 +248,25 @@ $labels['isdraft'] = 'Dette er en kladd.';
$labels['andnmore'] = '$nr flere ...';
$labels['togglemoreheaders'] = 'Vis flere meldings-headere';
$labels['togglefullheaders'] = 'Veksle visning av meldingens headere i råformat';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Ren tekst';
$labels['savesentmessagein'] = 'Lagre sendt melding i';
$labels['dontsave'] = 'ikke lagre';
$labels['maxuploadsize'] = 'Maksimalt tillatt filstørrelse er $size';
+
$labels['addcc'] = 'Legg til kopiadressat (Cc)';
$labels['addbcc'] = 'Legg til blindkopiadressat (Bcc)';
$labels['addreplyto'] = 'Legg til svar til (Reply-To)';
$labels['addfollowupto'] = 'Legg til oppfølging';
+
+// mdn
$labels['mdnrequest'] = 'Senderen av denne meldingen har bedt om å bli gjort oppmerksom på at denne meldingen er lest. Ønsker du å sende denne bekreftelsen?';
$labels['receiptread'] = 'Kvittering (lest)';
$labels['yourmessage'] = 'Dette er en kvittering for at din e-post er mottatt';
$labels['receiptnote'] = 'Merknad: Denne kvitteringen bekrefter bare at e-posten ble vist hos mottakeren. Det er ingen garanti for at mottakeren har lest eller forstått innholdet i e-posten.';
+
+// address boook
$labels['name'] = 'Visningsnavn';
$labels['firstname'] = 'Fornavn';
$labels['surname'] = 'Etternavn';
@@ -258,6 +301,7 @@ $labels['search'] = 'Søk';
$labels['advsearch'] = 'Avansert søk';
$labels['advanced'] = 'Avansert';
$labels['other'] = 'Annet';
+
$labels['typehome'] = 'Hjem';
$labels['typework'] = 'Jobb';
$labels['typeother'] = 'Annet';
@@ -272,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Hjemmeside';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Legg til felt ...';
$labels['addcontact'] = 'Legg til ny kontakt';
$labels['editcontact'] = 'Rediger kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Egenskaper';
$labels['personalinfo'] = 'Personlig informasjon';
+
$labels['edit'] = 'Rediger';
$labels['cancel'] = 'Avbryt';
$labels['save'] = 'Lagre';
@@ -286,6 +332,7 @@ $labels['rename'] = 'Gi nytt navn';
$labels['addphoto'] = 'Legg til';
$labels['replacephoto'] = 'Erstatt';
$labels['uploadphoto'] = 'Last opp bilde';
+
$labels['newcontact'] = 'Opprett ny kontakt';
$labels['deletecontact'] = 'Slett valgte kontakter';
$labels['composeto'] = 'Skriv e-post til';
@@ -299,31 +346,41 @@ $labels['newcontactgroup'] = 'Opprett ny kontaktgruppe';
$labels['grouprename'] = 'Endre navn på gruppe';
$labels['groupdelete'] = 'Slett gruppe';
$labels['groupremoveselected'] = 'Fjern valgte kontakter fra gruppe';
+
$labels['previouspage'] = 'Vis forrige sett';
$labels['firstpage'] = 'Vis første sett';
$labels['nextpage'] = 'Vis neste sett';
$labels['lastpage'] = 'Vis siste sett';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Grupper';
$labels['personaladrbook'] = 'Egne adresser';
+
$labels['searchsave'] = 'Lagre søk';
$labels['searchdelete'] = 'Slett søk';
+
$labels['import'] = 'Importer';
$labels['importcontacts'] = 'Importer kontakter';
$labels['importfromfile'] = 'Importer fra fil:';
+$labels['importtarget'] = 'Legg til kontakter i adresseboka:';
$labels['importreplace'] = 'Erstatt hele adresseboken';
$labels['importdesc'] = 'Du kan laste opp kontakter fra en eksisterende adressebok.<br/>Vi støtter adressebøker i <a href="http://no.wikipedia.org/wiki/VCard">vCard</a> eller CSV (kommaseparert) .';
$labels['done'] = 'Fullført';
+
+// settings
$labels['settingsfor'] = 'Innstillinger for';
$labels['about'] = 'Om';
$labels['preferences'] = 'Oppsett';
$labels['userpreferences'] = 'Brukeroppsett';
$labels['editpreferences'] = 'Rediger brukeroppsett';
+
$labels['identities'] = 'Identiteter';
$labels['manageidentities'] = 'Administrer identitetene for denne kontoen';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Nytt punkt';
$labels['edititem'] = 'Rediger punkt';
+
$labels['preferhtml'] = 'Foretrekk HTML';
$labels['defaultcharset'] = 'Standard tegnsett';
$labels['htmlmessage'] = 'HTML-melding';
@@ -418,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Registrer protokollhåndtering for mailto-lenke
$labels['forwardmode'] = 'Meldinger videresendes';
$labels['inline'] = 'i teksten';
$labels['asattachment'] = 'som vedlegg';
+
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenavn';
@@ -438,20 +496,26 @@ $labels['foldertype'] = 'Mappetype';
$labels['personalfolder'] = 'Privat mappe';
$labels['otherfolder'] = 'Annen brukers mappe';
$labels['sharedfolder'] = 'Offentlig mappe';
+
$labels['sortby'] = 'Sorter etter';
$labels['sortasc'] = 'Eldste først';
$labels['sortdesc'] = 'Nyeste først';
$labels['undo'] = 'Angre';
+
$labels['installedplugins'] = 'Installerte tillegg';
$labels['plugin'] = 'Tilleggsmodul';
$labels['version'] = 'Versjon';
$labels['source'] = 'Kildekode';
$labels['license'] = 'Lisensvilkår';
$labels['support'] = 'FÃ¥ hjelp';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Vesteuropeisk';
@@ -470,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/nb_NO/messages.inc b/program/localization/nb_NO/messages.inc
index 1d51017fb..7785f474a 100644
--- a/program/localization/nb_NO/messages.inc
+++ b/program/localization/nb_NO/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Det oppsto en feil!';
$messages['loginfailed'] = 'PÃ¥logging mislyktes';
$messages['cookiesdisabled'] = 'Nettleseren din tillater ikke informasjonskapsler (cookies)';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = 'Den ønskede kontakten ble ikke funnet';
$messages['contactsearchonly'] = 'Skriv inn noen søkeord for å finne kontakter.';
$messages['sendingfailed'] = 'Kunne ikke sende e-posten';
$messages['senttooquickly'] = 'Vennligst vent $sec sekund(er) før du sender denne meldingen';
+$messages['errorsavingsent'] = 'En feil oppsto under lagring av sendt melding';
+$messages['errorsaving'] = 'Det oppstod en feil ved lagring av data';
$messages['errormoving'] = 'Kunne ikke flytte meldingen(e)';
$messages['errorcopying'] = 'Kunne ikke kopiere meldingen(e)';
$messages['errordeleting'] = 'Kunne ikke slette meldingen(e)';
@@ -97,6 +101,8 @@ $messages['converting'] = 'Fjerner formatering fra meldingen ...';
$messages['messageopenerror'] = 'Kunne ikke hente meldingen fra server';
$messages['fileuploaderror'] = 'Feil under opplastning.';
$messages['filesizeerror'] = 'Filen overstiger maksimum tillatt filstørrelse ($size)';
+$messages['copysuccess'] = 'Kopierte $nr adresser.';
+$messages['copyerror'] = 'Kunne ikke kopiere adresser.';
$messages['sourceisreadonly'] = 'Denne adressekilden er skrivebeskyttet';
$messages['errorsavingcontact'] = 'Kunne ikke lagre kontaktadressen.';
$messages['movingmessage'] = 'Flytter e-post ...';
@@ -120,8 +126,6 @@ $messages['importwait'] = 'Importerer, vennligst vent...';
$messages['importformaterror'] = 'Import feilet! Den opplastede filen er i feil format.';
$messages['importconfirm'] = '<b>Importerte $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Hoppet over $skipped eksisterende oppføringer</b>';
-$messages['importmessagesuccess'] = 'Kopierte $nr meldinger';
-$messages['importmessageerror'] = 'Importeringen var mislykket! Den opplastede filen er ikke en gyldig melding, eller er ikke kompatibel med meldingssystemet.';
$messages['opnotpermitted'] = 'Handling ikke tillatt!';
$messages['nofromaddress'] = 'E-postadresse mangler i valgt identitet';
$messages['editorwarning'] = 'Ved å bytte format til ren tekst vil all tekstformatering gå tapt. Ønsker du å fortsette?';
@@ -135,6 +139,7 @@ $messages['smtperror'] = 'SMTP-feil ($code): $msg';
$messages['emailformaterror'] = 'Ukorrekt e-postadresse: $email';
$messages['toomanyrecipients'] = 'For mange mottakere. Reduser antall mottakere til $max.';
$messages['maxgroupmembersreached'] = 'Antall gruppemedlemmer overskrider maksgrensen på $max';
+$messages['internalerror'] = 'Intern feil, prøv igjen senere.';
$messages['contactdelerror'] = 'Kunne ikke slette kontakt(er)';
$messages['contactdeleted'] = 'Kontakt(er) slettet uten feil.';
$messages['contactrestoreerror'] = 'Kunne ikke gjenopprette kontakt(er).';
@@ -162,4 +167,5 @@ $messages['parentnotwritable'] = 'Kunne ikke opprette/flytte mappen i valgt over
$messages['messagetoobig'] = 'Meldingsdelen er for stor til at den kan prosesseres.';
$messages['attachmentvalidationerror'] = 'ADVARSEL! Dette vedlegget er mistenkelig fordi det er av en type som ikke passer med det som er deklarert i meldingen. Hvis du ikke stoler på avsenderen burde du ikke åpne det i nettleseren, fordi det kan ha skadelig innhold.<br/><br/><em>Forventet: $expected; fant: $detected</em>rnrnWARNING! 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'] = 'NB: Denne webmail-klienten krever Javascript! Skru på Javascript i nettleseren din for å kunne bruke den.';
+
?>
diff --git a/program/localization/ne_NP/labels.inc b/program/localization/ne_NP/labels.inc
index 97f30201b..29d43ef9c 100644
--- a/program/localization/ne_NP/labels.inc
+++ b/program/localization/ne_NP/labels.inc
@@ -15,22 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product मा सà¥à¤µà¤¾à¤—त छ';
$labels['username'] = 'पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾à¤•à¥‹ नाम';
$labels['password'] = 'पà¥à¤°à¤µà¥‡à¤¶ शबà¥à¤¦';
$labels['server'] = 'सरà¥à¤­à¤°';
$labels['login'] = 'लगइन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
+
+// taskbar
$labels['logout'] = 'लगआउट गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['mail'] = 'ई-मेल';
$labels['settings'] = 'वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त रोजाईहरà¥';
$labels['addressbook'] = 'ठेगाना पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾';
+
+// mailbox names
$labels['inbox'] = 'पà¥à¤°à¤¾à¤ªà¥à¤¤à¤¿ मञà¥à¤œà¥‚षा';
$labels['drafts'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿà¤¹à¤°à¥‚';
$labels['sent'] = 'पठईà¤à¤•à¤¾ मेलहरà¥';
$labels['trash'] = 'रदà¥à¤¦à¥€ टोकरी';
$labels['junk'] = 'सà¥à¤ªà¤¾à¤®';
+
+// message listing
$labels['subject'] = 'विषय';
$labels['from'] = 'पà¥à¤°à¥‡à¤·à¤•';
+$labels['sender'] = 'Sender';
$labels['to'] = 'पà¥à¤°à¤¾à¤ªà¤•';
$labels['cc'] = 'बोधारà¥à¤¥';
$labels['bcc'] = 'गà¥à¤ªà¥à¤¤ बोधारà¥à¤¥';
@@ -41,18 +52,28 @@ $labels['size'] = 'नाप';
$labels['priority'] = 'पà¥à¤°à¤¾à¤¥à¤®à¤¿à¤•à¤¤à¤¾';
$labels['organization'] = 'संसà¥à¤¥à¤¾';
$labels['readstatus'] = 'पढेको अवसà¥à¤¥à¤¾';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'फोलà¥à¤¡à¤°à¤¹à¤°à¥';
$labels['messagesfromto'] = 'मेलहरॠ$from बाट $to समà¥à¤®, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['threadsfromto'] = 'थà¥à¤°à¥‡à¤¡à¤¹à¤°à¥ $from बाट $to समà¥à¤®, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['messagenrof'] = '$nr नमà¥à¤¬à¤° मेल, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['fromtoshort'] = '$from - $to, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
+
$labels['copy'] = 'पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['move'] = 'सारà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['moveto'] = 'यहाठसारà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['download'] = 'डाऊनलोड';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'फाईलको नाम';
$labels['filesize'] = 'फाईलको नाप';
+
$labels['addtoaddressbook'] = 'ठेगाना पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾à¤®à¤¾ भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+
+// weekdays short
$labels['sun'] = 'आइत';
$labels['mon'] = 'सोम';
$labels['tue'] = 'मंगल';
@@ -60,6 +81,8 @@ $labels['wed'] = 'बà¥à¤§';
$labels['thu'] = 'विहि';
$labels['fri'] = 'शà¥à¤•';
$labels['sat'] = 'शनि';
+
+// weekdays long
$labels['sunday'] = 'आइतवार';
$labels['monday'] = 'सोमवार';
$labels['tuesday'] = 'मंगलवार';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'बà¥à¤§à¤µà¤¾à¤°';
$labels['thursday'] = 'विहिवार';
$labels['friday'] = 'शà¥à¤•à¥à¤°à¤µà¤¾à¤°';
$labels['saturday'] = 'शनिवार';
+
+// months short
$labels['jan'] = 'जनवरी';
$labels['feb'] = 'फेबà¥à¤°à¥à¤µà¤°à¥€';
$labels['mar'] = 'मारà¥à¤š';
@@ -79,6 +104,8 @@ $labels['sep'] = 'सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°';
$labels['oct'] = 'अकà¥à¤Ÿà¥‹à¤¬à¤°';
$labels['nov'] = 'नोभेमà¥à¤¬à¤°';
$labels['dec'] = 'डिसेमà¥à¤¬à¤°';
+
+// months long
$labels['longjan'] = 'जनवरी';
$labels['longfeb'] = 'फेबà¥à¤°à¥à¤µà¤°à¥€';
$labels['longmar'] = 'मारà¥à¤š';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°';
$labels['longoct'] = 'अकà¥à¤Ÿà¥‹à¤¬à¤°';
$labels['longnov'] = 'नोभेमà¥à¤¬à¤°';
$labels['longdec'] = 'डिसेमà¥à¤¬à¤°';
+
$labels['today'] = 'आज';
+
+// toolbar buttons
$labels['refresh'] = 'ताजा पारà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['checkmail'] = 'नया मेल खोजà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['compose'] = 'रचना गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
@@ -116,95 +146,393 @@ $labels['backtolist'] = 'सनà¥à¤¦à¥‡à¤¶ सूची देखाउà¤
$labels['viewsource'] = 'शà¥à¤°à¥‹à¤¤ देखाउनà¥à¤¹à¥‹à¤¸';
$labels['mark'] = 'चिनà¥à¤¹ लगाउनà¥à¤¹à¥‹à¤¸à¥';
$labels['markmessages'] = 'सनà¥à¤¦à¥‡à¤¶à¤®à¤¾ चिनà¥à¤¹ लगाउनà¥à¤¹à¥‹à¤¸à¥';
+$labels['markread'] = 'As read';
+$labels['markunread'] = 'As unread';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
$labels['more'] = 'अठधेरै';
$labels['back'] = 'पछाडि';
$labels['options'] = 'विकलà¥à¤ªà¤¹à¤°à¥‚';
+
$labels['select'] = 'चयन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥';
$labels['all'] = 'सबै';
$labels['none'] = 'हैन';
+$labels['currpage'] = 'Current page';
$labels['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'] = 'हैन';
+$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'] = 'छोटो गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['empty'] = 'खाली गरà¥à¤¨à¥‡';
+
$labels['quota'] = 'डिसà¥à¤•à¤•à¥‹ उपभोग';
$labels['unknown'] = 'अजà¥à¤žà¤¾à¤¤';
$labels['unlimited'] = 'अनगिनà¥à¤¤à¤¿';
+
$labels['quicksearch'] = 'सà¥à¤«à¥à¤°à¥à¤¤à¤¿ खोज';
$labels['resetsearch'] = 'पन: खोज';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'तà¥à¤°à¥à¤¨à¥à¤¤à¥ˆ मेल पठाउनà¥à¤¹à¥‹à¤¸';
$labels['savemessage'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿ जोगाउनà¥à¤¹à¥‹à¤¸';
$labels['addattachment'] = 'फाइल टाà¤à¤¸à¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['charset'] = 'कà¥à¤¯à¤¾à¤°à¥‡à¤•à¥à¤Ÿà¤° सेट';
$labels['editortype'] = 'समà¥à¤ªà¤¾à¤¦à¤•à¤•à¥‹ पà¥à¤°à¤•à¤¾à¤°';
$labels['returnreceipt'] = 'फिरà¥à¤¤à¤¿ रसीद';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'हिजà¥à¤œà¥‡ जाà¤à¤š';
$labels['resumeediting'] = 'पà¥à¤¨: समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['revertto'] = 'पहिलेको सà¥à¤¥à¤¿à¤¤à¥€à¤®à¤¾ जानà¥à¤¹à¥‹à¤¸';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'टाà¤à¤¸à¤¿à¤à¤•à¤¾ फाईलहरà¥';
$labels['upload'] = 'अपलोड';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'बनà¥à¤¦';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'कम';
$labels['lowest'] = 'सबै भनà¥à¤¦à¤¾ कम';
$labels['normal'] = 'साधारण';
$labels['high'] = 'उचà¥à¤š';
$labels['highest'] = 'उचà¥à¤šà¤¤à¤®';
+
$labels['nosubject'] = '(बिना विषयको)';
$labels['showimages'] = 'चितà¥à¤° देखाउनà¥à¤¹à¥‹à¤¸';
+$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'] = 'सादा अकà¥à¤·à¤°';
+$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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
$labels['name'] = 'देखाउने नाम';
$labels['firstname'] = 'पहिलो नाम';
$labels['surname'] = 'थर';
+$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'] = 'ई-मेल';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'नया समà¥à¤ªà¤°à¥à¤• जोडà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['editcontact'] = 'समà¥à¤ªà¤°à¥à¤• सचà¥à¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'सचà¥à¤¯à¤¾à¤‰à¤¨à¥à¤¹à¥‹à¤¸';
$labels['cancel'] = 'खारेज गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['save'] = 'जोगाउनà¥à¤¹à¥‹à¤¸';
$labels['delete'] = 'मेटाउनà¥à¤¹à¥‹à¤¸';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'नया समà¥à¤ªà¤°à¥à¤• कारà¥à¤¡ बनाउनà¥à¤¹à¥‹à¤¸';
$labels['deletecontact'] = 'छानिà¤à¤•à¤¾ समà¥à¤ªà¤°à¥à¤•à¤¹à¤°à¥ मेटाउनà¥à¤¹à¥‹à¤¸';
$labels['composeto'] = 'मेल लेखी पठाउनà¥à¤¹à¥‹à¤¸';
$labels['contactsfromto'] = 'समà¥à¤ªà¤°à¥à¤•à¤¹à¤°à¥ $from बाट $to समà¥à¤®, $count मधà¥à¤¯à¤¬à¤¾à¤Ÿ';
$labels['print'] = 'छापà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['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'] = 'पहिलेको सेट देखाउनà¥à¤¹à¥‹à¤¸';
$labels['firstpage'] = 'पहिलो सेट देखाउनà¥à¤¹à¥‹à¤¸';
$labels['nextpage'] = 'अरà¥à¤•à¥‹ सेट देखाउनà¥à¤¹à¥‹à¤¸';
$labels['lastpage'] = 'अनà¥à¤¤à¤¿à¤® सेट देखाउनà¥à¤¹à¥‹à¤¸';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'समूहहरà¥';
$labels['personaladrbook'] = 'वà¥à¤¯à¤•à¥à¤¤à¤¿à¤—त ठेगानाहरà¥';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'तय';
+$labels['about'] = 'About';
$labels['preferences'] = 'रोजाइहरà¥';
$labels['userpreferences'] = 'यूसरका रोजाइहरà¥';
$labels['editpreferences'] = 'यूसरका रोजाइहर समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+
$labels['identities'] = 'पहिचानहरà¥';
$labels['manageidentities'] = 'यो खाताको पहिचानहरको वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¾ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['newidentity'] = 'नया पहिचान';
+
$labels['newitem'] = 'नया पà¥à¤°à¤•à¤¾à¤°';
$labels['edititem'] = 'पà¥à¤°à¤•à¤¾à¤° समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+
$labels['preferhtml'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤²(HTML) देखाउनà¥à¤¹à¥‹à¤¸';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) रूपका मेल';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'सà¥à¤¨à¥à¤¦à¤° तारिख';
$labels['setdefault'] = 'तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'भाषा';
$labels['timezone'] = 'समय कà¥à¤·à¥‡à¤¤à¥à¤°';
$labels['pagesize'] = 'हरेक पनà¥à¤¨à¤¾à¤®à¤¾ यति';
$labels['signature'] = 'हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°';
$labels['dstactive'] = 'पà¥à¤°à¤•à¤¾à¤¶ बचाव';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) मेल लखन गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'à¤à¤š-टी-à¤à¤®-à¤à¤² (HTML) हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'पूरà¥à¤µ दृषà¥à¤¯ देखाउनà¥à¤¹à¥‹à¤¸';
+$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'] = 'सà¥à¤µà¤¤ डà¥à¤°à¤¾à¤«à¥à¤Ÿ जोगाउनà¥à¤¹à¥‹à¤¸';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'फोलà¥à¤¡à¤°';
$labels['folders'] = 'फोलà¥à¤¡à¤°à¤¹à¤°à¥';
$labels['foldername'] = 'फोलà¥à¤¡à¤°à¤•à¥‹ नाम';
$labels['subscribed'] = 'सबसà¥à¤•à¥à¤°à¤¾à¤ˆà¤¬ गरियो';
+$labels['messagecount'] = 'Messages';
$labels['create'] = 'बनाउनà¥à¤¹à¥‹à¤¸';
$labels['createfolder'] = 'नया फोलडर बनाउनà¥à¤¹à¥‹à¤¸';
$labels['managefolders'] = 'फोलडर वà¥à¤¯à¤µà¤¸à¥à¤¥à¤¿à¤¤ गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$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'] = 'यसरी तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['sortasc'] = 'पहिलो देखि अनà¥à¤¤à¤¿à¤® समà¥à¤® तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$labels['sortdesc'] = 'अनà¥à¤¤à¤¿à¤® देखि पहिलो समà¥à¤® तय गरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/ne_NP/messages.inc b/program/localization/ne_NP/messages.inc
index 7873f5715..c5214bb0f 100644
--- a/program/localization/ne_NP/messages.inc
+++ b/program/localization/ne_NP/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'लागईन हà¥à¤¨ पाà¤à¤¨';
$messages['cookiesdisabled'] = 'तपाईको बà¥à¤°à¤¾à¤Šà¤¸à¤°à¤²à¥‡ कà¥à¤•à¥€ सà¥à¤µà¥€à¤•à¤¾à¤° गारिरहेको छैन';
$messages['sessionerror'] = 'सतà¥à¤° समापà¥à¤¤ वा अवैदà¥à¤¯';
$messages['storageerror'] = 'सरà¥à¤µà¤° संग समà¥à¤ªà¤°à¥à¤• हà¥à¤¨ पाà¤à¤¨';
+$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'] = 'यो मेलबकà¥à¤¸ मा कà¥à¤¨à¥ˆ मेल छैन';
$messages['loggedout'] = 'सतà¥à¤° समापà¥à¤¤ । नमासà¥à¤•à¤¾à¤°!';
$messages['mailboxempty'] = 'मेल बकà¥à¤¸ खाली छ';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'लोड भईरहेको छ...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'डाटा लोड भईरहेको छै...';
$messages['checkingmail'] = 'नया मेलको खोजी भईरहेको छ...';
$messages['sendingmessage'] = 'मेल पठाईदै रहेको छ...';
@@ -32,38 +48,124 @@ $messages['messagesaved'] = 'मेल डà¥à¤°à¤¾à¤«à¥à¤Ÿ फोलà¥à¤¡à¤°à
$messages['successfullysaved'] = 'सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• जोगाईयो';
$messages['addedsuccessfully'] = 'समà¥à¤ªà¤°à¥à¤• पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾à¤®à¤¾ सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• समà¥à¤ªà¤°à¥à¤• पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ गारियो';
$messages['contactexists'] = 'यो ई-मेल पहिलै लिईसकिà¤à¤•à¥‹ छ';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'तपाईको पà¥à¤°à¤¾à¤ˆà¤µà¥‡à¤¸à¥€ को लागि तथा अनà¥à¤¯ सà¥à¤ªà¤¾à¤®à¤¬à¤¾à¤Ÿ बचà¥à¤¨à¤•à¥‹à¤²à¤¾à¤—ि यो मेलमा चितà¥à¤°à¤¹à¥à¤°à¥ देखाईà¤à¤•à¤¾ छैननà¥à¥¤';
$messages['encryptedmessage'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥‡, यो मेल ईनà¥à¤•à¥à¤°à¤¿à¤«à¥à¤Ÿ गरिà¤à¤•à¥‹ रूपमा छ, तà¥à¤¯à¤¸à¥ˆà¤²à¥‡ देखाउन सकिदैन!';
$messages['nocontactsfound'] = 'कà¥à¤¨à¥ˆ समà¥à¤ªà¤°à¥à¤• भेटिà¤à¤¨';
$messages['contactnotfound'] = 'अनà¥à¤°à¥‹à¤§ गारिà¤à¤•à¥‹ समà¥à¤ªà¤°à¥à¤• भेटिà¤à¤¨';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'मेल पठाउन सकिà¤à¤¨';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'जोगाउदा-जोगाउदै गडबड भायो';
$messages['errormoving'] = 'मेल सारà¥à¤¨ सकिà¤à¤¨';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'मेल मेटाउन सकिà¤à¤¨';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'तापाईले छानà¥à¤¨à¥à¤­à¤à¤•à¥‹ समà¥à¤ªà¤°à¥à¤•à¤¹à¤°à¥, साà¤à¤šà¥ˆ मेटà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'तापाईले छानà¥à¤¨à¥ भà¤à¤•à¥‹ मेलहरà¥, साà¤à¤šà¥ˆ मेटà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
$messages['deletefolderconfirm'] = 'तापाईले साà¤à¤šà¥ˆ यो फोलà¥à¤¡à¤° मेटà¥à¤¨ चहानॠहà¥à¤¨à¥à¤›?';
$messages['purgefolderconfirm'] = 'तापाईले साà¤à¤šà¥ˆ यो फोलà¥à¤¡à¤°à¤®à¤¾ भà¤à¤•à¤¾ सबै मेलहरॠमेटà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
+$messages['folderdeleting'] = 'Deleting folder...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'फरà¥à¤® पूरà¥à¤£ रà¥à¤ªà¤®à¤¾ भरिà¤à¤•à¥‹ छैन';
$messages['noemailwarning'] = 'कृपया वैदà¥à¤¯ ई-मेल भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$messages['nonamewarning'] = 'कृपया नाम भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$messages['nopagesizewarning'] = 'कृपया पनà¥à¤¨à¤¾à¤•à¥‹ नाप भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'कृपया कम-से-कम à¤à¤‰à¤Ÿà¤¾ पà¥à¤°à¤¾à¤ªà¤•à¤•à¥‹ विवरण भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
$messages['nosubjectwarning'] = 'मेलको कà¥à¤¨à¥ˆ विषय तोकिà¤à¤•à¥‹ छैनै। केहि तोकà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤› ?';
$messages['nobodywarning'] = 'बिना केहि लेखि पठाउने?';
$messages['notsentwarning'] = 'मेल पठà¤à¤•à¥‹ छैन.. मेल रदà¥à¤¦ गरà¥à¤¨ चहानà¥à¤¹à¥à¤¨à¥à¤›?';
$messages['noldapserver'] = 'कृपया खोजको निमà¥à¤¤à¤¿ à¤à¤‰à¤Ÿà¤¾ à¤à¤²à¤¡à¤¾à¤ª सरà¥à¤µà¤° छानà¥à¤¨à¤¹à¥‹à¤¸';
$messages['nosearchname'] = 'कृपया समà¥à¤ªà¤°à¥à¤•à¤•à¥‹ नाम या ई-मेल भरà¥à¤¨à¥à¤¹à¥‹à¤¸';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr मेलहरॠपाइयो';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'खोज असफल रहयो';
$messages['searching'] = 'खोजि भईरहेको छ...';
$messages['checking'] = 'जाà¤à¤š भईरहेको छ...';
$messages['nospellerrors'] = 'कà¥à¤¨à¥ˆ गलत हिजà¥à¤œà¥‡ फेला परेननà¥';
$messages['folderdeleted'] = 'फोलà¥à¤¡à¤° सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• मेटियो';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• मेटियो';
$messages['converting'] = 'मेलबाट फोरà¥à¤®à¤¾à¤Ÿà¤¿à¤™ हटाईदै छ...';
$messages['messageopenerror'] = 'सरà¥à¤µà¤°à¤¬à¤¾à¤Ÿ मेल लोड हà¥à¤¨ सकेन';
$messages['fileuploaderror'] = 'फाईल अपलोड हà¥à¤¨ असफल';
$messages['filesizeerror'] = 'अपलोड गरिà¤à¤•à¥‹ फाईल हद $size भनà¥à¤¦à¤¾ ठूलो छ';
+$messages['copysuccess'] = 'सफलà¥à¤¤à¤¾à¤ªà¥‚रà¥à¤µà¤• $nr ठेगानाहरॠउतारियो';
+$messages['copyerror'] = 'कà¥à¤¨à¥ˆ पनि ठेगानाहरॠउतारà¥à¤¨ सकिà¤à¤¨';
$messages['sourceisreadonly'] = 'यो ठेगाना को शà¥à¤°à¥‹à¤¤ पढà¥à¤¨à¤•à¥‹ लागि मातà¥à¤° उपलबà¥à¤§ छ';
$messages['errorsavingcontact'] = 'सà¥à¤®à¤ªà¤°à¥à¤•à¤•à¥‹ ठेगाना जोगाउन सकिà¤à¤¨';
+$messages['movingmessage'] = 'Moving message(s)...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
+$messages['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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/nl_BE/labels.inc b/program/localization/nl_BE/labels.inc
index 2e76194e1..eb44eefc0 100644
--- a/program/localization/nl_BE/labels.inc
+++ b/program/localization/nl_BE/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Welkom bij $product';
$labels['username'] = 'Gebruikersnaam';
$labels['password'] = 'Wachtwoord';
$labels['server'] = 'Server';
$labels['login'] = 'Aanmelden';
+
+// taskbar
$labels['logout'] = 'Afmelden';
$labels['mail'] = 'Berichten';
$labels['settings'] = 'Instellingen';
$labels['addressbook'] = 'Contactpersonen';
+
+// mailbox names
$labels['inbox'] = 'Postvak IN';
$labels['drafts'] = 'Concepten';
$labels['sent'] = 'Verzonden berichten';
$labels['trash'] = 'Prullenbak';
$labels['junk'] = 'Spam';
+
+// message listing
$labels['subject'] = 'Onderwerp';
$labels['from'] = 'Van';
$labels['sender'] = 'Afzender';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Prioriteit';
$labels['organization'] = 'Organisatie';
$labels['readstatus'] = 'Gelezen?';
$labels['listoptions'] = 'Lijstopties...';
+
$labels['mailboxlist'] = 'Mappen';
$labels['messagesfromto'] = 'Berichten $from - $to van $count';
$labels['threadsfromto'] = 'Conversaties $from - $to van $count';
$labels['messagenrof'] = 'Bericht $nr van $count';
$labels['fromtoshort'] = '$from - $to van $count';
+
$labels['copy'] = 'Kopieer';
$labels['move'] = 'Verplaats';
$labels['moveto'] = 'Verplaats naar...';
$labels['download'] = 'Downloaden';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Weergeven';
$labels['showanyway'] = 'Toch weergeven';
+
$labels['filename'] = 'Bestandsnaam';
$labels['filesize'] = 'Bestandsgrootte';
+
$labels['addtoaddressbook'] = 'Voeg toe aan lijst met contactpersonen';
+
+// weekdays short
$labels['sun'] = 'Zo';
$labels['mon'] = 'Ma';
$labels['tue'] = 'Di';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Wo';
$labels['thu'] = 'Do';
$labels['fri'] = 'Vr';
$labels['sat'] = 'Za';
+
+// weekdays long
$labels['sunday'] = 'Zondag';
$labels['monday'] = 'Maandag';
$labels['tuesday'] = 'Dinsdag';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Woensdag';
$labels['thursday'] = 'Donderdag';
$labels['friday'] = 'Vrijdag';
$labels['saturday'] = 'Zaterdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mrt';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Januari';
$labels['longfeb'] = 'Februari';
$labels['longmar'] = 'Maart';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Vandaag';
+
+// toolbar buttons
$labels['refresh'] = 'Vernieuwen';
$labels['checkmail'] = 'Controleer op nieuwe berichten';
$labels['compose'] = 'Nieuw bericht opstellen';
@@ -106,6 +132,7 @@ $labels['replytoallmessage'] = 'Antwoorden naar lijst of naar afzender en alle o
$labels['replyall'] = 'Allen beantwoorden';
$labels['replylist'] = 'Lijst beantwoorden';
$labels['forward'] = 'Doorsturen';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'Doorsturen als bijlage';
$labels['forwardmessage'] = 'Bericht doorsturen';
$labels['deletemessage'] = 'Dit bericht verwijderen';
@@ -127,6 +154,7 @@ $labels['moreactions'] = 'Meer acties...';
$labels['more'] = 'Meer';
$labels['back'] = 'Terug';
$labels['options'] = 'Opties';
+
$labels['select'] = 'Selecteren';
$labels['all'] = 'Alle';
$labels['none'] = 'Geen';
@@ -134,6 +162,7 @@ $labels['currpage'] = 'Huidige pagina';
$labels['unread'] = 'Ongelezen';
$labels['flagged'] = 'Geselecteerd';
$labels['unanswered'] = 'Onbeantwoord';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Verwijderd';
$labels['undeleted'] = 'Niet verwijderd';
$labels['invert'] = 'Selectie omkeren';
@@ -144,6 +173,7 @@ $labels['expand-all'] = 'Alles uitklappen';
$labels['expand-unread'] = 'Ongelezen uitklappen';
$labels['collapse-all'] = 'Alles inklappen';
$labels['threaded'] = 'Conversaties';
+
$labels['autoexpand_threads'] = 'Klap alle conversaties uit';
$labels['do_expand'] = 'alle conversaties';
$labels['expand_only_unread'] = 'alleen met ongelezen berichten';
@@ -159,18 +189,27 @@ $labels['listcolumns'] = 'Kolommen';
$labels['listsorting'] = 'Sorteerkolom';
$labels['listorder'] = 'Sorteervolgorde';
$labels['listmode'] = 'Lijstweergave mode';
+
$labels['folderactions'] = 'Acties voor map...';
$labels['compact'] = 'Comprimeren';
$labels['empty'] = 'Legen';
+
$labels['quota'] = 'Gebruikte schijfruimte';
$labels['unknown'] = 'onbekend';
$labels['unlimited'] = 'onbeperkt';
+
$labels['quicksearch'] = 'Snelzoeken';
$labels['resetsearch'] = 'Zoek opnieuw';
$labels['searchmod'] = 'Zoekopties';
$labels['msgtext'] = 'Volledig bericht';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Openen in een nieuw venster';
$labels['emlsave'] = 'Opslaan (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Als nieuw bewerken';
$labels['send'] = 'Verzenden';
$labels['sendmessage'] = 'Bericht verzenden';
@@ -182,86 +221,173 @@ $labels['returnreceipt'] = 'Ontvangstbevestiging';
$labels['dsn'] = 'Delivery Status Notification';
$labels['mailreplyintro'] = 'Op $date, schreef $sender:';
$labels['originalmessage'] = 'Orgineel bericht';
+
$labels['editidents'] = 'Bewerk identiteiten';
$labels['spellcheck'] = 'Spellen';
$labels['checkspelling'] = 'Controleer spelling';
$labels['resumeediting'] = 'Hervat bewerken';
$labels['revertto'] = 'Ongedaan maken';
+
$labels['attach'] = 'Bijvoegen';
$labels['attachments'] = 'Bijlagen';
$labels['upload'] = 'Uploaden';
$labels['uploadprogress'] = '$percent ($current van $total)';
$labels['close'] = 'Sluiten';
$labels['messageoptions'] = 'Opties voor bericht...';
+
$labels['low'] = 'Laag';
$labels['lowest'] = 'Laagste';
$labels['normal'] = 'Normaal';
$labels['high'] = 'Hoog';
$labels['highest'] = 'Hoogste';
+
$labels['nosubject'] = '(geen onderwerp)';
$labels['showimages'] = 'Toon afbeeldingen';
$labels['alwaysshow'] = 'Afbeeldingen van $sender altijd tonen';
$labels['isdraft'] = 'Dit is een concept bericht.';
$labels['andnmore'] = '$nr meer...';
$labels['togglemoreheaders'] = 'Toon meer berichthoofden';
+$labels['togglefullheaders'] = 'Toggle raw message headers';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Platte tekst';
$labels['savesentmessagein'] = 'Bewaar verzonden bericht in';
$labels['dontsave'] = 'niet bewaren';
$labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size';
+
$labels['addcc'] = 'Cc toevoegen';
$labels['addbcc'] = 'Bcc toevoegen';
$labels['addreplyto'] = 'Antwoorden aan toevoegen';
$labels['addfollowupto'] = 'Followup aan toevoegen';
+
+// mdn
$labels['mdnrequest'] = 'De afzender heeft een ontvangstbevestiging gevraagd. Wilt u deze versturen?';
$labels['receiptread'] = 'Ontvangstbevestiging (gelezen)';
$labels['yourmessage'] = 'Dir is een onvangstbevestiging voor uw bericht';
$labels['receiptnote'] = 'Opmerking: deze ontvangstbevestiging houdt enkel in dat het bericht was weergegeven bij de ontvanger. Er is geen garantie dat de ontvanger het bericht daadwerkelijk heeft gelezen en/of begrepen.';
+
+// address boook
$labels['name'] = 'Naam';
$labels['firstname'] = 'Voornaam';
$labels['surname'] = 'Achternaam';
+$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'] = 'E-mailadres';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Geselecteerde contactpersoon toevoegen';
$labels['editcontact'] = 'Contactpersoon bewerken';
$labels['contacts'] = 'Contactpersonen';
$labels['contactproperties'] = 'Eigenschappen van contactpersoon';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Bewerken';
$labels['cancel'] = 'Annuleren';
$labels['save'] = 'Opslaan';
$labels['delete'] = 'Verwijderen';
$labels['rename'] = 'Hernoemen';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Contactpersoon toevoegen';
$labels['deletecontact'] = 'Verwijder geselecteerde contactpersonen';
$labels['composeto'] = 'Mail sturen aan';
$labels['contactsfromto'] = 'Contactpersonen $from - $to van $count';
$labels['print'] = 'Afdrukken';
$labels['export'] = 'Exporteren';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Exporteer contactpersonen in vCard formaat';
$labels['newcontactgroup'] = 'Maak een nieuwe contactgroep';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'Toon vorige';
$labels['firstpage'] = 'Toon eerste';
$labels['nextpage'] = 'Toon volgende';
$labels['lastpage'] = 'Toon laatste';
+
$labels['group'] = 'Groep';
$labels['groups'] = 'Groepen';
$labels['personaladrbook'] = 'Personlijke adressen';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'Importeer';
$labels['importcontacts'] = 'Contactpersonen importeren';
$labels['importfromfile'] = 'Importeer van bestand:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'Vervang het complete adresboek';
+$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'] = 'Klaar';
+
+// settings
$labels['settingsfor'] = 'Instellingen voor';
+$labels['about'] = 'About';
$labels['preferences'] = 'Voorkeuren';
$labels['userpreferences'] = 'Gebruikersvoorkeuren';
$labels['editpreferences'] = 'Gebruikersvoorkeuren bewerken';
+
$labels['identities'] = 'Identiteiten';
$labels['manageidentities'] = 'Beheer de identiteiten voor deze gebruiker';
$labels['newidentity'] = 'Nieuwe identiteit';
+
$labels['newitem'] = 'Nieuw';
$labels['edititem'] = 'Bewerken';
+
$labels['preferhtml'] = 'Gebruik HTML-opmaak';
$labels['defaultcharset'] = 'Standaard karakterset';
$labels['htmlmessage'] = 'HTML-bericht';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Uitgebreide datumweergave';
$labels['setdefault'] = 'Als standaard instellen';
$labels['autodetect'] = 'Automatisch';
@@ -270,9 +396,13 @@ $labels['timezone'] = 'Tijdzone';
$labels['pagesize'] = 'Berichten per pagina';
$labels['signature'] = 'Handtekening';
$labels['dstactive'] = 'Zomer/wintertijd';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML berichten opmaken';
$labels['htmlonreply'] = 'enkel bij beantwoorden van een HTML bericht';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML handtekening';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Toon voorbeeldvenster';
$labels['skin'] = 'Opmaakprofiel';
$labels['logoutclear'] = 'Prullenbak legen bij uitloggen';
@@ -290,12 +420,14 @@ $labels['readwhendeleted'] = 'Bericht na verwijderen als gelezen markeren';
$labels['flagfordeletion'] = 'Bericht niet verwijderen maar als verwijderd markeren';
$labels['skipdeleted'] = 'Verwijderde berichten niet tonen';
$labels['deletealways'] = 'Verwijder bericht wanneer verplaatsen naar Prullenbak mislukt';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'Geef externe toegevoegde berichten weer';
$labels['fromknownsenders'] = 'Van bekende afzenders';
$labels['always'] = 'altijd';
$labels['showinlineimages'] = 'Toon bijgevoegde afbeeldingen onder het bericht';
$labels['autosavedraft'] = 'Automatisch als concept opslaan';
$labels['everynminutes'] = 'elke $n minuten';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nooit';
$labels['immediately'] = 'onmiddellijk';
$labels['messagesdisplaying'] = 'Berichten weergave';
@@ -309,12 +441,15 @@ $labels['advancedoptions'] = 'Geavanceerde opties';
$labels['focusonnewmessage'] = 'Focus browserscherm bij nieuw bericht';
$labels['checkallfolders'] = 'Controleer alle mappen op nieuwe berichten';
$labels['displaynext'] = 'Na verplaatsen/verwijderen het volgende bericht tonen';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'Hoofdopties';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'Sectie';
$labels['maintenance'] = 'Onderhoud';
$labels['newmessage'] = 'Nieuw bericht';
$labels['signatureoptions'] = 'Opties voor handtekening';
$labels['whenreplying'] = 'Bij beantwoorden';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'begin bericht boven het origineel';
$labels['replybottomposting'] = 'begin bericht onder het origineel';
$labels['replyremovesignature'] = 'Verwijder handtekening uit het origneel bij beantwoorden';
@@ -327,6 +462,20 @@ $labels['afternseconds'] = 'Na $n seconden';
$labels['reqmdn'] = 'Vraag altijd een ontvangstbevestiging';
$labels['reqdsn'] = 'Vraag altijd een Delivery Status Notification';
$labels['replysamefolder'] = 'Plaats antwoorden in de map van het beantwoorde bericht';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Naam';
@@ -343,13 +492,30 @@ $labels['location'] = 'Locatie';
$labels['info'] = 'Informatie';
$labels['getfoldersize'] = 'Klik voor de grootte van de map';
$labels['changesubscription'] = 'Klik voor abonnement te wijzigen';
+$labels['foldertype'] = 'Folder Type';
+$labels['personalfolder'] = 'Private Folder';
+$labels['otherfolder'] = 'Other User\'s Folder';
+$labels['sharedfolder'] = 'Public Folder';
+
$labels['sortby'] = 'Sorteren op';
$labels['sortasc'] = 'Oplopend sorteren';
$labels['sortdesc'] = 'Aflopend sorteren';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engels';
$labels['westerneuropean'] = 'West-Europees';
@@ -368,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamees';
$labels['japanese'] = 'Japans';
$labels['korean'] = 'Koreaans';
$labels['chinese'] = 'Chinees';
+
?>
diff --git a/program/localization/nl_BE/messages.inc b/program/localization/nl_BE/messages.inc
index a90e250d9..d87329dc3 100644
--- a/program/localization/nl_BE/messages.inc
+++ b/program/localization/nl_BE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Er is een fout opgetreden!';
$messages['loginfailed'] = 'Aanmelden mislukt...';
$messages['cookiesdisabled'] = 'Uw browser accepteert geen cookies...';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Database Fout!';
$messages['requesttimedout'] = 'Aanvraag verlopen';
$messages['errorreadonly'] = 'Kon opdracht niet uitvoeren. Map is alleen-lezen.';
$messages['errornoperm'] = 'Kon opdracht niet uitvoeren. Toegang geweigerd.';
+$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'] = 'Ongeldige aanvraag! Er zijn geen gegevens opgeslagen.';
$messages['invalidhost'] = 'Ongeldige server.';
$messages['nomessagesfound'] = 'Er zijn geen berichten in deze map...';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'De gevraagde contactpersoon was niet gevonden.';
$messages['contactsearchonly'] = 'Voer enkele zoektermen in om de contactpersonen te zoeken.';
$messages['sendingfailed'] = 'Kon het bericht niet versturen...';
$messages['senttooquickly'] = 'U moet $sec second(en) wachten om het bericht te versturen.';
+$messages['errorsavingsent'] = 'Er is een fout opgetreden tijdens het opslaan van het verzonden bericht.';
+$messages['errorsaving'] = 'Er is een fout opgetreden bij het opslaan van het bericht...';
$messages['errormoving'] = 'Kon de bericht(en) niet verplaatsen...';
$messages['errorcopying'] = 'Kon de bericht(en) niet kopiëren';
$messages['errordeleting'] = 'Kon de bericht(en) niet verwijderen...';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Opmaak van het bericht wordt gewist...';
$messages['messageopenerror'] = 'Kon het bericht niet ophalen van de server.';
$messages['fileuploaderror'] = 'Bestandsupload mislukt.';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximum grootte van $size.';
+$messages['copysuccess'] = '$nr adressen met succes gekopieerd.';
+$messages['copyerror'] = 'Kon de adressen niet kopiëren.';
$messages['sourceisreadonly'] = 'Het adres kan niet worden opgeslagen.';
$messages['errorsavingcontact'] = 'Kon de contactpersoon niet bewaren.';
$messages['movingmessage'] = 'Bericht wordt verplaatst...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP Fout: $msg';
$messages['emailformaterror'] = 'Ongeldig e-mailadres: $email';
$messages['toomanyrecipients'] = 'Te veel geadresseerden. Verminder de hoeveelheid geadresseerden tot $max.';
$messages['maxgroupmembersreached'] = 'Het aantal leden van de groep groter is dan de maximale van $max.';
+$messages['internalerror'] = 'Er is een interne fout opgetreden. Probeer het nogmaals.';
$messages['contactdelerror'] = 'Kon contactpersoon niet verwijderen.';
$messages['contactdeleted'] = 'Contactpersoon succesvol verwijderd.';
$messages['contactrestoreerror'] = 'Verwijderde contactpersonen konden niet hersteld worden.';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'U heeft niet voldoende rechten een map te make
$messages['messagetoobig'] = 'Dit deel van uw bericht is te groot om het te verwerken.';
$messages['attachmentvalidationerror'] = 'OPGELET! Deze bijlage is verdacht omdat het aangetroffen bestandstype niet overeenkomt met het verwachte type. Indien u de afzender niet vertrouwd open deze bijlage in geen geval in uw browser aangezien deze schadelijk data kan bevatten.<br /><br /><em>Verwacht: $expected; Aangetroffen: $detected</em>';
$messages['noscriptwarning'] = 'Opgelet: deze webmail service vereist JavaScript! Om deze service te kunnen gebruiken dient u JavaScript toe te staan in de instellingen van uw browser.';
+
?>
diff --git a/program/localization/nl_NL/labels.inc b/program/localization/nl_NL/labels.inc
index b5f273659..7bd48bd4a 100644
--- a/program/localization/nl_NL/labels.inc
+++ b/program/localization/nl_NL/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Welkom bij $product';
$labels['username'] = 'Gebruikersnaam';
$labels['password'] = 'Wachtwoord';
$labels['server'] = 'Server';
$labels['login'] = 'Inloggen';
+
+// taskbar
$labels['logout'] = 'Uitloggen';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Instellingen';
$labels['addressbook'] = 'Adresboek';
+
+// mailbox names
$labels['inbox'] = 'Postvak In';
$labels['drafts'] = 'Concepten';
$labels['sent'] = 'Verzonden';
$labels['trash'] = 'Prullenbak';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Toon echte namen voor speciale mappen';
+
+// message listing
$labels['subject'] = 'Onderwerp';
$labels['from'] = 'Afzender';
$labels['sender'] = 'Afzender';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioriteit';
$labels['organization'] = 'Organisatie';
$labels['readstatus'] = 'Gelezen?';
$labels['listoptions'] = 'Lijstopties...';
+
$labels['mailboxlist'] = 'Mappen';
$labels['messagesfromto'] = 'Bericht $from t/m $to van $count';
$labels['threadsfromto'] = 'Conversatie $from t/m $to van $count';
$labels['messagenrof'] = 'Bericht $nr van $count';
$labels['fromtoshort'] = '$from – $to van $count';
+
$labels['copy'] = 'Kopiëren';
$labels['move'] = 'Verplaats';
$labels['moveto'] = 'Verplaats naar...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Download';
$labels['open'] = 'Openen';
$labels['showattachment'] = 'Toon';
$labels['showanyway'] = 'Laat toch zien';
+
$labels['filename'] = 'Bestandsnaam';
$labels['filesize'] = 'Bestandsgrootte';
+
$labels['addtoaddressbook'] = 'Toevoegen aan adresboek';
+
+// weekdays short
$labels['sun'] = 'Zo';
$labels['mon'] = 'Ma';
$labels['tue'] = 'Di';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Wo';
$labels['thu'] = 'Do';
$labels['fri'] = 'Vr';
$labels['sat'] = 'Za';
+
+// weekdays long
$labels['sunday'] = 'zondag';
$labels['monday'] = 'maandag';
$labels['tuesday'] = 'dinsdag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'woensdag';
$labels['thursday'] = 'donderdag';
$labels['friday'] = 'vrijdag';
$labels['saturday'] = 'zaterdag';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mrt';
@@ -85,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dec';
+
+// months long
$labels['longjan'] = 'januari';
$labels['longfeb'] = 'februari';
$labels['longmar'] = 'maart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'november';
$labels['longdec'] = 'december';
+
$labels['today'] = 'Vandaag';
+
+// toolbar buttons
$labels['refresh'] = 'Vernieuwen';
$labels['checkmail'] = 'Controleer op nieuwe berichten';
$labels['compose'] = 'Opstellen';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Meer acties...';
$labels['more'] = 'Meer';
$labels['back'] = 'Terug';
$labels['options'] = 'Opties';
+
$labels['select'] = 'Selecteer';
$labels['all'] = 'Allemaal';
$labels['none'] = 'Geen';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Alles uitklappen';
$labels['expand-unread'] = 'Ongelezen uitklappen';
$labels['collapse-all'] = 'Alles inklappen';
$labels['threaded'] = 'Conversaties';
+
$labels['autoexpand_threads'] = 'Klap alle conversaties uit';
$labels['do_expand'] = 'alle conversaties';
$labels['expand_only_unread'] = 'alleen met ongelezen berichten';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Kolommen';
$labels['listsorting'] = 'Sorteer op kolom';
$labels['listorder'] = 'Sorteervolgorde';
$labels['listmode'] = 'Lijstweergave';
+
$labels['folderactions'] = 'Mapacties...';
$labels['compact'] = 'Opschonen';
$labels['empty'] = 'Legen';
-$labels['importmessages'] = 'Berichten importeren';
+
$labels['quota'] = 'Opslagverbruik';
$labels['unknown'] = 'onbekend';
$labels['unlimited'] = 'onbeperkt';
+
$labels['quicksearch'] = 'Snel zoeken';
$labels['resetsearch'] = 'Wis zoekopdracht';
$labels['searchmod'] = 'Zoekopties';
$labels['msgtext'] = 'Gehele bericht';
$labels['body'] = 'Inhoud';
-$labels['type'] = 'Type';
-$labels['namex'] = 'Naam';
+
$labels['openinextwin'] = 'Openen in een nieuw venster';
$labels['emlsave'] = 'Opslaan (.eml)';
$labels['changeformattext'] = 'Weergeven als platte tekst';
$labels['changeformathtml'] = 'Weergeven als opgemaakte tekst (HTML)';
+
+// message compose
$labels['editasnew'] = 'Als nieuw bewerken';
$labels['send'] = 'Verzenden';
$labels['sendmessage'] = 'Verstuur bericht';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Ontvangstbevestiging';
$labels['dsn'] = 'Afleveringsbericht (DSN)';
$labels['mailreplyintro'] = '$sender schreef op $date:';
$labels['originalmessage'] = 'Oorspronkelijke bericht';
+
$labels['editidents'] = 'Identiteiten bewerken';
$labels['spellcheck'] = 'Spelling';
$labels['checkspelling'] = 'Controleer spelling';
$labels['resumeediting'] = 'Doorgaan met opstellen';
$labels['revertto'] = 'Terugwijzigen in';
-$labels['responses'] = 'Reacties';
-$labels['insertresponse'] = 'Reactie invoegen';
-$labels['manageresponses'] = 'Reacties beheren';
-$labels['savenewresponse'] = 'Nieuwe reactie opslaan';
-$labels['editresponses'] = 'Bewerk reactie';
-$labels['editresponse'] = 'Bewerk reactie';
-$labels['responsename'] = 'Naam';
-$labels['responsetext'] = 'Reactie';
+
$labels['attach'] = 'Bijvoegen';
$labels['attachments'] = 'Bijlagen';
$labels['upload'] = 'Toevoegen';
$labels['uploadprogress'] = '$percent ($current van $total)';
$labels['close'] = 'Sluit';
$labels['messageoptions'] = 'Berichtopties...';
+
$labels['low'] = 'Laag';
$labels['lowest'] = 'Laagste';
$labels['normal'] = 'Normaal';
$labels['high'] = 'Hoog';
$labels['highest'] = 'Hoogste';
+
$labels['nosubject'] = '(geen onderwerp)';
$labels['showimages'] = 'Toon afbeeldingen';
$labels['alwaysshow'] = 'Afbeeldingen van $sender altijd tonen';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Dit is een conceptbericht.';
$labels['andnmore'] = '$nr meer...';
$labels['togglemoreheaders'] = 'Toon meer berichtheaders';
$labels['togglefullheaders'] = 'Originele berichtheaders aan/uit';
+
$labels['htmltoggle'] = 'Opgemaakt (HTML)';
$labels['plaintoggle'] = 'Platte tekst';
$labels['savesentmessagein'] = 'Bewaar verzonden bericht in';
$labels['dontsave'] = 'niet bewaren';
$labels['maxuploadsize'] = 'Maximum toegestane bestandsgrootte is $size';
+
$labels['addcc'] = 'Cc toevoegen';
$labels['addbcc'] = 'Bcc toevoegen';
$labels['addreplyto'] = 'Antwoord-aan toevoegen';
$labels['addfollowupto'] = 'Followup-To toevoegen';
+
+// mdn
$labels['mdnrequest'] = 'De afzender van dit bericht heeft gevraagd een melding te ontvangen wanneer u dit bericht heeft gelezen. Wilt u deze melding verzenden?';
$labels['receiptread'] = 'Ontvangstbevestiging (gelezen)';
$labels['yourmessage'] = 'Dit is een ontvangstbevestiging voor uw bericht';
$labels['receiptnote'] = 'Let op: Dit bevestigt alleen dat uw bericht bij de geadresseerde is weergegeven. Er is geen garantie dat de geadresseerde het bericht daadwerkelijk heeft gelezen of de inhoud ervan heeft begrepen.';
+
+// address boook
$labels['name'] = 'Weergavenaam';
$labels['firstname'] = 'Voornaam';
$labels['surname'] = 'Achternaam';
@@ -270,6 +301,7 @@ $labels['search'] = 'Zoeken';
$labels['advsearch'] = 'Geavanceerd zoeken';
$labels['advanced'] = 'Geavanceerd';
$labels['other'] = 'Anders';
+
$labels['typehome'] = 'Thuis';
$labels['typework'] = 'Werk';
$labels['typeother'] = 'Anders';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Website';
$labels['typeblog'] = 'Weblog';
$labels['typeprofile'] = 'Profiel';
+
$labels['addfield'] = 'Veld toevoegen...';
$labels['addcontact'] = 'Nieuwe contactpersoon toevoegen';
$labels['editcontact'] = 'Contactpersoon wijzigen';
$labels['contacts'] = 'Contactpersonen';
$labels['contactproperties'] = 'Gegevens van contactpersoon';
$labels['personalinfo'] = 'Persoonlijke informatie';
+
$labels['edit'] = 'Wijzig';
$labels['cancel'] = 'Annuleren';
$labels['save'] = 'Opslaan';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Hernoemen';
$labels['addphoto'] = 'Toevoegen';
$labels['replacephoto'] = 'Vervangen';
$labels['uploadphoto'] = 'Foto uploaden';
+
$labels['newcontact'] = 'Voeg een nieuwe contactpersoon toe';
$labels['deletecontact'] = 'Verwijder geselecteerde contactpersonen';
$labels['composeto'] = 'Stuur een bericht naar';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Maak een nieuwe contactgroep';
$labels['grouprename'] = 'Groep hernoemen';
$labels['groupdelete'] = 'Groep verwijderen';
$labels['groupremoveselected'] = 'Verwijder geselecteerde contactpersonen van groep';
+
$labels['previouspage'] = 'Vorige pagina';
$labels['firstpage'] = 'Eerste pagina';
$labels['nextpage'] = 'Volgende pagina';
$labels['lastpage'] = 'Laatste pagina';
+
$labels['group'] = 'Groep';
$labels['groups'] = 'Groepen';
-$labels['listgroup'] = 'Toon groepsleden';
$labels['personaladrbook'] = 'Persoonlijk adresboek';
+
$labels['searchsave'] = 'Zoekopdracht opslaan';
$labels['searchdelete'] = 'Zoekopdracht verwijderen';
+
$labels['import'] = 'Importeren';
$labels['importcontacts'] = 'Contactpersonen importeren';
$labels['importfromfile'] = 'Importeer van bestand:';
-$labels['importtarget'] = 'Contacten toevoegen aan';
+$labels['importtarget'] = 'Voeg nieuwe contactpersonen toe aan adresboek:';
$labels['importreplace'] = 'Vervang het complete adresboek';
-$labels['importgroups'] = 'Importeer groepstoewijzingen';
-$labels['importgroupsall'] = 'Allemaal (maak groepen aan indien nodig)';
-$labels['importgroupsexisting'] = 'Alleen voor bestaande groepen';
$labels['importdesc'] = 'U kunt contactpersonen uploaden van een bestaand adresboek<br/>Momenteel wordt het importeren van adresboeken in <a href="http://en.wikipedia.org/wiki/VCard">vCard-formaat</a> of CSV-formaat (kommagescheiden tekstbestand) ondersteund.';
$labels['done'] = 'Klaar';
+
+// settings
$labels['settingsfor'] = 'Instellingen voor';
$labels['about'] = 'Over';
$labels['preferences'] = 'Instellingen';
$labels['userpreferences'] = 'Gebruikersinstellingen';
$labels['editpreferences'] = 'Wijzig gebruikersinstellingen';
+
$labels['identities'] = 'Identiteiten';
$labels['manageidentities'] = 'Beheer identiteiten voor dit account';
$labels['newidentity'] = 'Identiteit toevoegen';
+
$labels['newitem'] = 'Nieuw item';
$labels['edititem'] = 'Wijzig item';
+
$labels['preferhtml'] = 'Toon berichten in HTML-opmaak';
$labels['defaultcharset'] = 'Standaard tekenset';
$labels['htmlmessage'] = 'HTML-bericht';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Negeer woorden met cijfers';
$labels['spellcheckignorecaps'] = 'Negeer woorden welke volledig uit hoofdletters bestaan';
$labels['addtodict'] = 'Voeg toe aan woordenboek';
$labels['mailtoprotohandler'] = 'Registreer protocolhandler voor mailto: links';
-$labels['standardwindows'] = 'Behandel pop-ups als normale vensters';
$labels['forwardmode'] = 'Berichten doorsturen';
$labels['inline'] = 'invoegen';
$labels['asattachment'] = 'als bijlage';
+
$labels['folder'] = 'Map';
$labels['folders'] = 'Mappen';
$labels['foldername'] = 'Mapnaam';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Maptype';
$labels['personalfolder'] = 'Privémap';
$labels['otherfolder'] = 'Map van andere gebruiker';
$labels['sharedfolder'] = 'Publieke map';
+
$labels['sortby'] = 'Sorteer op';
$labels['sortasc'] = 'Sorteer oplopend';
$labels['sortdesc'] = 'Sorteer aflopend';
$labels['undo'] = 'Ongedaan maken';
+
$labels['installedplugins'] = 'Geïnstalleerde plug-ins';
$labels['plugin'] = 'Invoegtoepassing';
$labels['version'] = 'Versie';
$labels['source'] = 'Broncode';
$labels['license'] = 'Licentie';
$labels['support'] = 'Hulp nodig?';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engels';
$labels['westerneuropean'] = 'West-Europees';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamees';
$labels['japanese'] = 'Japans';
$labels['korean'] = 'Koreaans';
$labels['chinese'] = 'Chinees';
+
?>
diff --git a/program/localization/nl_NL/messages.inc b/program/localization/nl_NL/messages.inc
index f6081bd8e..4a67e1590 100644
--- a/program/localization/nl_NL/messages.inc
+++ b/program/localization/nl_NL/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Er is een fout opgetreden!';
$messages['loginfailed'] = 'Aanmelden mislukt.';
$messages['cookiesdisabled'] = 'Uw browser accepteert geen cookies.';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Bericht succesvol verstuurd.';
$messages['savingmessage'] = 'Bericht wordt opgeslagen...';
$messages['messagesaved'] = 'Bericht opgeslagen in Concepten.';
$messages['successfullysaved'] = 'Succesvol opgeslagen.';
-$messages['savingresponse'] = 'Reactie wordt opgeslagen...';
-$messages['deleteresponseconfirm'] = 'Weet u zeker dat u deze reactie wilt verwijderen?';
$messages['addedsuccessfully'] = 'Contactpersoon succesvol toegevoegd aan het adresboek.';
$messages['contactexists'] = 'Er bestaat al een contactpersoon met dit e-mailadres.';
$messages['contactnameexists'] = 'Er bestaat al een contactpersoon met deze naam.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Opmaak van bericht verwijderen...';
$messages['messageopenerror'] = 'Kan het bericht niet van de server laden.';
$messages['fileuploaderror'] = 'Bestand uploaden mislukt.';
$messages['filesizeerror'] = 'Het bestand overschrijdt de maximale grootte van $size.';
-$messages['copysuccess'] = '$nr contactpersonen succesvol gekopieerd.';
-$messages['movesuccess'] = '$nr contactpersonen succesvol verplaatst.';
-$messages['copyerror'] = 'Kon geen contactpersoon kopieren.';
-$messages['moveerror'] = 'Kon geen contactpersoon verplaatsen.';
+$messages['copysuccess'] = '$nr adressen succesvol gekopieerd.';
+$messages['copyerror'] = 'Kan geen adressen kopiëren.';
$messages['sourceisreadonly'] = 'Deze adresbron is alleen-lezen.';
$messages['errorsavingcontact'] = 'Kan contactpersoon niet opslaan.';
$messages['movingmessage'] = 'Bericht(en) verplaatsen...';
$messages['copyingmessage'] = 'Bericht(en) kopiëren...';
$messages['copyingcontact'] = 'Contact(en) kopiëren...';
-$messages['movingcontact'] = 'Contact(en) verplaatsen...';
$messages['deletingmessage'] = 'Bericht(en) verwijderen...';
$messages['markingmessage'] = 'Bericht(en) markeren...';
$messages['addingmember'] = 'Contactpersonen worden toegevoegd aan groep...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importeren, even geduld...';
$messages['importformaterror'] = 'Importeren mislukt! Het geüploade bestand is geen geldig importbestand.';
$messages['importconfirm'] = '<b>$inserted contactpersonen succesvol geïmporteerd</b>';
$messages['importconfirmskipped'] = '<b>$skipped bestaande contactpersonen overgeslagen</b>';
-$messages['importmessagesuccess'] = '$nr berichten succesvol geïmporteerd';
-$messages['importmessageerror'] = 'Importeren mislukt! Het verstuurde bestand is geen geldig bericht of mailboxbestand';
$messages['opnotpermitted'] = 'Deze bewerking is niet toegestaan!';
$messages['nofromaddress'] = 'Het e-mailadres ontbreekt in de geselecteerde identiteit.';
$messages['editorwarning'] = 'Door het overschakelen naar de platte-tekstverwerker gaat alle opmaak verloren. Weet u zeker dat u verder wilt gaan?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Niet in staat om map aan te maken of verplaats
$messages['messagetoobig'] = 'Het bericht is te groot om te verwerken.';
$messages['attachmentvalidationerror'] = 'WAARSCHUWING! Deze bijlage is verdacht omdat het bestandstype niet overeen komt met het bestandstype dat gespecificeerd is in het bericht. Open deze bijlage niet in uw browser als u de afzender niet vertrouwt, aangezien deze bijlage kwaadaardige inhoud kan bevatten.<br /><br /><em>Verwacht: $expected; gevonden: $detected</em>';
$messages['noscriptwarning'] = 'Waarschuwing: deze webmailapplicatie vereist Javascript! U dient Javascript in te schakelen in uw browserinstellingen wanneer u gebruik wilt maken van deze applicatie.';
+
?>
diff --git a/program/localization/nn_NO/labels.inc b/program/localization/nn_NO/labels.inc
index eae5fc639..d1a1c5700 100644
--- a/program/localization/nn_NO/labels.inc
+++ b/program/localization/nn_NO/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Velkomen til $product';
$labels['username'] = 'Brukarnamn';
$labels['password'] = 'Passord';
$labels['server'] = 'Tenar';
$labels['login'] = 'Logg inn';
+
+// taskbar
$labels['logout'] = 'Logg ut';
$labels['mail'] = 'E-post';
$labels['settings'] = 'Personlege innstillingar';
$labels['addressbook'] = 'Adressebok';
+
+// mailbox names
$labels['inbox'] = 'Innboks';
$labels['drafts'] = 'Kladd';
$labels['sent'] = 'Sendt';
$labels['trash'] = 'Sletta';
$labels['junk'] = 'Søppel';
+
+// message listing
$labels['subject'] = 'Emne';
$labels['from'] = 'Frå';
$labels['sender'] = 'Avsendar';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisasjon';
$labels['readstatus'] = 'Lesestatus';
$labels['listoptions'] = 'Listeinnstillingar …';
+
$labels['mailboxlist'] = 'Mapper';
$labels['messagesfromto'] = 'Melding $from til $to av $count';
$labels['threadsfromto'] = 'Tråd $from til $to ($count stk)';
$labels['messagenrof'] = 'Melding $nr av $count';
$labels['fromtoshort'] = '$from-$to av $count';
+
$labels['copy'] = 'Kopier';
$labels['move'] = 'Flytt';
$labels['moveto'] = 'flytt til …';
$labels['download'] = 'Last ned';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Vis';
$labels['showanyway'] = 'Vis likevel';
+
$labels['filename'] = 'Filnamn';
$labels['filesize'] = 'Filstorleik';
+
$labels['addtoaddressbook'] = 'Legg til i adressebok';
+
+// weekdays short
$labels['sun'] = 'Sun';
$labels['mon'] = 'MÃ¥n';
$labels['tue'] = 'Tys';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Ons';
$labels['thu'] = 'Tor';
$labels['fri'] = 'Fre';
$labels['sat'] = 'Lau';
+
+// weekdays long
$labels['sunday'] = 'Sundag';
$labels['monday'] = 'MÃ¥ndag';
$labels['tuesday'] = 'Tysdag';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Onsdag';
$labels['thursday'] = 'Torsdag';
$labels['friday'] = 'Fredag';
$labels['saturday'] = 'Laurdag';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Des';
+
+// months long
$labels['longjan'] = 'Januar';
$labels['longfeb'] = 'Februar';
$labels['longmar'] = 'Mars';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Oktober';
$labels['longnov'] = 'November';
$labels['longdec'] = 'Desember';
+
$labels['today'] = 'I dag';
+
+// toolbar buttons
$labels['refresh'] = 'Frisk opp att';
$labels['checkmail'] = 'Sjå etter nye meldingar';
$labels['compose'] = 'Skriv ei melding';
@@ -128,6 +154,7 @@ $labels['moreactions'] = 'Fleire handlingar';
$labels['more'] = 'Meir';
$labels['back'] = 'Tilbake';
$labels['options'] = 'Innstillingar';
+
$labels['select'] = 'Vel';
$labels['all'] = 'Alle';
$labels['none'] = 'Ingen';
@@ -135,6 +162,7 @@ $labels['currpage'] = 'Gjeldande side';
$labels['unread'] = 'Uleste';
$labels['flagged'] = 'Flagga';
$labels['unanswered'] = 'Ikkje svara';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Sletta';
$labels['undeleted'] = 'Ikkje sletta';
$labels['invert'] = 'Inverter';
@@ -145,6 +173,7 @@ $labels['expand-all'] = 'Utvid alle';
$labels['expand-unread'] = 'Utvid ulesne';
$labels['collapse-all'] = 'Slå saman alle';
$labels['threaded'] = 'Tråda';
+
$labels['autoexpand_threads'] = 'Utvid eposttråder';
$labels['do_expand'] = 'alle tråder';
$labels['expand_only_unread'] = 'berre med ulesne epostar';
@@ -160,19 +189,27 @@ $labels['listcolumns'] = 'Vis kolonner';
$labels['listsorting'] = 'Sorteringskolonne';
$labels['listorder'] = 'Sorteringsveg';
$labels['listmode'] = 'Listevisningmodus';
+
$labels['folderactions'] = 'Mappehandlingar';
$labels['compact'] = 'Kompakt';
$labels['empty'] = 'Tom';
+
$labels['quota'] = 'Plassbruk';
$labels['unknown'] = 'ukjend';
$labels['unlimited'] = 'ubegrensa';
+
$labels['quicksearch'] = 'Snøggsøk';
$labels['resetsearch'] = 'Tilbakestill søk';
$labels['searchmod'] = 'Søkeutsagn';
$labels['msgtext'] = 'Heile eposten';
$labels['body'] = 'Meldingstekst';
+
$labels['openinextwin'] = 'Opna i nytt vindauga';
$labels['emlsave'] = 'Last ned (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Rediger som ny';
$labels['send'] = 'Send';
$labels['sendmessage'] = 'Send meldinga no';
@@ -184,22 +221,26 @@ $labels['returnreceipt'] = 'Epost-er-lest-kvittering';
$labels['dsn'] = 'Leveringsstatus';
$labels['mailreplyintro'] = 'Den $date skreiv $sender:';
$labels['originalmessage'] = 'Opphavleg melding';
+
$labels['editidents'] = 'Redigere identitetar';
$labels['spellcheck'] = 'Stavekontroll';
$labels['checkspelling'] = 'Stavekontroll';
$labels['resumeediting'] = 'Hald fram redigering';
$labels['revertto'] = 'Tilbakestill til';
+
$labels['attach'] = 'Legg ved';
$labels['attachments'] = 'Vedlegg';
$labels['upload'] = 'Last opp';
$labels['uploadprogress'] = '$percent ($current frå $total)';
$labels['close'] = 'Steng';
$labels['messageoptions'] = 'Meldingsalternativ';
+
$labels['low'] = 'LÃ¥g';
$labels['lowest'] = 'LÃ¥gast';
$labels['normal'] = 'Normal';
$labels['high'] = 'Høg';
$labels['highest'] = 'Høgast';
+
$labels['nosubject'] = '(ingen emne)';
$labels['showimages'] = 'Vis bilete';
$labels['alwaysshow'] = 'Alltid vis bilete frå $sender';
@@ -207,19 +248,25 @@ $labels['isdraft'] = 'Dette er ein kladd.';
$labels['andnmore'] = '$nr fleire …';
$labels['togglemoreheaders'] = 'Vis fleire meldingshovud';
$labels['togglefullheaders'] = 'Veksle vising av meldinga sine headere i råformat';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Vanleg tekst';
$labels['savesentmessagein'] = 'Lagra sendt epost i';
$labels['dontsave'] = 'Ikkje lagra';
$labels['maxuploadsize'] = 'Maksimalt tillatte storleik på filar er $size';
+
$labels['addcc'] = 'Legg til kopi';
$labels['addbcc'] = 'Legg til blindkopi';
$labels['addreplyto'] = 'Legg til svaradressa';
$labels['addfollowupto'] = 'Legg til oppfylgjing';
+
+// mdn
$labels['mdnrequest'] = 'Sendaren av denne meldinga ynskjer å få kvittering når du har lest meldinga. Ynskjer du å senda denne kvitteringa?';
$labels['receiptread'] = 'Svarkvittering (eposten-er-lest-kvittering)';
$labels['yourmessage'] = 'Dette er ein retur-kvittering for meldinga di.';
$labels['receiptnote'] = 'Hugs: Denne kvitteringa seier berre at meldinga di vart vist på mottakar sin datamaskin. Det er ingen garanti for at mottakaren faktisk har lese eller forstått innhaldet i meldinga.';
+
+// address boook
$labels['name'] = 'Visingsnamn';
$labels['firstname'] = 'Førenamn';
$labels['surname'] = 'Etternamn';
@@ -254,6 +301,7 @@ $labels['search'] = 'Søk';
$labels['advsearch'] = 'Avansert søk';
$labels['advanced'] = 'Avansert';
$labels['other'] = 'Andre';
+
$labels['typehome'] = 'Heim';
$labels['typework'] = 'Jobb';
$labels['typeother'] = 'Andre';
@@ -268,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Heimeside';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Legg til felt...';
$labels['addcontact'] = 'Legg til ny kontakt';
$labels['editcontact'] = 'Redigere kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Eigenskapar';
$labels['personalinfo'] = 'Personleg informasjon';
+
$labels['edit'] = 'Redigere';
$labels['cancel'] = 'Avbryt';
$labels['save'] = 'Lagre';
@@ -282,6 +332,7 @@ $labels['rename'] = 'Gi nytt namn';
$labels['addphoto'] = 'Legg til';
$labels['replacephoto'] = 'Erstatt';
$labels['uploadphoto'] = 'Last opp bilete';
+
$labels['newcontact'] = 'Opprett nytt kontaktkort';
$labels['deletecontact'] = 'Slett valde kontaktar';
$labels['composeto'] = 'Ny melding til';
@@ -295,31 +346,41 @@ $labels['newcontactgroup'] = 'Lag ny kontaktgruppe';
$labels['grouprename'] = 'Endre namn på gruppe';
$labels['groupdelete'] = 'Slett gruppe';
$labels['groupremoveselected'] = 'Fjern valde kontaktar frå gruppe';
+
$labels['previouspage'] = 'Førre side';
$labels['firstpage'] = 'Første side';
$labels['nextpage'] = 'Neste side';
$labels['lastpage'] = 'Siste side';
+
$labels['group'] = 'Gruppe';
$labels['groups'] = 'Gruppar';
$labels['personaladrbook'] = 'Personlege adresser';
+
$labels['searchsave'] = 'Lagre søk';
$labels['searchdelete'] = 'Slett søk';
+
$labels['import'] = 'Importer';
$labels['importcontacts'] = 'Importer kontaktar';
$labels['importfromfile'] = 'Importer frå fil:';
+$labels['importtarget'] = 'Legg til kontakter i adresseboka';
$labels['importreplace'] = 'Byt ut heile adresseboka';
$labels['importdesc'] = 'Du kan laste opp kontaktar frå ei eksisterande adressebok.<br/>Vi støttar adressebøker i formata <a href="http://no.wikipedia.org/wiki/VCard">vCard</a> og CSV (kommaseparert).';
$labels['done'] = 'Ferdig';
+
+// settings
$labels['settingsfor'] = 'Innstillingar for';
$labels['about'] = 'Om';
$labels['preferences'] = 'Innstillingar';
$labels['userpreferences'] = 'Brukarinnstillingar';
$labels['editpreferences'] = 'Redigere brukarinnstillingar';
+
$labels['identities'] = 'Identitetar';
$labels['manageidentities'] = 'Administrere identitetar for denne kontoen';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Nytt element';
$labels['edititem'] = 'Redigere element';
+
$labels['preferhtml'] = 'Føretrekk HTML';
$labels['defaultcharset'] = 'Standard karaktersett (charset)';
$labels['htmlmessage'] = 'HTML-melding';
@@ -341,6 +402,7 @@ $labels['htmleditor'] = 'Lag HTML-meldingar';
$labels['htmlonreply'] = 'ved svar på HTML-melding';
$labels['htmlonreplyandforward'] = 'ved vidaresending av eller svar på HTML-melding';
$labels['htmlsignature'] = 'HTML-signatur';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Vis førehandsvisningsboks';
$labels['skin'] = 'Bunad';
$labels['logoutclear'] = 'Fjern alt i «sletta element» ved utlogging';
@@ -413,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Registrer protokollhandsaming for mailto-lenkje
$labels['forwardmode'] = 'Meldingar vidaresendast';
$labels['inline'] = 'i teksten';
$labels['asattachment'] = 'som vedlegg';
+
$labels['folder'] = 'Mappe';
$labels['folders'] = 'Mapper';
$labels['foldername'] = 'Mappenamn';
@@ -433,20 +496,26 @@ $labels['foldertype'] = 'Mappetype';
$labels['personalfolder'] = 'Privat mappe';
$labels['otherfolder'] = 'Annan brukar si mappe';
$labels['sharedfolder'] = 'Offentleg mappe';
+
$labels['sortby'] = 'Sorter etter';
$labels['sortasc'] = 'Sorter stigande';
$labels['sortdesc'] = 'Sorter søkkjande';
$labels['undo'] = 'Gjer om';
+
$labels['installedplugins'] = 'Installerte tillegg';
$labels['plugin'] = 'Tilleggsmodul';
$labels['version'] = 'Versjon';
$labels['source'] = 'Kjelde';
$labels['license'] = 'Lisens';
$labels['support'] = 'FÃ¥ hjelp';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'UNicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Vest-europesik';
@@ -465,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/nn_NO/messages.inc b/program/localization/nn_NO/messages.inc
index 5c8386c64..3dce30b98 100644
--- a/program/localization/nn_NO/messages.inc
+++ b/program/localization/nn_NO/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Noko gjekk feil.';
$messages['loginfailed'] = 'Feil ved innlogging.';
$messages['cookiesdisabled'] = 'Nettlesaren din tillet ikkje informasjonskapslar (cookies).';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Databasefeil!';
$messages['requesttimedout'] = 'Førespurnaden fekk tidsavbrot';
$messages['errorreadonly'] = 'Klarte ikkje utføra handlinga. Mappa kan berre lesast.';
$messages['errornoperm'] = 'Klarte ikkje utføra handlinga. Nekta tilgang.';
+$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'] = 'Eg forstår ingen ting! Ingen data lagra.';
$messages['invalidhost'] = 'Ugyldig tenarnamn.';
$messages['nomessagesfound'] = 'Ingen meldingar i denne postkassa.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'Fann ikkje kontakten du såg etter.';
$messages['contactsearchonly'] = 'Skriv søkeord for å finna kontaktar';
$messages['sendingfailed'] = 'Klarte ikkje senda meldinga.';
$messages['senttooquickly'] = 'Du må venta $sec sekund for å senda meldinga.';
+$messages['errorsavingsent'] = 'Klarte ikkje lagra den sende meldinga.';
+$messages['errorsaving'] = 'Det skjedde ein feil ved lagring.';
$messages['errormoving'] = 'Klarte ikkje flytte meldinga(r).';
$messages['errorcopying'] = 'Klarte ikkje kopiera meldinga(r).';
$messages['errordeleting'] = 'Klarte ikkje sletta meldinga(r).';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Fjernar formatering frå meldinga …';
$messages['messageopenerror'] = 'Klarte ikkje lasta meldinga frå tenaren.';
$messages['fileuploaderror'] = 'Filopplasting feila.';
$messages['filesizeerror'] = 'Fila du lasta opp, er større enn største tillatne filstorleik, $size.';
+$messages['copysuccess'] = 'Kopierte $nr adresser.';
+$messages['copyerror'] = 'Klarte ikkje kopiera nokon adresser.';
$messages['sourceisreadonly'] = 'Denne adressekjelda er berre lesbar.';
$messages['errorsavingcontact'] = 'Klarte ikkje lagra kontaktadressa.';
$messages['movingmessage'] = 'Flyttar melding(ar) …';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP-feil: $msg';
$messages['emailformaterror'] = 'Ugyldig e-postadresse: $email';
$messages['toomanyrecipients'] = 'For mange mottakarar. Senk talet til $max.';
$messages['maxgroupmembersreached'] = 'Ei gruppe kan ikkje ha fleire enn $max medlemmer.';
+$messages['internalerror'] = 'Intern feil. Prøv igjen.';
$messages['contactdelerror'] = 'Klarte ikkje sletta kontakt(ar).';
$messages['contactdeleted'] = 'Kontakt(ar) sletta utan feil.';
$messages['contactrestoreerror'] = 'Klarte ikkje gjenoppretta kontakt(ar).';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Klarte ikkje laga/flytte mappa i vald overordn
$messages['messagetoobig'] = 'Meldingsdelen er for stor til å prosesserast.';
$messages['attachmentvalidationerror'] = 'ÅTVARING: Dette vedlegget er mistenkjeleg fordi det er av ein type som ikkje stemmer med det som er deklarert i meldinga. Viss du ikkje stolar på avsendaren bør du ikkje opna det i nettlesaren. Det kan ha skadeleg innhald.<br/><br/><em>Venta: $expected; fann: $detected</em>';
$messages['noscriptwarning'] = 'NB: Denne webmail-klienten krev JavaScript. Skru på JavaScript i nettlesaren din for å kunna bruka klienten.';
+
?>
diff --git a/program/localization/pl_PL/csv2vcard.inc b/program/localization/pl_PL/csv2vcard.inc
index c6c5be414..ceb995517 100644
--- a/program/localization/pl_PL/csv2vcard.inc
+++ b/program/localization/pl_PL/csv2vcard.inc
@@ -15,7 +15,14 @@
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
+
+// 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'] = "Rocznica";
$map['assistants_name'] = "Asystent";
$map['assistants_phone'] = "Telefon asystenta";
diff --git a/program/localization/pl_PL/labels.inc b/program/localization/pl_PL/labels.inc
index 4c13fb7c6..426ac381e 100644
--- a/program/localization/pl_PL/labels.inc
+++ b/program/localization/pl_PL/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Witamy w $product';
$labels['username'] = 'Nazwa';
$labels['password'] = 'Hasło';
$labels['server'] = 'Serwer';
$labels['login'] = 'Zaloguj';
+
+// taskbar
$labels['logout'] = 'Wyloguj';
$labels['mail'] = 'Poczta';
$labels['settings'] = 'Ustawienia';
$labels['addressbook'] = 'Książka adresowa';
+
+// mailbox names
$labels['inbox'] = 'Odebrane';
$labels['drafts'] = 'Kopie robocze';
$labels['sent'] = 'Wysłane';
$labels['trash'] = 'Kosz';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Pokaż prawdziwe nazwy dla folderów specjalnych';
+
+// message listing
$labels['subject'] = 'Temat';
$labels['from'] = 'Od';
$labels['sender'] = 'Nadawca';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Priorytet';
$labels['organization'] = 'Organizacja';
$labels['readstatus'] = 'Przeczytano';
$labels['listoptions'] = 'Opcje listy...';
+
$labels['mailboxlist'] = 'Foldery';
$labels['messagesfromto'] = 'Wiadomości od $from do $to z $count';
$labels['threadsfromto'] = 'WÄ…tki od $from do $to z $count';
$labels['messagenrof'] = 'Wiadomość $nr z $count';
$labels['fromtoshort'] = '$from - $to z $count';
+
$labels['copy'] = 'Kopiuj';
$labels['move'] = 'PrzenieÅ›';
$labels['moveto'] = 'PrzenieÅ› do...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Pobierz';
$labels['open'] = 'Otwórz';
$labels['showattachment'] = 'Pokaż';
$labels['showanyway'] = 'Pokaż';
+
$labels['filename'] = 'Nazwa pliku';
$labels['filesize'] = 'Rozmiar pliku';
+
$labels['addtoaddressbook'] = 'Dodaj do książki adresowej';
+
+// weekdays short
$labels['sun'] = 'Nd';
$labels['mon'] = 'Pn';
$labels['tue'] = 'Wt';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Åšr';
$labels['thu'] = 'Czw';
$labels['fri'] = 'Pt';
$labels['sat'] = 'Sb';
+
+// weekdays long
$labels['sunday'] = 'Niedziela';
$labels['monday'] = 'Poniedziałek';
$labels['tuesday'] = 'Wtorek';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Åšroda';
$labels['thursday'] = 'Czwartek';
$labels['friday'] = 'PiÄ…tek';
$labels['saturday'] = 'Sobota';
+
+// months short
$labels['jan'] = 'sty';
$labels['feb'] = 'lut';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Wrz';
$labels['oct'] = 'Paź';
$labels['nov'] = 'Lis';
$labels['dec'] = 'Gru';
+
+// months long
$labels['longjan'] = 'styczeń';
$labels['longfeb'] = 'luty';
$labels['longmar'] = 'marzec';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'wrzesień';
$labels['longoct'] = 'październik';
$labels['longnov'] = 'listopad';
$labels['longdec'] = 'grudzień';
+
$labels['today'] = 'Dzisiaj';
+
+// toolbar buttons
$labels['refresh'] = 'Odśwież';
$labels['checkmail'] = 'Sprawdź skrzynkę';
$labels['compose'] = 'Utwórz';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Więcej akcji...';
$labels['more'] = 'Więcej';
$labels['back'] = 'Wstecz';
$labels['options'] = 'Ustawienia';
+
$labels['select'] = 'Zaznacz';
$labels['all'] = 'Wszystkie';
$labels['none'] = 'Brak';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Rozwiń wszystkie';
$labels['expand-unread'] = 'Rozwiń nieprzeczytane';
$labels['collapse-all'] = 'Zwiń wszystkie';
$labels['threaded'] = 'PowÄ…tkowane';
+
$labels['autoexpand_threads'] = 'Rozwijaj wÄ…tki';
$labels['do_expand'] = 'wszystkie';
$labels['expand_only_unread'] = 'tylko nieprzeczytane';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Kolumny';
$labels['listsorting'] = 'PorzÄ…dek sortowania';
$labels['listorder'] = 'Kierunek sortowania';
$labels['listmode'] = 'Typ listy';
+
$labels['folderactions'] = 'Działania na folderach...';
$labels['compact'] = 'PorzÄ…dkuj';
$labels['empty'] = 'Opróżnij';
-$labels['importmessages'] = 'Import wiadomości';
+
$labels['quota'] = 'Użyte miejsce';
$labels['unknown'] = 'nieznane';
$labels['unlimited'] = 'bez limitu';
+
$labels['quicksearch'] = 'Szybkie wyszukiwanie';
$labels['resetsearch'] = 'Wyczyść filtr';
$labels['searchmod'] = 'Parametry wyszukiwania';
$labels['msgtext'] = 'Cała wiadomość';
$labels['body'] = 'Treść';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Nazwa';
+
$labels['openinextwin'] = 'Otwórz w nowym oknie';
$labels['emlsave'] = 'Pobierz (.eml)';
$labels['changeformattext'] = 'Wyświetl w formacie tekstowym';
$labels['changeformathtml'] = 'Wyświetl w formacie HTML';
+
+// message compose
$labels['editasnew'] = 'Edytuj jako nowÄ…';
$labels['send'] = 'Wyślij';
$labels['sendmessage'] = 'Wyślij teraz';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Potwierdzenie odbioru';
$labels['dsn'] = 'Status dostarczenia (DSN)';
$labels['mailreplyintro'] = 'W dniu $date, $sender napisał(a):';
$labels['originalmessage'] = 'Wiadomość oryginalna';
+
$labels['editidents'] = 'Edytuj tożsamości';
$labels['spellcheck'] = 'Pisownia';
$labels['checkspelling'] = 'Sprawdź pisownię';
$labels['resumeediting'] = 'Zakończ sprawdzanie pisowni';
$labels['revertto'] = 'Powróć do';
+
$labels['attach'] = 'Załącz';
$labels['attachments'] = 'Załączniki';
$labels['upload'] = 'Prześlij';
$labels['uploadprogress'] = '$percent ($current z $total)';
$labels['close'] = 'Zamknij';
$labels['messageoptions'] = 'Opcje wiadomości...';
+
$labels['low'] = 'Bardzo niski';
$labels['lowest'] = 'Niski';
$labels['normal'] = 'Normalny';
$labels['high'] = 'Wysoki';
$labels['highest'] = 'Bardzo wysoki';
+
$labels['nosubject'] = '(brak tematu)';
$labels['showimages'] = 'Wyświetl obrazki';
$labels['alwaysshow'] = 'Zawsze wyświetlaj obrazki od $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'To jest kopia robocza wiadomości.';
$labels['andnmore'] = '$nr więcej...';
$labels['togglemoreheaders'] = 'Pokaż więcej nagłówków wiadomości';
$labels['togglefullheaders'] = 'Przełącz podgląd nagłówków wiadomości';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Zwykły tekst';
$labels['savesentmessagein'] = 'Zapisz wiadomość w';
$labels['dontsave'] = 'nie zapisuj';
$labels['maxuploadsize'] = 'Maksymalny rozmiar pliku to $size';
+
$labels['addcc'] = 'Dodaj Cc';
$labels['addbcc'] = 'Dodaj Bcc';
$labels['addreplyto'] = 'Dodaj Reply-To';
$labels['addfollowupto'] = 'Dodaj Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Nadawca zażądał potwierdzenia przeczytania tej wiadomości. Czy chcesz go powiadomić?';
$labels['receiptread'] = 'Potwierdzenie otrzymania';
$labels['yourmessage'] = 'To jest potwierdzenie dostarczenia Twojej wiadomości';
$labels['receiptnote'] = 'Uwaga: To potwierdzenie dostarczenia wiadomości oznacza tylko, że wiadomość została wyświetlona na komputerze adresata. Nie ma żadnej gwarancji, że odbiorca przeczytał czy też zrozumiał treść wiadomości.';
+
+// address boook
$labels['name'] = 'Nazwa';
$labels['firstname'] = 'ImiÄ™';
$labels['surname'] = 'Nazwisko';
@@ -262,6 +301,7 @@ $labels['search'] = 'Szukaj';
$labels['advsearch'] = 'Wyszukiwanie zaawansowane';
$labels['advanced'] = 'Zaawansowane';
$labels['other'] = 'Inne';
+
$labels['typehome'] = 'Dom';
$labels['typework'] = 'Praca';
$labels['typeother'] = 'Inne';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Asystent';
$labels['typehomepage'] = 'Strona domowa';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj pole...';
$labels['addcontact'] = 'Dodaj nowy kontakt do książki adresowej';
$labels['editcontact'] = 'Edytuj kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Właściwości';
$labels['personalinfo'] = 'Informacje osobiste';
+
$labels['edit'] = 'Edytuj';
$labels['cancel'] = 'Anuluj';
$labels['save'] = 'Zapisz';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Zmień nazwę';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Zamień';
$labels['uploadphoto'] = 'Wyślij zdjęcie';
+
$labels['newcontact'] = 'Dodaj nowy kontakt';
$labels['deletecontact'] = 'Usuń zaznaczone kontakty';
$labels['composeto'] = 'Utwórz wiadomość do wybranych kontaktów';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Utwórz nową grupę';
$labels['grouprename'] = 'Zmień nazwę grupy';
$labels['groupdelete'] = 'Usuń grupę';
$labels['groupremoveselected'] = 'Usuń wybrane kontakty z grupy';
+
$labels['previouspage'] = 'Poprzednia strona';
$labels['firstpage'] = 'Pierwsza strona';
$labels['nextpage'] = 'Następna strona';
$labels['lastpage'] = 'Ostatnia strona';
+
$labels['group'] = 'Grupa';
$labels['groups'] = 'Grupy';
-$labels['listgroup'] = 'Członkowie grupy';
$labels['personaladrbook'] = 'Kontakty osobiste';
+
$labels['searchsave'] = 'Zapisz wyszukiwanie';
$labels['searchdelete'] = 'Usuń wyszukiwanie';
+
$labels['import'] = 'Importuj';
$labels['importcontacts'] = 'Import kontaktów';
$labels['importfromfile'] = 'Import z pliku:';
-$labels['importtarget'] = 'Dodaj kontakty do';
+$labels['importtarget'] = 'Dodaj nowe kontakty do książki adresowej:';
$labels['importreplace'] = 'Zastąp całą książkę adresową';
-$labels['importgroups'] = 'Importuj powiÄ…zania z grupami';
-$labels['importgroupsall'] = 'Wszystkie (utwórz grupy jeśli potrzeba)';
-$labels['importgroupsexisting'] = 'Tylko do isniejÄ…cych grup';
$labels['importdesc'] = 'Import kontaktów z isniejącej książki adresowej.<br/>Obecnie obsługiwany jest import w formacie <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> lub CSV (pola oddzielone przecinkiem).';
$labels['done'] = 'Wykonane';
+
+// settings
$labels['settingsfor'] = 'Ustawienia dla';
$labels['about'] = 'O programie';
$labels['preferences'] = 'Preferencje';
$labels['userpreferences'] = 'Preferencje użytkownika';
$labels['editpreferences'] = 'Edytuj preferencje';
+
$labels['identities'] = 'Tożsamości';
$labels['manageidentities'] = 'Zarządzaj tożsamościami';
$labels['newidentity'] = 'Nowa tożsamość';
+
$labels['newitem'] = 'Nowy';
$labels['edititem'] = 'Edytuj';
+
$labels['preferhtml'] = 'Domyślny HTML';
$labels['defaultcharset'] = 'Domyślny zestaw znaków';
$labels['htmlmessage'] = 'Wiadomość HTML';
@@ -362,7 +410,7 @@ $labels['logoutcompact'] = 'Przy wylogowaniu porzÄ…dkuj folder Odebrane';
$labels['uisettings'] = 'Interfejs użytkownika';
$labels['serversettings'] = 'Ustawienia serwera';
$labels['mailboxview'] = 'Widok skrzynki pocztowej';
-$labels['mdnrequests'] = 'Na żądanie potwierdzenia odbioru';
+$labels['mdnrequests'] = 'Na żadanie potwierdzenia odbioru';
$labels['askuser'] = 'pytaj mnie';
$labels['autosend'] = 'wyślij potwierdzenie';
$labels['autosendknown'] = 'wyślij potwierdzenie tylko do moich kontaktów, pytaj o pozostałe';
@@ -389,7 +437,7 @@ $labels['2231folding'] = 'RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'RFC 2047 (przestarzałe)';
$labels['force7bit'] = 'Używaj kodowania MIME dla znaków 8-bitowych';
-$labels['advancedoptions'] = 'Opcje zaawansowane';
+$labels['advancedoptions'] = 'opcje zaawansowane';
$labels['focusonnewmessage'] = 'Informuj przeglądarkę o nowej wiadomości';
$labels['checkallfolders'] = 'Sprawdzaj czy nadeszły nowe wiadomości we wszystkich folderach';
$labels['displaynext'] = 'Po usunięciu/przeniesieniu wiadomości wyświetl następną';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignoruj słowa zawierające cyfry';
$labels['spellcheckignorecaps'] = 'Ignoruj słowa pisane wielkimi literami';
$labels['addtodict'] = 'Dodaj do słownika';
$labels['mailtoprotohandler'] = 'Zainstaluj obsługę linków mailto:';
-$labels['standardwindows'] = 'Traktuj okna wyskakujÄ…ce jako standardowe okna';
$labels['forwardmode'] = 'Przekazywanie wiadomości';
$labels['inline'] = 'w treści';
$labels['asattachment'] = 'jako załącznik';
+
$labels['folder'] = 'Folder';
$labels['folders'] = 'Foldery';
$labels['foldername'] = 'Nazwa folderu';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Typ folderu';
$labels['personalfolder'] = 'Folder prywatny';
$labels['otherfolder'] = 'Folder innego użytkownika';
$labels['sharedfolder'] = 'Folder współdzielony';
+
$labels['sortby'] = 'Sortuj wg';
$labels['sortasc'] = 'RosnÄ…co';
$labels['sortdesc'] = 'MalejÄ…co';
$labels['undo'] = 'Cofnij';
+
$labels['installedplugins'] = 'Zainstalowane wtyczki';
$labels['plugin'] = 'Wtyczka';
$labels['version'] = 'Wersja';
$labels['source'] = 'Źródła';
$labels['license'] = 'Licencja';
$labels['support'] = 'Wsparcie techniczne';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'uniwersalny';
$labels['english'] = 'angielski';
$labels['westerneuropean'] = 'zachodnioeuropejski';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'wietnamski';
$labels['japanese'] = 'japoński';
$labels['korean'] = 'koreański';
$labels['chinese'] = 'chiński';
+
?>
diff --git a/program/localization/pl_PL/messages.inc b/program/localization/pl_PL/messages.inc
index 0ad357b69..fb7ad6c97 100644
--- a/program/localization/pl_PL/messages.inc
+++ b/program/localization/pl_PL/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Wystąpił błąd!';
$messages['loginfailed'] = 'BÅ‚Ä…d logowania!';
$messages['cookiesdisabled'] = 'Twoja przeglądarka nie obsługuje ciasteczek!';
@@ -99,16 +101,13 @@ $messages['converting'] = 'Konwertowanie tekstu...';
$messages['messageopenerror'] = 'Nie można załadować wiadomości z serwera.';
$messages['fileuploaderror'] = 'Załączanie pliku nie powiodło się.';
$messages['filesizeerror'] = 'Plik przekracza maksymalną wielkość $size.';
-$messages['copysuccess'] = 'Pomyślnie skopiowano $nr kontaktów.';
-$messages['movesuccess'] = 'Pomyślnie przeniesiono $nr kontaktów.';
-$messages['copyerror'] = 'Nie udało się skopiować żadnego kontaktu.';
-$messages['moveerror'] = 'Nie udało się przenieść żadnego kontaktu.';
+$messages['copysuccess'] = 'Pomyślnie skopiowano następującą liczbę adresów: $nr.';
+$messages['copyerror'] = 'Nie można skopiować żadnego adresu.';
$messages['sourceisreadonly'] = 'Źródło adresu jest tylko do odczytu.';
$messages['errorsavingcontact'] = 'Nie można było zapisać adresu kontaktu.';
$messages['movingmessage'] = 'Przenoszenie wiadomości...';
$messages['copyingmessage'] = 'Kopiowanie wiadomości...';
$messages['copyingcontact'] = 'Kopiowanie kontaktów...';
-$messages['movingcontact'] = 'Przenoszenie kontaktów...';
$messages['deletingmessage'] = 'Usuwanie wiadomości...';
$messages['markingmessage'] = 'Oznaczanie wiadomości...';
$messages['addingmember'] = 'Dodawanie kontaktów do grupy...';
@@ -127,8 +126,6 @@ $messages['importwait'] = 'Importowanie, proszę czekać...';
$messages['importformaterror'] = 'Import nieudany! Użyty plik nie jest poprawnym plikiem importu danych.';
$messages['importconfirm'] = '<b>Pomyślnie dodano $inserted kontaktów, pominięto $skipped istniejących wpisów</b>:<p><em>$names</em></p>.';
$messages['importconfirmskipped'] = '<b>Pominięto $skipped istniejących wpisów.</b>';
-$messages['importmessagesuccess'] = 'Pomyślnie zaimportowano następującą liczbę wiadomości: $nr';
-$messages['importmessageerror'] = 'Import nieudany! Wgrywany plik nie jest poprawną wiadomością lub plikiem skrzynki pocztowej';
$messages['opnotpermitted'] = 'Niedozwolona operacja!';
$messages['nofromaddress'] = 'Brak adresu e-mail w wybranej tożsamości.';
$messages['editorwarning'] = 'Zmiana edytora spowoduje utratę formatowania tekstu. Czy jesteś pewien, że chcesz to zrobić?';
@@ -168,6 +165,7 @@ $messages['invalidimageformat'] = 'Niepoprawny format obrazka.';
$messages['mispellingsfound'] = 'Wykryto błędy pisowni w tej wiadomości.';
$messages['parentnotwritable'] = 'Nie można utworzyć/przenieść folderu w wybrane miejsce. Brak upranień.';
$messages['messagetoobig'] = 'Ta część wiadomości jest zbyt duża aby ją przetworzyć.';
-$messages['attachmentvalidationerror'] = 'UWAGA! Ten załącznik jest podejrzany ponieważ jego typ nie jest zgodny z typem zadeklarownym w wiadomości. Jeśli nie ufasz temu nadawcy nie powinieneś otwierać go w przeglądarce, gdyż może zawierać złośliwe oprogramowanie.<br/><br/><em>Zadeklarowany: $expected; wykryty: $detected</em>';
+$messages['attachmentvalidationerror'] = 'UWAGA! Ten załącznik jest podejrzany ponieważ jego typ nie jest zgodny z typem zadeklarownym w wiadomości. Jeśli nie ufasz temu nadawcy nie powinieneś otwierać go w przeglądarce, bo może zawierać złośliwe oprogramowanie.<br/><br/><em>Spodziwany: $expected; znaleziono: $detected</em>';
$messages['noscriptwarning'] = 'Uwaga: Usługa wymaga Javascriptu! Aby z niej skorzystać proszę włączyć obsługę języka Javascript w ustawieniach przeglądarki.';
+
?>
diff --git a/program/localization/ps/labels.inc b/program/localization/ps/labels.inc
index 9b4c8d813..262e3d490 100644
--- a/program/localization/ps/labels.inc
+++ b/program/localization/ps/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product ته ښه راغلاست';
$labels['username'] = 'کارن نوم';
$labels['password'] = 'پټنوم';
$labels['server'] = 'برابرونکی';
$labels['login'] = 'ننوتون';
+
+// taskbar
$labels['logout'] = 'وتون';
$labels['mail'] = 'برÛښناليک';
$labels['settings'] = 'Úاني برابرونÛ';
$labels['addressbook'] = 'Ù¾ØªÛ Ú©ØªØ§Ø¨';
+
+// mailbox names
$labels['inbox'] = 'راغلي ليکونه';
$labels['drafts'] = 'بارليک';
$labels['sent'] = 'Ù„ÛÚ–Ù„ شوي ليکونه';
$labels['trash'] = 'کثاÙت دانÛ';
$labels['junk'] = 'جنک';
+
+// message listing
$labels['subject'] = 'مضمون';
$labels['from'] = 'استوونکی';
+$labels['sender'] = 'Sender';
$labels['to'] = 'ترلاسه کوونکی';
$labels['cc'] = 'لمÛسل';
$labels['bcc'] = 'پټليکی';
$labels['replyto'] = 'Úوابول';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Ù†Ûټه';
$labels['size'] = 'Ú©Ú†Ù‡';
$labels['priority'] = 'لومړيتوب';
$labels['organization'] = 'ټولنه';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'پوښÛ';
$labels['messagesfromto'] = 'له ټاکلي استوزو څخه ټاکلي شمÛرل شوو استوزو ته';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'له $nr Úخه استوزو $count استوزو ته';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'لمÛسل';
+$labels['move'] = 'Move';
$labels['moveto'] = 'ته خوÚوي';
$labels['download'] = 'ښکته کول';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Ùايل نوم';
$labels['filesize'] = 'Ùايل Ú©Ú†Ù‡';
+
$labels['addtoaddressbook'] = 'د پتو کتاب ته ÙŠÛ ÙˆØ±Ø²ÙŠØ§Øª کړئ';
+
+// weekdays short
$labels['sun'] = 'يوه Ù†Û';
$labels['mon'] = 'دوه Ù†Û';
$labels['tue'] = 'Ø¯Ø±Û Ù†Û';
@@ -55,6 +81,8 @@ $labels['wed'] = 'څلورنÛ';
$labels['thu'] = 'پنÚÙ†Û';
$labels['fri'] = 'جمعه';
$labels['sat'] = 'Ù†Û';
+
+// weekdays long
$labels['sunday'] = 'يوه Ù†Û';
$labels['monday'] = 'دوه Ù†Û';
$labels['tuesday'] = 'Ø¯Ø±Û Ù†Û';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'منÚÙ†Û';
$labels['thursday'] = 'پنÚÙ†Û';
$labels['friday'] = 'جمعه';
$labels['saturday'] = 'Ù†Û';
+
+// months short
$labels['jan'] = 'حنوري';
$labels['feb'] = 'Ùبروري';
$labels['mar'] = 'مارچ';
@@ -74,6 +104,8 @@ $labels['sep'] = 'سپتمپر';
$labels['oct'] = 'اکتوبر';
$labels['nov'] = 'نومبر';
$labels['dec'] = 'ډسمبر';
+
+// months long
$labels['longjan'] = 'جنوري';
$labels['longfeb'] = 'Ùبروري';
$labels['longmar'] = 'مارچ';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'سپتمبر';
$labels['longoct'] = 'اکتوبر';
$labels['longnov'] = 'نومبر';
$labels['longdec'] = 'ډسمبر';
+
$labels['today'] = 'نن';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'نوي استوزي وګوره';
$labels['compose'] = 'استوزه وليکه';
$labels['writenewmessage'] = 'نوي استوزي جوړول';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'استوونکي ته Úواب ورکړئ';
$labels['replytoallmessage'] = 'استوونکي او ټولو ترلاسه کوونکو ته Úواب Ù„ÛÚ–Ù„';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'استوزه بل ته استول';
$labels['deletemessage'] = 'استوزه ړنګول';
$labels['movemessagetotrash'] = 'استوزه کثاÙت داني ته واستوه';
@@ -102,98 +144,250 @@ $labels['nextmessage'] = 'ÙˆØ±Ù¾Ø³Û Ø§Ø³ØªÙˆØ²Ù‡ وښيه';
$labels['lastmessage'] = 'پای /آخري استوزه وښيه';
$labels['backtolist'] = 'بيرته د استوزو لست ته';
$labels['viewsource'] = 'سرچينه وښيه';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'استوزي په نښه کړئ';
$labels['markread'] = 'لوستل شوي په توګه';
$labels['markunread'] = 'د نالوستل شوي په توګه';
$labels['markflagged'] = 'د بي کاره په توګه';
$labels['markunflagged'] = 'د Ú©Ø§Ø±ÙˆÙ†Û Ù¾Ù‡ توګه';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'ټاکل';
$labels['all'] = 'ټول';
$labels['none'] = 'Ù‡ÛÚ…';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'نالوستي';
$labels['flagged'] = 'Ø¨Û Ú©Ø§Ø±Ù‡';
$labels['unanswered'] = 'ناÚواب شوي';
+$labels['withattachment'] = 'With attachment';
+$labels['deleted'] = 'Deleted';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['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'] = 'Ù‡ÛÚ…';
+$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'] = 'Ú©ÛÚšÚ©Ù„ÛŒ';
$labels['empty'] = 'تش';
+
$labels['quota'] = 'ټيکلي لارښود';
$labels['unknown'] = 'نامعلوم';
$labels['unlimited'] = 'بي کچه';
+
$labels['quicksearch'] = 'ژر پلټنه';
$labels['resetsearch'] = 'د Ù¾Ù„Ù¼Ù†Û Ø¨ÙŠØ§Ø³Ù…ÙˆÙ†';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'په نوي Ú©Ú“Ú©Û Ú©Û Ù¾Ø±Ø§Ù†ÙŠØ²Ù‡';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'اوس ÙŠÛ ÙˆØ§Ø³ØªÙˆÙ‡';
$labels['savemessage'] = 'دا ګارليک خوندي کړه';
$labels['addattachment'] = 'يو Ùايل ونښلوه';
$labels['charset'] = 'چيرست';
$labels['editortype'] = 'د ټايب سمونګر';
$labels['returnreceipt'] = 'د رسليک راګرÚÛدل';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'ليکدود کتنه';
$labels['resumeediting'] = 'Ú©Ø§Ø±Ù…Ø®ÙŠÙ†Û Ø³Ù…ÙˆÙ†Ù‡';
$labels['revertto'] = 'ته بÛرته اړول';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'نښلني';
$labels['upload'] = 'پورته کول';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'بندول';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'ټيټ';
$labels['lowest'] = 'خورا ټيټ';
$labels['normal'] = 'نورمال';
$labels['high'] = 'لوړ';
$labels['highest'] = 'خورا لوړ';
+
$labels['nosubject'] = 'Ù‡ÛÚ… موضوع';
$labels['showimages'] = 'انÚورونه وښيه';
$labels['alwaysshow'] = 'تل له $استوونکي څخه انÚورونه وښيه';
+$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'] = 'ايچ ټی ايمل ال';
$labels['plaintoggle'] = 'ساده متن';
$labels['savesentmessagein'] = 'استول شوي استوزه په خوندي کړه';
$labels['dontsave'] = 'مه ساته';
$labels['maxuploadsize'] = 'لږترلږه د اجازه شوي Ùايل Ú©Ú†Ù‡ $وي';
+
$labels['addcc'] = 'څرګندليک';
$labels['addbcc'] = 'پټليک';
$labels['addreplyto'] = 'ته ورزيات کړه';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Ø¯Ø¯Û Ø§Ø³ØªÙˆØ²ÙŠ استوونکی پوښتي Ú†Ûد استوزي لوستلو سره سم ØªØ§Ø³Û Ø®Ø¨Ø± Ú©Ú“ÙŠØŒ. غواړئ Ú†Û Ø§Ø³ØªÙˆÙˆÙ†Ú©ÛŒ خبرشي؟';
$labels['receiptread'] = 'رسليک راګرÚÛدل (لوستل';
$labels['yourmessage'] = 'دا رسليک راګرÚÛدل Ø³ØªØ§Ø³Û Ø§Ø³ØªÙˆØ²ÙŠ لپاره دی';
$labels['receiptnote'] = 'يادونه: دا رسليک ØªØ§Ø³Û ØªÙ‡ ÙŠÙˆØ§Ø²Û Ø¯Ø¯Û Ø®Ø¨Ø±ØªÙŠØ§ درکوي Ú†Û Ú©Ù„Ù‡ استوزی د ترلاسه کوونکي په کمپيوټر Ú©Û Ú…Ø±Ú«Ù†Ø¯ شي، Ø¯Ø¯Û Ù‡ÙŠÚ… ډاډګيرنه نشته Ú†Û ØªØ±Ù„Ø§Ø³Ù‡ کوونکي د استوزي متن لوستی او يا Ù¾Ø±Û Ù¾ÙˆÙ‡ شوی دی';
+
+// address boook
$labels['name'] = 'نوم ښوونه';
$labels['firstname'] = 'نوم';
$labels['surname'] = 'کورنی نوم';
+$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'] = 'برÛښناليک';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'نوی اړيکلوری ورزيات کړه';
$labels['editcontact'] = 'اړيکلوري سمون';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'سمون';
$labels['cancel'] = 'لري کول';
$labels['save'] = 'ساتل';
$labels['delete'] = 'ړنګول';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'نوي اړيکلوري کارټ جوړ کړه';
$labels['deletecontact'] = 'ټاکل شوي اړيکلوري ړنګ کړه';
$labels['composeto'] = 'ته ليک وليکه';
$labels['contactsfromto'] = 'له دومره اړيکلورو څخه دومره شمÛرل شوي Contacts $from to $to of $count';
$labels['print'] = 'چاپ';
$labels['export'] = 'بهرول';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'اړيکلوري د ويکارډ په بڼه واستوئ';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'پخوانی غونډ وښيه';
$labels['firstpage'] = 'لومړی غونډ وښيه';
$labels['nextpage'] = 'ÙˆØ±Ù¾Ø³Û ØºÙˆÙ†Ú‰ وښيه';
$labels['lastpage'] = 'پای غونډ وښيه';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Ú‰Ù„Û';
$labels['personaladrbook'] = 'Úاني پتÛ';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'رانقلول';
$labels['importcontacts'] = 'اړيکلوري نقل کړئ';
$labels['importfromfile'] = 'له Ùايل څخه رانقل کړئ';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'ټول ادرس کتاب بدل کړئ';
+$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'] = 'ترسره شو';
+
+// settings
$labels['settingsfor'] = 'لپاره برابرونÛ';
+$labels['about'] = 'About';
$labels['preferences'] = 'غورونÛ';
$labels['userpreferences'] = 'کارن غورونÛ';
$labels['editpreferences'] = 'د کارن غورونو سمون';
+
$labels['identities'] = 'Ù¾ÛژندنÛ';
$labels['manageidentities'] = 'Ø¯Ø¯Û Ø­Ø³Ø§Ø¨ Ù¾Ûژندنو برابرول';
$labels['newidentity'] = 'نوي Ù¾Ûژندنه';
+
$labels['newitem'] = 'نوی توک';
$labels['edititem'] = 'توک سمون';
+
$labels['preferhtml'] = 'ايچ ټي ام ايل ښوون';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'ايچ ټي ام ايل استوزه';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'په زړه Ù¾ÙˆØ±Û Ù†ÛÙ¼Û';
$labels['setdefault'] = 'تلوالي برابرول';
$labels['autodetect'] = 'په خپلواکه توګه';
@@ -202,8 +396,13 @@ $labels['timezone'] = 'سيميز وخت';
$labels['pagesize'] = 'په هر مخ Ù¾Ø±ØªÛ Ú©ÚšÛ';
$labels['signature'] = 'لاسليک';
$labels['dstactive'] = 'ورÚنيو کارونو لنډيز ساتل';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'ايچ ټي‌ام ايل استوزي وليکه';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'ايچ ټي ام ايل لاسليک';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'پخوانی چوکاټ وښييه';
$labels['skin'] = 'انټرÙيس بڼه';
$labels['logoutclear'] = 'کثاÙت داني د ÙˆØªÙ†Û Ù¾Ù‡ وخت Ú©Û Ù¾Ø§Ú©Ù‡ Ú©Ú“Ù‡';
@@ -214,26 +413,69 @@ $labels['mailboxview'] = 'ليکبکس ښکار کړه';
$labels['mdnrequests'] = 'د استوونکي خبرتياوÛ';
$labels['askuser'] = 'له کاروونکي څخه وپوښته';
$labels['autosend'] = 'په خپلواکه توګه واستوه';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'Ù„Ø±Û Ú©Ú“Ù‡';
$labels['readwhendeleted'] = 'په Ú“Ù†Ú« شوو Ú©Û Ø§Ø³ØªÙˆØ²ÙŠ د لوستل شوي په توګه په Ù†ÚšÙ‡ Ú©Ú“Ù‡';
$labels['flagfordeletion'] = 'استوزه د Ú“Ù†Ú« شوي پرÚای بÛکاره Ú©Ú“Ù‡';
$labels['skipdeleted'] = 'ړنګ شوي استوزي مه ښکاره کوه';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'انÚورونه له لري په ليکه Ú©Û ÚšÚ©Ø§Ø±Ù‡ Ú©Ú“Ù‡';
$labels['fromknownsenders'] = 'له اشنا استوونکو څخه';
$labels['always'] = 'تل';
$labels['showinlineimages'] = 'نښلول شوي انÚورونه تر Ø§Ø³ØªÙˆØ²Û Ù„Ø§Ù†Ø¯Û ÚšÚ©Ø§Ø±Ù‡ Ú©Ú“Ù‡';
$labels['autosavedraft'] = 'بارليک په خپل سري توګه خوندي‌کړه';
$labels['everynminutes'] = 'هر Ù‡ Ú«Ú¼Ù‡ په دقيقو Ú©Û';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'Ù‡ÛÚ…';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'استوزي ښيي';
$labels['messagescomposition'] = 'استوزي ليکي';
$labels['mimeparamfolding'] = 'د نښلول شوو نومونه';
$labels['2231folding'] = 'بشپړ RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (نور)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'پرمختللي لارÛ';
$labels['focusonnewmessage'] = 'Ùوکاس براوسر Ú©Ú“Ú©Û Ù¾Ù‡ نوي استوزي Ú©Û';
$labels['checkallfolders'] = 'په ټولو پوښيو Ú©Û Ù†ÙˆÙŠ استوزي وګورئ';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'پوښÛ';
$labels['folders'] = 'پوښÛ';
$labels['foldername'] = 'Ù¾ÙˆÚšÛ Ù†ÙˆÙ…';
@@ -243,11 +485,54 @@ $labels['create'] = 'جوړول، Ø±Ø§Ù…Ù†Ú ØªÙ‡ کول';
$labels['createfolder'] = 'Ù†ÙˆÛ Ù¾ÙˆÚšÛ Ø¬ÙˆÚ“ Ú©Ú“Ù‡';
$labels['managefolders'] = 'پوښيو څارل';
$labels['specialfolders'] = 'Úانګړي پوښÛÛ';
+$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'] = 'اڼل';
$labels['sortasc'] = 'له پورته نه ښکته خوا ته برابرول';
$labels['sortdesc'] = 'له ښکته نه پورته خوا ته برابرول';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'بي';
$labels['KB'] = 'کي بي';
$labels['MB'] = 'ام بي';
$labels['GB'] = 'جي بي';
+
+// character sets
+$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/ps/messages.inc b/program/localization/ps/messages.inc
index a900d328f..d3a8483ee 100644
--- a/program/localization/ps/messages.inc
+++ b/program/localization/ps/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'ننوتنه په بري سره ترسره نه شوه';
$messages['cookiesdisabled'] = 'ستاسو لټوني ککوړي ونه منل';
$messages['sessionerror'] = 'Ø³ØªØ§Ø³Û Ù†Ø§Ø³ØªÙ‡ ناباوري يا له مينÚÙ‡ ØªÙ„Ù„Û Ø¯Ù‡';
$messages['storageerror'] = 'له ای ميپ سرور سره پيوستون په بري سره ترسره نه شو';
+$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'] = 'ليکبکس Ú©Û Ù‡ÛÚ… استوزي ونه مونده';
$messages['loggedout'] = 'ØªØ§Ø³Û Ù„Ù‡ Ù†Ø§Ø³ØªÛ Ú…Ø®Ù‡ په بشپړه توګه وويستل شوئ الله په امان';
$messages['mailboxempty'] = 'ليکبکس تش دی';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'د کار په حال Ú©Û';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'اومتوک د کار په حال Ú©Û';
$messages['checkingmail'] = 'نوي استوزي ګوري';
$messages['sendingmessage'] = 'استوزه استوي.';
@@ -32,20 +48,31 @@ $messages['messagesaved'] = 'استوزه په بارليک Ú©Û Ø®ÙˆÙ†Ø¯ÙŠ شو
$messages['successfullysaved'] = 'په بري‌سره خوندي شوه';
$messages['addedsuccessfully'] = 'اړيکلوری په بري سره Ù¾ØªÛ Ú©ØªØ§Ø¨ ته ور زيات شو';
$messages['contactexists'] = 'يو اړيکلوری له Ø¯Û Ø¨Ø±Ûښناليک Ù¾ØªÛ Ø³Ø±Ù‡ شتون لري';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'ستاسو د پټتيآ خوندي Ú©Ûدو لپاره ØŒ له لري انÚورنه په Ø¯Û Ø§Ø³ØªÙˆØ²ÙŠâ€ŒÚ©Û Ø¨Ù†Ø¯ کړئ';
$messages['encryptedmessage'] = 'دا يوه پټه استوزه ده او نه څرګندÛÚ–ÙŠ. بښنه غواړو';
$messages['nocontactsfound'] = 'Ù‡ÛÚ… اړيکلوری ÙŠÛ ÙˆÙ†Ù‡ موند';
$messages['contactnotfound'] = 'وړاندی شوی اړيکلوری ونه مونده';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'استوزي استونه په بري سره پای ته ونه رسÛده';
$messages['senttooquickly'] = 'مهرباني وکړئ $صبر وکړئ د Ø¯Û Ø§Ø³ØªÙˆØ²Û Ù„Ù‡ Ù„Ûږلو مخکÛ';
+$messages['errorsavingsent'] = 'دخوندي کولو او Ù„Ûږلو پر مهال يوه تيروتنه Ø±Ø§Ù…Ù†Ú ØªÙ‡ شوه';
+$messages['errorsaving'] = 'دخوندي کولو پر مهال يوه تيروتنه Ø±Ø§Ù…Ù†Ú ØªÙ‡ شوه';
$messages['errormoving'] = 'استوزه ونه خوÚول شوه';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'استوزه ړنګه نه شوه';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ù¼Ø§Ú©Ù„ شوی اړيکلوری Ú“Ù†Ú« کړئ؟';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ù¼Ø§Ú©Ù„ شوي استوزي‌ړنګ کړئ؟';
$messages['deletefolderconfirm'] = 'په رښتيآ سره غواړئ Ú†Û Ø¯Ø§ Ù¾ÙˆÚšÛ Ú“Ù†Ú«Ù‡ کړئ؟';
$messages['purgefolderconfirm'] = 'په رښتيا سره غواړئ Ú†Û Ø¯Ø¯Û Ù¾ÙˆÚšÛ Ù¼ÙˆÙ„ استوزي‌ړنګ کړئ؟';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'Ù¾ÙˆÚšÛ Ú“Ù†Ú«ÙˆÙŠ';
$messages['foldermoving'] = 'Ù¾ÙˆÚšÛ Ø®ÙˆÚوي';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'دا پورمه بشپړه Ú‰Ú©Ù‡ Ø´ÙˆÛ Ù†Ù‡ ده';
$messages['noemailwarning'] = 'مهرباني وکړئ د يوه شته برÛښناليک پته ورÚای کړئ';
$messages['nonamewarning'] = 'مهرباني‌وکړئ يو نوم وليکئ';
@@ -57,29 +84,88 @@ $messages['nobodywarning'] = 'دا استوزه پرته له متن څخه اس
$messages['notsentwarning'] = 'استوزه نه ده Ù„ÛÚ–Ù„ شوÛ. غواړئ Ú†Û Ø§Ø³ØªÙˆØ²Ù‡ مو Ù„Ø±Û ÙˆØºÙˆØ±Úوئ';
$messages['noldapserver'] = 'مهرباني وکړئ يو ال ډپ سرور د پلټلو لپاره وټاکئ';
$messages['nosearchname'] = 'مهرباني وکړئ د يو اړيکلوري‌نوم يا برÛښناليک پته وليکئ';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'استوزي ومونده$';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'د پلټلو بيا راګرÚÛدل Ù‡ÛÚ… سمون ونه خوړه';
$messages['searching'] = 'پلټي';
$messages['checking'] = 'ګوري';
$messages['nospellerrors'] = 'Ù‡ÛÚ… ليکدودي‌تيروتنه ونه مونده';
$messages['folderdeleted'] = 'Ù¾ÙˆÚšÛ Ù¾Ù‡ بشپړه توګه Ú“Ù†Ú«Ù‡ شوه';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'په بشپړه توګه ړنګ شول';
$messages['converting'] = 'له استوزي څخه Ø¨Ú¼Û Ú“Ù†Ú«ÛÚ–ÙŠ';
$messages['messageopenerror'] = 'له سرور څخه استوزي پرمخ نه شي تلی';
$messages['fileuploaderror'] = 'دÙايل پورته کول په بري سره سرته ونه رسيده';
$messages['filesizeerror'] = 'د پورته شوي Ùايل Ú©Ú†Ù‡ بايد لږترلږه له $څخه تيری ونه Ú©Ú“ÙŠ';
+$messages['copysuccess'] = 'په بشپړه توګه $Ù¾ØªÛ Ú©Ø§Ù¾ÙŠ شوÛ';
+$messages['copyerror'] = 'Ù‡ÛÚ… يوه پته ÙŠÛ Ú©Ø§Ù¾ÙŠâ€ŒÙ†Ù‡ شوای کړای';
$messages['sourceisreadonly'] = 'Ø¯Ø¯Û Ù¾ØªÛ ÙŠÙˆØ§Ø²Û Ø³Ø±Ú†ÙŠÙ†Ù‡ لوستل Ú©ÛÚ–ÙŠ';
$messages['errorsavingcontact'] = 'د Ù¾ØªÛ Ø§Ú“ÙŠÚ©Ù„ÙˆØ±ÛŒ ÙŠÛ Ø®ÙˆÙ†Ø¯ÙŠâ€ŒÙ†Ù‡ شو کړای';
$messages['movingmessage'] = 'استوزه خوÚوي';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'يو لوستل شوی رسليک په بشپړه توګه واستول شو';
$messages['errorsendingreceipt'] = 'رسليک ÙŠÛ ÙˆÙ†Ù‡ شوای ليږلی';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'ØªØ§Ø³Û Ù†Ù‡ شئ کولی Ú†Û Ø¯Ø§ Ù¾Ûژندنه Ú“Ù†Ú«Ù‡ کړئ، داستاسو اخرنی پيژندنه ده';
$messages['forbiddencharacter'] = 'د Ù¾ÙˆÚšÛ Ù†ÙˆÙ… له Ùوربايډن تورو څخه جوړ دی';
$messages['selectimportfile'] = 'مهرباني وکړئ‌يو Ùايل د پورته کولو لپاره وټاکئ';
$messages['addresswriterror'] = 'ټاکل شوی Ù¾ØªÛ Ú©ØªØ§Ø¨ د بياليکلو نه دی';
+$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'] = 'نقلوي...صبر وکړئ';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>په بشپړه توګه نقل شو $اړيکلوري داخل شول, $شته تيرشوي انټاير څخه تيرشول</b>:<p><em>$نومونه</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'چار اجازه نه لري';
$messages['nofromaddress'] = 'په ټاکل شوي پيژندنه Ú©Û Ø¨Ø±Ûښناليک Ù¾ØªÛ Ù„Ù‡ لاسه ورکړي';
$messages['editorwarning'] = 'Ú©Ù‡ د متن بڼو له منÚÙ‡ تللو ګواښ وي نو د متن سمون پرانيزئ. غواړئ Ú†Û Ø¯ÙˆØ§Ù… ورکړئ';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/pt_BR/labels.inc b/program/localization/pt_BR/labels.inc
index e42b1ce95..9a1946eee 100644
--- a/program/localization/pt_BR/labels.inc
+++ b/program/localization/pt_BR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bem-vindo ao $product';
$labels['username'] = 'Usuário';
$labels['password'] = 'Senha';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Sair';
$labels['mail'] = 'E-mail';
$labels['settings'] = 'Configurações';
$labels['addressbook'] = 'Catálogo de endereços';
+
+// mailbox names
$labels['inbox'] = 'Caixa de entrada';
$labels['drafts'] = 'Rascunhos';
$labels['sent'] = 'Enviados';
$labels['trash'] = 'Lixeira';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Exibir o nome real das pastas de sistema';
+
+// message listing
$labels['subject'] = 'Assunto';
$labels['from'] = 'De';
$labels['sender'] = 'Remetente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridade';
$labels['organization'] = 'Organização';
$labels['readstatus'] = 'Status de leitura';
$labels['listoptions'] = 'Lista de opções...';
+
$labels['mailboxlist'] = 'Pastas';
$labels['messagesfromto'] = 'Mensagens $from - $to de $count';
$labels['threadsfromto'] = 'Tópicos $from - $to de $count';
$labels['messagenrof'] = 'Mensagem $nr de $count';
$labels['fromtoshort'] = '$from - $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'Mover para...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Baixar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Exibir';
$labels['showanyway'] = 'Exibir mesmo assim';
+
$labels['filename'] = 'Nome do arquivo';
$labels['filesize'] = 'Tamanho';
+
$labels['addtoaddressbook'] = 'Incluir no catálogo de endereços';
+
+// weekdays short
$labels['sun'] = 'Dom.';
$labels['mon'] = 'Seg.';
$labels['tue'] = 'Ter.';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Qua.';
$labels['thu'] = 'Qui.';
$labels['fri'] = 'Sex.';
$labels['sat'] = 'Sáb.';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Segunda-feira';
$labels['tuesday'] = 'Terça-feira';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Quarta-feira';
$labels['thursday'] = 'Quinta-feira';
$labels['friday'] = 'Sexta-feira';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Jan.';
$labels['feb'] = 'Fev.';
$labels['mar'] = 'Mar.';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set.';
$labels['oct'] = 'Out.';
$labels['nov'] = 'Nov.';
$labels['dec'] = 'Dez.';
+
+// months long
$labels['longjan'] = 'Janeiro';
$labels['longfeb'] = 'Fevereiro';
$labels['longmar'] = 'Março';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Setembro';
$labels['longoct'] = 'Outubro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Dezembro';
+
$labels['today'] = 'Hoje';
+
+// toolbar buttons
$labels['refresh'] = 'Atualizar';
$labels['checkmail'] = 'Verificar se há novas mensagens';
$labels['compose'] = 'Criar email';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mais ações...';
$labels['more'] = 'Mais';
$labels['back'] = 'Voltar';
$labels['options'] = 'Opções';
+
$labels['select'] = 'Selecionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Nenhuma';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir Tudo';
$labels['expand-unread'] = 'Expandir Não Lidas';
$labels['collapse-all'] = 'Recolher Tudo';
$labels['threaded'] = 'Agrupado';
+
$labels['autoexpand_threads'] = 'Expandir mensagens agrupadas';
$labels['do_expand'] = 'todos os grupos';
$labels['expand_only_unread'] = 'somente com mensagem(s) não lidas';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Lista de colunas';
$labels['listsorting'] = 'Coluna para ordenação';
$labels['listorder'] = 'Ordem da classificação';
$labels['listmode'] = 'Visualização em lista';
+
$labels['folderactions'] = 'Ações para as pastas...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Esvaziar';
-$labels['importmessages'] = 'Importar mensagens';
+
$labels['quota'] = 'Uso de disco';
$labels['unknown'] = 'desconhecido';
$labels['unlimited'] = 'ilimitado';
+
$labels['quicksearch'] = 'Pesquisa rápida';
$labels['resetsearch'] = 'Limpar pesquisa';
$labels['searchmod'] = 'Opções da pesquisa';
$labels['msgtext'] = 'Mensagem inteira';
$labels['body'] = 'Conteúdo';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nome';
+
$labels['openinextwin'] = 'Abrir em nova janela';
$labels['emlsave'] = 'Baixar (formato .eml)';
$labels['changeformattext'] = 'Exibir em formato de texto simples';
$labels['changeformathtml'] = 'Exibir com formatação HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como novo';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar agora';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Confirmação de recebimento';
$labels['dsn'] = 'Recibo de entrega';
$labels['mailreplyintro'] = 'Em $date, $sender escreveu:';
$labels['originalmessage'] = 'Mensagem original';
+
$labels['editidents'] = 'Editar identidades';
$labels['spellcheck'] = 'Revisar';
$labels['checkspelling'] = 'Verificar ortografia';
$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
-$labels['responses'] = 'Respostas';
-$labels['insertresponse'] = 'Inserir uma resposta';
-$labels['manageresponses'] = 'Gerenciar respostas';
-$labels['savenewresponse'] = 'Salvar nova resposta';
-$labels['editresponses'] = 'Editar respostas';
-$labels['editresponse'] = 'Editar resposta';
-$labels['responsename'] = 'Nome';
-$labels['responsetext'] = 'Texto da resposta';
+
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Anexos';
$labels['upload'] = 'Enviar arquivo';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Fechar';
$labels['messageoptions'] = 'Opções da mensagem...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'Mais baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'Mais alta';
+
$labels['nosubject'] = '(sem assunto)';
$labels['showimages'] = 'Exibir imagens';
$labels['alwaysshow'] = 'Sempre exibir imagens de $sender';
@@ -223,20 +248,26 @@ $labels['isdraft'] = 'Esta é uma mensagem salva como rascunho.';
$labels['andnmore'] = '$nr mais...';
$labels['togglemoreheaders'] = 'Exibir informações adicionais da mensagem (cabeçalhos)';
$labels['togglefullheaders'] = 'Exibir cabeçalho original da mensagem';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto simples';
$labels['savesentmessagein'] = 'Salvar mensagens enviadas em';
$labels['dontsave'] = 'não salvar';
$labels['maxuploadsize'] = 'Tamanho máximo permitido do arquivo é $size';
+
$labels['addcc'] = 'Adicionar Cópia';
$labels['addbcc'] = 'Adicionar Cópia Oculta';
$labels['addreplyto'] = 'Adicionar Endereço de Resposta';
$labels['addfollowupto'] = 'Adicionar Endereço de Encaminhamento';
+
+// mdn
$labels['mdnrequest'] = 'O remetente desta mensagem deseja ser notificado quando você ler esta mensagem. Você permite o envio desta notificação?';
$labels['receiptread'] = 'Confirmação de Leitura (exibida)';
$labels['yourmessage'] = 'Esta é uma confirmação de leitura da sua mensagem';
$labels['receiptnote'] = 'Nota: Esta confirmação de leitura somente informa que a mensagem foi aberta no computador do destinatário. Não há garantia que o destinatário tenha lido ou compreendido o conteúdo da mensagem.';
-$labels['name'] = 'Nome';
+
+// address boook
+$labels['name'] = 'Nome de exibição';
$labels['firstname'] = 'Primeiro Nome';
$labels['surname'] = 'Sobrenome';
$labels['middlename'] = 'Segundo Nome';
@@ -270,6 +301,7 @@ $labels['search'] = 'Pesquisar';
$labels['advsearch'] = 'Pesquisa Avançada';
$labels['advanced'] = 'Avançado';
$labels['other'] = 'Outro';
+
$labels['typehome'] = 'Residencial';
$labels['typework'] = 'Trabalho';
$labels['typeother'] = 'Outro';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Página pessoal';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Adicionar campo...';
$labels['addcontact'] = 'Adicionar novo contato';
$labels['editcontact'] = 'Editar contato';
$labels['contacts'] = 'Contatos';
$labels['contactproperties'] = 'Propriedades do contato';
$labels['personalinfo'] = 'Informações pessoais';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Salvar';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Renomear';
$labels['addphoto'] = 'Adicionar';
$labels['replacephoto'] = 'Substituir';
$labels['uploadphoto'] = 'Enviar foto';
+
$labels['newcontact'] = 'Criar novo contato';
$labels['deletecontact'] = 'Exclui os contatos selecionados';
$labels['composeto'] = 'Compor mensagem para';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Criar novo grupo de contatos';
$labels['grouprename'] = 'Renomear grupo';
$labels['groupdelete'] = 'Excluir grupo';
$labels['groupremoveselected'] = 'Remover os contatos selecionados do grupo';
+
$labels['previouspage'] = 'Página Anterior';
$labels['firstpage'] = 'Primeira Página';
$labels['nextpage'] = 'Próxima Página';
$labels['lastpage'] = 'Última Página';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Listar membros do grupo';
$labels['personaladrbook'] = 'Endereços pessoais';
+
$labels['searchsave'] = 'Salvar pesquisa';
$labels['searchdelete'] = 'Excluir pesquisa';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importar contatos';
$labels['importfromfile'] = 'Importar do arquivo:';
-$labels['importtarget'] = 'Adicionar contatos para';
+$labels['importtarget'] = 'Adicionar novos contatos ao catálogo de endereços:';
$labels['importreplace'] = 'Substituir o catálogo de endereços atual';
-$labels['importgroups'] = 'Importar atribuições do grupo';
-$labels['importgroupsall'] = 'Todos (criar grupo se necessário)';
-$labels['importgroupsexisting'] = 'Somente para grupos existentes';
$labels['importdesc'] = 'Você pode enviar contatos de um catálogo de endereços existente.<br/>Os contatos devem ser enviados no formato <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por vírgula).';
$labels['done'] = 'Concluído';
+
+// settings
$labels['settingsfor'] = 'Configurações para';
$labels['about'] = 'Sobre';
$labels['preferences'] = 'Preferências';
$labels['userpreferences'] = 'Preferências do usuário';
$labels['editpreferences'] = 'Editar preferências do usuário';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gerenciar identidades desta conta';
$labels['newidentity'] = 'Nova identidade';
+
$labels['newitem'] = 'Novo item';
$labels['edititem'] = 'Editar item';
+
$labels['preferhtml'] = 'Exibir em HTML';
$labels['defaultcharset'] = 'Conjunto padrão de caracteres';
$labels['htmlmessage'] = 'Mensagem HTML';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar palavras com números';
$labels['spellcheckignorecaps'] = 'Ignorar palavras com todas letras maiúsculas';
$labels['addtodict'] = 'Adicionar ao dicionário';
$labels['mailtoprotohandler'] = 'Associar links de e-mail (mailto:) para envio de mensagem através do webmail';
-$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['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
@@ -444,7 +484,7 @@ $labels['messagecount'] = 'Mensagens';
$labels['create'] = 'Criar';
$labels['createfolder'] = 'Criar nova pasta';
$labels['managefolders'] = 'Gerenciar pastas';
-$labels['specialfolders'] = 'Pastas de sistema';
+$labels['specialfolders'] = 'Pastas especiais';
$labels['properties'] = 'Propriedades';
$labels['folderproperties'] = 'Propriedades da pasta';
$labels['parentfolder'] = 'Pasta pai';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Tipo de Pasta';
$labels['personalfolder'] = 'Pasta Particular';
$labels['otherfolder'] = 'Pasta de outro Usuário';
$labels['sharedfolder'] = 'Pasta Pública';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Ascendente';
$labels['sortdesc'] = 'Descendente';
$labels['undo'] = 'Desfazer';
+
$labels['installedplugins'] = 'Plugins instalados';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versão';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licença';
$labels['support'] = 'Obter suporte';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglês';
$labels['westerneuropean'] = 'Oeste Europeu';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonês';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinês';
+
?>
diff --git a/program/localization/pt_BR/messages.inc b/program/localization/pt_BR/messages.inc
index 823dad22e..6ec481b8f 100644
--- a/program/localization/pt_BR/messages.inc
+++ b/program/localization/pt_BR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ocorreu um erro!';
$messages['loginfailed'] = 'Falha no login';
$messages['cookiesdisabled'] = 'Seu navegador não aceita cookies';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Mensagem enviada com sucesso';
$messages['savingmessage'] = 'Salvando Mensagem...';
$messages['messagesaved'] = 'Mensagem salva em Rascunhos';
$messages['successfullysaved'] = 'Salvo com sucesso';
-$messages['savingresponse'] = 'Salvando texto de resposta...';
-$messages['deleteresponseconfirm'] = 'Você realmente deseja apagar este texto de resposta?';
$messages['addedsuccessfully'] = 'Contato incluído com sucesso no catálogo de endereços.';
$messages['contactexists'] = 'Já existe um contato com esse mesmo e-mail.';
$messages['contactnameexists'] = 'Já existe um contato com o mesmo nome.';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Removendo formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem do servidor';
$messages['fileuploaderror'] = 'Falha ao enviar o arquivo';
$messages['filesizeerror'] = 'O arquivo enviado excede o tamanho máximo de $size';
-$messages['copysuccess'] = '$nr contato(s) copiado(s) com sucesso.';
-$messages['movesuccess'] = '$nr contato(s) movido(s) com sucesso.';
-$messages['copyerror'] = 'Não foi possível copiar os contatos.';
-$messages['moveerror'] = 'Não foi possível mover os contatos.';
+$messages['copysuccess'] = '$nr endereço(s) copiado(s) com sucesso';
+$messages['copyerror'] = 'Não foi possível copiar os endereços';
$messages['sourceisreadonly'] = 'Esta fonte de endereço é somente leitura';
$messages['errorsavingcontact'] = 'Não foi possível salvar o endereço de contato';
$messages['movingmessage'] = 'Movendo mensagem(ns)...';
$messages['copyingmessage'] = 'Copiando mensagem(ns)...';
$messages['copyingcontact'] = 'Copiando contato(s)...';
-$messages['movingcontact'] = 'Movendo contato(s)...';
$messages['deletingmessage'] = 'Excluindo mensagem(ns)...';
$messages['markingmessage'] = 'Marcando mensagem(ns)...';
$messages['addingmember'] = 'Adicionando contato(s) para o grupo...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Importando, aguarde por favor...';
$messages['importformaterror'] = 'Falha na importação! O arquivo enviado não está em um formato válido.';
$messages['importconfirm'] = '<b>Foram importados com sucesso $inserted contatos</b>';
$messages['importconfirmskipped'] = '<b>Ignorado(s) $skipped registro(s) já existente(s)</b>';
-$messages['importmessagesuccess'] = 'Importação de $nr mensagens com sucesso';
-$messages['importmessageerror'] = 'Falha na importação! O arquivo enviado não é uma mensagem ou caixa postal válida';
$messages['opnotpermitted'] = 'Operação não permitida!';
$messages['nofromaddress'] = 'Falta o e-mail na identidade selecionada.';
$messages['editorwarning'] = 'Mudar para o editor de texto simples elimina toda a formatação de texto. Deseja continuar?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Sem permissão para criar/mover a pasta dentro
$messages['messagetoobig'] = 'A mensagem é muito grande para ser processada.';
$messages['attachmentvalidationerror'] = 'ATENÇÃO! Este anexo é suspeito porque seu tipo não combina com o tipo declarado na mensagem. Se você não confia no remetente, não deveria abri-lo no navegador porque pode conter conteúdo malicioso.<br/><br/><em>Esperado: $expected; encontrado: $detected</em>';
$messages['noscriptwarning'] = 'Aviso: Este webmail utiliza Javascript, habilite-o nas configurações de seu navegador.';
+
?>
diff --git a/program/localization/pt_PT/labels.inc b/program/localization/pt_PT/labels.inc
index b6db8a41e..316255e5e 100644
--- a/program/localization/pt_PT/labels.inc
+++ b/program/localization/pt_PT/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bem-vindo ao $product';
$labels['username'] = 'Utilizador';
$labels['password'] = 'Palavra-passe';
$labels['server'] = 'Servidor';
$labels['login'] = 'Entrar';
+
+// taskbar
$labels['logout'] = 'Sair';
$labels['mail'] = 'Mensagens';
$labels['settings'] = 'Definições';
$labels['addressbook'] = 'Contactos';
+
+// mailbox names
$labels['inbox'] = 'A Receber';
$labels['drafts'] = 'Rascunhos';
$labels['sent'] = 'Itens Enviados';
$labels['trash'] = 'Reciclagem';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Mostrar nomes reais para as pastas especiais';
+
+// message listing
$labels['subject'] = 'Assunto';
$labels['from'] = 'Remetente';
$labels['sender'] = 'Remetente';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioridade';
$labels['organization'] = 'Organização';
$labels['readstatus'] = 'Estado de leitura';
$labels['listoptions'] = 'Lista de opções...';
+
$labels['mailboxlist'] = 'Pastas';
$labels['messagesfromto'] = 'Mensagens de $from a $to de $count';
$labels['threadsfromto'] = 'Tópicos de $from a $to de $count';
$labels['messagenrof'] = 'Mensagem $nr de $count';
$labels['fromtoshort'] = '$from – $to de $count';
+
$labels['copy'] = 'Copiar';
$labels['move'] = 'Mover';
$labels['moveto'] = 'mover para...';
@@ -56,9 +67,13 @@ $labels['download'] = 'descarregar';
$labels['open'] = 'Abrir';
$labels['showattachment'] = 'Mostrar';
$labels['showanyway'] = 'Mostrar na mesma';
+
$labels['filename'] = 'Ficheiro';
$labels['filesize'] = 'Tamanho';
+
$labels['addtoaddressbook'] = 'Adicionar à lista de contactos';
+
+// weekdays short
$labels['sun'] = 'Dom';
$labels['mon'] = 'Seg';
$labels['tue'] = 'Ter';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Qua';
$labels['thu'] = 'Qui';
$labels['fri'] = 'Sex';
$labels['sat'] = 'Sáb';
+
+// weekdays long
$labels['sunday'] = 'Domingo';
$labels['monday'] = 'Segunda-feira';
$labels['tuesday'] = 'Terça-feira';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Quarta-feira';
$labels['thursday'] = 'Quinta-feira';
$labels['friday'] = 'Sexta-feira';
$labels['saturday'] = 'Sábado';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Fev';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Set';
$labels['oct'] = 'Out';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dez';
+
+// months long
$labels['longjan'] = 'Janeiro';
$labels['longfeb'] = 'Fevereiro';
$labels['longmar'] = 'Março';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Setembro';
$labels['longoct'] = 'Outubro';
$labels['longnov'] = 'Novembro';
$labels['longdec'] = 'Dezembro';
+
$labels['today'] = 'Hoje';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizar';
$labels['checkmail'] = 'Verificar existência de novas mensagens';
$labels['compose'] = 'Nova mensagem';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Mais acções...';
$labels['more'] = 'Mais';
$labels['back'] = 'Voltar';
$labels['options'] = 'Opções';
+
$labels['select'] = 'Seleccionar';
$labels['all'] = 'Todas';
$labels['none'] = 'Nenhum';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Expandir tudo';
$labels['expand-unread'] = 'Expandir não lidas';
$labels['collapse-all'] = 'Recolher tudo';
$labels['threaded'] = 'Agrupar tópicos';
+
$labels['autoexpand_threads'] = 'Expandir tópicos das mensagens';
$labels['do_expand'] = 'todos os tópicos';
$labels['expand_only_unread'] = 'só com mensagens não lidas';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Lista de colunas';
$labels['listsorting'] = 'Ordenar por';
$labels['listorder'] = 'Ordenação';
$labels['listmode'] = 'Modo de visualização';
+
$labels['folderactions'] = 'Acções para pastas...';
$labels['compact'] = 'Compactar';
$labels['empty'] = 'Esvaziar';
-$labels['importmessages'] = 'Importar mensagens';
+
$labels['quota'] = 'Espaço utilizado';
$labels['unknown'] = 'desconhecido';
$labels['unlimited'] = 'ilimitado';
+
$labels['quicksearch'] = 'Pesquisa rápida';
$labels['resetsearch'] = 'Limpar pesquisa';
$labels['searchmod'] = 'Pesquisar em';
$labels['msgtext'] = 'Mensagem completa';
$labels['body'] = 'Corpo';
-$labels['type'] = 'Tipo';
-$labels['namex'] = 'Nome';
+
$labels['openinextwin'] = 'Abrir numa nova janela';
$labels['emlsave'] = 'Guardar como (.eml)';
$labels['changeformattext'] = 'Mostrar em formato de texto simples';
$labels['changeformathtml'] = 'Mostrar em formato HTML';
+
+// message compose
$labels['editasnew'] = 'Editar como nova';
$labels['send'] = 'Enviar';
$labels['sendmessage'] = 'Enviar';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Recibo de leitura';
$labels['dsn'] = 'Recibo de entrega';
$labels['mailreplyintro'] = 'Em $date, $sender escreveu:';
$labels['originalmessage'] = 'Mensagem Original';
+
$labels['editidents'] = 'Editar entidades';
$labels['spellcheck'] = 'Corrector Ortográfico';
$labels['checkspelling'] = 'Verificar ortografia';
$labels['resumeediting'] = 'Continuar a edição';
$labels['revertto'] = 'Reverter para';
-$labels['responses'] = 'Respostas';
-$labels['insertresponse'] = 'Insira uma resposta';
-$labels['manageresponses'] = 'Gerir respostas';
-$labels['savenewresponse'] = 'Gravar nova resposta';
-$labels['editresponses'] = 'Editar respostas';
-$labels['editresponse'] = 'Editar resposta';
-$labels['responsename'] = 'Nome';
-$labels['responsetext'] = 'Texto da resposta';
+
$labels['attach'] = 'Anexar';
$labels['attachments'] = 'Anexos';
$labels['upload'] = 'Carregar';
$labels['uploadprogress'] = '$percent ($current de $total)';
$labels['close'] = 'Fechar';
$labels['messageoptions'] = 'Opções de mensagens...';
+
$labels['low'] = 'Baixa';
$labels['lowest'] = 'Muito baixa';
$labels['normal'] = 'Normal';
$labels['high'] = 'Alta';
$labels['highest'] = 'Muito alta';
+
$labels['nosubject'] = '(sem assunto)';
$labels['showimages'] = 'Mostrar imagens';
$labels['alwaysshow'] = 'Mostrar sempre imagens a partir de $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Esta é uma mensagem de rascunho.';
$labels['andnmore'] = '$nr mais...';
$labels['togglemoreheaders'] = 'Mostrar cabeçalhos adicionais da mensagem';
$labels['togglefullheaders'] = 'Mostrar cabeçalho original da mensagem';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Texto simples';
$labels['savesentmessagein'] = 'Guardar mensagem enviada em';
$labels['dontsave'] = 'não guardar';
$labels['maxuploadsize'] = 'Tamanho máximo permitido do ficheiro é $size';
+
$labels['addcc'] = 'Adicionar Cc';
$labels['addbcc'] = 'Adicionar Bcc';
$labels['addreplyto'] = 'Adicionar Responder para';
$labels['addfollowupto'] = 'Adicionar Reencaminhar para';
+
+// mdn
$labels['mdnrequest'] = 'O remetente desta mensagem pediu para ser notificado quando esta mensagem fosse lida. Deseja enviar uma notificação?';
$labels['receiptread'] = 'Recibo de leitura';
$labels['yourmessage'] = 'Isto é um recibo de leitura da sua mensagem';
$labels['receiptnote'] = 'Nota: este recibo apenas indica que a mensagem foi aberta pelo destinatário. Não garante que a mensagem foi lida ou compreendida.';
+
+// address boook
$labels['name'] = 'Nome completo';
$labels['firstname'] = 'Primeiro nome';
$labels['surname'] = 'Apelido';
@@ -270,6 +301,7 @@ $labels['search'] = 'Pesquisar';
$labels['advsearch'] = 'Pesquisa avançada';
$labels['advanced'] = 'Pesquisa avançada';
$labels['other'] = 'Outro';
+
$labels['typehome'] = 'Residência';
$labels['typework'] = 'Empresa';
$labels['typeother'] = 'Outro';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistente';
$labels['typehomepage'] = 'Página Inicial';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Perfil';
+
$labels['addfield'] = 'Adicionar campo...';
$labels['addcontact'] = 'Criar novo contacto';
$labels['editcontact'] = 'Editar contacto';
$labels['contacts'] = 'Contactos';
$labels['contactproperties'] = 'Dados do contacto';
$labels['personalinfo'] = 'Informação pessoal';
+
$labels['edit'] = 'Editar';
$labels['cancel'] = 'Cancelar';
$labels['save'] = 'Guardar';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Renomear';
$labels['addphoto'] = 'Adicionar';
$labels['replacephoto'] = 'Substituir';
$labels['uploadphoto'] = 'Carregar foto';
+
$labels['newcontact'] = 'Criar novo contacto';
$labels['deletecontact'] = 'Eliminar contacto(s) seleccionado(s)';
$labels['composeto'] = 'Nova mensagem para';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Criar novo grupo de contactos';
$labels['grouprename'] = 'Renomear grupo';
$labels['groupdelete'] = 'Eliminar grupo';
$labels['groupremoveselected'] = 'Remover o(s) contacto(s) seleccionado(s) do grupo';
+
$labels['previouspage'] = 'Página anterior';
$labels['firstpage'] = 'Primeira página';
$labels['nextpage'] = 'Página seguinte';
$labels['lastpage'] = 'Última página';
+
$labels['group'] = 'Grupo';
$labels['groups'] = 'Grupos';
-$labels['listgroup'] = 'Lista de membros do grupo';
$labels['personaladrbook'] = 'Endereços pessoais';
+
$labels['searchsave'] = 'Guardar pesquisa';
$labels['searchdelete'] = 'Eliminar pesquisa';
+
$labels['import'] = 'Importar';
$labels['importcontacts'] = 'Importação de contactos';
$labels['importfromfile'] = 'Importar do ficheiro:';
-$labels['importtarget'] = 'Adicionar contactos a';
+$labels['importtarget'] = 'Adicionar novo contacto ao livro de endereços:';
$labels['importreplace'] = 'Substituir todo o livro de endereços.';
-$labels['importgroups'] = 'Importar atribuições de grupo';
-$labels['importgroupsall'] = 'Todos (criar grupos se necessário)';
-$labels['importgroupsexisting'] = 'Apenas para grupos existentes';
$labels['importdesc'] = 'Pode enviar/carregar contactos de um livro de endereços existente.<br/>Neste momento suportamos a importação nos seguintes formatos: <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ou CSV (valores separados por vírgula).';
$labels['done'] = 'Terminado';
+
+// settings
$labels['settingsfor'] = 'Configurações para';
$labels['about'] = 'Acerca';
$labels['preferences'] = 'Preferências';
$labels['userpreferences'] = 'Preferências do utilizador';
$labels['editpreferences'] = 'Editar preferências do utilizador';
+
$labels['identities'] = 'Identidades';
$labels['manageidentities'] = 'Gerir identidades para esta conta';
$labels['newidentity'] = 'Nova identidade';
+
$labels['newitem'] = 'Novo item';
$labels['edititem'] = 'Editar item';
+
$labels['preferhtml'] = 'Mostrar mensagens em HTML';
$labels['defaultcharset'] = 'Conjunto de caracteres predefinido';
$labels['htmlmessage'] = 'Mensagem em HTML';
@@ -371,8 +411,8 @@ $labels['uisettings'] = 'Interface do utilizador';
$labels['serversettings'] = 'Definições do servidor';
$labels['mailboxview'] = 'Visualização da Caixa de Entrada';
$labels['mdnrequests'] = 'Enviar notificações';
-$labels['askuser'] = 'perguntar ao utilizador';
-$labels['autosend'] = 'enviar automaticamente';
+$labels['askuser'] = 'perguntar ao ultilizador';
+$labels['autosend'] = 'enviar automáticamente';
$labels['autosendknown'] = 'enviar recibo de leitura apenas para os meus contactos';
$labels['autosendknownignore'] = 'enviar recibo para os meus contactos, caso contrário, ignorar';
$labels['ignore'] = 'ignorar';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorar palavras com números';
$labels['spellcheckignorecaps'] = 'Ignorar palavras em maiúsculas';
$labels['addtodict'] = 'Adicionar ao dicionário';
$labels['mailtoprotohandler'] = 'Registar manipulador de protocolo para mailto: links';
-$labels['standardwindows'] = 'Lidar com popups como janelas padrão';
$labels['forwardmode'] = 'Reencaminhamento de mensagens';
$labels['inline'] = 'em linha';
$labels['asattachment'] = 'como anexo';
+
$labels['folder'] = 'Pasta';
$labels['folders'] = 'Pastas';
$labels['foldername'] = 'Nome da pasta';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Tipo de pasta';
$labels['personalfolder'] = 'Pasta privada';
$labels['otherfolder'] = 'Outro tipo de pasta';
$labels['sharedfolder'] = 'Pasta pública';
+
$labels['sortby'] = 'Ordenar por';
$labels['sortasc'] = 'Ordenação Ascendente';
$labels['sortdesc'] = 'Ordenação Descendente';
$labels['undo'] = 'Anular';
+
$labels['installedplugins'] = 'Plugins instalados';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versão';
$labels['source'] = 'Fonte';
$labels['license'] = 'Licença';
$labels['support'] = 'Obter suporte';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Inglês';
$labels['westerneuropean'] = 'Europa Ocidental';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamita';
$labels['japanese'] = 'Japonês';
$labels['korean'] = 'Coreano';
$labels['chinese'] = 'Chinês';
+
?>
diff --git a/program/localization/pt_PT/messages.inc b/program/localization/pt_PT/messages.inc
index fed7fa09e..88b96e60e 100644
--- a/program/localization/pt_PT/messages.inc
+++ b/program/localization/pt_PT/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ocorreu um erro!';
$messages['loginfailed'] = 'O utilizador ou palavra-passe que introduziu não correspondem.';
$messages['cookiesdisabled'] = 'O seu navegador não suporta cookies';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Mensagem enviada com sucesso';
$messages['savingmessage'] = 'A guardar mensagem...';
$messages['messagesaved'] = 'Mensagem guardada como rascunho';
$messages['successfullysaved'] = 'Guardado com sucesso';
-$messages['savingresponse'] = 'A guardar texto de resposta...';
-$messages['deleteresponseconfirm'] = 'Deseja realmente apagar este texto de resposta?';
$messages['addedsuccessfully'] = 'Contacto adicionado com sucesso';
$messages['contactexists'] = 'Já existe um contacto com este e-mail';
$messages['contactnameexists'] = 'Já existe um contacto com este nome.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'O contacto especificado não foi encontrado';
$messages['contactsearchonly'] = 'Insira os termos de pesquisa para localizar os contactos';
$messages['sendingfailed'] = 'Falha no envio da mensagem';
$messages['senttooquickly'] = 'Por favor espere $sec seg(s) antes de enviar esta mensagem';
-$messages['errorsavingsent'] = 'Ocorreu um erro ao gravar a mensagem enviada.';
-$messages['errorsaving'] = 'Ocorreu um erro ao gravar.';
+$messages['errorsavingsent'] = 'Ocorreu um erro ao guardar a mensagem enviada';
+$messages['errorsaving'] = 'Ocorreu um erro ao guardar';
$messages['errormoving'] = 'Não foi possível mover a mensagem';
$messages['errorcopying'] = 'Não foi possível copiar a mensagem';
$messages['errordeleting'] = 'Não foi possível eliminar a mensagem';
@@ -101,16 +101,13 @@ $messages['converting'] = 'A remover a formatação...';
$messages['messageopenerror'] = 'Não foi possível carregar a mensagem.';
$messages['fileuploaderror'] = 'Falha ao carregar o ficheiro';
$messages['filesizeerror'] = 'O ficheiro excede o tamanho máximo permitido de $size';
-$messages['copysuccess'] = '$nr contacto(s) copiado(s) com sucesso.';
-$messages['movesuccess'] = '$nr contacto(s) movido(s) com sucesso.';
-$messages['copyerror'] = 'Não foi possível copiar o(s) contacto(s).';
-$messages['moveerror'] = 'Não foi possível mover o(s) contacto(s).';
+$messages['copysuccess'] = 'Foram copiados $nr endereços com sucesso';
+$messages['copyerror'] = 'Não foi possível copiar os endereços';
$messages['sourceisreadonly'] = 'Esta origem de endereços é só de leitura';
$messages['errorsavingcontact'] = 'Não foi possível guardar o endereço deste contacto';
$messages['movingmessage'] = 'A mover mensagem(ns)...';
$messages['copyingmessage'] = 'A copiar mensagem(ns)...';
$messages['copyingcontact'] = 'A copiar contacto(s)...';
-$messages['movingcontact'] = 'A mover contacto(s)...';
$messages['deletingmessage'] = 'A eliminar mensagem(ns)...';
$messages['markingmessage'] = 'A marcar mensagem(ns)...';
$messages['addingmember'] = 'A adicionar contacto(s) ao grupo...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'A importar, por favor aguarde...';
$messages['importformaterror'] = 'A importação falhou! O ficheiro enviado não é um ficheiro de dados válido.';
$messages['importconfirm'] = '<b>$inserted contactos importados com sucesso, $skipped contactos já existentes foram ignorados</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = 'Ignoradas $skipped entradas já existentes.';
-$messages['importmessagesuccess'] = '$nr mensagens importadas com sucesso';
-$messages['importmessageerror'] = 'A importação falhou! O ficheiro carregado não é um arquivo de caixa de correio ou ficheiro de mensagem válido.';
$messages['opnotpermitted'] = 'Operação não permitida';
$messages['nofromaddress'] = 'Falta o endereço de e-mail na identidade seleccionada';
$messages['editorwarning'] = 'Ao mudar para o editor Plain Text vai perder toda a formação de texto. Deseja continuar?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Não é possível criar/mover esta pasta para
$messages['messagetoobig'] = 'A mensagem é demasiado grande para ser processada.';
$messages['attachmentvalidationerror'] = 'ATENÇÃO! Este anexo é suspeito porque o seu tipo não coincide com o tipo declarado na mensagem. Se não confiar no remetente, não o deve abrir no navegador, pois pode ter conteúdos maliciosos.<br/><br/><em>Esperado: $expected; Encontrado: $detected</em>';
$messages['noscriptwarning'] = 'Aviso: Este serviço de webmail utiliza Javascript! Para o poder utilizar, active o Javascript nas definições do seu navegador.';
+
?>
diff --git a/program/localization/ro_RO/labels.inc b/program/localization/ro_RO/labels.inc
index 953cfe8da..9b76d7175 100644
--- a/program/localization/ro_RO/labels.inc
+++ b/program/localization/ro_RO/labels.inc
@@ -15,21 +15,31 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Bine aţi venit la $product';
$labels['username'] = 'Utilizator';
$labels['password'] = 'Parolă';
$labels['server'] = 'Server';
$labels['login'] = 'Autentificare';
+
+// taskbar
$labels['logout'] = 'Deconectare';
$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Setări personale';
$labels['addressbook'] = 'Agendă';
+
+// mailbox names
$labels['inbox'] = 'Primite';
$labels['drafts'] = 'Ciorne';
$labels['sent'] = 'Trimise';
$labels['trash'] = 'Gunoi';
$labels['junk'] = 'Spam';
-$labels['show_real_foldernames'] = 'Arata numele reale pentru folderele speciale';
+$labels['show_real_foldernames'] = 'Show real names for special folders';
+
+// message listing
$labels['subject'] = 'Subiect';
$labels['from'] = 'Expeditor';
$labels['sender'] = 'Expeditor';
@@ -44,11 +54,13 @@ $labels['priority'] = 'Prioritate';
$labels['organization'] = 'Organizaţie';
$labels['readstatus'] = 'Citit/Necitit';
$labels['listoptions'] = 'Listează opţiunile...';
+
$labels['mailboxlist'] = 'Dosare';
$labels['messagesfromto'] = 'Mesaje de la $from până la $to din $count';
$labels['threadsfromto'] = 'Grupuri de la $from până la $to din $count';
$labels['messagenrof'] = 'Mesajul $nr din $count';
$labels['fromtoshort'] = '$from - $to din $count';
+
$labels['copy'] = 'Copiază';
$labels['move'] = 'Mută';
$labels['moveto'] = 'Mută in...';
@@ -56,9 +68,13 @@ $labels['download'] = 'Descarcă';
$labels['open'] = 'Deschide';
$labels['showattachment'] = 'Arată';
$labels['showanyway'] = 'Arată oricum';
+
$labels['filename'] = 'Nume fiÅŸier';
$labels['filesize'] = 'Mărime fişier';
+
$labels['addtoaddressbook'] = 'Adaugă în agendă';
+
+// weekdays short
$labels['sun'] = 'Dum';
$labels['mon'] = 'Lun';
$labels['tue'] = 'Mar';
@@ -66,6 +82,8 @@ $labels['wed'] = 'Mie';
$labels['thu'] = 'Joi';
$labels['fri'] = 'Vin';
$labels['sat'] = 'Sâm';
+
+// weekdays long
$labels['sunday'] = 'Duminică';
$labels['monday'] = 'Luni';
$labels['tuesday'] = 'Marţi';
@@ -73,6 +91,8 @@ $labels['wednesday'] = 'Miercuri';
$labels['thursday'] = 'Joi';
$labels['friday'] = 'Vineri';
$labels['saturday'] = 'Sâmbătă';
+
+// months short
$labels['jan'] = 'Ian';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +105,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Oct';
$labels['nov'] = 'Noi';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Ianuarie';
$labels['longfeb'] = 'Februarie';
$labels['longmar'] = 'Martie';
@@ -97,7 +119,10 @@ $labels['longsep'] = 'Septembrie';
$labels['longoct'] = 'Octombrie';
$labels['longnov'] = 'Noiembrie';
$labels['longdec'] = 'Decembrie';
+
$labels['today'] = 'Astăzi';
+
+// toolbar buttons
$labels['refresh'] = 'Actualizează';
$labels['checkmail'] = 'Verifică mesaje noi';
$labels['compose'] = 'Scrie un mesaj';
@@ -130,6 +155,7 @@ $labels['moreactions'] = 'Mai multe acțiuni...';
$labels['more'] = 'Mai multe';
$labels['back'] = 'ÃŽnapoi';
$labels['options'] = 'Opţiuni';
+
$labels['select'] = 'Selectează';
$labels['all'] = 'Toate';
$labels['none'] = 'Niciunul';
@@ -148,6 +174,7 @@ $labels['expand-all'] = 'Extinde toate';
$labels['expand-unread'] = 'Extinde necitite';
$labels['collapse-all'] = 'Compactează toate';
$labels['threaded'] = 'Grupate';
+
$labels['autoexpand_threads'] = 'Extinde mesajele grupate';
$labels['do_expand'] = 'toate grupările';
$labels['expand_only_unread'] = 'doar pe cele cu mesaje necitite';
@@ -163,24 +190,27 @@ $labels['listcolumns'] = 'Arată coloane';
$labels['listsorting'] = 'Sortează după';
$labels['listorder'] = 'Ordinea de sortare';
$labels['listmode'] = 'Mod de vizualizare';
+
$labels['folderactions'] = 'Acțiuni dosar...';
$labels['compact'] = 'Compactează';
$labels['empty'] = 'GoleÅŸte';
-$labels['importmessages'] = 'Import mesaje';
+
$labels['quota'] = 'Spaţiu folosit';
$labels['unknown'] = 'necunoscut';
$labels['unlimited'] = 'nelimitat';
+
$labels['quicksearch'] = 'Căutare rapidă';
$labels['resetsearch'] = 'Anulează căutarea';
$labels['searchmod'] = 'Parametrii de căutare';
$labels['msgtext'] = 'Tot mesajul';
$labels['body'] = 'Corp';
-$labels['type'] = 'Tip';
-$labels['namex'] = 'Nume';
+
$labels['openinextwin'] = 'Deschide în fereastră nouă';
$labels['emlsave'] = 'Salvează în format .eml';
$labels['changeformattext'] = 'Afișează în format text';
$labels['changeformathtml'] = 'Afișează în format HTML';
+
+// message compose
$labels['editasnew'] = 'Editează ca nou';
$labels['send'] = 'Trimite';
$labels['sendmessage'] = 'Trimite mesaj';
@@ -192,22 +222,26 @@ $labels['returnreceipt'] = 'Returnează confirmare de primire';
$labels['dsn'] = 'Notificare despre starea trimiterii';
$labels['mailreplyintro'] = 'ÃŽn $date, $sender a scris:';
$labels['originalmessage'] = 'Mesaj original';
+
$labels['editidents'] = 'Editează identităţi';
$labels['spellcheck'] = 'Ortografie';
$labels['checkspelling'] = 'Verifică ortografie';
$labels['resumeediting'] = 'Reia editarea';
$labels['revertto'] = 'Revino la';
+
$labels['attach'] = 'Ataşează';
$labels['attachments'] = 'AtaÅŸamente';
$labels['upload'] = 'Încarcă';
$labels['uploadprogress'] = '$percent ($current din $total)';
$labels['close'] = 'ÃŽnchide';
$labels['messageoptions'] = 'Opţiuni mesaj...';
+
$labels['low'] = 'Mică';
$labels['lowest'] = 'Cea mai mică';
$labels['normal'] = 'Normală';
$labels['high'] = 'Mare';
$labels['highest'] = 'Cea mai mare';
+
$labels['nosubject'] = '(fără subiect)';
$labels['showimages'] = 'Afişează imagini';
$labels['alwaysshow'] = 'Afişează întotdeauna imaginile de la $sender';
@@ -215,19 +249,25 @@ $labels['isdraft'] = 'Acest mesaj este o ciornă.';
$labels['andnmore'] = '$nr mai multe...';
$labels['togglemoreheaders'] = 'Arată mai mult din antet';
$labels['togglefullheaders'] = 'Arată mai puțin din antet';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text simplu';
$labels['savesentmessagein'] = 'Salvează mesajele trimise în';
$labels['dontsave'] = 'Nu salva';
$labels['maxuploadsize'] = 'Mărimea maxim admisă a fişierului este $size';
+
$labels['addcc'] = 'Adaugă CC';
$labels['addbcc'] = 'Adaugă BCC';
$labels['addreplyto'] = 'Adaugă Raspunde-La';
$labels['addfollowupto'] = 'Adaugă Followup-La';
+
+// mdn
$labels['mdnrequest'] = 'Expeditorul acestui mesaj a solicitat să fie notificat la cititrea mesajului. Doriţi să notificaţi expeditorul?';
$labels['receiptread'] = 'Returnează confirmare (citit)';
$labels['yourmessage'] = 'Aceasta este o confirmare de primire a mesajului dumneavoastră.';
$labels['receiptnote'] = 'Notă: Această confirmare doar vă informează că mesajul a fost afişat pe calculatorul destinatarului. Nu există nici o garanţie că destinatarul a citit sau a inţeles conţinutul mesajului.';
+
+// address boook
$labels['name'] = 'Numele Contact';
$labels['firstname'] = 'Nume';
$labels['surname'] = 'Prenume';
@@ -262,6 +302,7 @@ $labels['search'] = 'Căutare';
$labels['advsearch'] = 'Căutare avansată';
$labels['advanced'] = 'Avansat';
$labels['other'] = 'Altele';
+
$labels['typehome'] = 'Acasă';
$labels['typework'] = 'Serviciu';
$labels['typeother'] = 'Altele';
@@ -276,12 +317,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Pagină de pornire';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Adaugă câmp...';
$labels['addcontact'] = 'Adaugă contact nou';
$labels['editcontact'] = 'Modifică contact';
$labels['contacts'] = 'Contacte';
$labels['contactproperties'] = 'Proprietăţile contactului...';
$labels['personalinfo'] = 'Informații personale';
+
$labels['edit'] = 'Editează';
$labels['cancel'] = 'Renunţă';
$labels['save'] = 'Salvează';
@@ -290,6 +333,7 @@ $labels['rename'] = 'RedenumeÅŸte';
$labels['addphoto'] = 'Adaugă';
$labels['replacephoto'] = 'Înlocuiește';
$labels['uploadphoto'] = 'Încarcă imagine';
+
$labels['newcontact'] = 'Creează contact nou';
$labels['deletecontact'] = 'Åžterge contactul selectat';
$labels['composeto'] = 'Compune e-mail pentru';
@@ -303,36 +347,41 @@ $labels['newcontactgroup'] = 'Creează un nou grup de contacte';
$labels['grouprename'] = 'Redenumește grupul';
$labels['groupdelete'] = 'Șterge grupul';
$labels['groupremoveselected'] = 'Șterge contactele selectate din grup';
+
$labels['previouspage'] = 'Pagina anterioară';
$labels['firstpage'] = 'Prima pagină';
$labels['nextpage'] = 'Pagina următoare';
$labels['lastpage'] = 'Ultima pagină';
+
$labels['group'] = 'Grup';
$labels['groups'] = 'Grupuri';
-$labels['listgroup'] = 'Lista membrii grupului';
$labels['personaladrbook'] = 'Adrese personale';
+
$labels['searchsave'] = 'Salvează căutarea';
$labels['searchdelete'] = 'Şterge căutarea';
+
$labels['import'] = 'Importă';
$labels['importcontacts'] = 'Importă contacte';
$labels['importfromfile'] = 'Importă din fişier:';
-$labels['importtarget'] = 'Adaugă contactele la';
+$labels['importtarget'] = 'Adaugă contactele noi în agenda:';
$labels['importreplace'] = 'Înlocuieşte întreaga agendă';
-$labels['importgroups'] = 'Importă atribuirile în grup';
-$labels['importgroupsall'] = 'Toate (creează grupurile dacă este necesar)';
-$labels['importgroupsexisting'] = 'Doar pentru grupurile existente';
$labels['importdesc'] = 'Puteți încărca contacte dintr-o agendă existentă.<br/>Momentan este suportat importul în formatul <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> sau în formatul CSV (comma-separated).';
$labels['done'] = 'Finalizat';
+
+// settings
$labels['settingsfor'] = 'Setări pentru';
$labels['about'] = 'Despre';
$labels['preferences'] = 'Preferinţe';
$labels['userpreferences'] = 'Preferinţe utilizator';
$labels['editpreferences'] = 'Modifică preferinţe utilizator';
+
$labels['identities'] = 'Identităţi';
$labels['manageidentities'] = 'Administrează identităţi pentru acest cont';
$labels['newidentity'] = 'Identitate nouă';
+
$labels['newitem'] = 'Obiect nou';
$labels['edititem'] = 'Editează obiect';
+
$labels['preferhtml'] = 'Format HTML';
$labels['defaultcharset'] = 'Set implicit de caractere';
$labels['htmlmessage'] = 'Mesaj HTML';
@@ -424,10 +473,11 @@ $labels['spellcheckignorenums'] = 'Ignoră cuvintele cu numere';
$labels['spellcheckignorecaps'] = 'Ignoră cuvintele din litere mari';
$labels['addtodict'] = 'Adaugă la dicţionar';
$labels['mailtoprotohandler'] = 'Îregistrează handler protocol pentru mailto: link-uri';
-$labels['standardwindows'] = 'Trateaza popupsurile ca ferestre standard';
+$labels['standardwindows'] = 'Handle popups as standard windows';
$labels['forwardmode'] = 'Trimitere mai departe mesaj';
$labels['inline'] = 'într-e linii';
$labels['asattachment'] = 'ca atașament';
+
$labels['folder'] = 'Dosar';
$labels['folders'] = 'Dosare';
$labels['foldername'] = 'Nume dosar';
@@ -448,20 +498,26 @@ $labels['foldertype'] = 'Tip dosar';
$labels['personalfolder'] = 'Dosar privat';
$labels['otherfolder'] = 'Dosarul altui utilizator';
$labels['sharedfolder'] = 'Dosar public';
+
$labels['sortby'] = 'Sortează după';
$labels['sortasc'] = 'Sortează ascendent';
$labels['sortdesc'] = 'Sortează descendent';
$labels['undo'] = 'Anulaţi/Revocați';
+
$labels['installedplugins'] = 'Instalare module';
$labels['plugin'] = 'Plugin';
$labels['version'] = 'Versiune';
$labels['source'] = 'Sursă';
$labels['license'] = 'Licență';
$labels['support'] = 'Cere asistenţă';
+
+// units
$labels['B'] = 'O';
$labels['KB'] = 'KO';
$labels['MB'] = 'MO';
$labels['GB'] = 'GO';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Englezesc';
$labels['westerneuropean'] = 'Europa de Vest';
@@ -480,4 +536,5 @@ $labels['vietnamese'] = 'Vietnamez';
$labels['japanese'] = 'Japonez';
$labels['korean'] = 'Coreean';
$labels['chinese'] = 'Chinezesc';
+
?>
diff --git a/program/localization/ro_RO/messages.inc b/program/localization/ro_RO/messages.inc
index c3e74597f..78e0fcb65 100644
--- a/program/localization/ro_RO/messages.inc
+++ b/program/localization/ro_RO/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'A avut loc o EROARE!';
$messages['loginfailed'] = 'Autentificare eşuată';
$messages['cookiesdisabled'] = 'Browserul dumneavoastră nu acceptă cookies';
@@ -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).';
@@ -97,16 +101,13 @@ $messages['converting'] = 'Resetez mesajul la parametrii iniţiali...';
$messages['messageopenerror'] = 'Nu s-a putut încărca mesajul din server';
$messages['fileuploaderror'] = 'Încărcarea pe server a eşuat';
$messages['filesizeerror'] = 'Fişierul încărcat depăşeşte dimensiunea de $size';
-$messages['copysuccess'] = 'Am copiat cu succes $nr contacte.';
-$messages['movesuccess'] = 'Am mutat cu succes $nr contacte.';
-$messages['copyerror'] = 'Nu am putut copia nici un contact.';
-$messages['moveerror'] = 'Nu am putut muta nici un contact.';
+$messages['copysuccess'] = '$nr adrese copiat(e) cu succes';
+$messages['copyerror'] = 'Nu s-a putut copia nicio adresă';
$messages['sourceisreadonly'] = 'Sursa acestei adrese este "read-only" (se poate doar citi)';
$messages['errorsavingcontact'] = 'Nu s-a putut salva adresa de contact';
$messages['movingmessage'] = 'Mutare mesaj....';
$messages['copyingmessage'] = 'Copiere mesaj...';
$messages['copyingcontact'] = 'Copiez contact(ele)...';
-$messages['movingcontact'] = 'Se muta contactul (contactele) ...';
$messages['deletingmessage'] = 'Åžterg mesaj(ele)...';
$messages['markingmessage'] = 'Marchez mesaj(ele)...';
$messages['addingmember'] = 'Adaug contact(ele) la grup...';
@@ -125,8 +126,6 @@ $messages['importwait'] = 'Datele sunt importate, vă rugăm să aşteptaţi...'
$messages['importformaterror'] = 'Importul a eșuat! Fișierul încărcat nu este un fișier valid pentru import de date.';
$messages['importconfirm'] = '<b>$inserted contacte au fost importate cu succes, $skipped intrări au fost ignorate deoarece ele există deja: $names</b>';
$messages['importconfirmskipped'] = '<b>Am sărit peste $skipped înregistrări</b>';
-$messages['importmessagesuccess'] = 'Am importat cu succes $nr mesaje.';
-$messages['importmessageerror'] = 'Importarea a esuat. Fisierul incarca nu este un mesaj valid pentru email.';
$messages['opnotpermitted'] = 'Operaţiunea nu este permisă!';
$messages['nofromaddress'] = 'Nu există o adresă de e-mail în identitatea selectată';
$messages['editorwarning'] = 'Trecerea în mod text a editorului va cauza pierderea formatării textului. Doriţi să continuaţi?';
@@ -140,6 +139,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ă. Încearcă mai târziu.';
$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.';
@@ -167,4 +167,5 @@ $messages['parentnotwritable'] = 'Nu pot crea/muta dosarul în dosarul părinte
$messages['messagetoobig'] = 'Partea de mesaj este prea mare pentru a o procesa.';
$messages['attachmentvalidationerror'] = 'ATENȚIE! Acest atașament este suspect, fiindcă tipul lui nu coincide cu tipul declarat în mesaj. Dacă nu aveți încredere în expeditor, nu vă recomandăm să deschideți fișierul, fiindcă poate avea conținut malițios. <br/><br/><em>Așteptat: $expected; găsit: $detected</em>';
$messages['noscriptwarning'] = 'Atenție: Serviciul de webmail necesită Javascript! Pentru a-l utiliza vă rugăm activați Javascript în setările browserului.';
+
?>
diff --git a/program/localization/ru_RU/labels.inc b/program/localization/ru_RU/labels.inc
index 109793666..8a136aa77 100644
--- a/program/localization/ru_RU/labels.inc
+++ b/program/localization/ru_RU/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добро пожаловать в $product!';
$labels['username'] = 'Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ';
$labels['password'] = 'Пароль';
$labels['server'] = 'Сервер';
$labels['login'] = 'Войти';
+
+// taskbar
$labels['logout'] = 'Выход';
$labels['mail'] = 'Почта';
$labels['settings'] = 'ÐаÑтройки';
$labels['addressbook'] = 'Контакты';
+
+// mailbox names
$labels['inbox'] = 'ВходÑщие';
$labels['drafts'] = 'Черновики';
$labels['sent'] = 'Отправленные';
$labels['trash'] = 'Корзина';
$labels['junk'] = 'СПÐÐœ';
-$labels['show_real_foldernames'] = 'Показывать наÑтоÑщие Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñпециальных папок';
+
+// message listing
$labels['subject'] = 'Тема';
$labels['from'] = 'От';
$labels['sender'] = 'Отправитель';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Приоритет';
$labels['organization'] = 'ОрганизациÑ';
$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['move'] = 'ПеремеÑтить';
$labels['moveto'] = 'ПеремеÑтить в...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Загрузить';
$labels['open'] = 'Открыть';
$labels['showattachment'] = 'Показать';
$labels['showanyway'] = 'Ð’Ñе равно показать';
+
$labels['filename'] = 'Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°';
$labels['filesize'] = 'Размер файла';
+
$labels['addtoaddressbook'] = 'Добавить в контакты';
+
+// weekdays short
$labels['sun'] = 'Ð’Ñ';
$labels['mon'] = 'Пн';
$labels['tue'] = 'Ð’Ñ‚';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Ср';
$labels['thu'] = 'Чт';
$labels['fri'] = 'Пт';
$labels['sat'] = 'Сб';
+
+// weekdays long
$labels['sunday'] = 'ВоÑкреÑенье';
$labels['monday'] = 'Понедельник';
$labels['tuesday'] = 'Вторник';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Среда';
$labels['thursday'] = 'Четверг';
$labels['friday'] = 'ПÑтница';
$labels['saturday'] = 'Суббота';
+
+// months short
$labels['jan'] = 'Янв';
$labels['feb'] = 'Фев';
$labels['mar'] = 'Мар';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Сен';
$labels['oct'] = 'Окт';
$labels['nov'] = 'ÐоÑ';
$labels['dec'] = 'Дек';
+
+// months long
$labels['longjan'] = 'Январь';
$labels['longfeb'] = 'Февраль';
$labels['longmar'] = 'Март';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'СентÑбрь';
$labels['longoct'] = 'ОктÑбрь';
$labels['longnov'] = 'ÐоÑбрь';
$labels['longdec'] = 'Декабрь';
+
$labels['today'] = 'СегоднÑ';
+
+// toolbar buttons
$labels['refresh'] = 'Обновить';
$labels['checkmail'] = 'ДоÑтавить почту';
$labels['compose'] = 'ÐапиÑать Ñообщение';
@@ -121,7 +145,7 @@ $labels['lastmessage'] = 'Показать поÑледнее ÑообщеÐ
$labels['backtolist'] = 'К ÑпиÑку Ñообщений';
$labels['viewsource'] = 'ИÑходный текÑÑ‚';
$labels['mark'] = 'Пометить';
-$labels['markmessages'] = 'Пометить ÑообщениÑ';
+$labels['markmessages'] = 'Пометить Ñообщение';
$labels['markread'] = 'Как прочитанное';
$labels['markunread'] = 'Как непрочитанное';
$labels['markflagged'] = 'УÑтановить флаг';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Дополнительные дейÑтвиÑ...'
$labels['more'] = 'Еще';
$labels['back'] = 'Ðазад';
$labels['options'] = 'Параметры';
+
$labels['select'] = 'Выбрать';
$labels['all'] = 'Ð’Ñе';
$labels['none'] = 'ОтÑутÑтвует';
@@ -138,9 +163,9 @@ $labels['unread'] = 'Ðепрочитанные';
$labels['flagged'] = 'Помеченные';
$labels['unanswered'] = 'Ðеотвеченные';
$labels['withattachment'] = 'С вложением';
-$labels['deleted'] = 'Удаленные';
-$labels['undeleted'] = 'Ðе удаленные';
-$labels['invert'] = 'Инвертировать';
+$labels['deleted'] = 'Удаленное';
+$labels['undeleted'] = 'Ðе удалено';
+$labels['invert'] = 'Инвертное';
$labels['filter'] = 'Фильтр';
$labels['list'] = 'СпиÑок';
$labels['threads'] = 'ОбÑуждениÑ';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Развернуть вÑе';
$labels['expand-unread'] = 'Развернуть непрочитанные';
$labels['collapse-all'] = 'Свернуть вÑе';
$labels['threaded'] = 'ОбÑуждениÑ';
+
$labels['autoexpand_threads'] = 'Развернуть обÑуждениÑ';
$labels['do_expand'] = 'вÑе обÑуждениÑ';
$labels['expand_only_unread'] = 'только Ñ Ð½ÐµÐ¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ‹Ð¼Ð¸ ÑообщениÑми';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Колонки';
$labels['listsorting'] = 'Сортировать по';
$labels['listorder'] = 'ПорÑдок Ñортировки';
$labels['listmode'] = 'Режим проÑмотра';
+
$labels['folderactions'] = 'Операции над папкой...';
$labels['compact'] = 'Сжать';
$labels['empty'] = 'ОпуÑтошить';
-$labels['importmessages'] = 'Импорт Ñообщений';
+
$labels['quota'] = 'Квота';
$labels['unknown'] = 'неизвеÑтно';
$labels['unlimited'] = 'без ограничений';
+
$labels['quicksearch'] = 'БыÑтрый поиÑк';
$labels['resetsearch'] = 'СброÑ';
$labels['searchmod'] = 'Варианты поиÑка';
$labels['msgtext'] = 'Ð’ÑÑ‘ Ñообщение';
$labels['body'] = 'Тело пиÑьма';
-$labels['type'] = 'Тип';
-$labels['namex'] = 'ИмÑ';
+
$labels['openinextwin'] = 'Открыть в новом окне';
$labels['emlsave'] = 'Сохранить (.eml)';
$labels['changeformattext'] = 'Показать в формате обычного текÑта';
$labels['changeformathtml'] = 'Показать в HTML формате';
+
+// message compose
$labels['editasnew'] = 'Редактировать как новое';
$labels['send'] = 'Отправить';
$labels['sendmessage'] = 'Отправить ÑейчаÑ';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°';
$labels['dsn'] = 'Уведомление о ÑоÑтоÑнии доÑтавки';
$labels['mailreplyintro'] = '$sender пиÑал $date:';
$labels['originalmessage'] = 'ИÑходное Ñообщение';
+
$labels['editidents'] = 'Изменить данные';
$labels['spellcheck'] = 'ОрфографиÑ';
$labels['checkspelling'] = 'Проверить орфографию';
$labels['resumeediting'] = 'Продолжить редактирование';
$labels['revertto'] = 'Отменить правки';
+
$labels['attach'] = 'Вложить';
$labels['attachments'] = 'ВложениÑ';
$labels['upload'] = 'Загрузить';
$labels['uploadprogress'] = '$percent ($current из $total)';
$labels['close'] = 'Закрыть';
$labels['messageoptions'] = 'ÐаÑтройки Ñообщений...';
+
$labels['low'] = 'Ðизкий';
-$labels['lowest'] = 'Ðизший';
+$labels['lowest'] = 'Ðижайш.';
$labels['normal'] = 'Ðорм.';
$labels['high'] = 'Ð’Ñ‹Ñокий';
$labels['highest'] = 'Ð’Ñ‹Ñоч.';
+
$labels['nosubject'] = '(без темы)';
$labels['showimages'] = 'Показать изображениÑ';
$labels['alwaysshow'] = 'Ð’Ñегда показывать изображениÑв пиÑьмах от $sender';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Это черновик.';
$labels['andnmore'] = 'ещё $nr...';
$labels['togglemoreheaders'] = 'Загрузить ещё заголовки Ñообщений';
$labels['togglefullheaders'] = 'Показать оригинальные заголовки ÑообщениÑ';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'ТекÑÑ‚';
$labels['savesentmessagein'] = 'Сохранить в';
$labels['dontsave'] = 'не ÑохранÑÑ‚ÑŒ';
$labels['maxuploadsize'] = 'МакÑимальный размер файла $size';
+
$labels['addcc'] = 'КопиÑ';
$labels['addbcc'] = 'Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ';
$labels['addreplyto'] = 'Кому ответить';
$labels['addfollowupto'] = 'Добавить Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Отправитель Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñил уведомление о прочтении. Отправить уведомление?';
$labels['receiptread'] = 'Уведомление о прочтении';
$labels['yourmessage'] = 'Это уведомление о прочтении вашего ÑообщениÑ';
$labels['receiptnote'] = 'Это уведомление означает только, что Ñообщение было открыто получателем, и не гарантирует того, что оно было прочитано и (или) понÑто.';
+
+// address boook
$labels['name'] = 'Отображаемое имÑ';
$labels['firstname'] = 'ИмÑ';
$labels['surname'] = 'ФамилиÑ';
@@ -262,6 +301,7 @@ $labels['search'] = 'ПоиÑк';
$labels['advsearch'] = 'РаÑширенный поиÑк';
$labels['advanced'] = 'Дополнительно';
$labels['other'] = 'Другое';
+
$labels['typehome'] = 'Дом';
$labels['typework'] = 'Работа';
$labels['typeother'] = 'Другое';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Помощник';
$labels['typehomepage'] = 'ДомашнÑÑ Ñтраница';
$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профиль';
+
$labels['addfield'] = 'Добавить поле...';
-$labels['addcontact'] = 'Добавить новый контакт';
+$labels['addcontact'] = 'Добавить выбранные контакты в ÑпиÑок контактов';
$labels['editcontact'] = 'Редактировать контакт';
$labels['contacts'] = 'Контакты';
$labels['contactproperties'] = 'СвойÑтва контакта';
$labels['personalinfo'] = 'Ð›Ð¸Ñ‡Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ';
+
$labels['edit'] = 'Правка';
$labels['cancel'] = 'Отмена';
$labels['save'] = 'Сохранить';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Переименовать';
$labels['addphoto'] = 'Добавить';
$labels['replacephoto'] = 'Заменить';
$labels['uploadphoto'] = 'Загрузить фотографию';
+
$labels['newcontact'] = 'Создать новый контакт';
$labels['deletecontact'] = 'Удалить выбранные контакты';
$labels['composeto'] = 'Создать Ñообщение Ð´Ð»Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ñ… контактов';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Создать группу контактов';
$labels['grouprename'] = 'Переименовать группу';
$labels['groupdelete'] = 'Удалить группу';
$labels['groupremoveselected'] = 'Удалить выбранные контакты из группы';
-$labels['previouspage'] = 'Показать предыдущую Ñтраницу';
+
+$labels['previouspage'] = 'Показать предыдущий';
$labels['firstpage'] = 'Показать первую Ñтраницу';
$labels['nextpage'] = 'Показать Ñледующую Ñтраницу';
$labels['lastpage'] = 'Показать поÑледнюю Ñтраницу';
+
$labels['group'] = 'Группа';
$labels['groups'] = 'Группы';
-$labels['listgroup'] = 'СпиÑок членов группы';
$labels['personaladrbook'] = 'ПерÑональные адреÑа';
+
$labels['searchsave'] = 'Сохранить запроÑ';
$labels['searchdelete'] = 'Удалить запроÑ';
+
$labels['import'] = 'Импортировать';
$labels['importcontacts'] = 'Импортировать контакты';
$labels['importfromfile'] = 'Импортировать из файла:';
-$labels['importtarget'] = 'Добавить контакты в';
+$labels['importtarget'] = 'Добавить новые контакты в адреÑную книгу:';
$labels['importreplace'] = 'Заменить вÑÑŽ адреÑную книгу';
-$labels['importgroups'] = 'РаÑпределение по группам при импорте.';
-$labels['importgroupsall'] = 'Ð’Ñе (Ñоздать группы при необходимоÑти)';
-$labels['importgroupsexisting'] = 'Только Ð´Ð»Ñ ÑущеÑтвующих групп';
$labels['importdesc'] = 'Ð’Ñ‹ можете загрузить контакты из ÑущеÑтвующей адреÑной книги. <br/>Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ñ‹ поддерживаем импорт адреÑов в формате визитной карточки <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> или CSV (данные разделённые запÑтой).';
$labels['done'] = 'Завершено';
+
+// settings
$labels['settingsfor'] = 'ÐаÑтройки длÑ';
$labels['about'] = 'О программе';
$labels['preferences'] = 'ÐаÑтройки';
$labels['userpreferences'] = 'ÐаÑтройки пользователÑ';
$labels['editpreferences'] = 'Редактировать наÑтройки пользователÑ';
+
$labels['identities'] = 'Профили';
$labels['manageidentities'] = 'Управление профилÑми';
$labels['newidentity'] = 'Ðовый профиль';
+
$labels['newitem'] = 'Ðовый';
$labels['edititem'] = 'Правка';
+
$labels['preferhtml'] = 'Предпочитать HTML';
$labels['defaultcharset'] = 'Ðабор Ñимволов по-умолчанию';
$labels['htmlmessage'] = 'Сообщение HTML';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'ПропуÑкать Ñлова Ñ Ñ†Ð¸Ñ„Ñ€Ð°
$labels['spellcheckignorecaps'] = 'ПропуÑкать Ñлова из пропиÑных букв';
$labels['addtodict'] = 'Добавить в Ñловарь';
$labels['mailtoprotohandler'] = 'ЗарегиÑтрировать обработчик Ð´Ð»Ñ ÑÑылок mailto:';
-$labels['standardwindows'] = 'Обрабатывать вÑплывающие окна как обычные';
$labels['forwardmode'] = 'ПереÑылка Ñообщений';
$labels['inline'] = 'в текÑте';
$labels['asattachment'] = 'как вложение';
+
$labels['folder'] = 'Папка';
$labels['folders'] = 'Папки';
$labels['foldername'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Тип каталога';
$labels['personalfolder'] = 'Приватный каталог';
$labels['otherfolder'] = 'Каталог другого пользователÑ';
$labels['sharedfolder'] = 'СовмеÑтный каталог';
+
$labels['sortby'] = 'Сортировать по';
$labels['sortasc'] = 'ВозраÑтанию';
$labels['sortdesc'] = 'Убыванию';
$labels['undo'] = 'Отмена';
+
$labels['installedplugins'] = 'УÑтановленные дополнениÑ';
$labels['plugin'] = 'Дополнение';
$labels['version'] = 'ВерÑиÑ';
$labels['source'] = 'ИÑточник';
$labels['license'] = 'ЛицензиÑ';
$labels['support'] = 'Поддержка';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'ÐнглийÑкий';
$labels['westerneuropean'] = 'ЗападноевропейÑкий';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'ВьетнамÑкий';
$labels['japanese'] = 'ЯпонÑкий';
$labels['korean'] = 'КорейÑкий';
$labels['chinese'] = 'КитайÑкий';
+
?>
diff --git a/program/localization/ru_RU/messages.inc b/program/localization/ru_RU/messages.inc
index 2509ba49b..f9c8c433a 100644
--- a/program/localization/ru_RU/messages.inc
+++ b/program/localization/ru_RU/messages.inc
@@ -15,24 +15,26 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Произошла ошибка!';
-$messages['loginfailed'] = 'ÐÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° входа.';
-$messages['cookiesdisabled'] = 'Ваш браузер не принимает cookie.';
-$messages['sessionerror'] = 'Ваша ÑеÑÑÐ¸Ñ ÑƒÑтарела.';
+$messages['loginfailed'] = 'ÐÐµÑƒÐ´Ð°Ñ‡Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° входа';
+$messages['cookiesdisabled'] = 'Ваш броузер не принимает cookie';
+$messages['sessionerror'] = 'Ваша ÑеÑÑÐ¸Ñ ÑƒÑтарела';
$messages['storageerror'] = 'Ðеудачное Ñоединение Ñ IMAP Ñервером';
$messages['servererror'] = 'Ошибка Ñервера!';
$messages['servererrormsg'] = 'Ошибка Ñервера: $msg';
$messages['dberror'] = 'Ошибка базы данных!';
$messages['requesttimedout'] = 'Превышено Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа';
-$messages['errorreadonly'] = 'Ðевозможно выполнить операцию. Папка доÑтупна только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ.';
-$messages['errornoperm'] = 'Ðевозможно выполнить операцию. ДоÑтуп запрещён.';
+$messages['errorreadonly'] = 'Ðевозможно выполнить операцию. Папка доÑтупна только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ';
+$messages['errornoperm'] = 'Ðевозможно выполнить операцию. ДоÑтуп запрещён';
$messages['erroroverquota'] = 'Ðевозможно выполнить операцию. Ðет Ñвободного меÑта на диÑке.';
$messages['erroroverquotadelete'] = 'Ðет Ñвободного меÑта на диÑке. ИÑпользуйте SHIFT+DEL Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÑообщениÑ.';
$messages['invalidrequest'] = 'Ðеверный запроÑ! Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ðµ Ñохранена.';
$messages['invalidhost'] = 'Ðеверное Ð¸Ð¼Ñ Ñервера.';
$messages['nomessagesfound'] = 'Сообщений не найдено';
$messages['loggedout'] = 'Ваша ÑеÑÑÐ¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°. Ð’Ñего доброго!';
-$messages['mailboxempty'] = 'Почтовый Ñщик пуÑÑ‚.';
+$messages['mailboxempty'] = 'Почтовый Ñщик пуÑÑ‚';
$messages['refreshing'] = 'Обновление...';
$messages['loading'] = 'Загрузка...';
$messages['uploading'] = 'Файл загружаетÑÑ…';
@@ -40,30 +42,28 @@ $messages['uploadingmany'] = 'Загрузка файлов...';
$messages['loadingdata'] = 'Загрузка данных...';
$messages['checkingmail'] = 'Проверка новых Ñообщений...';
$messages['sendingmessage'] = 'Отправка ÑообщениÑ...';
-$messages['messagesent'] = 'Сообщение отправлено.';
+$messages['messagesent'] = 'Сообщение отправлено';
$messages['savingmessage'] = 'Сохранение ÑообщениÑ...';
-$messages['messagesaved'] = 'Сохранено в Черновиках.';
-$messages['successfullysaved'] = 'Сохранено.';
-$messages['savingresponse'] = 'Сохранение текÑта ответа...';
-$messages['deleteresponseconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить Ñтот текÑÑ‚ ответа?';
-$messages['addedsuccessfully'] = 'Контакт добавлен в адреÑную книгу.';
-$messages['contactexists'] = 'Контакт Ñ Ñтим адреÑом e-mail уже ÑущеÑтвует.';
+$messages['messagesaved'] = 'Сохранено в Черновиках';
+$messages['successfullysaved'] = 'Сохранено';
+$messages['addedsuccessfully'] = 'Контакт добавлен в ÑпиÑок контактов';
+$messages['contactexists'] = 'Контакт Ñ Ñтим адреÑом e-mail уже ÑущеÑтвует';
$messages['contactnameexists'] = 'Контакт Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует.';
$messages['blockedimages'] = 'Ð’ целÑÑ… безопаÑноÑти загрузка изображений заблокирована.';
$messages['encryptedmessage'] = 'Сообщение зашифровано и не может быть показано. ОбратитеÑÑŒ к админиÑтратору Ñервера.';
-$messages['nocontactsfound'] = 'Контакты не найдены.';
-$messages['contactnotfound'] = 'Требуемый контакт не найден.';
+$messages['nocontactsfound'] = 'Контакты не найдены';
+$messages['contactnotfound'] = 'Требуемый контакт не найден';
$messages['contactsearchonly'] = 'Введите уÑÐ»Ð¾Ð²Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка контактов';
-$messages['sendingfailed'] = 'Ðе удалоÑÑŒ отправить Ñообщение.';
-$messages['senttooquickly'] = 'Ð’Ñ‹ должны подождать $sec Ñек. Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑообщениÑ.';
-$messages['errorsavingsent'] = 'Произошла ошибка при Ñохранении отправленного ÑообщениÑ.';
-$messages['errorsaving'] = 'Ð’ процеÑÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка.';
-$messages['errormoving'] = 'Ðе удалоÑÑŒ перемеÑтить Ñообщение(Ñ).';
-$messages['errorcopying'] = 'Ðе удалоÑÑŒ Ñкопировать Ñообщение(Ñ).';
-$messages['errordeleting'] = 'Ðе удалоÑÑŒ удалить Ñообщение(Ñ).';
-$messages['errormarking'] = 'Ðе удалоÑÑŒ пометить Ñообщение(Ñ).';
+$messages['sendingfailed'] = 'Ðе удалоÑÑŒ отправить Ñообщение';
+$messages['senttooquickly'] = 'Ð’Ñ‹ должны подождать $sec Ñек. Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑообщениÑ';
+$messages['errorsavingsent'] = 'Произошла ошибка при Ñохранении отправленного ÑообщениÑ';
+$messages['errorsaving'] = 'Ð’ процеÑÑе ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð¸Ð·Ð¾ÑˆÐ»Ð° ошибка';
+$messages['errormoving'] = 'Ðе удалоÑÑŒ перемеÑтить Ñообщение';
+$messages['errorcopying'] = 'Ðе удалоÑÑŒ Ñкопировать Ñообщение';
+$messages['errordeleting'] = 'Ðе удалоÑÑŒ удалить Ñообщение';
+$messages['errormarking'] = 'Ðевозможно пометить Ñообщение';
$messages['deletecontactconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выделенные контакты?';
-$messages['deletegroupconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выделенную группу?';
+$messages['deletegroupconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить группу?';
$messages['deletemessagesconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить выбранные ÑообщениÑ?';
$messages['deletefolderconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить Ñту папку?';
$messages['purgefolderconfirm'] = 'Ð’Ñ‹ дейÑтвительно хотите удалить вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² Ñтой папке?';
@@ -73,103 +73,99 @@ $messages['folderdeleting'] = 'Удаление папки...';
$messages['foldermoving'] = 'Перемещение папки...';
$messages['foldersubscribing'] = 'ПодпиÑать папку...';
$messages['folderunsubscribing'] = 'ОтпиÑать папку...';
-$messages['formincomplete'] = 'Заполнены не вÑе Ð¿Ð¾Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ñ‹.';
-$messages['noemailwarning'] = 'ПожалуйÑта, введите корректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.';
-$messages['nonamewarning'] = 'ПожалуйÑта, введите имÑ.';
-$messages['nopagesizewarning'] = 'ПожалуйÑта, введите размер Ñтраницы.';
-$messages['nosenderwarning'] = 'ПожалуйÑта, введите Ð°Ð´Ñ€ÐµÑ Ñлектронной почты отправителÑ.';
-$messages['norecipientwarning'] = 'ПожалуйÑта, введите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ одного получателÑ.';
+$messages['formincomplete'] = 'Заполнены не вÑе полÑ';
+$messages['noemailwarning'] = 'ПожалуйÑта, введите корректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты';
+$messages['nonamewarning'] = 'ПожалуйÑта, введите имÑ';
+$messages['nopagesizewarning'] = 'ПожалуйÑта, введите размер Ñтраницы';
+$messages['nosenderwarning'] = 'ПожалуйÑта, введите Ð°Ð´Ñ€ÐµÑ Ñлектронной почты отправителÑ';
+$messages['norecipientwarning'] = 'ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ';
$messages['nosubjectwarning'] = 'Поле Тема не заполнено. Хотите заполнить его ÑейчаÑ?';
$messages['nobodywarning'] = 'Отправить Ñообщение без текÑта?';
$messages['notsentwarning'] = 'Сообщение не было отправлено. Ð’Ñ‹ хотите отказатьÑÑ Ð¾Ñ‚ отправки?';
-$messages['noldapserver'] = 'ПожалуйÑта, выберите LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка.';
+$messages['noldapserver'] = 'ПожалуйÑта, выберите LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка';
$messages['nosearchname'] = 'ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð°Ð´Ñ€ÐµÑ E-Mail';
$messages['notuploadedwarning'] = 'Ð’Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð³Ñ€ÑƒÐ¶ÐµÐ½Ñ‹ не полноÑтью. Подождите или отмените загрузку.';
$messages['searchsuccessful'] = 'Ðайденных Ñообщений - $nr';
$messages['contactsearchsuccessful'] = '$nr контактов найдено.';
-$messages['searchnomatch'] = 'Ðичего не найдено.';
+$messages['searchnomatch'] = 'Сообщений не найдено';
$messages['searching'] = 'ПоиÑк...';
$messages['checking'] = 'Проверка...';
-$messages['nospellerrors'] = 'ОрфографичеÑких ошибок не найдено.';
-$messages['folderdeleted'] = 'Папка удалена.';
+$messages['nospellerrors'] = 'ОрфографичеÑких ошибок не найдено';
+$messages['folderdeleted'] = 'Папка удалена';
$messages['foldersubscribed'] = 'Папка подпиÑана';
$messages['folderunsubscribed'] = 'Папка отпиÑана';
-$messages['folderpurged'] = 'Папка очищена.';
-$messages['folderexpunged'] = 'Папка Ñжата.';
-$messages['deletedsuccessfully'] = 'Удалено.';
+$messages['folderpurged'] = 'Папка удалена';
+$messages['folderexpunged'] = 'Папка очищена';
+$messages['deletedsuccessfully'] = 'Удалено';
$messages['converting'] = 'Удаление Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑообщениÑ...';
-$messages['messageopenerror'] = 'Ðевозможно загрузить Ñообщение Ñ Ñервера.';
-$messages['fileuploaderror'] = 'Ошибка загрузки файла.';
-$messages['filesizeerror'] = 'Загруженный файл больше макÑимального размера в $size.';
-$messages['copysuccess'] = 'УÑпешно Ñкопировано $nr контактов.';
-$messages['movesuccess'] = 'УÑпешно перемещено $nr контактов.';
-$messages['copyerror'] = 'Контакты не Ñкопированы.';
-$messages['moveerror'] = 'Контакты не перемещены.';
-$messages['sourceisreadonly'] = 'Данный иÑточник адреÑов только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ.';
-$messages['errorsavingcontact'] = 'Ðевозможно Ñохранить Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°.';
-$messages['movingmessage'] = 'Перемещение ÑообщениÑ(й)…';
-$messages['copyingmessage'] = 'Копирование ÑообщениÑ(й)...';
+$messages['messageopenerror'] = 'Ðевозможно загрузить Ñообщение Ñ Ñервера';
+$messages['fileuploaderror'] = 'Ðевозможно загрузить файл';
+$messages['filesizeerror'] = 'Загруженный файл больше макÑимального размера в $size';
+$messages['copysuccess'] = 'Скопировано $nr адреÑов';
+$messages['copyerror'] = 'Ðевозможно Ñкопировать адреÑа';
+$messages['sourceisreadonly'] = 'Данный иÑточник адреÑов только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ';
+$messages['errorsavingcontact'] = 'Ðевозможно Ñохранить Ð°Ð´Ñ€ÐµÑ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð°';
+$messages['movingmessage'] = 'Перемещение Ñообщений…';
+$messages['copyingmessage'] = 'Копирование Ñообщений...';
$messages['copyingcontact'] = 'Копирование контакта(ов)...';
-$messages['movingcontact'] = 'Перемещение контакта(ов)...';
-$messages['deletingmessage'] = 'Удаление ÑообщениÑ(й)...';
-$messages['markingmessage'] = 'Выделение ÑообщениÑ(й)...';
+$messages['deletingmessage'] = 'Удаление Ñообщений...';
+$messages['markingmessage'] = 'Выделение Ñообщений...';
$messages['addingmember'] = 'Добавление контакта(ов) в группу...';
$messages['removingmember'] = 'Удаление контакта(ов) из группы...';
-$messages['receiptsent'] = 'Уведомление о прочтении отправлено.';
-$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено.';
+$messages['receiptsent'] = 'Уведомление о прочтении отправлено';
+$messages['errorsendingreceipt'] = 'Уведомление о прочтении не отправлено';
$messages['deleteidentityconfirm'] = 'Ð’Ñ‹ на Ñамом деле хотите удалить Ñту ÑущноÑÑ‚ÑŒ?';
-$messages['nodeletelastidentity'] = 'Ð’Ñ‹ не можете удалить Ñтот профиль, он у Ð²Ð°Ñ Ð¿Ð¾Ñледний.';
-$messages['forbiddencharacter'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸ Ñодержит недопуÑтимые Ñимволы.';
-$messages['selectimportfile'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸.';
-$messages['addresswriterror'] = 'Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð°Ð´Ñ€ÐµÑÐ½Ð°Ñ ÐºÐ½Ð¸Ð³Ð° недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.';
-$messages['contactaddedtogroup'] = 'Контакты добавлены в Ñту группу.';
-$messages['contactremovedfromgroup'] = 'Контакты удалены из Ñтой группы.';
+$messages['nodeletelastidentity'] = 'Ð’Ñ‹ не можете удалить Ñтот профиль, он у Ð²Ð°Ñ Ð¿Ð¾Ñледний';
+$messages['forbiddencharacter'] = 'Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸ Ñодержит недопуÑтимые Ñимволы';
+$messages['selectimportfile'] = 'Выберите файл Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸';
+$messages['addresswriterror'] = 'Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð°Ð´Ñ€ÐµÑÐ½Ð°Ñ ÐºÐ½Ð¸Ð³Ð° недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи';
+$messages['contactaddedtogroup'] = 'Контакты добавлены в группу';
+$messages['contactremovedfromgroup'] = 'Контакты удалены из группы';
$messages['nogroupassignmentschanged'] = 'РаÑпределение по группам не изменено.';
$messages['importwait'] = 'Импортирование, пожалуйÑта, подождите...';
$messages['importformaterror'] = 'Ошибка импорта! Загруженный файл имеет неизвеÑтный формат данных.';
-$messages['importconfirm'] = '<b>УÑпешно импортировано $inserted контактов</b>';
-$messages['importconfirmskipped'] = '<b>Пропущено $skipped ÑущеÑтвующих запиÑей</b>';
-$messages['importmessagesuccess'] = '$nr Ñообщений уÑпешно импортировано.';
-$messages['importmessageerror'] = 'Сбой импорта! Загруженный файл не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ почтового Ñщика';
+$messages['importconfirm'] = '<b>УÑпешно импортировано $inserted контакт(ов), пропущено $skipped ÑущеÑтвующих</b>:<p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Пропущенные $skipped ÑущеÑтвующие запиÑи</b>';
$messages['opnotpermitted'] = 'ДейÑтвие запрещено!';
-$messages['nofromaddress'] = 'Ð’ выбранном профиле не хватает адреÑа Ñлектронной почты.';
+$messages['nofromaddress'] = 'Ð’ выбранном профиле не хватает адреÑа Ñлектронной почты';
$messages['editorwarning'] = 'При переключении в редактор проÑтого текÑта вÑе форматирование будет потерÑно. Продолжить?';
-$messages['httpreceivedencrypterror'] = 'Ðа Ñервере возникла Ð½ÐµÐ¸Ð·Ð±ÐµÐ¶Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Срочно ÑвÑжитеÑÑŒ Ñ Ð’Ð°ÑˆÐ¸Ð¼ админиÑтратором. <b>Ваше Ñообщение не может быть отправлено.</b>';
-$messages['smtpconnerror'] = 'SMTP ошибка ($code): Сбой ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером.';
-$messages['smtpautherror'] = 'SMTP ошибка ($code): Ошибка авторизации.';
-$messages['smtpfromerror'] = 'SMTP ошибка ($code): Ðевозможно уÑтановить Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ "$from" ($msg)';
-$messages['smtptoerror'] = 'SMTP ошибка ($code): Ðевозможно добавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ "$to" ($msg)';
-$messages['smtprecipientserror'] = 'SMTP ошибка: Ðевозможно обработать ÑпиÑок получателей.';
-$messages['smtperror'] = 'SMTP ошибка: $msg';
+$messages['httpreceivedencrypterror'] = 'Ðа Ñервере возникла Ð½ÐµÐ¸Ð·Ð±ÐµÐ¶Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Срочно ÑвÑжитеÑÑŒ Ñ Ð’Ð°ÑˆÐ¸Ð¼ админиÑтратором. <b>Ваше Ñообщение может быть не отправлено.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Соединение Ñ Ñервером Ñброшено';
+$messages['smtpautherror'] = 'SMTP Error ($code): Ошибка авторизации';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Ðевозможно уÑтановить Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ "$from" ($msg)';
+$messages['smtptoerror'] = 'SMTP Error ($code): Ðевозможно добавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ "$to" ($msg)';
+$messages['smtprecipientserror'] = 'SMTP Error: Ðевозможно обработать ÑпиÑок получателей';
+$messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Ðеверный адреÑ: $email';
-$messages['toomanyrecipients'] = 'Слишком много получателей. Уменьшите их количеÑтво до $max.';
-$messages['maxgroupmembersreached'] = 'Размер группы больше макÑимально разрешенного - $max.';
-$messages['internalerror'] = 'Произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Попробуйте ещё раз.';
-$messages['contactdelerror'] = 'Ðе возможно удалить контакт(Ñ‹).';
-$messages['contactdeleted'] = 'Контакт(Ñ‹) уÑпешно удален(Ñ‹).';
+$messages['toomanyrecipients'] = 'Слишком много получателей, уменьшите их количеÑтво до $max.';
+$messages['maxgroupmembersreached'] = 'Размер группы больше макÑимально разрешенного - $max';
+$messages['internalerror'] = 'Произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Попробуйте ещё раз';
+$messages['contactdelerror'] = 'Ðе могу удалить контакт(Ñ‹)';
+$messages['contactdeleted'] = 'Контакт(Ñ‹) уÑпешно удален(Ñ‹)';
$messages['contactrestoreerror'] = 'Ðе удалоÑÑŒ воÑÑтановить удалённый(е) контакт(Ñ‹).';
-$messages['contactrestored'] = 'Контакт(Ñ‹) уÑпешно воÑÑтановлен(Ñ‹).';
-$messages['groupdeleted'] = 'Группа уÑпешно удалена.';
-$messages['grouprenamed'] = 'Группа уÑпешно переименована.';
-$messages['groupcreated'] = 'Группа уÑпешно Ñоздана.';
+$messages['contactrestored'] = 'Контакт(Ñ‹) уÑпешно воÑÑтановлены.';
+$messages['groupdeleted'] = 'Группа уÑпешно удалена';
+$messages['grouprenamed'] = 'Группа уÑпешно переименована';
+$messages['groupcreated'] = 'Группа уÑпешно Ñоздана';
$messages['savedsearchdeleted'] = 'Сохранённый Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑƒÑпешно удалён.';
$messages['savedsearchdeleteerror'] = 'Ðе удалоÑÑŒ удалить Ñохранённый запроÑ.';
$messages['savedsearchcreated'] = 'Сохранённый Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑƒÑпешно Ñоздан.';
$messages['savedsearchcreateerror'] = 'Ðе удалоÑÑŒ Ñоздать Ñохранённый запроÑ.';
-$messages['messagedeleted'] = 'Сообщение(Ñ) уÑпешно удалено(Ñ‹).';
-$messages['messagemoved'] = 'Сообщение(Ñ) уÑпешно перемещено(Ñ‹).';
-$messages['messagecopied'] = 'Сообщение(Ñ) уÑпешно Ñкопировано(Ñ‹).';
-$messages['messagemarked'] = 'Сообщение(Ñ) уÑпешно выделено(Ñ‹).';
-$messages['autocompletechars'] = 'Введите, как минимум, $min Ñимволов Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.';
+$messages['messagedeleted'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно удалены';
+$messages['messagemoved'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно перемещены';
+$messages['messagecopied'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно Ñкопированы';
+$messages['messagemarked'] = 'Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно выделены';
+$messages['autocompletechars'] = 'Введите, как минимум, $min Ñимволов Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ';
$messages['autocompletemore'] = 'ПоиÑк возвратил Ñлишком много результатов. ПожалуйÑта, уточните.';
-$messages['namecannotbeempty'] = 'Ð˜Ð¼Ñ Ð½Ðµ может быть пуÑтым.';
-$messages['nametoolong'] = 'Слишком длинное имÑ.';
-$messages['folderupdated'] = 'Папка обновлена.';
-$messages['foldercreated'] = 'Папка Ñоздана.';
-$messages['invalidimageformat'] = 'Ðеверный формат изображениÑ.';
-$messages['mispellingsfound'] = 'Ð’ Ñообщении обнаружены орфографичеÑкие ошибки.';
+$messages['namecannotbeempty'] = 'Ð˜Ð¼Ñ Ð½Ðµ может быть пуÑтым';
+$messages['nametoolong'] = 'Слишком длинное имÑ';
+$messages['folderupdated'] = 'Папка обновлена';
+$messages['foldercreated'] = 'Папка Ñоздана';
+$messages['invalidimageformat'] = 'Ðеверный формат изображениÑ';
+$messages['mispellingsfound'] = 'Ð’ Ñообщении обнаружены орфографичеÑкие ошибки';
$messages['parentnotwritable'] = 'Ðе удаетÑÑ Ñоздать/перемеÑтить папку в выбранную родительÑкую папку. Ðет прав доÑтупа.';
$messages['messagetoobig'] = 'ЧаÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñлишком велика Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸.';
-$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! Это вложение ÑвлÑетÑÑ Ð¿Ð¾Ð´Ð¾Ð·Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¼, потому что его тип не Ñовпадает Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼, объÑвленным в Ñообщении. ЕÑли Ð’Ñ‹ не доверÑете отправителю, не открывайте его в браузере, поÑкольку оно может заключать в Ñебе вредоноÑное Ñодержимое.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['attachmentvalidationerror'] = 'Ð’ÐИМÐÐИЕ! Это приложение ÑвлÑетÑÑ Ð¿Ð¾Ð´Ð¾Ð·Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹, потому что его тип не Ñовпадает Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼, объÑвленным в Ñообщении. ЕÑли вы не доверÑете отправителю, вы не должны открывать его в браузере, поÑкольку он может Ñодержать вредоноÑный Ñодержание.<br/><br/><em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = 'Внимание: Данному ÑервиÑу веб-почты требуетÑÑ Javascript! Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы его иÑпользовать необходимо включить поддержку Javascript в наÑтройках вашего браузера.';
+
?>
diff --git a/program/localization/si_LK/labels.inc b/program/localization/si_LK/labels.inc
index 9baa37028..d8cd71662 100644
--- a/program/localization/si_LK/labels.inc
+++ b/program/localization/si_LK/labels.inc
@@ -15,40 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '$product වෙත පිළිගනිමු';
$labels['username'] = 'පරිà·à·“ලක නà·à¶¸à¶º';
$labels['password'] = 'මුරපදය';
$labels['server'] = 'පද්ධතිය';
$labels['login'] = 'පිවිසුම';
+
+// taskbar
$labels['logout'] = 'පිටවීම';
$labels['mail'] = 'විද්â€à¶ºà·”ත් තà·à¶´à·à¶½';
$labels['settings'] = 'à·ƒà·à¶šà·ƒà·”ම්';
$labels['addressbook'] = 'ලිපින පොත';
+
+// mailbox names
$labels['inbox'] = 'Inbox';
$labels['drafts'] = 'කටු සටහන්';
$labels['sent'] = 'යà·à·€à·–';
$labels['trash'] = 'ඉවතලන බඳුන';
$labels['junk'] = 'සුන්බුන්';
+
+// message listing
$labels['subject'] = 'මà·à¶­à·˜à¶šà·à·€';
$labels['from'] = 'වෙතින්';
+$labels['sender'] = 'Sender';
$labels['to'] = 'වෙත';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'පිළිතුරු සඳහà·';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'දිනය';
$labels['size'] = 'ප්â€à¶»à¶¸à·à¶«à¶º';
$labels['priority'] = 'ප්â€à¶»à¶¸à·”ඛත්වය';
$labels['organization'] = 'සංවිධà·à¶±à¶º';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'බහà·à¶½à·”ම්';
$labels['messagesfromto'] = '$from වෙතින් $to වෙත පණිවිඩ $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'පණිවිඩ $count න් $nr';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'පිටපත් කරන්න';
$labels['move'] = 'ගෙනයන්න';
$labels['moveto'] = 'ගෙන යන්න...';
$labels['download'] = 'බà·à¶œà¶­ කරන්න';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ගොනුවේ නම';
$labels['filesize'] = 'ගොනුවේ ප්â€à¶»à¶¸à·à¶«à¶º';
+
$labels['addtoaddressbook'] = 'ලිපින පොතට එක් කරන්න';
+
+// weekdays short
$labels['sun'] = 'ඉ';
$labels['mon'] = 'à·ƒ';
$labels['tue'] = 'අ';
@@ -56,6 +81,8 @@ $labels['wed'] = 'බ';
$labels['thu'] = 'බ්â€à¶»';
$labels['fri'] = 'සි';
$labels['sat'] = 'සෙ';
+
+// weekdays long
$labels['sunday'] = 'ඉරිදà·';
$labels['monday'] = 'සඳුදà·';
$labels['tuesday'] = 'අඟහරුවà·à¶¯à·';
@@ -63,6 +90,8 @@ $labels['wednesday'] = 'බදà·à¶¯à·';
$labels['thursday'] = 'බ්â€à¶»à·„ස්පතින්දà·';
$labels['friday'] = 'සිකුරà·à¶¯à·';
$labels['saturday'] = 'සෙනසුරà·à¶¯à·';
+
+// months short
$labels['jan'] = 'ජන';
$labels['feb'] = 'පෙබ';
$labels['mar'] = 'මà·à¶»à·Š';
@@ -75,6 +104,8 @@ $labels['sep'] = 'à·ƒà·à¶´à·Š';
$labels['oct'] = 'ඔක්';
$labels['nov'] = 'නොවà·';
$labels['dec'] = 'දෙසà·';
+
+// months long
$labels['longjan'] = 'ජනවà·à¶»à·’';
$labels['longfeb'] = 'පෙබරවà·à¶»à·’';
$labels['longmar'] = 'මà·à¶»à·Šà¶­à·”';
@@ -87,14 +118,22 @@ $labels['longsep'] = 'à·ƒà·à¶´à·Šà¶­à·à¶¸à·Šà¶¶à¶»à·Š';
$labels['longoct'] = 'ඔක්තà·à¶¸à·Šà¶¶à¶»à·Š';
$labels['longnov'] = 'නොවà·à¶¸à·Šà¶¶à¶»à·Š';
$labels['longdec'] = 'දෙසà·à¶¸à·Šà¶¶à¶»à·Š';
+
$labels['today'] = 'අද';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'අඵත් පණිවිඩ සඳහ෠පිරික්සීම';
$labels['compose'] = 'පණිවිඩයක් සෑදීම';
$labels['writenewmessage'] = 'අඵත් පණිවිඩයක්';
$labels['reply'] = 'පිළිතුරු දෙන්න';
$labels['replytomessage'] = 'පණිවිඩයට පිළිතුරු';
$labels['replytoallmessage'] = 'එවන්නà·à¶§ සහ à·ƒà·à¶¸à¶§ පිළිතුරු';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
$labels['forward'] = 'ඉදිරියට';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'පණිවිඩය ඉදිරියට';
$labels['deletemessage'] = 'පණිවිඩය මකන්න';
$labels['movemessagetotrash'] = 'පණිවිඩය ලටපට වෙත ගෙන යන්න';
@@ -109,76 +148,142 @@ $labels['mark'] = 'සලකුණු කරන්න';
$labels['markmessages'] = 'පණිවිඩ සලකුණු කරන්න';
$labels['markread'] = 'කියවු ලෙස';
$labels['markunread'] = 'නොකියවු ලෙස';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['moreactions'] = 'තවත් ක්â€à¶»à·’යà·...';
$labels['more'] = 'තවත්';
$labels['back'] = 'ආපසු';
$labels['options'] = 'විකල්ප';
+
$labels['select'] = 'තà·à¶»à¶±à·Šà¶±';
$labels['all'] = 'සියල්ල';
$labels['none'] = 'කිසිවක් නà·à¶­';
$labels['currpage'] = 'දà·à¶±à¶§ ඇති පිටුව';
$labels['unread'] = 'නොකියවූ';
+$labels['flagged'] = 'Flagged';
+$labels['unanswered'] = 'Unanswered';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'මක෠දà·à¶¸à·–';
+$labels['undeleted'] = 'Not deleted';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'පෙරන්න';
$labels['list'] = 'ලà·à¶ºà·’ස්තුව';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'සියල්ල දිගහරින්න';
+$labels['expand-unread'] = 'Expand Unread';
$labels['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'] = 'වෙතින්/වෙත';
+$labels['flag'] = 'Flag';
$labels['attachment'] = 'ඇමුණුම';
$labels['nonesort'] = 'කිසිවක් නà·à¶­';
$labels['sentdate'] = 'යà·à·€à·– දිනය';
$labels['arrival'] = 'ලගà·à·€à·– දිනය';
$labels['asc'] = 'ආරà·à·„ණ';
$labels['desc'] = 'අවරà·à·„ණ';
+$labels['listcolumns'] = 'List columns';
+$labels['listsorting'] = 'Sorting column';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
$labels['folderactions'] = 'බහà·à¶½à·”ම් ක්â€à¶»à·’යà·...';
$labels['compact'] = 'සංයුක්ත';
$labels['empty'] = 'හිස්';
+
+$labels['quota'] = 'Disk usage';
$labels['unknown'] = 'නොදනී';
$labels['unlimited'] = 'අසීමිත';
+
$labels['quicksearch'] = 'ඉක්මන් සෙවුම';
$labels['resetsearch'] = 'සෙවුම යලි පිහිටවීම';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'සම්පූර්ණ පණිවිඩය';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'නව කවුළුවක විවෘත කරන්න';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'පණිවිඩය යවන්න';
$labels['savemessage'] = 'කටු සටහනක් ලෙස සුරකින්න';
$labels['addattachment'] = 'ගොනුවක් අමුණන්න';
$labels['charset'] = 'අකුර෠කට්ටලය';
$labels['editortype'] = 'සම්පà·à¶¯à¶± ආකà·à¶»à¶º';
$labels['returnreceipt'] = 'නà·à·€à¶­ ලබන්නà·';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'අක්â€à·‚ර වින්â€à¶ºà·à·ƒà¶º පරික්â€à·‚à·à¶šà¶»à¶±à·Šà¶±';
$labels['resumeediting'] = 'සම්පà·à¶¯à¶± නà·à·€à¶­ ඇරඹීම';
$labels['revertto'] = 'ආපසු ඒම';
+
$labels['attach'] = 'අමුණන්න';
$labels['attachments'] = 'ඇමුණුම්';
$labels['upload'] = 'ඇතුල් කරීම';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'වසන්න';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'අඩු';
$labels['lowest'] = 'අඩුම';
$labels['normal'] = 'à·ƒà·à¶¸à·à¶±à·Šâ€à¶º';
$labels['high'] = 'ඉහළ';
$labels['highest'] = 'ඉහළම';
+
$labels['nosubject'] = '(මà·à¶­à·˜à¶šà·à·€ නොමà·à¶­)';
$labels['showimages'] = 'රූප පෙන්වන්න';
+$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'] = 'පà·à·„à·à¶¯à·’ලි අකුරු';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Cc එක් කරන්න';
$labels['addbcc'] = 'Bcc එක් කරන්න';
$labels['addreplyto'] = '\'පිළිතුරු සඳහà·\' එක් කරන්න';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'මෙම පණිවුඩය එවන්න෠ඔබ එය කියවු බව අසයි. එය දà·à¶±à·Šà·€à·“මට ඔබ කà·à¶¸à¶­à·’ද?';
$labels['receiptread'] = 'ලà·à¶¶à·“ම් ලදුපත (කියවීම)';
$labels['yourmessage'] = 'මෙය ඔබගේ පණිවුඩයේ ලà·à¶¶à·“ම් ලදුපතයි';
$labels['receiptnote'] = 'සටහන: ලà·à¶¶à·“ම් ලදුපත මගින් මෙම පණිවුඩය කියවූ බව හ෠තේරුම් ගත් බව ගම්â€à¶º නොවේ. පණිවුඩය ලබන්නà·à¶§ පෙන්නුම් කල බවටට à·ƒà·à¶šà·Šà·‚ියක් පමණි';
+
+// address boook
$labels['name'] = 'ප්â€à¶»à¶¯à¶»à·Šà·à¶±à¶º වන නම';
$labels['firstname'] = 'මුල් නම';
$labels['surname'] = 'අවසන් නම';
+$labels['middlename'] = 'Middle Name';
+$labels['nameprefix'] = 'Prefix';
+$labels['namesuffix'] = 'Suffix';
$labels['nickname'] = 'සුරතල් නම';
$labels['jobtitle'] = 'රà·à¶šà·’ය෠තනතුර';
$labels['department'] = 'දෙපà·à¶»à·Šà¶­à¶¸à·šà¶±à·Šà¶­à·”à·€';
$labels['gender'] = 'ස්ත්â€à¶»à·’/පුරුෂ භà·à·€à¶º';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'විද්â€à¶ºà·”ත් තà·à¶´à·‘ල';
$labels['phone'] = 'දුරකථනය';
$labels['address'] = 'ලිපිනය';
+$labels['street'] = 'Street';
$labels['locality'] = 'නගරය';
+$labels['zipcode'] = 'ZIP Code';
$labels['region'] = 'ප්â€à¶»à·à¶±à·Šà¶­à¶º/පළà·à¶­';
$labels['country'] = 'රට';
$labels['birthday'] = 'උපන්දිනය';
@@ -190,87 +295,187 @@ $labels['male'] = 'පුරුෂ';
$labels['female'] = 'ස්ත්â€à¶»à·“';
$labels['manager'] = 'කළමණà·à¶šà¶»à·”';
$labels['assistant'] = 'සහà·à¶ºà¶š';
+$labels['spouse'] = 'Spouse';
+$labels['allfields'] = 'All fields';
$labels['search'] = 'සොයන්න';
+$labels['advsearch'] = 'Advanced Search';
$labels['advanced'] = 'සංකීර්ණâ€';
$labels['other'] = 'වෙනත්';
+
$labels['typehome'] = 'නිවස';
$labels['typework'] = 'රක්ෂà·à·€';
$labels['typeother'] = 'වෙනත්';
$labels['typemobile'] = 'ජංගම';
$labels['typemain'] = 'ප්â€à¶»à¶°à·à¶±';
$labels['typehomefax'] = 'ගෘහස්ථ à·†à·à¶šà·Šà·ƒà·Š';
+$labels['typeworkfax'] = 'Work Fax';
+$labels['typecar'] = 'Car';
$labels['typepager'] = 'පේජරය';
$labels['typevideo'] = 'වීඩියà·';
$labels['typeassistant'] = 'සහà·à¶ºà¶š';
+$labels['typehomepage'] = 'Home Page';
$labels['typeblog'] = 'බ්ලොග්';
$labels['typeprofile'] = 'පà·à¶­à·’කඩ';
+
+$labels['addfield'] = 'Add field...';
$labels['addcontact'] = 'නව සබඳතà·à·€à¶º එක් කරන්න';
$labels['editcontact'] = 'ලිපිනය වෙනස් කිරීම';
$labels['contacts'] = 'සබඳතà·';
+$labels['contactproperties'] = 'Contact properties';
$labels['personalinfo'] = 'පුද්ගලික තොරතුරු';
+
$labels['edit'] = 'සංස්කරණය';
$labels['cancel'] = 'අවලංගු කරන්න';
$labels['save'] = 'සුරකින්න';
$labels['delete'] = 'මකන්න';
$labels['rename'] = 'නම වෙනස් කරන්න';
$labels['addphoto'] = 'එක් කරන්න';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'අඵත් ලිපින පතක් සෑදීම';
$labels['deletecontact'] = 'තà·à¶»à·à¶œà¶­à·Š ලිපින මකà·à¶¯à¶¸à¶±à·Šà¶±';
$labels['composeto'] = 'පනිවුඩයක් සෑදීම';
$labels['contactsfromto'] = '$from ගෙන් $to ලිපින $count';
$labels['print'] = 'මුද්â€à¶»à¶«à¶º කරන්න';
$labels['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'] = 'පෙර පිටුව පෙන්වන්න';
$labels['firstpage'] = 'පළමුවන පිටුව පෙන්වන්න';
$labels['nextpage'] = 'මීළඟ පිටුව පෙන්වන්න';
$labels['lastpage'] = 'අවසà·à¶± පිටුව පෙන්වන්න';
+
$labels['group'] = 'කණ්ඩà·à¶ºà¶¸';
$labels['groups'] = 'කණ්ඩà·à¶ºà¶¸à·Š';
$labels['personaladrbook'] = 'පුද්ගලික ලිපිනය';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'ආනයනය කරන්න';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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'] = 'අවසà·à¶±à¶ºà·’';
+
+// settings
$labels['settingsfor'] = 'සඳහ෠සà·à¶šà·ƒà·”ම්';
$labels['about'] = 'පිළිබඳ';
$labels['preferences'] = 'අභිමතය';
$labels['userpreferences'] = 'පරිà·à·“ලක අභිමතය';
$labels['editpreferences'] = 'පරිà·à·“ලක අභිමතය වෙනස් කිරීම්';
+
$labels['identities'] = 'අනන්â€à¶ºà¶­à·à·€à¶±à·Š';
$labels['manageidentities'] = 'මෙම ගිණුමෙ අනන්නයතà·à·€ à·„à·à·ƒà·’රවීම';
$labels['newidentity'] = 'අඵත් අනන්නයතà·à·€';
+
$labels['newitem'] = 'අඵත් අයිතම';
$labels['edititem'] = 'අයිතම වෙනස් කිරීම්';
+
$labels['preferhtml'] = 'HTML විදහ෠පෙන්වීම';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML පණිවිඩය';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'සුරුබුහුටි දින';
$labels['setdefault'] = 'පළමු තත්වයට';
$labels['autodetect'] = 'ස්වයංක්â€à¶»à·“ය';
$labels['language'] = 'භà·à·‚à·à·€';
$labels['timezone'] = 'කà·à¶½ කලà·à¶´à¶º';
+$labels['pagesize'] = 'Rows per page';
$labels['signature'] = 'අත්සන';
$labels['dstactive'] = 'දිව෠එළිය ඉතිරි කිරීම';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML පණිවිඩයක් සෑදීම';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML අත්සන';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'පූර්වදර්à·à¶± කොටස පෙන්නන්න';
+$labels['skin'] = 'Interface skin';
+$labels['logoutclear'] = 'Clear Trash on logout';
+$labels['logoutcompact'] = 'Compact Inbox on logout';
$labels['uisettings'] = 'පරිà·à·“ලක අතුරුමුහුණත';
+$labels['serversettings'] = 'Server Settings';
+$labels['mailboxview'] = 'Mailbox View';
+$labels['mdnrequests'] = 'On request for return receipt';
$labels['askuser'] = 'මගෙන් විමසන්න';
+$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'] = 'නොසලක෠හරින්න';
+$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'] = 'à·ƒà·à¶¸à·€à·’ට';
+$labels['showinlineimages'] = 'Display attached images below the message';
$labels['autosavedraft'] = 'ස්වයංක්â€à¶»à·“යව කටු සටහන සුරකින්න';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'කිසි විටෙකත් නà·à¶­à·’';
$labels['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 (වෙනත්)';
+$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'] = 'අංà·à¶º';
$labels['maintenance'] = 'නඩත්තු කිරීම';
$labels['newmessage'] = 'අලුත් පණිවිඩයක්';
+$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'] = 'ස්වයංක්â€à¶»à·“යව අත්සන ඇතුලත් කරන්න';
$labels['newmessageonly'] = 'අලුත් පණිවිඩය පමණක්';
+$labels['replyandforwardonly'] = 'replies and forwards only';
$labels['insertsignature'] = 'අත්සන ඇතුලත් කරන්න';
+$labels['previewpanemarkread'] = 'Mark previewed messages as read';
$labels['afternseconds'] = 'තත්පර $nකට පසු';
+$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'] = 'සලකුණු සහිත වචන නොසලක෠හරින්න';
$labels['spellcheckignorenums'] = 'අංක සහිත වචන නොසලක෠හරින්න';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'à·à¶¶à·Šà¶¯ කà·à·‚යට එක් කරන්න';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'බහà·à¶½à·”ම';
$labels['folders'] = 'බහà·à¶½à·”ම්';
$labels['foldername'] = 'බහà·à¶½à·”මේ නම';
@@ -282,27 +487,42 @@ $labels['managefolders'] = 'බහà·à¶½à·”ම් කළමනà·à¶šà¶»à¶«à¶º à
$labels['specialfolders'] = 'විà·à·šà·‚ බහà·à¶½à·”ම්';
$labels['properties'] = 'වත්කම්';
$labels['folderproperties'] = 'බහà·à¶½à·”මේ වත්කම්';
+$labels['parentfolder'] = 'Parent folder';
$labels['location'] = 'ස්ථà·à¶±à¶º';
$labels['info'] = 'තොරතුරු';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'බහà·à¶½à·”ම් වර්ගය';
$labels['personalfolder'] = 'පුද්ගලික බහà·à¶½à·”ම';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'පොදු බහà·à¶½à·”ම';
+
$labels['sortby'] = 'වර්ග කරන්න';
$labels['sortasc'] = 'ආරà·à·„ණ වර්ග කිරීම';
$labels['sortdesc'] = 'අවරà·à·„ණ වර්ග කිරීම';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'ප්ලගිනය';
$labels['version'] = 'අනුවà·à¶¯à¶º';
$labels['source'] = 'මූලà·à·à·Šâ€à¶»à¶º';
$labels['license'] = 'බලපත්â€à¶»à¶º';
$labels['support'] = 'සහය ලබà·à¶œà¶±à·Šà¶±';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'යුනිකේත';
$labels['english'] = 'ඉංග්â€à¶»à·“සි';
$labels['westerneuropean'] = 'බටහිර යුරà·à¶´à·“ය';
+$labels['easterneuropean'] = 'Eastern European';
+$labels['southeasterneuropean'] = 'South-Eastern European';
$labels['baltic'] = 'බà·à¶½à·Šà¶§à·’ක්';
+$labels['cyrillic'] = 'Cyrillic';
$labels['arabic'] = 'අරà·à¶¶à·’';
$labels['greek'] = 'ග්â€à¶»à·“ක';
$labels['hebrew'] = 'හීබෲ';
@@ -314,4 +534,5 @@ $labels['vietnamese'] = 'වියට්නà·à¶¸';
$labels['japanese'] = 'ජපන්';
$labels['korean'] = 'කොරියà·à¶±à·”';
$labels['chinese'] = 'චීන';
+
?>
diff --git a/program/localization/si_LK/messages.inc b/program/localization/si_LK/messages.inc
index 0c6fa1156..c3828bc64 100644
--- a/program/localization/si_LK/messages.inc
+++ b/program/localization/si_LK/messages.inc
@@ -15,15 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'දà·à·‚යක් මතුවිය!';
$messages['loginfailed'] = 'ඇතුල්වීම අසà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['cookiesdisabled'] = 'ඔබේ බෞසරය කුකී බà·à¶» ගන්නේ නà·à¶­';
$messages['sessionerror'] = 'ඔබේ à·€à·à¶»à¶º අවලංගු හ෠කà·à¶½à¶º ඉකුත් වී ඇත';
+$messages['storageerror'] = 'Connection to storage server failed.';
+$messages['servererror'] = 'Server Error!';
+$messages['servererrormsg'] = 'Server Error: $msg';
$messages['dberror'] = 'දත්ත ගබඩà·à·€à·š දà·à·‚ය!';
+$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'] = 'ලියුම් පෙට්ටියේ පනිවුඩ නà·à¶­';
$messages['loggedout'] = 'ඔබගේ à·€à·à¶»à¶º à·ƒà·à¶»à·Šà¶®à¶šà·€ අවසන් විය. අයුබොවන්!';
$messages['mailboxempty'] = 'ලියුම් පෙට්ටිය හිස්';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'පූරනය...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'දත්ත පූරනය...';
$messages['checkingmail'] = 'අලුත් පණිවිඩ පරීක්ෂ෠කරමින්...';
$messages['sendingmessage'] = 'පණිවිඩය යවමින්...';
@@ -33,56 +48,124 @@ $messages['messagesaved'] = 'පනිවුඩය කටු සටහනේ ත
$messages['successfullysaved'] = 'සුරà·à¶šà·“ම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['addedsuccessfully'] = 'ලිපිනය à·ƒà·à¶»à·Šà¶®à¶šà·€ ලිපින පොතට එකතු කරන ලදී.';
$messages['contactexists'] = 'ඉහත ලිපිනය සහිත විද්යුත් තà·à¶´à·à¶½à·Š ලිපිනයක් ලිපින පොතේ ඇත.';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'ඔබගෙ පොද්ගලිකත්වය හේතුවෙන්, දුරස්ථ රූප අවහිර කර ඇත.';
$messages['encryptedmessage'] = 'මෙම පනිවුඩය රහස් කේතනය කර ඇති බà·à·€à·’න් පෙන්විය නොහà·à¶š. සමà·à·€à¶±à·Šà¶±!';
$messages['nocontactsfound'] = 'ලිපින සොය෠ගත නොහà·à¶š';
$messages['contactnotfound'] = 'ඉල්ලූ ලිපිනය සොයà·à¶œà¶­ නොහà·à¶š';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'පණිවිඩය යà·à·€à·“ම අසà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['senttooquickly'] = 'කරුණà·à¶šà¶» මෙම පණිවිඩය යà·à·€à·“මට පෙර තත්පර $secක් රà·à¶¯à·“ සිටින්න.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'පණිවිඩය සුරà·à¶šà·“මේදී දà·à·‚යක් මතුවිය.';
$messages['errormoving'] = 'පනිවුඩය ගෙන යà·à¶¸à¶§ නොහà·à¶š';
$messages['errorcopying'] = 'පණිවිඩ(ය) පිටපත් කල නොහà·à¶š.';
$messages['errordeleting'] = 'පණිවිඩ(ය) මක෠දà·à¶¸à·“මට නොහà·à¶š.';
$messages['errormarking'] = 'පණිවිඩ(ය) සලකුණු කල නොහà·à¶š.';
$messages['deletecontactconfirm'] = 'තà·à¶»à· ඇති ලිපින ඔබට මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'තà·à¶»à· ඇති පණිවිඩ(ය) ඔබට මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
$messages['deletefolderconfirm'] = 'ඔබට මෙම බහà·à¶½à·”ම මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
$messages['purgefolderconfirm'] = 'මෙම බහà·à¶½à¶¸à·š ඇති සියලුම පණිවිඩ ඔබට මක෠දà·à¶¸à·“මට à·ƒà·à¶¶à·€à·’න්ම වුවමනà·à¶¯?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'බහà·à¶½à·”ම මකà·à¶¯à¶¸à¶¸à·’න්...';
+$messages['foldermoving'] = 'Moving folder...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'පà·à¶»à¶¸à¶º සම්පූර්ණයෙන් පුරව෠නොමà·à¶­.';
$messages['noemailwarning'] = 'කරුණà·à¶šà¶» වලංගු විද්යුත් ලිපිනයක් ඇතුලත් කරන්න.';
$messages['nonamewarning'] = 'කරුණà·à¶šà¶» නම ඇතුලත් කරන්න.';
$messages['nopagesizewarning'] = 'කරුණà·à¶šà¶» පිටුවේ ප්â€à¶»à¶¸à·à¶«à¶º ඇතුලත් කරන්න.';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'කරුණà·à¶šà¶» යටත් පිරිසෙයින් එක් ලබන්නෙකු හ෠ඇතුලත් කරන්න';
$messages['nosubjectwarning'] = '"මà·à¶­à·˜à¶šà·à·€" හිස්. මà·à¶­à·˜à¶šà·à·€à¶šà·Š ඇතුලත් කිරීමට ඔබ කà·à¶¸à¶­à·’ද?';
$messages['nobodywarning'] = 'මෙම හිස් පනිවුඩය යවන්නද?';
$messages['notsentwarning'] = 'පණිවිඩය යà·à·€à·“මට නොහà·à¶šà·’ විය. ඔබට එය බà·à·„à·à¶» කිරීමට වුවමනà·à¶¯?';
$messages['noldapserver'] = 'සෙවුම සඳහ෠කරුණà·à¶šà¶» ldap සම්බන්ධතà·à·€à¶ºà¶šà·Š තà·à¶»à· ගන්න';
$messages['nosearchname'] = 'කරුණà·à¶šà¶» ලිපිනයෙහි නම හ෠විද්යුත් තà·à¶´à·à¶½à·Š ලිපිනය ඇතුලත් කරන්න';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = '$nr පනිවුඩය හමු විය';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'සෙවුමට අදà·à¶½ ගà·à¶½à¶´à·“මක් නොමà·à¶­.';
$messages['searching'] = 'සොයමින්...';
$messages['checking'] = 'පරික්â€à·‚à·à¶šà¶»à¶¸à·’න්...';
$messages['nospellerrors'] = 'වියà·à¶šà¶»à¶± දොෂ නොමà·à¶­';
$messages['folderdeleted'] = 'බහà·à¶½à·”ම à·ƒà·à¶»à·Šà¶®à¶šà·€ මක෠දමන ලදී.';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'à·ƒà·à¶»à·Šà¶®à¶šà·€ මකà·à¶¯à¶¸à¶± ලදී.';
$messages['converting'] = 'පනිවුඩයෙන් ආකෘතීකරණය ඉවත් කිරීම';
$messages['messageopenerror'] = 'පනිවුඩය පූරනය කිරීමට නොහà·à¶š';
$messages['fileuploaderror'] = 'ගොනුව ඇතුලත් කිරීමට නොහà·à¶š';
$messages['filesizeerror'] = 'ඇතුලත් කල ගොනුවෙ ප්රමà·à¶«à¶º උපරිම අගය $size ඉක්මව෠ඇත';
+$messages['copysuccess'] = '$nr ලිපිනය à·ƒà·à¶»à·Šà¶®à¶šà·€ පිටපත් කරන ලදී';
+$messages['copyerror'] = 'Could not copy any addresses.';
$messages['sourceisreadonly'] = 'මෙම ලිපින මූලà·à·à·Šà¶»à¶º කියවීම සඳහ෠පමනි';
$messages['errorsavingcontact'] = 'ලිපිනය තà·à¶±à·Šà¶´à¶­à·Š කීරීමට නොහà·à¶š';
$messages['movingmessage'] = 'පණිවිඩ(ය) ගෙනයමින්...';
$messages['copyingmessage'] = 'පණිවිඩ(ය) පිටපත් කරමින්...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
$messages['deletingmessage'] = 'පණිවිඩ(ය) මක෠දමමින්...';
$messages['markingmessage'] = 'පණිවිඩ(ය) සලකුණු කරමින්...';
+$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'] = 'කියවීම් භà·à¶» ගà·à¶±à·“ම යà·à·€à·“මට නොහà·à¶š';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'අවසà·à¶± අනන්â€à¶ºà¶­à·à·€à¶º මක෠දà·à¶¸à·’ය නොහà·à¶š';
+$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'] = 'ආනයනය කරමින්, කරුණà·à¶šà¶» රà·à¶¯à·“ සිටින්න...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
$messages['emailformaterror'] = 'අවලංගු විද්â€à¶ºà·”ත් තà·à¶´à·à¶½à·Š ලිපිනය: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
$messages['messagedeleted'] = 'පණිවිඩ(ය) මක෠දà·à¶¸à·“ම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['messagemoved'] = 'පණිවිඩ(ය) ගෙනයෑම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['messagecopied'] = 'පණිවිඩ(ය) පිටපත් කිරීම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
$messages['messagemarked'] = 'පණිවිඩ(ය) සලකුණු කිරීම à·ƒà·à¶»à·Šà¶®à¶šà¶ºà·’.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
$messages['namecannotbeempty'] = 'නම හිස්ව තà·à¶¶à·’ය නොහà·à¶š.';
$messages['nametoolong'] = 'නම දිග à·€à·à¶©à·’ය.';
+$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/sk_SK/labels.inc b/program/localization/sk_SK/labels.inc
index 93bca166f..10673382a 100644
--- a/program/localization/sk_SK/labels.inc
+++ b/program/localization/sk_SK/labels.inc
@@ -15,24 +15,33 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Vitajte v $product';
-$labels['username'] = 'Meno používateľa';
+$labels['username'] = 'Prihlasovacie meno';
$labels['password'] = 'Heslo';
$labels['server'] = 'Server';
$labels['login'] = 'Prihlásiť';
+
+// taskbar
$labels['logout'] = 'Odhlásiť';
-$labels['mail'] = 'E-mail';
+$labels['mail'] = 'E-Mail';
$labels['settings'] = 'Nastavenia';
-$labels['addressbook'] = 'Adresár kontaktov';
+$labels['addressbook'] = 'Kontakty';
+
+// mailbox names
$labels['inbox'] = 'DoruÄená poÅ¡ta';
-$labels['drafts'] = 'Koncepty';
+$labels['drafts'] = 'Rozpísané';
$labels['sent'] = 'Odoslané';
$labels['trash'] = 'Kôš';
$labels['junk'] = 'Nevyžiadaná pošta';
-$labels['show_real_foldernames'] = 'Pri osobitných prieÄinkoch zobrazovaÅ¥ reálne názvy';
+
+// message listing
$labels['subject'] = 'Predmet';
$labels['from'] = 'Odosielateľ';
-$labels['sender'] = 'Odosielateľ';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Adresát';
$labels['cc'] = 'Kópia';
$labels['bcc'] = 'Tajná kópia';
@@ -44,21 +53,27 @@ $labels['priority'] = 'Priorita';
$labels['organization'] = 'Organizácia';
$labels['readstatus'] = 'Čí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['fromtoshort'] = '$from – $to z $count';
+
$labels['copy'] = 'Kopírovať';
$labels['move'] = 'Presunúť';
$labels['moveto'] = 'presunúť do...';
$labels['download'] = 'stiahnuť';
-$labels['open'] = 'Otvoriť';
-$labels['showattachment'] = 'Zobraziť';
-$labels['showanyway'] = 'Zobraziť aj napriek tomu';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Meno súboru';
$labels['filesize'] = 'Veľkosť súboru';
+
$labels['addtoaddressbook'] = 'Pridať do adresára';
+
+// weekdays short
$labels['sun'] = 'Ne';
$labels['mon'] = 'Po';
$labels['tue'] = 'Ut';
@@ -66,6 +81,8 @@ $labels['wed'] = 'St';
$labels['thu'] = 'Å t';
$labels['fri'] = 'Pi';
$labels['sat'] = 'So';
+
+// weekdays long
$labels['sunday'] = 'Nedeľa';
$labels['monday'] = 'Pondelok';
$labels['tuesday'] = 'Utorok';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Streda';
$labels['thursday'] = 'Å tvrtok';
$labels['friday'] = 'Piatok';
$labels['saturday'] = 'Sobota';
+
+// months short
$labels['jan'] = 'Jan';
$labels['feb'] = 'Feb';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Sep';
$labels['oct'] = 'Okt';
$labels['nov'] = 'Nov';
$labels['dec'] = 'Dec';
+
+// months long
$labels['longjan'] = 'Január';
$labels['longfeb'] = 'Február';
$labels['longmar'] = 'Marec';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'September';
$labels['longoct'] = 'Október';
$labels['longnov'] = 'November';
$labels['longdec'] = 'December';
+
$labels['today'] = 'Dnes';
+
+// toolbar buttons
$labels['refresh'] = 'Obnoviť';
$labels['checkmail'] = 'Skontrolovať nové správy';
$labels['compose'] = 'Vytvoriť správu';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Ďalšie akcie...';
$labels['more'] = 'Ďalšie';
$labels['back'] = 'Dozadu';
$labels['options'] = 'Možnosti';
+
$labels['select'] = 'Výber';
$labels['all'] = 'VÅ¡etky';
$labels['none'] = 'NiÄ';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Aktuálna stránka';
$labels['unread'] = 'NepreÄítané';
$labels['flagged'] = 'OznaÄené';
$labels['unanswered'] = 'NeoznaÄené';
-$labels['withattachment'] = 'S prílohou';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Zmazané';
$labels['undeleted'] = 'Nevymazané';
$labels['invert'] = 'Prevrátiť';
@@ -148,6 +173,7 @@ $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['do_expand'] = 'všetky konverzácie';
$labels['expand_only_unread'] = 'len s nepreÄítanými správami';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Zoznam stĺpcov';
$labels['listsorting'] = 'Triedenie stĺpcov';
$labels['listorder'] = 'Usporiadanie';
$labels['listmode'] = 'Režim zobrazenia zoznamu';
+
$labels['folderactions'] = 'Akcie so zložkou...';
$labels['compact'] = 'ZhustiÅ¥ prieÄinok';
$labels['empty'] = 'Vyprázdniť';
-$labels['importmessages'] = 'Importovať správy';
+
$labels['quota'] = 'Zaplnenie schránky';
$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['msgtext'] = 'Celá správa';
-$labels['body'] = 'Telo';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Meno';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Otvoriť v novom okne';
$labels['emlsave'] = 'Stiahnuť';
-$labels['changeformattext'] = 'ZobraziÅ¥ vo formáte Äistého textu';
-$labels['changeformathtml'] = 'Zobraziť vo formáte HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Upraviť ako novú';
$labels['send'] = 'Odoslať';
$labels['sendmessage'] = 'Odoslať správu';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Potvrdenie o doruÄení';
$labels['dsn'] = 'DoruÄenie oznámenia o stave';
$labels['mailreplyintro'] = '$date odosielateľ napísal:';
$labels['originalmessage'] = 'Pôvodná správa';
+
$labels['editidents'] = 'Editovať identity';
$labels['spellcheck'] = 'Pravopis';
$labels['checkspelling'] = 'Skontrolovať pravopis';
$labels['resumeediting'] = 'PokraÄovaÅ¥ v úpravách';
$labels['revertto'] = 'Vrátiť sa na';
-$labels['responses'] = 'Odpovede';
-$labels['insertresponse'] = 'VložiÅ¥ odpoveÄ';
-$labels['manageresponses'] = 'Spravovať odpovede';
-$labels['savenewresponse'] = 'UložiÅ¥ novú odpoveÄ';
-$labels['editresponses'] = 'Upraviť odpovede';
-$labels['editresponse'] = 'UpraviÅ¥ odpoveÄ';
-$labels['responsename'] = 'Meno';
-$labels['responsetext'] = 'Text odpovede';
+
$labels['attach'] = 'Priložiť';
$labels['attachments'] = 'Prílohy';
$labels['upload'] = 'Nahrať';
$labels['uploadprogress'] = '$percent ($current z $total)';
$labels['close'] = 'Zatvoriť';
$labels['messageoptions'] = 'Nastavenia správy...';
+
$labels['low'] = 'Nízka';
$labels['lowest'] = 'Najnižšia';
$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';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Toto je rozpísaná správa';
$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['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';
+
+// mdn
$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.';
+
+// address boook
$labels['name'] = 'Názov';
$labels['firstname'] = 'Meno';
$labels['surname'] = 'Priezvisko';
@@ -270,6 +301,7 @@ $labels['search'] = 'Hľadať';
$labels['advsearch'] = 'Rozšírené vyhľadávanie';
$labels['advanced'] = 'Rozšírené';
$labels['other'] = 'Ostatné';
+
$labels['typehome'] = 'Domov';
$labels['typework'] = 'Práca';
$labels['typeother'] = 'Ostatné';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Asistent';
$labels['typehomepage'] = 'Domovská stránka';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Pridať položku...';
$labels['addcontact'] = 'Pridať nový kontakt';
$labels['editcontact'] = 'Upraviť kontakt';
$labels['contacts'] = 'Kontakty';
$labels['contactproperties'] = 'Vlastnosti kontaktu';
$labels['personalinfo'] = 'Osobné informácie';
+
$labels['edit'] = 'Upraviť';
$labels['cancel'] = 'Zrušiť';
$labels['save'] = 'Uložiť';
@@ -298,54 +332,60 @@ $labels['rename'] = 'Premenovať';
$labels['addphoto'] = 'Pridať';
$labels['replacephoto'] = 'Nahradiť';
$labels['uploadphoto'] = 'Nahrať fotku';
+
$labels['newcontact'] = 'Vytvoriť nový kontakt';
$labels['deletecontact'] = 'Zmazať zvolené kontakty';
$labels['composeto'] = 'Vytvoriť správu pre';
$labels['contactsfromto'] = 'Kontakty od $from do $to z $count';
$labels['print'] = 'TlaÄ';
$labels['export'] = 'Export';
-$labels['exportall'] = 'Exportovať všetko';
-$labels['exportsel'] = 'Exportovať vybrané';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Exportovať kontakty vo formáte vCard';
$labels['newcontactgroup'] = 'Vytvoriť novú skupinu kontaktov';
$labels['grouprename'] = 'Premenovať skupinu';
$labels['groupdelete'] = 'Zmazať 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['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['import'] = 'Import';
$labels['importcontacts'] = 'Importovať kontakty';
$labels['importfromfile'] = 'Importovať zo súboru:';
-$labels['importtarget'] = 'Pridať kontakty do';
+$labels['importtarget'] = 'Pridať nové kontakty do adresára:';
$labels['importreplace'] = 'Nahradiť celý zoznam 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['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'] = 'Hotovo';
+
+// settings
$labels['settingsfor'] = 'Nastavenia pre';
$labels['about'] = 'O programe';
$labels['preferences'] = 'Vlastnosti';
$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['newitem'] = 'Nová položka';
$labels['edititem'] = 'Upraviť položku';
+
$labels['preferhtml'] = 'Uprednostniť HTML zobrazenie';
$labels['defaultcharset'] = 'Predvolené kódovanie';
$labels['htmlmessage'] = 'HTML správa';
-$labels['messagepart'] = 'Časť';
-$labels['digitalsig'] = 'Digitálny podpis';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Formát dátumu';
$labels['timeformat'] = 'Formát Äasu';
$labels['prettydate'] = 'Krajší dátum';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Vytvoriť HTML správu';
$labels['htmlonreply'] = 'len v odpovedi na HTML správy';
$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['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Ukázať náhľad';
$labels['skin'] = 'Vzhľad';
$labels['logoutclear'] = 'Vyprázdniť kôš pri odhlásení';
@@ -387,7 +427,7 @@ $labels['always'] = 'vždy';
$labels['showinlineimages'] = 'Zobraziť 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'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'nikdy';
$labels['immediately'] = 'ihneÄ';
$labels['messagesdisplaying'] = 'Zobrazovanie správ';
@@ -422,7 +462,7 @@ $labels['afternseconds'] = 'po $n sekundách';
$labels['reqmdn'] = 'Vždy požadovaÅ¥ doruÄenku';
$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['defaultabook'] = 'Default address book';
$labels['autocompletesingle'] = 'Vynechať alternatívnu emailovú adresu pri automatickom dopĺňaní';
$labels['listnamedisplay'] = 'Zobraziť kontakt ako';
$labels['spellcheckbeforesend'] = 'Skontrolovať pravopis pred odoslaním správy';
@@ -432,10 +472,10 @@ $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['standardwindows'] = 'S vyskakovacími oknami pracovať ako so štandardnými oknami';
$labels['forwardmode'] = 'Preposielanie správ';
$labels['inline'] = 'v tele spávy';
$labels['asattachment'] = 'ako príloha';
+
$labels['folder'] = 'PrieÄinok';
$labels['folders'] = 'PrieÄinky';
$labels['foldername'] = 'Názov prieÄinku';
@@ -456,20 +496,26 @@ $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['installedplugins'] = 'Nainštalované zásuvné moduly';
$labels['plugin'] = 'Zásuvný modul';
$labels['version'] = 'Verzia';
$labels['source'] = 'Zdroj';
$labels['license'] = 'Licencia';
$labels['support'] = 'Získať podporu';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'AngliÄtina';
$labels['westerneuropean'] = 'Západná Európa';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'VietnamÄina';
$labels['japanese'] = 'JaponÄina';
$labels['korean'] = 'KorejÄina';
$labels['chinese'] = 'Čínština';
+
?>
diff --git a/program/localization/sk_SK/messages.inc b/program/localization/sk_SK/messages.inc
index 71d5d52c1..a6f319db6 100644
--- a/program/localization/sk_SK/messages.inc
+++ b/program/localization/sk_SK/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Vyskytla sa chyba!';
$messages['loginfailed'] = 'Chybné prihlásenie';
$messages['cookiesdisabled'] = 'Váš internetový prehliadaÄ nepodporuje cookies, ktoré sú potrebné pre prihlásenie';
@@ -26,14 +28,14 @@ $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['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['erroroverquota'] = 'Unable to perform operation. No free disk space.';
+$messages['erroroverquotadelete'] = 'No free disk space. Use SHIFT+DEL to delete a message.';
$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['refreshing'] = 'Obnovuje sa...';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'NaÄítava sa...';
$messages['uploading'] = 'Nahrávám súbor...';
$messages['uploadingmany'] = 'Nahrávam súbory...';
@@ -44,8 +46,6 @@ $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['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.';
@@ -56,8 +56,8 @@ $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['errorsavingsent'] = 'Pri ukladaní odoslanej správy nastala chyba';
+$messages['errorsaving'] = 'Vyskytla sa chyba pri ukladaní';
$messages['errormoving'] = 'Správa sa nedá presunúť';
$messages['errorcopying'] = 'Správa sa nedá skopírovať';
$messages['errordeleting'] = 'Správa sa nedá zmazať';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Odstraňuje sa formátovanie správy...';
$messages['messageopenerror'] = 'Nedá sa naÄítaÅ¥ správa zo servera';
$messages['fileuploaderror'] = 'NaÄítanie súboru nebolo úspeÅ¡né';
$messages['filesizeerror'] = 'NaÄítavaný súbor prekroÄil maximálnu veľkosÅ¥ $size';
-$messages['copysuccess'] = '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['copysuccess'] = 'Úspešne sa skopírovalo $nr adries';
+$messages['copyerror'] = 'Nedá sa kopírovať žiadna adresa';
$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...';
@@ -126,11 +123,9 @@ $messages['contactaddedtogroup'] = 'Kontakty boli úspešne presunuty do tejto s
$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['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>ÚspeÅ¡ne sa naÄítalo $inserted kontaktov, preskoÄilo sa $skipped existujúcich záznamov</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>PreskoÄených $skipped existujúcich záznamov</b>';
-$messages['importmessagesuccess'] = '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Å¥?';
@@ -144,7 +139,7 @@ $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['internalerror'] = 'Došlo k internej chybe systému. Prosím skúste to ešte raz.';
+$messages['internalerror'] = 'Došlo k internej chybe. Skúste to znova';
$messages['contactdelerror'] = 'Nemôžem vymazať kontakt(y)';
$messages['contactdeleted'] = 'Kontakt(y) bol vymazaný';
$messages['contactrestoreerror'] = 'Nemôžem obnoviť zmazané kontakty';
@@ -170,6 +165,7 @@ $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['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.';
+$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/sl_SI/labels.inc b/program/localization/sl_SI/labels.inc
index f1e9010d4..6b9ba2d41 100644
--- a/program/localization/sl_SI/labels.inc
+++ b/program/localization/sl_SI/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Dobrodošli v $product';
$labels['username'] = 'Uporabniško ime';
$labels['password'] = 'Geslo';
$labels['server'] = 'Strežnik';
$labels['login'] = 'Prijava';
+
+// taskbar
$labels['logout'] = 'Odjava';
$labels['mail'] = 'E-Pošta';
$labels['settings'] = 'Osebne nastavitve';
$labels['addressbook'] = 'Stiki';
+
+// mailbox names
$labels['inbox'] = 'Prejeto';
$labels['drafts'] = 'Osnutki';
$labels['sent'] = 'Poslano';
$labels['trash'] = 'Smeti';
$labels['junk'] = 'Nezaželena sporoÄila';
-$labels['show_real_foldernames'] = 'Prikaži prava imena za posebne mape';
+
+// message listing
$labels['subject'] = 'Zadeva';
$labels['from'] = 'Pošiljatelj';
$labels['sender'] = 'Pošiljatelj';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioriteta';
$labels['organization'] = 'Organizacija';
$labels['readstatus'] = 'Status';
$labels['listoptions'] = 'Možnosti prikaza...';
+
$labels['mailboxlist'] = 'Mape';
$labels['messagesfromto'] = 'SporoÄila $from do $to od $count';
$labels['threadsfromto'] = 'Nit $from do $to od $count';
$labels['messagenrof'] = 'SporoÄilo $nr od $count';
$labels['fromtoshort'] = '$from – $to od $count';
+
$labels['copy'] = 'Kopiraj';
$labels['move'] = 'Premakni';
$labels['moveto'] = 'Premakni v...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Prenesi';
$labels['open'] = 'Odpri';
$labels['showattachment'] = 'Prikaži';
$labels['showanyway'] = 'Prikaži';
+
$labels['filename'] = 'Ime datoteke';
$labels['filesize'] = 'Velikost datoteke';
+
$labels['addtoaddressbook'] = 'Dodaj med stike';
+
+// weekdays short
$labels['sun'] = 'ned';
$labels['mon'] = 'pon';
$labels['tue'] = 'tor';
@@ -66,6 +81,8 @@ $labels['wed'] = 'sre';
$labels['thu'] = 'Äet';
$labels['fri'] = 'pet';
$labels['sat'] = 'sob';
+
+// weekdays long
$labels['sunday'] = 'nedelja';
$labels['monday'] = 'ponedeljek';
$labels['tuesday'] = 'torek';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'sreda';
$labels['thursday'] = 'Äetrtek';
$labels['friday'] = 'petek';
$labels['saturday'] = 'sobota';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dec';
+
+// months long
$labels['longjan'] = 'januar';
$labels['longfeb'] = 'februar';
$labels['longmar'] = 'marec';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'november';
$labels['longdec'] = 'december';
+
$labels['today'] = 'Danes';
+
+// toolbar buttons
$labels['refresh'] = 'Osveži';
$labels['checkmail'] = 'Preglej nova sporoÄila';
$labels['compose'] = 'Sestavi sporoÄilo';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'VeÄ možnosti...';
$labels['more'] = 'VeÄ';
$labels['back'] = 'Nazaj';
$labels['options'] = 'Možnosti';
+
$labels['select'] = 'Izberi';
$labels['all'] = 'Vse';
$labels['none'] = 'Brez';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'Trenutna stran';
$labels['unread'] = 'Neprebrano';
$labels['flagged'] = 'OznaÄeno';
$labels['unanswered'] = 'NeoznaÄeno';
-$labels['withattachment'] = 'S priponko';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Izbrisano';
$labels['undeleted'] = 'Ni izbrisano';
$labels['invert'] = 'Zamenjaj';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Razširi vse';
$labels['expand-unread'] = 'Razširi neprebrano';
$labels['collapse-all'] = 'Zloži vse';
$labels['threaded'] = 'Nitno';
+
$labels['autoexpand_threads'] = 'Razširi niti';
$labels['do_expand'] = 'vse niti';
$labels['expand_only_unread'] = 'samo niti z neprebranimi sporoÄili';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Seznam stolpcev';
$labels['listsorting'] = 'Urejanje stolpcev';
$labels['listorder'] = 'Vrstni red';
$labels['listmode'] = 'NaÄin prikaza seznama';
+
$labels['folderactions'] = 'Upravljanje map...';
$labels['compact'] = 'Stisni';
$labels['empty'] = 'Izprazni';
-$labels['importmessages'] = 'Uvozi sporoÄila';
+
$labels['quota'] = 'Poraba prostora';
$labels['unknown'] = 'neznana';
$labels['unlimited'] = 'neomejena';
+
$labels['quicksearch'] = 'Hitri iskalnik';
$labels['resetsearch'] = 'PrekliÄi iskanje';
$labels['searchmod'] = 'Spremembe iskanja';
$labels['msgtext'] = 'Celotno sporoÄilo';
$labels['body'] = 'Vsebina sporoÄila';
-$labels['type'] = 'Tip';
-$labels['namex'] = 'Ime';
+
$labels['openinextwin'] = 'Odpri v novem oknu';
$labels['emlsave'] = 'Prenos datoteke (.eml)';
-$labels['changeformattext'] = 'Prikaži kot golo besedilo';
-$labels['changeformathtml'] = 'Prikaži v formatu HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Uredi kot novo';
$labels['send'] = 'Pošlji';
$labels['sendmessage'] = 'PoÅ¡lji sporoÄilo';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Potrdilo prejemnika';
$labels['dsn'] = 'Status dostave sporoÄila';
$labels['mailreplyintro'] = '$date, je $sender napisal';
$labels['originalmessage'] = 'Izvorno sporoÄilo';
+
$labels['editidents'] = 'Uredi identitete';
$labels['spellcheck'] = 'ÄŒrkovanje';
$labels['checkspelling'] = 'Preglej pravopis';
$labels['resumeediting'] = 'Nadaljuj z urejanjem';
$labels['revertto'] = 'Razveljavi';
-$labels['responses'] = 'Odgovori';
-$labels['insertresponse'] = 'Vnesi odgovor';
-$labels['manageresponses'] = 'Uredi odgovore';
-$labels['savenewresponse'] = 'Shrani nove odgovore';
-$labels['editresponses'] = 'Uredi odgovore';
-$labels['editresponse'] = 'Uredi odgovor';
-$labels['responsename'] = 'Ime';
-$labels['responsetext'] = 'Tekst za odgovor';
+
$labels['attach'] = 'Pripni';
$labels['attachments'] = 'Priponke';
$labels['upload'] = 'Naloži';
$labels['uploadprogress'] = '$percent ($current od $total)';
$labels['close'] = 'Zapri';
$labels['messageoptions'] = 'Možnosti';
+
$labels['low'] = 'Nizka';
$labels['lowest'] = 'Najnižja';
$labels['normal'] = 'ObiÄajna';
$labels['high'] = 'Visoka';
$labels['highest'] = 'Najvišja';
+
$labels['nosubject'] = '(brez naslova)';
$labels['showimages'] = 'Prikaži slike';
$labels['alwaysshow'] = 'Vedno prikaži slike od $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'To je osnutek sporoÄila.';
$labels['andnmore'] = '$nr veÄ...';
$labels['togglemoreheaders'] = 'Prikaži veÄ glav sporoÄila';
$labels['togglefullheaders'] = 'Preklopi na neobdelan zapis glave sporoÄila';
+
$labels['htmltoggle'] = 'Obogateno besedilo (HTML)';
$labels['plaintoggle'] = 'Samo besedilo';
$labels['savesentmessagein'] = 'Shrani poslana sporoÄila v';
$labels['dontsave'] = 'Ne shrani';
$labels['maxuploadsize'] = 'NajveÄja dovoljena velikost datoteke je $size';
+
$labels['addcc'] = 'Dodaj Kp';
$labels['addbcc'] = 'Dodaj Skp';
$labels['addreplyto'] = 'Dodaj naslov za odgovor';
$labels['addfollowupto'] = 'Dodaj naslov za odgovor';
+
+// mdn
$labels['mdnrequest'] = 'PoÅ¡iljatelj tega sporoÄila je zaprosil za potrdilo o branju. Želite o tem obvestiti poÅ¡iljatelja?';
$labels['receiptread'] = 'Potrdilo o branju';
$labels['yourmessage'] = 'To je potrdilo o branju.';
$labels['receiptnote'] = 'Pozor: to je samo potrdilo, da je bilo vaÅ¡e sporoÄilo prikazano na prejemnikovem raÄunalniku. To Å¡e ne pomeni, da je prejemnik prebral ali razumel vsebino vaÅ¡ega sporoÄila.';
+
+// address boook
$labels['name'] = 'Ime za prikaz';
$labels['firstname'] = 'Ime';
$labels['surname'] = 'Priimek';
@@ -270,6 +301,7 @@ $labels['search'] = 'Iskanje';
$labels['advsearch'] = 'Napredno iskanje';
$labels['advanced'] = 'Napredno';
$labels['other'] = 'Ostalo';
+
$labels['typehome'] = 'Doma';
$labels['typework'] = 'Služba';
$labels['typeother'] = 'Ostalo';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'PomoÄ';
$labels['typehomepage'] = 'DomaÄa stran';
$labels['typeblog'] = 'Blog';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Dodaj polje...';
$labels['addcontact'] = 'Dodaj izbrane stike v imenik';
$labels['editcontact'] = 'Uredi vizitko';
$labels['contacts'] = 'Stiki';
$labels['contactproperties'] = 'Lastnosti stika';
$labels['personalinfo'] = 'Osebni podatki';
+
$labels['edit'] = 'Uredi';
$labels['cancel'] = 'PrekliÄi';
$labels['save'] = 'Shrani';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Preimenuj';
$labels['addphoto'] = 'Dodaj';
$labels['replacephoto'] = 'Zamenjaj';
$labels['uploadphoto'] = 'Naloži sliko';
+
$labels['newcontact'] = 'Dodaj vizitko';
$labels['deletecontact'] = 'Izbriši izbrane vizitke';
$labels['composeto'] = 'Sestavi sporoÄilo za';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Ustvari novo skupino stikov';
$labels['grouprename'] = 'Preimenuj skupino';
$labels['groupdelete'] = 'Izbriši skupino';
$labels['groupremoveselected'] = 'Odstrani izbrane stike iz skupine';
+
$labels['previouspage'] = 'Prejšnja stran';
$labels['firstpage'] = 'Prva stran';
$labels['nextpage'] = 'Naslednja stran';
$labels['lastpage'] = 'Zadnja stran';
+
$labels['group'] = 'Skupina';
$labels['groups'] = 'Skupine';
-$labels['listgroup'] = 'IzpiÅ¡i seznam Älanov skupine';
$labels['personaladrbook'] = 'Stiki';
+
$labels['searchsave'] = 'Shrani iskanje';
$labels['searchdelete'] = 'Izbriši iskanje';
+
$labels['import'] = 'Uvozi';
$labels['importcontacts'] = 'Uvozi stike';
$labels['importfromfile'] = 'Uvozi iz datoteke:';
-$labels['importtarget'] = 'Dodaj stike v';
+$labels['importtarget'] = 'Dodaj nove stike v imenik:';
$labels['importreplace'] = 'Zamenjaj celoten imenik';
-$labels['importgroups'] = 'Vnesi skupinske zadolžitve';
-$labels['importgroupsall'] = 'Vse (ustvari skupine, Äe je potrebno)';
-$labels['importgroupsexisting'] = 'Samo za obstojeÄe skupine';
$labels['importdesc'] = 'Stike lahko naložite iz obstojeÄega imenika. <br/>Trenutno je podprt uvoz stikov v zapisu <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> ali v CSV (z vejico loÄene vrednosti) zapisu.';
$labels['done'] = 'DokonÄano';
+
+// settings
$labels['settingsfor'] = 'Nastavitve za';
$labels['about'] = 'Vizitka';
$labels['preferences'] = 'Nastavitve';
$labels['userpreferences'] = 'Uporabniške nastavitve';
$labels['editpreferences'] = 'Uredi uporabniške nastavitve';
+
$labels['identities'] = 'Identitete';
$labels['manageidentities'] = 'Upravljaj identitete za ta raÄun';
$labels['newidentity'] = 'Nova identiteta';
+
$labels['newitem'] = 'Nov predmet';
$labels['edititem'] = 'Uredi predmet';
+
$labels['preferhtml'] = 'Prednostno HTML';
$labels['defaultcharset'] = 'Privzeto kodiranje znakov';
$labels['htmlmessage'] = 'HTML sporoÄilo';
@@ -362,7 +402,7 @@ $labels['htmleditor'] = 'Sestavi sporoÄila z obogatenim besedilom';
$labels['htmlonreply'] = 'le pri odgovoru na sporoÄila z obogatenim besedilom';
$labels['htmlonreplyandforward'] = 'le pri posredovanju ali odgovoru na sporoÄila z obogatenim besedilom';
$labels['htmlsignature'] = 'Podpis z obogatenim besedilom';
-$labels['showemail'] = 'Prikaži e-naslove poleg imen';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Prikaži predogled';
$labels['skin'] = 'Tema uporabniškega vmesnika';
$labels['logoutclear'] = 'Izprazni mapo Smeti ob odjavi';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ne upoštevaj besed, ki vsebujejo številke';
$labels['spellcheckignorecaps'] = 'Ne upoÅ¡tevaj besed, ki vsebujejo samo velike Ärke';
$labels['addtodict'] = 'Dodaj v slovar';
$labels['mailtoprotohandler'] = 'Registriraj upravljavca protokola za e-naslov: povezave';
-$labels['standardwindows'] = 'Prikaži pojavna okna kot obiÄajna';
$labels['forwardmode'] = 'Posredovanje sporoÄil';
$labels['inline'] = 'medvrstiÄno';
$labels['asattachment'] = 'Kot priponka';
+
$labels['folder'] = 'Mapa';
$labels['folders'] = 'Mape';
$labels['foldername'] = 'Ime mape';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Tip mape';
$labels['personalfolder'] = 'Zasebna mapa';
$labels['otherfolder'] = 'Mapa drugega uporabnika';
$labels['sharedfolder'] = 'Javna mapa';
+
$labels['sortby'] = 'Uredi po';
$labels['sortasc'] = 'Uredi naraÅ¡ÄajoÄe';
$labels['sortdesc'] = 'Uredi padajoÄe';
$labels['undo'] = 'PrekliÄi';
+
$labels['installedplugins'] = 'NameÅ¡Äeni vtiÄniki';
$labels['plugin'] = 'VtiÄnik';
$labels['version'] = 'RazliÄica';
$labels['source'] = 'Vir';
$labels['license'] = 'Licenca';
$labels['support'] = 'Podpora';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Angleško';
$labels['westerneuropean'] = 'Zahodnoevropsko';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamsko';
$labels['japanese'] = 'Japonsko';
$labels['korean'] = 'Korejsko';
$labels['chinese'] = 'Kitajsko';
+
?>
diff --git a/program/localization/sl_SI/messages.inc b/program/localization/sl_SI/messages.inc
index 3d1ea677c..081d912c1 100644
--- a/program/localization/sl_SI/messages.inc
+++ b/program/localization/sl_SI/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Prišlo je do napake!';
$messages['loginfailed'] = 'Prijava ni uspela';
$messages['cookiesdisabled'] = 'Vaš spletni brskalnik ne sprejema piškotkov.';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'SporoÄilo je bilo uspeÅ¡no poslano.';
$messages['savingmessage'] = 'Shranjevanje sporoÄila...';
$messages['messagesaved'] = 'SporoÄilo je bilo shranjeno v Osnutke';
$messages['successfullysaved'] = 'Uspešno shranjeno.';
-$messages['savingresponse'] = 'Shranjevanje odgovora...';
-$messages['deleteresponseconfirm'] = 'Ste prepriÄani, da želite izbrisati ta odgovor?';
$messages['addedsuccessfully'] = 'Stik je bil uspešno dodan v imenik.';
$messages['contactexists'] = 'Stik s tem elektronskim naslovom že obstaja.';
$messages['contactnameexists'] = 'Stik s tem imenom že obstaja';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Odstranjevanje nastavitev oblikovanja...';
$messages['messageopenerror'] = 'SporoÄila ni bilo mogoÄe prenesti iz strežnika';
$messages['fileuploaderror'] = 'Prenos datoteke je spodletel';
$messages['filesizeerror'] = 'Naložena datoteka presega najveÄjo dovoljeno velikost $size';
-$messages['copysuccess'] = 'Uspešno ste kopirali $nr stikov.';
-$messages['movesuccess'] = 'Uspešno ste premaknili $nr stikov.';
-$messages['copyerror'] = 'Stikov ni bilo mogoÄe kopirati.';
-$messages['moveerror'] = 'Stikov ni bilo mogoÄe premakniti.';
+$messages['copysuccess'] = '$nr naslovov je bilo uspešno prenešenih';
+$messages['copyerror'] = 'Nobenih naslovov ni bilo mogoÄe kopirati';
$messages['sourceisreadonly'] = 'Ta naslov je na voljo samo za branje';
$messages['errorsavingcontact'] = 'Stika ni bilo mogoÄe shraniti';
$messages['movingmessage'] = 'Premikanje sporoÄila...';
$messages['copyingmessage'] = 'Kopiranje sporoÄila...';
$messages['copyingcontact'] = 'Kopiranje stika/ov';
-$messages['movingcontact'] = 'Premikanje stika(ov)...';
$messages['deletingmessage'] = 'Brisanje sporoÄil/a';
$messages['markingmessage'] = 'OznaÄevanje sporoÄil/a';
$messages['addingmember'] = 'Dodajanje stika/ov v skupino...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Uvažanje poteka...';
$messages['importformaterror'] = 'Uvoz ni uspel! Uvožena datoteka ni pravega formata.';
$messages['importconfirm'] = '<b>Uspešno uvoženi $inserted stiki, $skipped stikov že obstaja v imeniku</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>PreskoÄeni že obstojeÄi vnosi $skipped </b>';
-$messages['importmessagesuccess'] = 'UpeÅ¡no ste uvozili $nr sporoÄil.';
-$messages['importmessageerror'] = 'Uvoz je spodletel. Naložena datoteka ni veljavno sporoÄilo ali poÅ¡tna datoteka';
$messages['opnotpermitted'] = 'Operacija ni dovoljena.';
$messages['nofromaddress'] = 'V izbrani identiteti manjka elektronski naslov.';
$messages['editorwarning'] = 'Preklop v sploÅ¡en urejevalnik onemogoÄa uporabo izbranih nastavitev oblikovanja. Želite nadaljevati?';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Podmape v tej mapi ni bilo mogoÄe ustvariti/p
$messages['messagetoobig'] = 'SporoÄilo je preveliko za obdelavo.';
$messages['attachmentvalidationerror'] = 'OPOZORILO! Priponka vsebuje sumljivo vsebino, saj tip priponke ne ustreza tipu, doloÄenemu v sporoÄilu. ÄŒe ne zaupate poÅ¡iljatelju, priponke v brskalniku ne odpirajte, saj lahko vsebuje zlonamerno vsebino. <br/><br/><em>PriÄakovano: $expected; Najdeno: $detected</em>';
$messages['noscriptwarning'] = 'Opozorilo: Ta spletna stran zahteva Javascript! Za uporabo jo vkljuÄite v nastavitvah vaÅ¡ega brskalnika.';
+
?>
diff --git a/program/localization/sq_AL/labels.inc b/program/localization/sq_AL/labels.inc
index fa822a728..ba9b559d8 100644
--- a/program/localization/sq_AL/labels.inc
+++ b/program/localization/sq_AL/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Mirëseerdhe te $product';
$labels['username'] = 'Përdoruesi';
$labels['password'] = 'Fjalëkalimi';
$labels['server'] = 'Serveri';
$labels['login'] = 'Hyr';
+
+// taskbar
$labels['logout'] = 'Dil';
$labels['mail'] = 'Mesazhet';
$labels['settings'] = 'Konfigurimi Personal';
$labels['addressbook'] = 'Libri i Adresave';
+
+// mailbox names
$labels['inbox'] = 'Ardhjet';
$labels['drafts'] = 'Drafte';
$labels['sent'] = 'Dërguar';
$labels['trash'] = 'Fshirë';
$labels['junk'] = 'Reklama';
+
+// message listing
$labels['subject'] = 'Tema';
$labels['from'] = 'Dërguesi';
+$labels['sender'] = 'Sender';
$labels['to'] = 'Marrësi';
$labels['cc'] = 'Kopje';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Reply-To';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Data';
$labels['size'] = 'Madhësia';
$labels['priority'] = 'Përparësia';
$labels['organization'] = 'Organizata';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'Kutitë';
$labels['messagesfromto'] = 'Mesazhet $from në $to nga $count';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'Mesazhi $nr nga $count';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'Kopje';
+$labels['move'] = 'Move';
$labels['moveto'] = 'ço te...';
$labels['download'] = 'shkarko';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Emër skedari';
$labels['filesize'] = 'Madhësi skedari';
+
$labels['addtoaddressbook'] = 'Shto në librin e adresave';
+
+// weekdays short
$labels['sun'] = 'Dje';
$labels['mon'] = 'Hën';
$labels['tue'] = 'Mar';
@@ -55,6 +81,8 @@ $labels['wed'] = 'Mër';
$labels['thu'] = 'Enj';
$labels['fri'] = 'Pre';
$labels['sat'] = 'Sht';
+
+// weekdays long
$labels['sunday'] = 'e djelë';
$labels['monday'] = 'e hënë';
$labels['tuesday'] = 'e martë';
@@ -62,12 +90,50 @@ $labels['wednesday'] = 'e mërkurë';
$labels['thursday'] = 'e enjte';
$labels['friday'] = 'e premte';
$labels['saturday'] = 'e shtunë';
+
+// months short
+$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';
+
+// months long
+$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'] = 'sot';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'Shiko për mesazhe të reja';
$labels['compose'] = 'Shkruaj një mesazh';
$labels['writenewmessage'] = 'Krijo një mesazh të ri';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'Ktheji përgjigje mesazhit';
$labels['replytoallmessage'] = 'Ktheji përgjigje dërguesit dhe të gjithë marrësve';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'Pasoje mesazhin';
$labels['deletemessage'] = 'Fshije mesazhin';
$labels['movemessagetotrash'] = 'Hidhe mesazhin në kosh';
@@ -78,94 +144,338 @@ $labels['nextmessage'] = 'Shfaq mesazhin pasardhës';
$labels['lastmessage'] = 'Shfaq mesazhin e fundit';
$labels['backtolist'] = 'Kthehu te lista e mesazheve';
$labels['viewsource'] = 'Shfaq tekstin';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'Shëno mesazhet';
$labels['markread'] = 'Si të lexuara';
$labels['markunread'] = 'Si të palexuara';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'Zgjidh';
$labels['all'] = 'Të gjitha';
$labels['none'] = 'Asnjë';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'Palexuar';
+$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'] = 'Asnjë';
+$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'] = 'Zvogëlo';
$labels['empty'] = 'Boshatis';
+
$labels['quota'] = 'Përdorimi i diskut';
$labels['unknown'] = 'i panjohur';
$labels['unlimited'] = 'i pakufizuar';
+
$labels['quicksearch'] = 'Kërkim i shpejtë';
$labels['resetsearch'] = 'Pastro kërkimin';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
+$labels['body'] = 'Body';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Dërgoje mesazhin tani';
$labels['savemessage'] = 'Ruaje si draft';
$labels['addattachment'] = 'Bashkangjit një skedar';
$labels['charset'] = 'Bashkësi shkronjash';
$labels['editortype'] = 'Lloj editori';
$labels['returnreceipt'] = 'Njoftim marrje';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'Kontroll gabimesh';
$labels['resumeediting'] = 'Vazhdo editimin';
$labels['revertto'] = 'Ktheje te';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'Bashkangjitjet';
$labels['upload'] = 'Ngarko';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'Mbyll';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'I ulët';
$labels['lowest'] = 'Më i ulëti';
$labels['normal'] = 'Normal';
$labels['high'] = 'I lartë';
$labels['highest'] = 'Më i larti';
+
$labels['nosubject'] = '(pa subjekt)';
$labels['showimages'] = 'Shfaq imazhet';
+$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'] = 'TEXT';
+$labels['savesentmessagein'] = 'Save sent message in';
+$labels['dontsave'] = 'don\'t save';
+$labels['maxuploadsize'] = 'Maximum allowed file size is $size';
+
$labels['addcc'] = 'Shto Cc';
$labels['addbcc'] = 'Shto Bcc';
$labels['addreplyto'] = 'Shto Reply-To';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Dërguesi i këtij mesazhi ka kërkuar që të njoftohet kur ju të lexoni këtë mesazh. Dëshironi ta njoftoni dërguesin?';
$labels['receiptread'] = 'Njoftim Leximi';
$labels['yourmessage'] = 'Ky është një njoftim leximi për mesazhin tuaj';
$labels['receiptnote'] = 'Shënim: Ky njoftim tregon vetëm që mesazhi u shfaq në kompjuterin e marrësit. Nuk ka siguri që marrësi e ka lexuar ose e ka kuptuar përmbajtjen e mesazhit.';
+
+// address boook
$labels['name'] = 'Emri që thirret';
$labels['firstname'] = 'Emri';
$labels['surname'] = 'Mbiemri';
+$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'] = 'E-Mail';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'Shto një kontakt të ri';
$labels['editcontact'] = 'Ndrysho kontaktin';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'Ndrysho';
$labels['cancel'] = 'Anullo';
$labels['save'] = 'Ruaj';
$labels['delete'] = 'Fshi';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'Krijo nje kartë të re kontakti';
$labels['deletecontact'] = 'Fshi kontaktet e zgjedhura';
$labels['composeto'] = 'Shkruaj email për';
$labels['contactsfromto'] = 'Kontaktet $from në $to nga $count';
$labels['print'] = 'Shtyp';
$labels['export'] = 'Eksporto';
+$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'] = 'Shfaq grupin e mëparshëm';
$labels['firstpage'] = 'Shfaq grupin e parë';
$labels['nextpage'] = 'Shfaq grupin tjetër';
$labels['lastpage'] = 'Shfaq grupin e fundit';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'Grupet';
$labels['personaladrbook'] = 'Adresat Personale';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
+$labels['import'] = 'Import';
+$labels['importcontacts'] = 'Import contacts';
+$labels['importfromfile'] = 'Import from file:';
+$labels['importtarget'] = 'Add new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'Konfigurimet për';
+$labels['about'] = 'About';
$labels['preferences'] = 'Preferencat';
$labels['userpreferences'] = 'Preferencat e përdoruesit';
$labels['editpreferences'] = 'Ndrysho preferencat e përdoruesit';
+
$labels['identities'] = 'Identitetet';
$labels['manageidentities'] = 'Manaxho identitetet per këtë llogari';
$labels['newidentity'] = 'Identitet i ri';
+
$labels['newitem'] = 'Element i ri';
$labels['edititem'] = 'Ndrysho element';
+
$labels['preferhtml'] = 'Shfaq HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'Mesazh HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'Data të këndshme';
$labels['setdefault'] = 'Bëje identitet kryesor';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'Gjuha';
$labels['timezone'] = 'Brezi orar';
$labels['pagesize'] = 'Rreshtat për faqe';
$labels['signature'] = 'Nënshkrim';
$labels['dstactive'] = 'Ndryshim ore';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'Shkruaj mesazhe HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'Nënshkrimi HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Shiko si duket';
+$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'] = 'Ruaje automatikisht si draft';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'kurrë';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'Kutia';
$labels['folders'] = 'Kutitë';
$labels['foldername'] = 'Emër kutie';
@@ -174,7 +484,55 @@ $labels['messagecount'] = 'Mesazhe';
$labels['create'] = 'Krijo';
$labels['createfolder'] = 'Krijo kuti të re';
$labels['managefolders'] = 'Sistemo kutitë';
+$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'] = 'Rradhit sipas';
$labels['sortasc'] = 'Rradhitje rritëse';
$labels['sortdesc'] = 'Rradhitje zbritëse';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
+$labels['B'] = 'B';
+$labels['KB'] = 'KB';
+$labels['MB'] = 'MB';
+$labels['GB'] = 'GB';
+
+// character sets
+$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/sq_AL/messages.inc b/program/localization/sq_AL/messages.inc
index d4b981318..56bb9feb2 100644
--- a/program/localization/sq_AL/messages.inc
+++ b/program/localization/sq_AL/messages.inc
@@ -15,14 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'Hyrja dështoi';
$messages['cookiesdisabled'] = 'Shfletuesi juaj nuk i pranon sheqerkat';
$messages['sessionerror'] = 'Sesioni juaj është i pavlefshëm ose i ka kaluar afati';
$messages['storageerror'] = 'Lidhja me serverin IMAP dështoi';
+$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'] = 'Nuk ka mesazhe në këtë kuti postare';
$messages['loggedout'] = 'Sesionin e mbyllët me sukses. Mirupafshim!';
$messages['mailboxempty'] = 'Kutia postare është bosh';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'Po ngarkohet...';
+$messages['uploading'] = 'Uploading file...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'Po ngarkohen të dhëna...';
$messages['checkingmail'] = 'Po shoh për mesazhe të reja...';
$messages['sendingmessage'] = 'Po dërgoj mesazhin...';
@@ -32,42 +48,124 @@ $messages['messagesaved'] = 'Mesazhi u ruajt te kutia Drafte';
$messages['successfullysaved'] = 'U ruajt me sukses';
$messages['addedsuccessfully'] = 'Kontakti u shtua me sukses në librin e adresave';
$messages['contactexists'] = 'Këtë adresë e-mail e ka një kontakt tjetër';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'Për të mbrojtur fshehtësinë tuaj, imazhet e largëta të këtij mesazhi janë bllokuar.';
$messages['encryptedmessage'] = 'Ky është një mesazh i koduar dhe nuk mund te shfaqet. Më vjen keq!';
$messages['nocontactsfound'] = 'Nuk ka kontakte';
$messages['contactnotfound'] = 'Kontakti që kërkoni nuk gjendet';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Dërgimi i mesazhit dështoi';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'Pati nje problem gjatë ruajtjes';
$messages['errormoving'] = 'Nuk e lëviza dot mesazhin';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'Nuk e fshiva dot mesazhin';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'Me të vërtetë doni ti fshini kontaktet e zgjedhura?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'Me të vërtetë doni ti fshini mesazhet e zgjedhura?';
$messages['deletefolderconfirm'] = 'Me të vërtetë doni ta fshini këtë kuti?';
$messages['purgefolderconfirm'] = 'Me të vërtetë doni ti fshini të gjitha mesazhet në këtë kuti?';
+$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'] = 'Formulari nuk ishte i gjithi i plotësuar';
$messages['noemailwarning'] = 'Ju lutem jepni një adresë email të rregullt';
$messages['nonamewarning'] = 'Ju lutem jepni një emër';
$messages['nopagesizewarning'] = 'Ju lutem jepni nje madhësi për faqen';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'Ju lutem shënoni të paktën një marrës';
$messages['nosubjectwarning'] = 'Fusha e temës është bosh. Dëshironi të shënoni një temë tani?';
$messages['nobodywarning'] = 'Ta dërgoj mesazhin pa tekst?';
$messages['notsentwarning'] = 'Mesazhi nuk u dërgua. Doni ta hidhni poshtë mesazhin?';
$messages['noldapserver'] = 'Ju lutem jepni një server ldap për të kërkuar';
$messages['nosearchname'] = 'Ju lutem jepni një adresë email ose një emër kontakti';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'U gjetën $nr mesazhe';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'Kërkimi nuk gjeti gjë';
$messages['searching'] = 'Po kërkoj...';
$messages['checking'] = 'Po kontrolloj...';
$messages['nospellerrors'] = 'Nuk u gjetën gabime';
$messages['folderdeleted'] = 'Kutia u fshi me sukses';
+$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'] = 'U fshi me sukses';
$messages['converting'] = 'Po i heq formatimin mesazhit...';
$messages['messageopenerror'] = 'Nuk marr dot mesazhe nga serveri';
$messages['fileuploaderror'] = 'Ngarkimi i skedarit dështoi';
$messages['filesizeerror'] = 'Skedari i ngarkuar e kalon madhësinë kufi prej $size';
+$messages['copysuccess'] = 'U kopjuan me sukses $nr adresa';
+$messages['copyerror'] = 'Nuk munda të kopjoj adresat';
$messages['sourceisreadonly'] = 'Ky burim adrese është vetëm i lexueshëm';
$messages['errorsavingcontact'] = 'Nuk e ruajta dot adresën e kontaktit';
$messages['movingmessage'] = 'Po lëviz mesazhin...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['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'] = 'U dërgua me sukses një njoftim leximi';
$messages['errorsendingreceipt'] = 'Nuk mund të dërgohet njoftimi';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'Ju nuk mund ta fshini këtë identitet sepse nuk ju ka mbetur tjetër.';
+$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['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/sr_CS/labels.inc b/program/localization/sr_CS/labels.inc
index e2d40b1b6..130d3a7a6 100644
--- a/program/localization/sr_CS/labels.inc
+++ b/program/localization/sr_CS/labels.inc
@@ -15,44 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Добродошли на $product';
$labels['username'] = 'КориÑничко име';
$labels['password'] = 'Лозинка';
$labels['server'] = 'Сервер';
$labels['login'] = 'Пријава';
+
+// taskbar
$labels['logout'] = 'Одјава';
$labels['mail'] = 'Сандуче';
$labels['settings'] = 'Подешавања';
$labels['addressbook'] = 'Именик';
+
+// mailbox names
$labels['inbox'] = 'Примљене';
$labels['drafts'] = 'U pripremi';
$labels['sent'] = 'ПоÑлате';
$labels['trash'] = 'Канта';
$labels['junk'] = 'Смеће';
+
+// message listing
$labels['subject'] = 'ÐаÑлов';
$labels['from'] = 'Од';
+$labels['sender'] = 'Sender';
$labels['to'] = 'За';
$labels['cc'] = 'Cc';
$labels['bcc'] = 'Bcc';
$labels['replyto'] = 'Одговори';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'Датум';
$labels['size'] = 'Величина';
$labels['priority'] = 'Приоритет';
$labels['organization'] = 'Организација';
$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['move'] = 'Пребаци';
$labels['moveto'] = 'Пребаци у...';
$labels['download'] = 'Преузми (Ñкидање)';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'Име датотекеe';
$labels['filesize'] = 'Величина датотеке';
+
$labels['addtoaddressbook'] = 'Додај у именик';
+
+// weekdays short
$labels['sun'] = 'Ðед';
$labels['mon'] = 'Пон';
$labels['tue'] = 'Уто';
@@ -60,6 +81,8 @@ $labels['wed'] = 'Сре';
$labels['thu'] = 'Чет';
$labels['fri'] = 'Пет';
$labels['sat'] = 'Суб';
+
+// weekdays long
$labels['sunday'] = 'Ðедеља';
$labels['monday'] = 'Понедељак';
$labels['tuesday'] = 'Уторак';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'Среда';
$labels['thursday'] = 'Четвртак';
$labels['friday'] = 'Петак';
$labels['saturday'] = 'Субота';
+
+// months short
$labels['jan'] = 'Јан';
$labels['feb'] = 'Феб';
$labels['mar'] = 'Мар';
@@ -79,6 +104,8 @@ $labels['sep'] = 'Сеп';
$labels['oct'] = 'Окт';
$labels['nov'] = 'Ðов';
$labels['dec'] = 'Дец';
+
+// months long
$labels['longjan'] = 'Јануар';
$labels['longfeb'] = 'Фебруар';
$labels['longmar'] = 'Март';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'Септембар';
$labels['longoct'] = 'Октобар';
$labels['longnov'] = 'Ðовембар';
$labels['longdec'] = 'Децембар';
+
$labels['today'] = 'ДанаÑ';
+
+// toolbar buttons
$labels['refresh'] = 'ОÑвежи';
$labels['checkmail'] = 'Провера нових порука';
$labels['compose'] = 'Ðова порука';
@@ -102,6 +132,7 @@ $labels['replytoallmessage'] = 'Одговори пошиљаоцу и Ñвим
$labels['replyall'] = 'Одговори Ñвима';
$labels['replylist'] = 'ЛиÑта за одговоре';
$labels['forward'] = 'ПроÑледи';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'ПроÑледи као прилог';
$labels['forwardmessage'] = 'ПроÑледи поруку';
$labels['deletemessage'] = 'Избриши поруку';
@@ -123,6 +154,7 @@ $labels['moreactions'] = 'ОÑтале радње...';
$labels['more'] = 'Више';
$labels['back'] = 'Ðазад';
$labels['options'] = 'Опције';
+
$labels['select'] = 'Одабери';
$labels['all'] = 'Све';
$labels['none'] = 'Ðишта';
@@ -130,13 +162,20 @@ $labels['currpage'] = 'Тренутна Ñтраница';
$labels['unread'] = 'Ðепрочитане';
$labels['flagged'] = 'Означено';
$labels['unanswered'] = 'Ðеодговорено';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'ОбриÑано';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'Уведи';
$labels['filter'] = 'Филтер';
$labels['list'] = 'ЛиÑта';
$labels['threads'] = 'Ðити';
$labels['expand-all'] = 'Прошири Ñве';
+$labels['expand-unread'] = 'Expand Unread';
$labels['collapse-all'] = 'Сажми Ñве';
+$labels['threaded'] = 'Threaded';
+
+$labels['autoexpand_threads'] = 'Expand message threads';
+$labels['do_expand'] = 'all threads';
$labels['expand_only_unread'] = 'Ñамо Ñа непрочитаним порукама';
$labels['fromto'] = 'Од/За';
$labels['flag'] = 'ЗаÑтава';
@@ -148,19 +187,31 @@ $labels['asc'] = 'раÑтући';
$labels['desc'] = 'опадајући';
$labels['listcolumns'] = 'ЛиÑÑ‚ колона';
$labels['listsorting'] = 'Сортирање колонe';
+$labels['listorder'] = 'Sorting order';
$labels['listmode'] = 'ЛиÑÑ‚ режим приказивања';
+
$labels['folderactions'] = 'ПоÑтавке фаÑцикле';
$labels['compact'] = 'Компакција';
$labels['empty'] = 'ИÑпразни';
+
$labels['quota'] = 'Квота';
$labels['unknown'] = 'непозната';
$labels['unlimited'] = 'беÑконачна';
+
$labels['quicksearch'] = 'Брза претрага';
$labels['resetsearch'] = 'Прикажи Ñве поруке';
+$labels['searchmod'] = 'Search modifiers';
$labels['msgtext'] = 'Цела порука';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'Отвори у новом прозору';
$labels['emlsave'] = 'Довнлоад (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Модификуј као ново';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'Пошаљи поруку';
$labels['savemessage'] = 'Сачувај у Снимљене';
$labels['addattachment'] = 'Приложи датотеку';
@@ -170,37 +221,52 @@ $labels['returnreceipt'] = 'Потврда о приÑпећу';
$labels['dsn'] = 'Обавештење о ÑтатуÑу Ñлања поруке';
$labels['mailreplyintro'] = 'Дана $date, $sender је напиÑао:';
$labels['originalmessage'] = 'Оригинална порука';
+
$labels['editidents'] = 'Модификуј пÑеудониме';
$labels['spellcheck'] = 'Провера правопиÑа';
$labels['checkspelling'] = 'Провера правопиÑа';
$labels['resumeediting'] = 'Повратак у режим пиÑања';
$labels['revertto'] = 'Врати Ñе на';
+
$labels['attach'] = 'Приложи';
$labels['attachments'] = 'Прилози';
$labels['upload'] = 'Додај';
$labels['uploadprogress'] = '$percent ($current од $total)';
$labels['close'] = 'Затвори';
$labels['messageoptions'] = 'Опције поруке';
+
$labels['low'] = 'Ðизак';
$labels['lowest'] = 'Ðајнижи';
$labels['normal'] = 'Средњи';
$labels['high'] = 'ВиÑок';
$labels['highest'] = 'Ðајвиши';
+
$labels['nosubject'] = '(без наÑлова)';
$labels['showimages'] = 'Прикажи Ñлике';
$labels['alwaysshow'] = 'Увек покажи Ñлике од $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'] = 'Обичан текÑÑ‚';
$labels['savesentmessagein'] = 'ПоÑлате поруке Ñачувај у';
$labels['dontsave'] = 'Ðе Ñачувај';
$labels['maxuploadsize'] = 'МакÑимална величина податка је $size';
+
$labels['addcc'] = 'Додај Cc';
$labels['addbcc'] = 'Додај Bcc';
$labels['addreplyto'] = 'Додај Одговор-за';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'Пошиљалац ове поруке је замолио да буде обавештен када прочитате ову поруку. Да ли желите да обавеÑтите пошиљаоца?';
$labels['receiptread'] = 'Обавештење о приÑпећу (прочитана порука)';
$labels['yourmessage'] = 'Ово је обавештење о приÑпећу за вашу поруку';
$labels['receiptnote'] = 'Пажња: Ово обавештење Ñамо потврђује да је порука приказана на рачунару примаоца. Ðе поÑтоји гаранција да је прималац прочитао или разумео Ñадржај поруке.';
+
+// address boook
$labels['name'] = 'Пуно име';
$labels['firstname'] = 'Име';
$labels['surname'] = 'Презиме';
@@ -235,6 +301,7 @@ $labels['search'] = 'Тражи';
$labels['advsearch'] = 'Ðапредна претрага';
$labels['advanced'] = 'Ðапредно';
$labels['other'] = 'ОÑтало';
+
$labels['typehome'] = 'Кућа';
$labels['typework'] = 'ПоÑао';
$labels['typeother'] = 'ОÑтало';
@@ -249,12 +316,14 @@ $labels['typeassistant'] = 'ÐÑиÑтент';
$labels['typehomepage'] = 'Почетна Ñтраница';
$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профил';
+
$labels['addfield'] = 'Додај поље';
$labels['addcontact'] = 'Додај нови контакт';
$labels['editcontact'] = 'Измени контакт';
$labels['contacts'] = 'Конакти';
$labels['contactproperties'] = 'СвојÑтва контакта';
$labels['personalinfo'] = 'Личне информације';
+
$labels['edit'] = 'Измени';
$labels['cancel'] = 'Откажи';
$labels['save'] = 'Сачувај';
@@ -263,43 +332,60 @@ $labels['rename'] = 'Преименуј';
$labels['addphoto'] = 'Додај';
$labels['replacephoto'] = 'Измени';
$labels['uploadphoto'] = 'ПоÑтави фотографију';
+
$labels['newcontact'] = 'Додај нови контакт';
$labels['deletecontact'] = 'Обриши одабране контакте';
$labels['composeto'] = 'Ðапиши поруку...';
$labels['contactsfromto'] = 'Контакти $from до $to од укупно $count';
$labels['print'] = 'Штампај';
$labels['export'] = 'Извези';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'Извези конакте у vCard формату';
$labels['newcontactgroup'] = 'Креирај нову контакт групу';
$labels['grouprename'] = 'Преименуј групу';
$labels['groupdelete'] = 'Обриши групу';
$labels['groupremoveselected'] = 'Избриши изабране контакте из групе';
+
$labels['previouspage'] = 'Прикажи претходну Ñтрану';
$labels['firstpage'] = 'Прикажи први Ñкуп';
$labels['nextpage'] = 'Прикажи Ñледећу Ñтрану';
$labels['lastpage'] = 'Прикажи поÑледњи Ñкуп';
+
$labels['group'] = 'Група';
$labels['groups'] = 'Групе';
$labels['personaladrbook'] = 'Личне адреÑе';
+
$labels['searchsave'] = 'Сачувај претрагу';
$labels['searchdelete'] = 'Избриши претрагу';
+
$labels['import'] = 'Увези';
$labels['importcontacts'] = 'Увези контакте';
$labels['importfromfile'] = 'Увези из датотеке:';
+$labels['importtarget'] = 'Додај нове контакте у адреÑар';
$labels['importreplace'] = 'Измени цели адреÑар';
+$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'] = 'Готово';
+
+// settings
$labels['settingsfor'] = 'Подешавања за';
$labels['about'] = 'Инфо';
$labels['preferences'] = 'Подешавања';
$labels['userpreferences'] = 'Општа подешавања';
$labels['editpreferences'] = 'Измена општих подешавања';
+
$labels['identities'] = 'Идентитети';
$labels['manageidentities'] = 'ПодеÑи идентитете за овај налог';
$labels['newidentity'] = 'Додај идентитет';
+
$labels['newitem'] = 'Ðова Ñтавка';
$labels['edititem'] = 'Измена Ñтавке';
+
$labels['preferhtml'] = 'ПредноÑÑ‚ дај ХТМЛ формату';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'ХТМЛ формат поруке';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
$labels['dateformat'] = 'Формат датума';
$labels['timeformat'] = 'Формат времена';
$labels['prettydate'] = 'Форматирани датум';
@@ -310,9 +396,13 @@ $labels['timezone'] = 'ВременÑка зона';
$labels['pagesize'] = 'Редова по Ñтрани';
$labels['signature'] = 'ПотпиÑ';
$labels['dstactive'] = 'Летње померање времена';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'СаÑтави HTML поруке';
$labels['htmlonreply'] = 'Ñамо при одговору на HTML поруку';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML потпиÑ';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Прикажи панел за преглед';
$labels['skin'] = 'ИнтерфејÑ';
$labels['logoutclear'] = 'Избриши Ñмеће при логовању';
@@ -320,13 +410,24 @@ $labels['logoutcompact'] = 'Компактно Ñандуче при логовÐ
$labels['uisettings'] = 'КориÑнички интерфејÑ';
$labels['serversettings'] = 'ПоÑтавке Ñервера';
$labels['mailboxview'] = 'Преглед Ñандучета';
+$labels['mdnrequests'] = 'On request for return receipt';
$labels['askuser'] = 'питај ме';
+$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'] = 'игнориÑати';
+$labels['readwhendeleted'] = 'Mark the message as read on delete';
+$labels['flagfordeletion'] = 'Flag the message for deletion instead of delete';
$labels['skipdeleted'] = 'Ðе приказуј избриÑане поруке';
$labels['deletealways'] = 'Ðко Ñлање поруке у отпад не уÑпе, обришите их';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
+$labels['showremoteimages'] = 'Display remote inline images';
+$labels['fromknownsenders'] = 'from known senders';
$labels['always'] = 'увек';
$labels['showinlineimages'] = 'Покажи приложене Ñлике иÑпод поруке';
$labels['autosavedraft'] = 'ÐутоматÑки чувај у Снимљене';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'никад';
$labels['immediately'] = 'одмах';
$labels['messagesdisplaying'] = 'прикажи поруке';
@@ -335,6 +436,7 @@ $labels['mimeparamfolding'] = 'имена прилога';
$labels['2231folding'] = 'Full RFC 2231 (тхундербирд )';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'Full RFC 2047 (други)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'Ðапредне опције';
$labels['focusonnewmessage'] = 'ФокуÑирати прозор претраживача на новој поруци';
$labels['checkallfolders'] = 'Проверите Ñве фаÑцикле за нове поруке';
@@ -347,6 +449,7 @@ $labels['maintenance'] = 'Поправке';
$labels['newmessage'] = 'Ðова порука';
$labels['signatureoptions'] = 'Опције потпиÑа';
$labels['whenreplying'] = 'При одговору';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'Почни нову поруку преко оригинала';
$labels['replybottomposting'] = 'Почни нову поруку иÑпод оригинала';
$labels['replyremovesignature'] = 'При одговору одÑтрани оригинални Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ Ð¸Ð· поруке';
@@ -359,12 +462,20 @@ $labels['afternseconds'] = 'након $n Ñекунди';
$labels['reqmdn'] = 'Увек затражи повратну Ñкрипту';
$labels['reqdsn'] = 'Увек затражи обавештење о ÑтатуÑу Ñлања поруке';
$labels['replysamefolder'] = 'Сачувај одговоре у фаÑциклу поруке на коју Ñе одговара';
+$labels['defaultabook'] = 'Default address book';
+$labels['autocompletesingle'] = 'Skip alternative email addresses in autocompletion';
$labels['listnamedisplay'] = 'ЛиÑти контакате као';
$labels['spellcheckbeforesend'] = 'Проверите Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ð¿Ñ€Ðµ Ñлања поруке';
$labels['spellcheckoptions'] = 'Опције Провере правопиÑа';
$labels['spellcheckignoresyms'] = 'игнориши речи Ñа Ñимболима';
$labels['spellcheckignorenums'] = 'игнориши речи Ñа бројевима';
+$labels['spellcheckignorecaps'] = 'Ignore words with all letters capitalized';
$labels['addtodict'] = 'Додај у речник';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
+$labels['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'ФаÑцикла';
$labels['folders'] = 'ФаÑцикле';
$labels['foldername'] = 'Име фаÑцикле';
@@ -385,19 +496,26 @@ $labels['foldertype'] = 'типа фаÑцикле';
$labels['personalfolder'] = 'Приватна фаÑцикла';
$labels['otherfolder'] = 'ФаÑцикла Других КориÑникa';
$labels['sharedfolder'] = 'Јавна фаÑцикла';
+
$labels['sortby'] = 'Сортирај по';
$labels['sortasc'] = 'Сортирај раÑтуће';
$labels['sortdesc'] = 'Сортирај опадајуће';
$labels['undo'] = 'Унатраг';
+
+$labels['installedplugins'] = 'Installed plugins';
$labels['plugin'] = 'Додаци';
$labels['version'] = 'Верзија';
$labels['source'] = 'Извор';
$labels['license'] = 'Лиценца';
$labels['support'] = 'подршка';
+
+// units
$labels['B'] = 'Б';
$labels['KB'] = 'КБ';
$labels['MB'] = 'МБ';
$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Универзални код';
$labels['english'] = 'ЕнглеÑки';
$labels['westerneuropean'] = 'Западна Европа';
@@ -416,4 +534,5 @@ $labels['vietnamese'] = 'ВијетнамÑки';
$labels['japanese'] = 'ЈапанÑки';
$labels['korean'] = 'КореанÑки';
$labels['chinese'] = 'КинеÑки';
+
?>
diff --git a/program/localization/sr_CS/messages.inc b/program/localization/sr_CS/messages.inc
index 7a4c89356..32007e6f2 100644
--- a/program/localization/sr_CS/messages.inc
+++ b/program/localization/sr_CS/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Дошло је до грешке!';
$messages['loginfailed'] = 'ÐеуÑпешно пријављивање';
$messages['cookiesdisabled'] = 'Ваш интернет прегледач не подржава колачиће';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Грешка у бази података!';
$messages['requesttimedout'] = 'Захтев је иÑтекао';
$messages['errorreadonly'] = 'Ðе може да изврши операцију. ФаÑцикла Ñе може Ñамо читати.';
$messages['errornoperm'] = 'Извршење операције није могуће. Одбијен захтев за дозволу.';
+$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'] = 'Погрешан захтев! Подаци ниÑу Ñачувани.';
$messages['invalidhost'] = 'Погрешно име Ñервера.';
$messages['nomessagesfound'] = 'Ðемате порука у Ñандучету.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'Жељени контакт није нађен'
$messages['contactsearchonly'] = 'УнеÑите шта тражите да пронађете контакте';
$messages['sendingfailed'] = 'Грешка при Ñлању поруке';
$messages['senttooquickly'] = 'Молимо Ð’Ð°Ñ Ð´Ð° Ñачекате $sec Ñекунд(и) пре него пошаљете ову поруку';
+$messages['errorsavingsent'] = 'Приликом похрањивања поÑлате поруке деÑила Ñе грешка';
+$messages['errorsaving'] = 'Грешка при Ñнимању поруке';
$messages['errormoving'] = 'Грешка при премештању поруке';
$messages['errorcopying'] = 'Копирање поруке није било уÑпешно';
$messages['errordeleting'] = 'Грешка при бриÑању поруке';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Уклањање форматирања из пору
$messages['messageopenerror'] = 'Порука Ñе не може учитати Ñа Ñервера';
$messages['fileuploaderror'] = 'Слање датотеке неуÑпешно';
$messages['filesizeerror'] = 'ПоÑлата датотека не може да прекорачи величину од $size';
+$messages['copysuccess'] = 'УÑпешно копирано $nr адреÑа';
+$messages['copyerror'] = 'Ðемогуће је иÑкопирати иједну адреÑу';
$messages['sourceisreadonly'] = 'Овај извор адреÑе је Ñамо за читање';
$messages['errorsavingcontact'] = 'ÐеуÑпело Ñнимање адреÑе контакта';
$messages['movingmessage'] = 'Премештам поруку...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'SMTP Error ($code): $msg';
$messages['emailformaterror'] = 'Имејл адреÑа није валидна: $email';
$messages['toomanyrecipients'] = 'Превише прималаца. Смањите број прималаца на $max.';
$messages['maxgroupmembersreached'] = 'Број чланова гупе прелази макÑимум од $max';
+$messages['internalerror'] = 'ДеÑила Ñе интерна грешка. Молимо покушајте поново';
$messages['contactdelerror'] = 'БриÑање контакта неуÑпешно';
$messages['contactdeleted'] = 'БриÑање контакта уÑпешно';
$messages['contactrestoreerror'] = 'Ðе може да врати обриÑане контакте.';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Ðе може да направи/премеÑ
$messages['messagetoobig'] = 'Део Ñа поруком је превелик за обраду.';
$messages['attachmentvalidationerror'] = 'УПОЗОРЕЊЕ! Овај прилог је Ñумњив зато што Ñе његов тип не поклапа Ñа типом објављеним у поруци. Уколико немате поверења у пошиљаоца, не отварајте је у прегледачу зато што може Ñадржати злонамерни Ñадржај.<br/><br/><em>Очекивао: $expected; нашао: $detected</em>';
$messages['noscriptwarning'] = 'Упозорење: ова поштанÑка уÑлуга захтева ЈаваÑкрипт! Да биÑте је кориÑтили, укључите ЈаваÑкрипт у подешавањима вашег прегледача.';
+
?>
diff --git a/program/localization/sv_SE/labels.inc b/program/localization/sv_SE/labels.inc
index 8116afeff..f61433527 100644
--- a/program/localization/sv_SE/labels.inc
+++ b/program/localization/sv_SE/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Välkommen till $product';
$labels['username'] = 'Användarnamn';
$labels['password'] = 'Lösenord';
$labels['server'] = 'Server';
$labels['login'] = 'Logga in';
+
+// taskbar
$labels['logout'] = 'Logga ut';
$labels['mail'] = 'Meddelanden';
$labels['settings'] = 'Inställningar';
$labels['addressbook'] = 'Adressbok';
+
+// mailbox names
$labels['inbox'] = 'Inkorg';
$labels['drafts'] = 'Utkast';
$labels['sent'] = 'Skickat';
$labels['trash'] = 'Papperskorg';
$labels['junk'] = 'Skräp';
-$labels['show_real_foldernames'] = 'Visa verkliga namn på särskilda kataloger';
+
+// message listing
$labels['subject'] = 'Ämne';
$labels['from'] = 'Avsändare';
$labels['sender'] = 'Avsändare';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Prioritet';
$labels['organization'] = 'Organisation';
$labels['readstatus'] = 'Lässtatus';
$labels['listoptions'] = 'Listalternativ...';
+
$labels['mailboxlist'] = 'Kataloger';
$labels['messagesfromto'] = 'Meddelande $from till $to av $count';
$labels['threadsfromto'] = 'Tråd $from till $to av $count';
$labels['messagenrof'] = 'Meddelande $nr av $count';
$labels['fromtoshort'] = '$from – $to av $count';
+
$labels['copy'] = 'Kopiera';
$labels['move'] = 'Flytta';
$labels['moveto'] = 'Flytta till:';
@@ -56,9 +67,13 @@ $labels['download'] = 'Ladda ner';
$labels['open'] = 'Öppna';
$labels['showattachment'] = 'Visa';
$labels['showanyway'] = 'Visa det ändå';
+
$labels['filename'] = 'Filnamn';
$labels['filesize'] = 'Filstorlek';
+
$labels['addtoaddressbook'] = 'Lägg till i adressbok';
+
+// weekdays short
$labels['sun'] = 'sön';
$labels['mon'] = 'mån';
$labels['tue'] = 'tis';
@@ -66,6 +81,8 @@ $labels['wed'] = 'ons';
$labels['thu'] = 'tor';
$labels['fri'] = 'fre';
$labels['sat'] = 'lör';
+
+// weekdays long
$labels['sunday'] = 'söndag';
$labels['monday'] = 'måndag';
$labels['tuesday'] = 'tisdag';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'onsdag';
$labels['thursday'] = 'torsdag';
$labels['friday'] = 'fredag';
$labels['saturday'] = 'lördag';
+
+// months short
$labels['jan'] = 'jan';
$labels['feb'] = 'feb';
$labels['mar'] = 'mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'sep';
$labels['oct'] = 'okt';
$labels['nov'] = 'nov';
$labels['dec'] = 'dec';
+
+// months long
$labels['longjan'] = 'januari';
$labels['longfeb'] = 'februari';
$labels['longmar'] = 'mars';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'september';
$labels['longoct'] = 'oktober';
$labels['longnov'] = 'november';
$labels['longdec'] = 'december';
+
$labels['today'] = 'idag';
+
+// toolbar buttons
$labels['refresh'] = 'Uppdatera';
$labels['checkmail'] = 'Hämta nya meddelanden';
$labels['compose'] = 'Nytt meddelande';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'Fler åtgärder';
$labels['more'] = 'Fler';
$labels['back'] = 'Tillbaka';
$labels['options'] = 'Alternativ';
+
$labels['select'] = 'Välj';
$labels['all'] = 'Alla';
$labels['none'] = 'Ingen';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Visa alla';
$labels['expand-unread'] = 'Visa olästa';
$labels['collapse-all'] = 'Dölj alla';
$labels['threaded'] = 'Trådat';
+
$labels['autoexpand_threads'] = 'Visa trådade meddelanden';
$labels['do_expand'] = 'Alla trådar';
$labels['expand_only_unread'] = 'Trådar med olästa meddelanden';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Kolumner';
$labels['listsorting'] = 'Sortering';
$labels['listorder'] = 'Ordning';
$labels['listmode'] = 'Visningsläge';
+
$labels['folderactions'] = 'Hantera kataloger';
$labels['compact'] = 'Packa';
$labels['empty'] = 'Töm';
-$labels['importmessages'] = 'Importera meddelanden';
+
$labels['quota'] = 'Diskutrymme';
$labels['unknown'] = 'okänt';
$labels['unlimited'] = 'obegränsat';
+
$labels['quicksearch'] = 'Snabbsök';
$labels['resetsearch'] = 'Återställ sökning';
$labels['searchmod'] = 'Sökalternativ';
$labels['msgtext'] = 'Hela meddelandet';
$labels['body'] = 'Innehåll';
-$labels['type'] = 'Typ';
-$labels['namex'] = 'Namn';
+
$labels['openinextwin'] = 'Öppna i nytt fönster';
$labels['emlsave'] = 'Spara (.eml)';
$labels['changeformattext'] = 'Visa i text-format';
$labels['changeformathtml'] = 'Visa i HTML-format';
+
+// message compose
$labels['editasnew'] = 'Redigera som nytt';
$labels['send'] = 'Skicka';
$labels['sendmessage'] = 'Skicka meddelande';
@@ -192,30 +221,26 @@ $labels['returnreceipt'] = 'Mottagarkvitto';
$labels['dsn'] = 'Leveransstatusmeddelande';
$labels['mailreplyintro'] = '$date skrev $sender:';
$labels['originalmessage'] = 'Ursprungligt meddelande';
+
$labels['editidents'] = 'Ändra identiteter';
$labels['spellcheck'] = 'Rättstava';
$labels['checkspelling'] = 'Kontrollera stavning';
$labels['resumeediting'] = 'Ã…teruppta redigering';
$labels['revertto'] = 'Återgå till';
-$labels['responses'] = 'Responser';
-$labels['insertresponse'] = 'Infoga respons';
-$labels['manageresponses'] = 'Hantera responser';
-$labels['savenewresponse'] = 'Spara ny respons';
-$labels['editresponses'] = 'Ändra responser';
-$labels['editresponse'] = 'Ändra respons';
-$labels['responsename'] = 'Namn';
-$labels['responsetext'] = 'Responstext';
+
$labels['attach'] = 'Bifoga';
$labels['attachments'] = 'Bilagor';
$labels['upload'] = 'Bifoga';
$labels['uploadprogress'] = '$percent ($current av $total)';
$labels['close'] = 'Stäng';
$labels['messageoptions'] = 'Meddelandealternativ';
+
$labels['low'] = 'LÃ¥g';
$labels['lowest'] = 'Lägst';
$labels['normal'] = 'Normal';
$labels['high'] = 'Hög';
$labels['highest'] = 'Högst';
+
$labels['nosubject'] = '(inget ämne)';
$labels['showimages'] = 'Visa bilder';
$labels['alwaysshow'] = 'Visa alltid bilder från $sender';
@@ -223,19 +248,25 @@ $labels['isdraft'] = 'Detta meddelande är ett utkast.';
$labels['andnmore'] = '$nr fler...';
$labels['togglemoreheaders'] = 'Visa fler meddelandehuvuden';
$labels['togglefullheaders'] = 'Växla meddelandehuvuden';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Text';
$labels['savesentmessagein'] = 'Spara kopia i';
$labels['dontsave'] = 'Spara inte';
$labels['maxuploadsize'] = 'Tillåten filstorlek är $size';
+
$labels['addcc'] = 'Kopia';
$labels['addbcc'] = 'Dold kopia';
$labels['addreplyto'] = 'Svar till';
$labels['addfollowupto'] = 'Uppföljning till';
+
+// mdn
$labels['mdnrequest'] = 'Avsändaren har begärt mottagarkvitto för det här meddelandet. Vill du skicka ett mottagarkvitto?';
$labels['receiptread'] = 'Mottagarkvitto (läst)';
$labels['yourmessage'] = 'Det här är ett mottagarkvitto för ditt meddelande';
$labels['receiptnote'] = 'Notera: Mottagarkvittot innebär bara att meddelandet visats på mottagarens dator. Därmed finns ingen garanti att mottagaren har läst och förstått meddelandet.';
+
+// address boook
$labels['name'] = 'Namn';
$labels['firstname'] = 'Förnamn';
$labels['surname'] = 'Efternamn';
@@ -270,6 +301,7 @@ $labels['search'] = 'Sök';
$labels['advsearch'] = 'Avancerad sökning';
$labels['advanced'] = 'Avancerad';
$labels['other'] = 'Annat';
+
$labels['typehome'] = 'Hem';
$labels['typework'] = 'Arbete';
$labels['typeother'] = 'Annat';
@@ -284,12 +316,14 @@ $labels['typeassistant'] = 'Assistent';
$labels['typehomepage'] = 'Webbsida';
$labels['typeblog'] = 'Blogg';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Lägg till fält...';
$labels['addcontact'] = 'Lägg till ny kontakt';
$labels['editcontact'] = 'Ändra kontakt';
$labels['contacts'] = 'Kontakter';
$labels['contactproperties'] = 'Kontaktegenskaper';
$labels['personalinfo'] = 'Personlig information';
+
$labels['edit'] = 'Redigera';
$labels['cancel'] = 'Avbryt';
$labels['save'] = 'Spara';
@@ -298,6 +332,7 @@ $labels['rename'] = 'Ändra namn';
$labels['addphoto'] = 'Lägg till';
$labels['replacephoto'] = 'Ersätt';
$labels['uploadphoto'] = 'Ladda upp foto';
+
$labels['newcontact'] = 'Ny kontakt';
$labels['deletecontact'] = 'Ta bort vald kontakt';
$labels['composeto'] = 'Nytt meddelande till';
@@ -311,36 +346,41 @@ $labels['newcontactgroup'] = 'Ny kontaktgrupp';
$labels['grouprename'] = 'Ändra gruppnamn';
$labels['groupdelete'] = 'Ta bort grupp';
$labels['groupremoveselected'] = 'Ta bort markerade kontakter från gruppen';
+
$labels['previouspage'] = 'Visa föregående sida';
$labels['firstpage'] = 'Visa första sidan';
$labels['nextpage'] = 'Visa nästa sida';
$labels['lastpage'] = 'Visa sista sidan';
+
$labels['group'] = 'Grupp';
$labels['groups'] = 'Kontaktgrupper';
-$labels['listgroup'] = 'Visa gruppmedlemmar';
$labels['personaladrbook'] = 'Personliga adresser';
+
$labels['searchsave'] = 'Lägg till sökning';
$labels['searchdelete'] = 'Ta bort sökning';
+
$labels['import'] = 'Importera';
$labels['importcontacts'] = 'Importera kontakter';
$labels['importfromfile'] = 'Importera från fil:';
-$labels['importtarget'] = 'Lägg till kontakter i';
+$labels['importtarget'] = 'Lägg till nya kontakter till adressbok:';
$labels['importreplace'] = 'Ersätt samtliga kontakter i adressboken';
-$labels['importgroups'] = 'Importera grupptillhörigheter';
-$labels['importgroupsall'] = 'Alla (skapa grupper om nödvändigt)';
-$labels['importgroupsexisting'] = 'Endast till befintliga grupper';
$labels['importdesc'] = 'Kontakter kan importeras från en befintlig adressbok.<br/>Programmet stödjer inläsning av kontakter i formatet <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> eller formatet CSV (kommaseparerad data).';
$labels['done'] = 'Klart';
+
+// settings
$labels['settingsfor'] = 'Inställningar för';
$labels['about'] = 'Om';
$labels['preferences'] = 'Inställningar';
$labels['userpreferences'] = 'Användarinställningar';
$labels['editpreferences'] = 'Ändra användarinställningar';
+
$labels['identities'] = 'Identiteter';
$labels['manageidentities'] = 'Hantera identiteter';
$labels['newidentity'] = 'Ny identitet';
+
$labels['newitem'] = 'Ny information';
$labels['edititem'] = 'Ändra information';
+
$labels['preferhtml'] = 'Visa meddelanden i HTML-format';
$labels['defaultcharset'] = 'Förvald teckenkodning';
$labels['htmlmessage'] = 'HTML-meddelande';
@@ -432,10 +472,10 @@ $labels['spellcheckignorenums'] = 'Ignorera ord med siffror';
$labels['spellcheckignorecaps'] = 'Ignorera ord med enbart stora bokstäver';
$labels['addtodict'] = 'Lägg till i ordlista';
$labels['mailtoprotohandler'] = 'Ange program för hantering av mailto-länkar';
-$labels['standardwindows'] = 'Hantera popup-rutor som standardfönster';
$labels['forwardmode'] = 'Vidarebefordra meddelande';
$labels['inline'] = 'Infogat';
$labels['asattachment'] = 'Bilaga';
+
$labels['folder'] = 'Katalog';
$labels['folders'] = 'Kataloger';
$labels['foldername'] = 'Katalognamn';
@@ -456,20 +496,26 @@ $labels['foldertype'] = 'Katalogtyp';
$labels['personalfolder'] = 'Privat katalog';
$labels['otherfolder'] = 'Annan användares katalog';
$labels['sharedfolder'] = 'Publik katalog';
+
$labels['sortby'] = 'Sortera på';
$labels['sortasc'] = 'Sortera stigande';
$labels['sortdesc'] = 'Sortera fallande';
$labels['undo'] = 'Ã…ngra';
+
$labels['installedplugins'] = 'Installerade tillägg';
$labels['plugin'] = 'Tillägg';
$labels['version'] = 'Version';
$labels['source'] = 'Källkod';
$labels['license'] = 'Licens';
$labels['support'] = 'Hjälp';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Engelsk';
$labels['westerneuropean'] = 'Västeuropeisk';
@@ -488,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamesisk';
$labels['japanese'] = 'Japansk';
$labels['korean'] = 'Koreansk';
$labels['chinese'] = 'Kinesisk';
+
?>
diff --git a/program/localization/sv_SE/messages.inc b/program/localization/sv_SE/messages.inc
index 16bbd5a23..63dddc548 100644
--- a/program/localization/sv_SE/messages.inc
+++ b/program/localization/sv_SE/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Ett fel uppstod!';
$messages['loginfailed'] = 'Inloggningen misslyckades';
$messages['cookiesdisabled'] = 'Din webbläsare accepterar inte cookies';
@@ -40,13 +42,11 @@ $messages['uploadingmany'] = 'Överför filer...';
$messages['loadingdata'] = 'Laddar data...';
$messages['checkingmail'] = 'Hämtar nya meddelanden...';
$messages['sendingmessage'] = 'Skickar meddelande...';
-$messages['messagesent'] = 'Meddelandet har skickats.';
+$messages['messagesent'] = 'Meddelandet har skickats';
$messages['savingmessage'] = 'Sparar meddelande...';
$messages['messagesaved'] = 'Meddelandet har sparats i Utkast';
-$messages['successfullysaved'] = 'Informationen har sparats.';
-$messages['savingresponse'] = 'Sparar responstext...';
-$messages['deleteresponseconfirm'] = 'Vill du verkligen ta bort denna responstext?';
-$messages['addedsuccessfully'] = 'Kontakten har lagts till i adressboken.';
+$messages['successfullysaved'] = 'Informationen har sparats';
+$messages['addedsuccessfully'] = 'Kontakten har lagts till i adressboken';
$messages['contactexists'] = 'En kontakt med den här adressen finns redan';
$messages['contactnameexists'] = 'En kontakt med det här namnet finns redan';
$messages['blockedimages'] = 'Externt länkade bilder i meddelandet har blockerats.';
@@ -85,52 +85,47 @@ $messages['notsentwarning'] = 'Meddelandet har inte skickats. Vill du avbryta me
$messages['noldapserver'] = 'Ange en LDAP-server för att söka';
$messages['nosearchname'] = 'Ange ett kontaktnamn eller en adress';
$messages['notuploadedwarning'] = 'Alla bilagor har inte överförts ännu. Vänta eller avbryt överföringen.';
-$messages['searchsuccessful'] = '$nr meddelanden hittades.';
-$messages['contactsearchsuccessful'] = '$nr kontakter hittades.';
+$messages['searchsuccessful'] = '$nr meddelanden hittades';
+$messages['contactsearchsuccessful'] = '$nr kontakter hittades';
$messages['searchnomatch'] = 'Sökningen gav inget resultat';
$messages['searching'] = 'Söker...';
$messages['checking'] = 'Kontrollerar...';
$messages['nospellerrors'] = 'Inget stavfel hittades';
-$messages['folderdeleted'] = 'Katalogen togs bort.';
-$messages['foldersubscribed'] = 'Prenumeration på katalog startad.';
-$messages['folderunsubscribed'] = 'Prenumeration på katalog avslutad.';
-$messages['folderpurged'] = 'Katalog rensad.';
-$messages['folderexpunged'] = 'Katalog tömd.';
-$messages['deletedsuccessfully'] = 'Lyckad borttagning.';
+$messages['folderdeleted'] = 'Katalogen togs bort';
+$messages['foldersubscribed'] = 'Prenumeration på katalog startad';
+$messages['folderunsubscribed'] = 'Prenumeration på katalog avslutad';
+$messages['folderpurged'] = 'Katalog rensad';
+$messages['folderexpunged'] = 'Katalog tömd';
+$messages['deletedsuccessfully'] = 'Lyckad borttagning';
$messages['converting'] = 'Tar bort formatering från meddelande...';
$messages['messageopenerror'] = 'Meddelandet kunde inte hämtas från servern';
$messages['fileuploaderror'] = 'Filuppladdning misslyckades';
$messages['filesizeerror'] = 'Den uppladdade filens storlek överstiger högsta tillåtna $size';
-$messages['copysuccess'] = '$nr kontakter har kopierats.';
-$messages['movesuccess'] = '$nr kontakter har flyttats.';
-$messages['copyerror'] = 'NÃ¥gra kontakter kunde inte kopieras.';
-$messages['moveerror'] = 'NÃ¥gra kontakter kunde inte flyttas.';
+$messages['copysuccess'] = '$nr adresser har kopierats';
+$messages['copyerror'] = 'NÃ¥gra adresser kunde inte kopieras';
$messages['sourceisreadonly'] = 'Denna adresskälla är skrivskyddad';
$messages['errorsavingcontact'] = 'Kontaktadressen kunde inte sparas';
$messages['movingmessage'] = 'Flyttar meddelande...';
$messages['copyingmessage'] = 'Kopierar meddelande...';
$messages['copyingcontact'] = 'Kopierar kontakter...';
-$messages['movingcontact'] = 'Flyttar kontakter...';
$messages['deletingmessage'] = 'Tar bort meddelande...';
$messages['markingmessage'] = 'Markerar meddelande...';
$messages['addingmember'] = 'Lägger till kontakter i gruppen...';
$messages['removingmember'] = 'Tar bort kontakter från gruppen...';
-$messages['receiptsent'] = 'Mottagarkvitto har skickats.';
+$messages['receiptsent'] = 'Mottagarkvitto har skickats';
$messages['errorsendingreceipt'] = 'Mottagarkvitto kunde inte skickas';
$messages['deleteidentityconfirm'] = 'Vill du verkligen ta bort denna identitet?';
$messages['nodeletelastidentity'] = 'Du kan inte ta bort identiteten, den är din sista.';
$messages['forbiddencharacter'] = 'Katalognamnet innehåller otillåtna tecken';
$messages['selectimportfile'] = 'Välj en fil att ladda upp';
$messages['addresswriterror'] = 'Angiven adressbok är skrivskyddad';
-$messages['contactaddedtogroup'] = 'Kontakterna har lagts till i gruppen.';
-$messages['contactremovedfromgroup'] = 'Kontakterna har tagits bort från gruppen.';
+$messages['contactaddedtogroup'] = 'Kontakterna har lagts till i gruppen';
+$messages['contactremovedfromgroup'] = 'Kontakterna har tagits bort från gruppen';
$messages['nogroupassignmentschanged'] = 'Ingen grupptillhörighet ändrades.';
$messages['importwait'] = 'Importerar, var god vänta...';
$messages['importformaterror'] = 'Importen misslyckades! Filen har inte korrekt dataformat.';
$messages['importconfirm'] = '<b>Lyckad import av $inserted kontakter</b>';
$messages['importconfirmskipped'] = '<b>Hoppade över $skipped befintliga poster</b>';
-$messages['importmessagesuccess'] = '$nr meddelanden har importerats.';
-$messages['importmessageerror'] = 'Importen misslyckades! Filen innehåller inte något meddelande eller någon brevlåda';
$messages['opnotpermitted'] = 'Otillåten operation!';
$messages['nofromaddress'] = 'Adress saknas i den valda identiteten';
$messages['editorwarning'] = 'Genom att växla till text-läge går formateringen förlorad. Vill du fortsätta?';
@@ -146,30 +141,31 @@ $messages['toomanyrecipients'] = 'Förmånga mottagare. Minska antalet till hög
$messages['maxgroupmembersreached'] = 'Antalet gruppmedlemmar får inte överstiga $max';
$messages['internalerror'] = 'Ett internt fel uppstod. Försök igen.';
$messages['contactdelerror'] = 'Kontakt kunde inte tas bort';
-$messages['contactdeleted'] = 'Kontakt borttagen.';
+$messages['contactdeleted'] = 'Kontakt borttagen';
$messages['contactrestoreerror'] = 'Borttagna kontakter kunde inte återskapas';
-$messages['contactrestored'] = 'Kontakter återskapade.';
-$messages['groupdeleted'] = 'Grupp borttagen.';
-$messages['grouprenamed'] = 'Gruppnamn ändrat.';
-$messages['groupcreated'] = 'Grupp skapad.';
-$messages['savedsearchdeleted'] = 'Sparad sökning borttagen.';
+$messages['contactrestored'] = 'Kontakter återskapade';
+$messages['groupdeleted'] = 'Grupp borttagen';
+$messages['grouprenamed'] = 'Gruppnamn ändrat';
+$messages['groupcreated'] = 'Grupp skapad';
+$messages['savedsearchdeleted'] = 'Sparad sökning borttagen';
$messages['savedsearchdeleteerror'] = 'Kunde inte ta bort sparad sökning';
-$messages['savedsearchcreated'] = 'Sparad sökning tillagd.';
+$messages['savedsearchcreated'] = 'Sparad sökning tillagd';
$messages['savedsearchcreateerror'] = 'Kunde inte lägga till sparad sökning';
-$messages['messagedeleted'] = 'Meddelande borttaget.';
-$messages['messagemoved'] = 'Meddelande flyttat.';
-$messages['messagecopied'] = 'Meddelande kopierat.';
-$messages['messagemarked'] = 'Meddelande markerat.';
+$messages['messagedeleted'] = 'Meddelande borttaget';
+$messages['messagemoved'] = 'Meddelande flyttat';
+$messages['messagecopied'] = 'Meddelande kopierat';
+$messages['messagemarked'] = 'Meddelande markerat';
$messages['autocompletechars'] = 'Ange minst $min tecken för automatisk komplettering';
$messages['autocompletemore'] = 'Flera passande informationsposter funna. Skriv fler tecken.';
$messages['namecannotbeempty'] = 'Namnet får inte vara tomt';
$messages['nametoolong'] = 'Namnet är för långt';
-$messages['folderupdated'] = 'Katalog uppdaterad.';
-$messages['foldercreated'] = 'Katalog skapad.';
+$messages['folderupdated'] = 'Katalog uppdaterad';
+$messages['foldercreated'] = 'Katalog skapad';
$messages['invalidimageformat'] = 'Ogiltigt bildfilsformat';
$messages['mispellingsfound'] = 'Stavfel hittades i meddelandet';
$messages['parentnotwritable'] = 'Katalogen kunde inte skapas eller flyttas. Åtkomsträttighet saknas.';
$messages['messagetoobig'] = 'Denna del av meddelandet är alltför stor för att hantera.';
$messages['attachmentvalidationerror'] = 'VARNING! Bilagan misstänks vara av annan typ än vad som anges i meddelandet. Om du inte litar på avsändaren ska du inte öppna bilagan.<br/><br/><em>Angiven typ: $expected; funnen typ: $detected</em>';
$messages['noscriptwarning'] = 'Varning: Denna webbmailtjänst fungerar inte utan Javascript! Aktivera Javascript i webbläsarens inställningar.';
+
?>
diff --git a/program/localization/ta_IN/labels.inc b/program/localization/ta_IN/labels.inc
index dd8c134ba..bc1db7d00 100644
--- a/program/localization/ta_IN/labels.inc
+++ b/program/localization/ta_IN/labels.inc
@@ -15,39 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'நலà¯à®µà®°à®µà¯';
$labels['username'] = 'பயனரà¯';
$labels['password'] = 'கடவà¯à®šà¯à®šà¯†à®¾à®²à¯';
$labels['server'] = 'சேவையகமà¯';
$labels['login'] = 'நà¯à®´à¯ˆ';
+
+// taskbar
$labels['logout'] = 'வெளியேறà¯';
$labels['mail'] = 'மினà¯à®©à®žà¯à®šà®²à¯';
$labels['settings'] = 'அமைபà¯à®ªà¯à®•à®³à¯';
$labels['addressbook'] = 'தொடரà¯à®ªà¯à®•à®³à¯';
+
+// mailbox names
$labels['inbox'] = 'அகபà¯à®ªà¯†à®Ÿà¯à®Ÿà®¿';
$labels['drafts'] = 'வரைவà¯à®•à®³à¯';
$labels['sent'] = 'அனà¯à®ªà¯à®ªà®¿à®¯ அஞà¯à®šà®²à¯';
$labels['trash'] = 'கà¯à®ªà¯à®ªà¯ˆ';
$labels['junk'] = 'எரிதமà¯';
+
+// message listing
$labels['subject'] = 'தலைபà¯à®ªà¯';
$labels['from'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯';
+$labels['sender'] = 'Sender';
$labels['to'] = 'பெறà¯à®©à®°à¯';
$labels['cc'] = 'நகலà¯';
$labels['bcc'] = 'மறை நகலà¯';
$labels['replyto'] = 'பதிலளி';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'தேதி';
$labels['size'] = 'அளவà¯';
$labels['priority'] = 'à®®à¯à®•à¯à®•à®¿à®¯à®¤à¯à®¤à¯à®µà®®à¯';
$labels['organization'] = 'நிறà¯à®µà®©à®®à¯';
+$labels['readstatus'] = 'Read status';
+$labels['listoptions'] = 'List options...';
+
$labels['mailboxlist'] = 'அடைவà¯à®•à®³à¯';
$labels['messagesfromto'] = 'செயà¯à®¤à®¿à®•à®³à¯ $countல௠$from லிரà¯à®¨à¯à®¤à¯ $to வரை';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = '$countல௠$nr வத௠செயà¯à®¤à®¿';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'நகலà¯';
+$labels['move'] = 'Move';
$labels['moveto'] = 'இதறà¯à®•à¯ அனà¯à®ªà¯à®ªà¯...';
$labels['download'] = 'பதிவிறகà¯à®•à¯';
+$labels['open'] = 'Open';
+$labels['showattachment'] = 'Show';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'கோபà¯à®ªà¯ பெயரà¯';
$labels['filesize'] = 'கோபà¯à®ªà¯ அளவà¯';
+
$labels['addtoaddressbook'] = 'தொடரà¯à®ªà¯à®•à®³à¯à®•à¯à®•à¯ சேரà¯à®•à¯à®•à®µà¯à®®à¯';
+
+// weekdays short
$labels['sun'] = 'ஞாயிறà¯';
$labels['mon'] = 'திஙà¯à®•à®³à¯';
$labels['tue'] = 'செவà¯à®µà®¾à®¯à¯';
@@ -55,6 +81,8 @@ $labels['wed'] = 'பà¯à®¤à®©à¯';
$labels['thu'] = 'வியாழனà¯';
$labels['fri'] = 'வெளà¯à®³à®¿';
$labels['sat'] = 'சனி';
+
+// weekdays long
$labels['sunday'] = 'ஞாயிறà¯';
$labels['monday'] = 'திஙà¯à®•à®³à¯';
$labels['tuesday'] = 'செவà¯à®µà®¾à®¯à¯';
@@ -62,6 +90,8 @@ $labels['wednesday'] = 'பà¯à®¤à®©à¯';
$labels['thursday'] = 'வியாழனà¯';
$labels['friday'] = 'வெளà¯à®³à®¿';
$labels['saturday'] = 'சனி';
+
+// months short
$labels['jan'] = 'சனவரி';
$labels['feb'] = 'பிபà¯à®°à®µà®°à®¿';
$labels['mar'] = 'மாரà¯à®šà¯';
@@ -74,6 +104,8 @@ $labels['sep'] = 'செபà¯à®Ÿà®®à¯à®ªà®°à¯';
$labels['oct'] = 'அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯';
$labels['nov'] = 'நவமà¯à®ªà®°à¯';
$labels['dec'] = 'டிசமà¯à®ªà®°à¯';
+
+// months long
$labels['longjan'] = 'சனவரி';
$labels['longfeb'] = 'பிபà¯à®°à®µà®°à®¿';
$labels['longmar'] = 'மாரà¯à®šà¯';
@@ -86,12 +118,22 @@ $labels['longsep'] = 'செபà¯à®Ÿà®®à¯à®ªà®°à¯';
$labels['longoct'] = 'அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯';
$labels['longnov'] = 'நவமà¯à®ªà®°à¯';
$labels['longdec'] = 'டிசமà¯à®ªà®°à¯';
+
$labels['today'] = 'இனà¯à®±à¯';
+
+// toolbar buttons
+$labels['refresh'] = 'Refresh';
$labels['checkmail'] = 'பà¯à®¤à¯ அஞà¯à®šà®²à¯à®•à®³à¯ˆ பாரà¯à®•à¯à®•à®µà¯à®®à¯';
$labels['compose'] = 'அஞà¯à®šà®²à¯ எழà¯à®¤à¯';
$labels['writenewmessage'] = 'பà¯à®¤à¯ அஞà¯à®šà®²à¯ எழà¯à®¤à®µà¯à®®à¯';
+$labels['reply'] = 'Reply';
$labels['replytomessage'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯à®•à¯à®•à¯ பதிலளி';
$labels['replytoallmessage'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯ மறà¯à®±à¯à®®à¯ எலà¯à®²à®¾ பெறà¯à®©à®°à¯à®•à®³à¯à®•à¯à®•à¯à®®à¯ பதிலளி';
+$labels['replyall'] = 'Reply all';
+$labels['replylist'] = 'Reply list';
+$labels['forward'] = 'Forward';
+$labels['forwardinline'] = 'Forward inline';
+$labels['forwardattachment'] = 'Forward as attachment';
$labels['forwardmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ à®®à¯à®©à¯à®…னà¯à®ªà¯à®ªà¯';
$labels['deletemessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®•à¯';
$labels['movemessagetotrash'] = 'செயà¯à®¤à®¿à®¯à¯ˆ கà¯à®ªà¯à®ªà¯ˆà®•à¯à®•à¯ நகரà¯à®¤à¯à®¤à¯';
@@ -102,104 +144,250 @@ $labels['nextmessage'] = 'அடà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®¯à¯ˆ கà®
$labels['lastmessage'] = 'கடைசி செயà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà¯';
$labels['backtolist'] = 'செயà¯à®¤à®¿ படà¯à®Ÿà®¿à®¯à®²à¯à®•à¯à®•à¯ செலà¯à®²à®µà¯à®®à¯';
$labels['viewsource'] = 'மூலதà¯à®¤à¯ˆ காடà¯à®Ÿà¯';
+$labels['mark'] = 'Mark';
$labels['markmessages'] = 'செயà¯à®¤à®¿à®•à®³à¯ˆ கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markread'] = 'படிதà¯à®¤à®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markunread'] = 'படிகà¯à®•à®¾à®¤à®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markflagged'] = 'நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà¯à®Ÿà®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
$labels['markunflagged'] = 'நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà®¾à®¤à®¤à®¾à®• கà¯à®±à®¿à®¯à®¿à®Ÿà¯';
+$labels['moreactions'] = 'More actions...';
+$labels['more'] = 'More';
+$labels['back'] = 'Back';
+$labels['options'] = 'Options';
+
$labels['select'] = 'தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯';
$labels['all'] = 'எலà¯à®²à®¾à®®à¯';
$labels['none'] = 'எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ';
+$labels['currpage'] = 'Current page';
$labels['unread'] = 'படிகà¯à®•à®¾à®¤à®¤à¯';
$labels['flagged'] = 'நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà¯à®Ÿà®¤à¯';
$labels['unanswered'] = 'பதிலளிகà¯à®•à®¾à®¤à®¤à¯';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'நீகà¯à®•à®¿à®¯à®¤à¯';
+$labels['undeleted'] = 'Not deleted';
$labels['invert'] = 'தலைகீழà¯';
$labels['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'] = 'எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ';
+$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'] = 'கà¯à®±à¯à®•à®¿à®¯';
$labels['empty'] = 'காலி';
+
$labels['quota'] = 'பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ அளவà¯';
$labels['unknown'] = 'தெரியாத';
$labels['unlimited'] = 'அளவிலà¯à®²à®¾';
+
$labels['quicksearch'] = 'விரைவ௠தேடலà¯';
$labels['resetsearch'] = 'தேடலை மறà¯à®…மை';
$labels['searchmod'] = 'மாறà¯à®±à®¿à®•à®³à¯ˆ தேடà¯';
$labels['msgtext'] = 'à®®à¯à®´à¯ செயà¯à®¤à®¿';
+$labels['body'] = 'Body';
+
$labels['openinextwin'] = 'பà¯à®¤à¯ சாளரதà¯à®¤à®¿à®²à¯ திற';
$labels['emlsave'] = 'பதிவிறகà¯à®•à¯ (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'பà¯à®¤à®¿à®¯à®¤à®¾à®• திரà¯à®¤à¯à®¤à¯';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'இபà¯à®ªà¯‡à®¾à®¤à¯ அனà¯à®ªà¯à®ªà¯';
$labels['savemessage'] = 'இநà¯à®¤ வரைவை சேமி';
$labels['addattachment'] = 'ஒர௠கோபà¯à®ªà¯ˆ இணைகà¯à®•à®µà¯à®®à¯';
$labels['charset'] = 'எழà¯à®¤à¯à®¤à¯ கà¯à®±à®¿à®®à¯à®±à¯ˆ';
$labels['editortype'] = 'திரà¯à®¤à¯à®¤à¯à®®à¯ வகை';
$labels['returnreceipt'] = 'திரà¯à®®à¯à®ªà¯ சீடà¯à®Ÿà¯';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'எழà¯à®¤à¯à®¤à¯à®ªà¯à®ªà®¿à®´à¯ˆ சரிபாரà¯';
$labels['resumeediting'] = 'திரà¯à®¤à¯à®¤à¯à®µà®¤à¯ˆ தொடரவà¯à®®à¯';
$labels['revertto'] = 'à®®à¯à®¨à¯à®¤à®¿à®¯ நிலைகà¯à®•à¯ திரà¯à®®à¯à®ªà®µà¯à®®à¯';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'கோபà¯à®ªà¯ இணைபà¯à®ªà¯à®•à®³à¯';
$labels['upload'] = 'பதிவேறà¯à®±à¯';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'மூடà¯';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'கà¯à®±à¯ˆà®¨à¯à®¤';
$labels['lowest'] = 'மிக கà¯à®±à¯ˆà®¨à¯à®¤';
$labels['normal'] = 'சாதாரண';
$labels['high'] = 'அதிக';
$labels['highest'] = 'மிக அதிக';
+
$labels['nosubject'] = '(தலைபà¯à®ªà®¿à®²à¯à®²à®¾)';
$labels['showimages'] = 'படஙà¯à®•à®³à¯ˆ காடà¯à®Ÿà¯';
$labels['alwaysshow'] = '$-னிடமிரà¯à®¨à¯à®¤à¯ வரà¯à®®à¯ படஙà¯à®•à®³à¯ˆ காடà¯à®Ÿà¯';
+$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'] = 'எளிய உரை';
$labels['savesentmessagein'] = 'அனà¯à®ªà¯à®ªà®¿à®¯ அஞà¯à®šà®²à¯ˆ இஙà¯à®•à¯ சேமிகà¯à®•à®µà¯à®®à¯';
$labels['dontsave'] = 'சேமிகà¯à®•à®¾à®¤à¯‡';
$labels['maxuploadsize'] = 'அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯ அதிகபடà¯à®š கோபà¯à®ªà¯ அளவ௠$';
+
$labels['addcc'] = 'நகல௠சேரà¯';
$labels['addbcc'] = 'மறை நகல௠சேரà¯';
$labels['addreplyto'] = 'பதிலளிகà¯à®• வேணà¯à®Ÿà®¿à®¯à®µà®°à¯à®•à®³à¯ˆ சேரà¯';
+$labels['addfollowupto'] = 'Add Followup-To';
+
+// mdn
$labels['mdnrequest'] = 'இநà¯à®¤ செயà¯à®¤à®¿à®¯à®¿à®©à¯ அனà¯à®ªà¯à®ªà¯à®©à®°à¯ இதை படிதà¯à®¤à®µà¯à®Ÿà®©à¯ அறிவிகà¯à®•à¯à®®à¯à®ªà®Ÿà®¿ கேடà¯à®Ÿà®¾à®°à¯. அறிவிகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
$labels['receiptread'] = 'திரà¯à®®à¯à®ªà¯ சீடà¯à®Ÿà¯ (படி)';
$labels['yourmessage'] = 'இத௠உஙà¯à®•à®³à¯ செயà¯à®¤à®¿à®¯à®¿à®©à¯ திரà¯à®®à¯à®ªà¯ சீடà¯à®Ÿà¯';
$labels['receiptnote'] = 'கà¯à®±à®¿à®ªà¯à®ªà¯: இநà¯à®¤ ஒபà¯à®ªà¯à®•à¯ˆ பெறà¯à®©à®°à®¿à®Ÿà®®à¯ செயà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà®¿à®¯à®¤à®±à¯à®•à®¾à®• வரà¯à®•à®¿à®±à®¤à¯. அவர௠அதை படிதà¯à®¤à®¤à®±à¯à®•à¯ எநà¯à®¤ உதà¯à®¤à®¿à®°à®µà®¾à®¤à®®à¯à®®à¯ இலà¯à®²à¯ˆ';
+
+// address boook
$labels['name'] = 'காடà¯à®šà®¿ பெயரà¯';
$labels['firstname'] = 'à®®à¯à®¤à®±à¯ பெயரà¯';
$labels['surname'] = 'கடைசி பெயரà¯';
+$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'] = 'மினà¯à®©à®žà¯à®šà®²à¯';
+$labels['phone'] = 'Phone';
+$labels['address'] = 'Address';
+$labels['street'] = 'Street';
+$labels['locality'] = 'City';
+$labels['zipcode'] = 'ZIP Code';
+$labels['region'] = 'State/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'] = 'பà¯à®¤à¯ தொடரà¯à®ªà¯ˆ சேரà¯';
$labels['editcontact'] = 'தொடரà¯à®ªà¯ˆ திரà¯à®¤à¯à®¤à¯';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'திரà¯à®¤à¯à®¤à¯';
$labels['cancel'] = 'ரதà¯à®¤à¯';
$labels['save'] = 'சேமி';
$labels['delete'] = 'நீகà¯à®•à¯';
+$labels['rename'] = 'Rename';
+$labels['addphoto'] = 'Add';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'பà¯à®¤à¯ தொடரà¯à®ªà¯ அடà¯à®Ÿà¯ˆà®¯à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯';
$labels['deletecontact'] = 'தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à¯ˆ நீகà¯à®•à¯';
$labels['composeto'] = 'இவரà¯-க௠அஞà¯à®šà®²à¯ எழà¯à®¤à¯';
$labels['contactsfromto'] = 'தொடரà¯à®ªà¯à®•à®³à¯ $countல௠$from லிரà¯à®¨à¯à®¤à¯ $to வரை';
$labels['print'] = 'அசà¯à®šà®¿à®Ÿà¯';
$labels['export'] = 'à®à®±à¯à®±à¯à®®à®¤à®¿';
+$labels['exportall'] = 'Export all';
+$labels['exportsel'] = 'Export selected';
$labels['exportvcards'] = 'தொடரà¯à®ªà¯à®•à®³à¯ˆ vCard வடிவதà¯à®¤à®¿à®²à¯ à®à®±à¯à®±à¯à®®à®¤à®¿ செயà¯à®¯à®µà¯à®®à¯';
+$labels['newcontactgroup'] = 'Create new contact group';
+$labels['grouprename'] = 'Rename group';
+$labels['groupdelete'] = 'Delete group';
+$labels['groupremoveselected'] = 'Remove selected contacts from group';
+
$labels['previouspage'] = 'à®®à¯à®¨à¯à®¤à®¿à®¯ கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
$labels['firstpage'] = 'à®®à¯à®¤à®²à¯ கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
$labels['nextpage'] = 'அடà¯à®¤à¯à®¤ கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
$labels['lastpage'] = 'கடைசி கà¯à®´à¯à®µà¯ˆ காடà¯à®Ÿà¯';
+
+$labels['group'] = 'Group';
$labels['groups'] = 'கà¯à®´à¯à®•à¯à®•à®³à¯';
$labels['personaladrbook'] = 'சà¯à®¯ à®®à¯à®•à®µà®°à®¿';
+
+$labels['searchsave'] = 'Save search';
+$labels['searchdelete'] = 'Delete search';
+
$labels['import'] = 'இறகà¯à®•à¯à®®à®¤à®¿';
$labels['importcontacts'] = 'தொடரà¯à®ªà¯à®•à®³à¯ˆ இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®µà¯à®®à¯';
$labels['importfromfile'] = 'இநà¯à®¤ கோபà¯à®ªà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®µà¯à®®à¯:';
+$labels['importtarget'] = 'Add new contacts to address book:';
$labels['importreplace'] = 'எலà¯à®²à®¾ தொடரà¯à®ªà¯à®•à®³à¯ˆà®¯à¯à®®à¯ மாறà¯à®±à®¿ அமை';
+$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'] = 'à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯';
+
+// settings
$labels['settingsfor'] = 'இதறà¯à®•à®¾à®© அமைபà¯à®ªà¯à®•à®³à¯';
+$labels['about'] = 'About';
$labels['preferences'] = 'விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['userpreferences'] = 'பயனர௠விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['editpreferences'] = 'பயனர௠விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ˆ திரà¯à®¤à¯à®¤à¯';
+
$labels['identities'] = 'அடையாளஙà¯à®•à®³à¯';
$labels['manageidentities'] = 'இநà¯à®¤ கணகà¯à®•à®¿à®±à¯à®•à®¾à®© அடையாளஙà¯à®•à®³à¯ˆ நிறà¯à®µà®¾à®•à®¿à®•à¯à®•à®µà¯à®®à¯';
$labels['newidentity'] = 'பà¯à®¤à¯ அடையாளமà¯';
+
$labels['newitem'] = 'பà¯à®¤à¯ உரà¯à®ªà¯à®ªà®Ÿà®¿';
$labels['edititem'] = 'உரà¯à®ªà¯à®ªà®Ÿà®¿à®¯à¯ˆ திரà¯à®¤à¯à®¤à¯';
+
$labels['preferhtml'] = 'HTML காடà¯à®Ÿà¯';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'HTML செயà¯à®¤à®¿';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'நலà¯à®² தேதி';
$labels['setdefault'] = 'இயலà¯à®ªà¯ˆ அமை';
$labels['autodetect'] = 'தானியஙà¯à®•à®¿';
@@ -208,8 +396,13 @@ $labels['timezone'] = 'நேர மணà¯à®Ÿà®²à®®à¯';
$labels['pagesize'] = 'ஒர௠பகà¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© வரிகளà¯';
$labels['signature'] = 'கையொபà¯à®ªà®®à¯';
$labels['dstactive'] = 'பகல௠ஒளி சேமிபà¯à®ªà¯ நேரமà¯';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'HTML செயà¯à®¤à®¿à®•à®³à¯ˆ எழà¯à®¤à¯';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'HTML கையொபà¯à®ªà®®à¯';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'à®®à¯à®¨à¯à®¤à®¿à®¯ பாதà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà¯';
$labels['skin'] = 'à®®à¯à®•à®ªà¯à®ªà¯ தோறà¯à®±à®®à¯';
$labels['logoutclear'] = 'வெளியேறà¯à®®à¯ போத௠கà¯à®ªà¯à®ªà¯ˆà®¯à¯ˆ காலி செயà¯';
@@ -220,33 +413,43 @@ $labels['mailboxview'] = 'அஞà¯à®šà®²à¯ பெடà¯à®Ÿà®¿ காடà¯à®šà
$labels['mdnrequests'] = 'அனà¯à®ªà¯à®ªà¯à®©à®°à¯ அறிவிபà¯à®ªà¯à®•à®³à¯';
$labels['askuser'] = 'பயனரை கேளà¯';
$labels['autosend'] = 'தானாக அனà¯à®ªà¯à®ªà¯';
+$labels['autosendknown'] = 'send receipt to my contacts, otherwise ask me';
+$labels['autosendknownignore'] = 'send receipt to my contacts, otherwise ignore';
$labels['ignore'] = 'தவிரà¯';
$labels['readwhendeleted'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®•à¯à®®à¯ போத௠படிதà¯à®¤à®¤à®¾à®• கà¯à®±à®¿';
$labels['flagfordeletion'] = 'நீகà¯à®•à¯à®µà®¤à®±à¯à®•à¯ பதிலாக நீகà¯à®•à¯à®µà®¤à®¾à®• நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿà¯';
$labels['skipdeleted'] = 'நீகà¯à®•à®¿à®¯ செயà¯à®¤à®¿à®•à®³à¯ˆ காடà¯à®Ÿà®¾à®¤à¯‡';
+$labels['deletealways'] = 'If moving messages to Trash fails, delete them';
+$labels['deletejunk'] = 'Directly delete messages in Junk';
$labels['showremoteimages'] = 'தொலை தூர தà¯à®£à¯ˆ படஙà¯à®•à®³à¯ˆ காடà¯à®Ÿà¯';
$labels['fromknownsenders'] = 'தெரிநà¯à®¤ அனà¯à®ªà¯à®ªà¯à®©à®°à®¿à®Ÿà®®à®¿à®°à¯à®¨à¯à®¤à¯';
$labels['always'] = 'எபà¯à®ªà¯‡à®¾à®¤à¯à®®à¯';
$labels['showinlineimages'] = 'இணைதà¯à®¤ படஙà¯à®•à®³à¯ˆ செயà¯à®¤à®¿à®•à®³à¯à®•à¯à®•à¯ கீழே காடà¯à®Ÿà®µà¯à®®à¯';
$labels['autosavedraft'] = 'தானாக வரைவà¯à®•à®³à¯ˆ சேமி';
$labels['everynminutes'] = 'ஒவà¯à®µà¯†à®¾à®°à¯ $n நிமிடஙà¯à®•à®³à¯à®•à¯à®•à¯à®®à¯';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['never'] = 'எபà¯à®ªà¯‡à®¾à®¤à¯à®®à®¿à®²à¯à®²à¯ˆ';
+$labels['immediately'] = 'immediately';
$labels['messagesdisplaying'] = 'செயà¯à®¤à®¿à®•à®³à¯ˆ காடà¯à®Ÿà¯à®•à®¿à®±à®¤à¯';
$labels['messagescomposition'] = 'செயà¯à®¤à®¿à®•à®³à¯ˆ எழà¯à®¤à¯à®•à®¿à®±à®¤à¯';
$labels['mimeparamfolding'] = 'இணைபà¯à®ªà¯ பெயரà¯à®•à®³à¯';
$labels['2231folding'] = 'à®®à¯à®´à¯ RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'à®®à¯à®´à¯ RFC 2047 (மறà¯à®±)';
+$labels['force7bit'] = 'Use MIME encoding for 8-bit characters';
$labels['advancedoptions'] = 'மேமà¯à®ªà®Ÿà¯à®Ÿ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['focusonnewmessage'] = 'உலாவி சாளரதà¯à®¤à¯ˆ பà¯à®¤à¯ செயà¯à®¤à®¿à®•à¯à®•à®¾à®• கவனி';
$labels['checkallfolders'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®•à®³à¯à®•à¯à®•à®¾à®• எலà¯à®²à®¾ அடைவà¯à®•à®³à¯ˆà®¯à¯à®®à¯ சரிபாரà¯';
$labels['displaynext'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®•à¯/நகர௠பிறக௠அடà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®¯à¯ˆ காடà¯à®Ÿà¯';
+$labels['defaultfont'] = 'Default font of HTML message';
$labels['mainoptions'] = 'à®®à¯à®•à¯à®•à®¿à®¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
+$labels['browseroptions'] = 'Browser Options';
$labels['section'] = 'பிரிவà¯';
$labels['maintenance'] = 'பராமரிபà¯à®ªà¯';
$labels['newmessage'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿';
$labels['signatureoptions'] = 'கையொபà¯à®ª விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯';
$labels['whenreplying'] = 'பதிலளிகà¯à®•à¯à®®à¯ போதà¯';
+$labels['replyempty'] = 'do not quote the original message';
$labels['replytopposting'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®¯à¯ˆ அசலின௠மேல௠தà¯à®µà®•à¯à®•à¯';
$labels['replybottomposting'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®¯à¯ˆ அசலின௠கீழ௠தà¯à®µà®•à¯à®•à¯';
$labels['replyremovesignature'] = 'பதிலளிகà¯à®•à¯à®®à¯ போத௠அசல௠கையெழà¯à®¤à¯à®¤à¯ˆ செயà¯à®¤à®¿à®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ நீகà¯à®•à®µà¯à®®à¯';
@@ -254,6 +457,25 @@ $labels['autoaddsignature'] = 'தானாக கையொபà¯à®ªà®¤à¯à®¤
$labels['newmessageonly'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿ மடà¯à®Ÿà¯à®®à¯';
$labels['replyandforwardonly'] = 'பதிலளிபà¯à®ªà¯ à®®à¯à®©à¯à®…னà¯à®ªà¯à®ªà¯ மடà¯à®Ÿà¯à®®à¯';
$labels['insertsignature'] = 'கையோபà¯à®ªà®®à®¿à®Ÿà¯';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
+$labels['asattachment'] = 'as attachment';
+
$labels['folder'] = 'அடைவà¯';
$labels['folders'] = 'அடைவà¯à®•à®³à¯';
$labels['foldername'] = 'அடைவ௠பெயரà¯';
@@ -263,11 +485,54 @@ $labels['create'] = 'உரà¯à®µà®¾à®•à¯à®•à¯';
$labels['createfolder'] = 'பà¯à®¤à¯ அடைவ௠உரà¯à®µà®¾à®•à¯à®•à¯';
$labels['managefolders'] = 'அடைவà¯à®•à®³à¯ˆ நிறà¯à®µà®•à®¿';
$labels['specialfolders'] = 'சிறபà¯à®ªà¯ அடைவà¯à®•à®³à¯';
+$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'] = 'வாரியாக அடà¯à®•à¯à®•à¯';
$labels['sortasc'] = 'à®à®±à¯ வரிசையாக அடà¯à®•à¯à®•à¯';
$labels['sortdesc'] = 'இறஙà¯à®•à¯ வரிசையாக அடà¯à®•à¯à®•à¯';
+$labels['undo'] = 'Undo';
+
+$labels['installedplugins'] = 'Installed plugins';
+$labels['plugin'] = 'Plugin';
+$labels['version'] = 'Version';
+$labels['source'] = 'Source';
+$labels['license'] = 'License';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
+$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/ta_IN/messages.inc b/program/localization/ta_IN/messages.inc
index d496b3836..65e611f88 100644
--- a/program/localization/ta_IN/messages.inc
+++ b/program/localization/ta_IN/messages.inc
@@ -15,17 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
+$messages['errortitle'] = 'An error occurred!';
$messages['loginfailed'] = 'நà¯à®´à¯ˆà®µà¯ தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®¤à¯';
$messages['cookiesdisabled'] = 'உஙà¯à®•à®³à¯ உலாவி நினைவிகளை அனà¯à®®à®¤à®¿à®ªà¯à®ªà®¤à®¿à®²à¯à®²à¯ˆ';
$messages['sessionerror'] = 'உஙà¯à®•à®³à¯ அமரà¯à®µà¯ செலà¯à®²à®¾à®¤à¯ அலà¯à®²à®¤à¯ à®®à¯à®Ÿà®¿à®µà¯à®±à¯à®±à®¤à¯';
$messages['storageerror'] = 'IMAP சேவையகதà¯à®¤à®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯ தோலà¯à®µà®¿à®¯à®Ÿà¯ˆà®¨à¯à®¤à®¤à¯';
$messages['servererror'] = 'சேவையக பிழை!';
+$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'] = 'செலà¯à®²à®¾à®¤ வேணà¯à®Ÿà¯à®•à¯‹à®³à¯! எநà¯à®¤ தரவà¯à®®à¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ.';
+$messages['invalidhost'] = 'Invalid server name.';
$messages['nomessagesfound'] = 'இநà¯à®¤ தபால௠பெடà¯à®Ÿà®¿à®¯à®¿à®²à¯ எநà¯à®¤ தரவà¯à®®à¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ';
$messages['loggedout'] = 'நீஙà¯à®•à®³à¯ அமரà¯à®µà¯ˆ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• à®®à¯à®Ÿà®¿à®¤à¯à®¤à¯€à®°à¯à®•à®³à¯. வணகà¯à®•à®®à¯';
$messages['mailboxempty'] = 'தபால௠பெடà¯à®Ÿà®¿ காலியாக உளà¯à®³à®¤à¯';
+$messages['refreshing'] = 'Refreshing...';
$messages['loading'] = 'à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯...';
$messages['uploading'] = 'கோபà¯à®ªà¯ˆ à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯...';
+$messages['uploadingmany'] = 'Uploading files...';
$messages['loadingdata'] = 'தரவை à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯...';
$messages['checkingmail'] = 'பà¯à®¤à¯ செயà¯à®¤à®¿à®•à®³à¯ˆ சரிபாரà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['sendingmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ அனà¯à®ªà¯à®ªà¯à®•à®¿à®±à®¤à¯...';
@@ -35,21 +48,31 @@ $messages['messagesaved'] = 'செயà¯à®¤à®¿ வரைவில௠சேமà
$messages['successfullysaved'] = 'வெறà¯à®±à®¿à®•à®°à®®à®¾à®• சேமிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['addedsuccessfully'] = 'தொடரà¯à®ªà¯ சேமிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['contactexists'] = 'இநà¯à®¤ மினà¯à®©à®žà¯à®šà®²à¯ à®®à¯à®•à®µà®°à®¿à®¯à¯à®Ÿà®©à¯ ஒர௠தொடரà¯à®ªà¯ à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®¤à¯';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'உஙà¯à®•à®³à¯ தனிபà¯à®ªà®Ÿà¯à®Ÿ தகவலை பாதà¯à®•à®¾à®•à¯à®•, தொலை தூரப௠படஙà¯à®•à®³à¯ இநà¯à®¤ செயà¯à®¤à®¿à®¯à®¿à®²à¯ தடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['encryptedmessage'] = 'மனà¯à®©à®¿à®•à¯à®•à®µà¯à®®à¯! இநà¯à®¤ செயà¯à®¤à®¿ கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ அதனால௠காடà¯à®Ÿ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯.';
$messages['nocontactsfound'] = 'எநà¯à®¤ தொடரà¯à®ªà¯à®•à®³à¯à®®à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ';
$messages['contactnotfound'] = 'நீஙà¯à®•à®³à¯ வேணà¯à®Ÿà®¿à®¯ தொடரà¯à®ªà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'செயà¯à®¤à®¿ அனà¯à®ªà¯à®ªà¯à®µà®¤à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯';
$messages['senttooquickly'] = 'இநà¯à®¤ செயà¯à®¤à®¿ அனà¯à®ªà¯à®ªà¯à®µà®¤à®±à¯à®•à¯ à®®à¯à®©à¯à®ªà¯ தயவ௠செயà¯à®¤à¯ $sec வினாடி(களà¯) காதà¯à®¤à®¿à®°à¯à®•à¯à®•à®µà¯à®®à¯.';
+$messages['errorsavingsent'] = 'அனà¯à®ªà¯à®ªà®¿à®¯ அஞà¯à®šà®²à¯ˆ சேமிகà¯à®•à¯à®®à¯ போத௠பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
+$messages['errorsaving'] = 'சேமிகà¯à®•à¯à®®à¯ போத௠பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['errormoving'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['errormarking'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['deletecontactconfirm'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à¯ˆ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ செயà¯à®¤à®¿à®•à®³à¯ˆ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
$messages['deletefolderconfirm'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடைவை நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
$messages['purgefolderconfirm'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடைவிலிரà¯à®•à¯à®•à¯à®®à¯ எலà¯à®²à®¾ செயà¯à®¤à®¿à®•à®³à¯ˆà®¯à¯à®®à¯ நீகà¯à®• விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
+$messages['contactdeleting'] = 'Deleting contact(s)...';
+$messages['groupdeleting'] = 'Deleting group...';
$messages['folderdeleting'] = 'அடைவை நீகà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['foldermoving'] = 'அடைவை நகரà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'விணà¯à®£à®ªà¯à®ªà®¤à¯à®¤à¯ˆ à®®à¯à®´à¯à®®à¯ˆà®¯à®¾à®• நிறைவ௠செயà¯à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['noemailwarning'] = 'தயவ௠செயà¯à®¤à¯ உணà¯à®®à¯ˆà®¯à®¾à®© மினà¯à®©à®žà¯à®šà®²à¯ˆ எழà¯à®¤à¯à®™à¯à®•à®³à¯';
$messages['nonamewarning'] = 'தயவ௠செயà¯à®¤à¯ பெயரை எழà¯à®¤à¯à®™à¯à®•à®³à¯';
@@ -63,27 +86,46 @@ $messages['noldapserver'] = 'தயவ௠செயà¯à®¤à¯ தேடà¯à®µà®¤à
$messages['nosearchname'] = 'தயவ௠செயà¯à®¤à¯ தொடரà¯à®ªà®¿à®©à¯ பெயரோ மினà¯à®©à®žà¯à®šà®²à¯ à®®à¯à®•à®µà®°à®¿à®¯à¯‡à®¾ எழà¯à®¤à¯à®™à¯à®•à®³à¯';
$messages['notuploadedwarning'] = 'எலà¯à®²à®¾ இணைபà¯à®ªà¯à®•à®³à¯à®®à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ. தயவ௠செயà¯à®¤à¯ காதà¯à®¤à®¿à®°à¯à®™à¯à®•à®³à¯ அலà¯à®²à®¤à¯ à®à®±à¯à®±à®¤à¯à®¤à¯ˆ ரதà¯à®¤à¯ செயà¯à®¯à¯à®™à¯à®•à®³à¯.';
$messages['searchsuccessful'] = '$nr செயà¯à®¤à®¿à®•à®³à¯ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'தேடà¯à®¤à®²à¯ எநà¯à®¤ பொரà¯à®¤à¯à®¤à®¤à¯à®¤à¯ˆà®¯à¯à®®à¯ அனà¯à®ªà¯à®ªà®µà®¿à®²à¯à®²à¯ˆ';
$messages['searching'] = 'தேடà¯à®•à®¿à®±à®¤à¯...';
$messages['checking'] = 'சரி பாரà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['nospellerrors'] = 'எழà¯à®¤à¯à®¤à¯ பிழைகள௠இலà¯à®²à¯ˆ';
$messages['folderdeleted'] = 'அடைவ௠வெறà¯à®±à®¿à®•à®°à®®à®¾à®• நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'வெறà¯à®±à®¿à®•à®°à®®à®¾à®• நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['converting'] = 'வடிவதà¯à®¤à¯ˆ நீகà¯à®•à¯à®•à®¿à®±à®¤à¯...';
$messages['messageopenerror'] = 'சேவையகதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ செயà¯à®¤à®¿à®¯à¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['fileuploaderror'] = 'கோபà¯à®ªà¯ à®à®±à¯à®±à®®à¯ தோலà¯à®µà®¿à®¯à®Ÿà®¾à®¨à¯à®¤à®¤à¯';
$messages['filesizeerror'] = 'à®à®±à¯à®±à®¿à®¯ கோபà¯à®ªà¯ அதிகபடà¯à®š அளவான $size-஠மீறியதà¯';
+$messages['copysuccess'] = 'வெறà¯à®±à®¿à®•à®°à®®à®¾à®• $nr à®®à¯à®•à®µà®°à®¿à®•à¯à®•à®³à¯ˆ நகலெடà¯à®¤à¯à®¤à®¤à¯';
+$messages['copyerror'] = 'எநà¯à®¤ à®®à¯à®•à®µà®°à®¿à®¯à¯ˆà®¯à¯à®®à¯ நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['sourceisreadonly'] = 'இநà¯à®¤ à®®à¯à®•à®µà®°à®¿à®¯à®¿à®©à¯ மூலதà¯à®¤à¯ˆ படிகà¯à®• மடà¯à®Ÿà¯à®®à¯à®¤à®¾à®©à¯ à®®à¯à®Ÿà®¿à®¯à¯à®®à¯';
$messages['errorsavingcontact'] = 'தொடரà¯à®ªà¯ à®®à¯à®•à®µà®°à®¿à®¯à¯ˆ சேமிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['movingmessage'] = 'செயà¯à®¤à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯...';
+$messages['copyingmessage'] = 'Copying message(s)...';
+$messages['copyingcontact'] = 'Copying contact(s)...';
+$messages['deletingmessage'] = 'Deleting message(s)...';
+$messages['markingmessage'] = 'Marking message(s)...';
+$messages['addingmember'] = 'Adding contact(s) to the group...';
+$messages['removingmember'] = 'Removing contact(s) from the group...';
$messages['receiptsent'] = 'படிதà¯à®¤ சீடà¯à®Ÿà¯ வெறà¯à®±à®¿à®•à®°à®®à®¾à®• அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯';
$messages['errorsendingreceipt'] = 'சீடà¯à®Ÿà¯ˆ அனà¯à®ªà¯à®ª à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
+$messages['deleteidentityconfirm'] = 'Do you really want to delete this identity?';
$messages['nodeletelastidentity'] = 'நீஙà¯à®•à®³à¯ இநà¯à®¤ அடையாளதà¯à®¤à¯ˆ நீகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ இத௠தான௠கடைசி';
$messages['forbiddencharacter'] = 'அடைவ௠பெயரில௠தடை செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ எழà¯à®¤à¯à®¤à¯à®•à¯à®•à®³à¯ உளà¯à®³à®¤à¯';
$messages['selectimportfile'] = 'தயவ௠செயà¯à®¤à¯ à®à®±à¯à®±à¯à®µà®¤à®±à¯à®•à¯ ஒர௠கோபà¯à®ªà¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®™à¯à®•à®³à¯';
$messages['addresswriterror'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ தொடரà¯à®ªà¯à®•à®³à®¿à®²à¯ எழà¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯';
+$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'] = 'à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯, தயவ௠செயà¯à®¤à¯ காதà¯à®¤à®¿à®°à¯à®™à¯à®•à®³à¯...';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
$messages['importconfirm'] = '<b>வெறà¯à®±à®¿à®•à®°à®®à®¾à®• $inserted தொடரà¯à®ªà¯à®•à®³à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯, à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³ $skipped தொடரà¯à®ªà¯à®•à®³à¯ தவிரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯</b>: <p><em>$names</em></p>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
$messages['opnotpermitted'] = 'பணி அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ!';
$messages['nofromaddress'] = 'நீஙà¯à®•à®³à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤ அடையாளதà¯à®¤à®¿à®²à¯ மினà¯à®©à®žà¯à®šà®²à¯ இலà¯à®²à¯ˆ';
$messages['editorwarning'] = 'எளிய உரை திரà¯à®¤à¯à®¤à®¿à®•à¯à®•à¯ மாறà¯à®µà®¤à®©à¯ மூலம௠எலà¯à®²à®¾ உரை வடிவஙà¯à®•à®³à¯à®®à¯ தொலைநà¯à®¤à¯ போகக௠கூடà¯à®®à¯. தொடர விரà¯à®®à¯à®ªà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à®¾ ?';
@@ -95,4 +137,35 @@ $messages['smtptoerror'] = 'SMTP பிழை ($code): "$to" பெறà¯à®©à®°à
$messages['smtprecipientserror'] = 'SMTP பிழை : பெறà¯à®©à®°à¯ படà¯à®Ÿà®¿à®¯à®²à¯ˆ பிரிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ';
$messages['smtperror'] = 'SMTP பிழை: $msg';
$messages['emailformaterror'] = 'தவறான மினà¯à®©à®žà¯à®šà®²à¯ à®®à¯à®•à®µà®°à®¿: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/th_TH/labels.inc b/program/localization/th_TH/labels.inc
index 9ee0858e2..03b4161fb 100644
--- a/program/localization/th_TH/labels.inc
+++ b/program/localization/th_TH/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'ยินดีต้อนรับสู่ $product';
$labels['username'] = 'บัà¸à¸Šà¸µà¸œà¸¹à¹‰à¹ƒà¸Šà¹‰';
$labels['password'] = 'รหัสผ่าน';
$labels['server'] = 'เซิร์ฟเวอร์';
$labels['login'] = 'เข้าสู่ระบบ';
+
+// taskbar
$labels['logout'] = 'ออà¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸š';
$labels['mail'] = 'อีเมล์';
$labels['settings'] = 'ปรับà¹à¸•à¹ˆà¸‡à¸„่าส่วนตัว';
$labels['addressbook'] = 'สมุดรายชื่อ';
+
+// mailbox names
$labels['inbox'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸‚าเข้า';
$labels['drafts'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมายร่าง';
$labels['sent'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸‚าออà¸';
$labels['trash'] = 'ถังขยะ';
$labels['junk'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมายขยะ';
+
+// message listing
$labels['subject'] = 'หัวจดหมาย';
$labels['from'] = 'ผู้ส่ง';
$labels['sender'] = 'ผู้ส่ง';
@@ -36,23 +46,34 @@ $labels['to'] = 'ผู้รับ';
$labels['cc'] = 'คัดลอà¸';
$labels['bcc'] = 'à¹à¸­à¸šà¸ªà¸³à¹€à¸™à¸²à¸–ึง';
$labels['replyto'] = 'ตอบà¸à¸¥à¸±à¸š';
+$labels['followupto'] = 'Followup-To';
$labels['date'] = 'วันที่';
$labels['size'] = 'ขนาด';
$labels['priority'] = 'ระดับความสำคัà¸';
$labels['organization'] = 'องค์à¸à¸£';
$labels['readstatus'] = 'สถานะà¸à¸²à¸£à¹€à¸›à¸´à¸”อ่าน';
$labels['listoptions'] = 'ตัวเลือà¸à¸à¸²à¸£à¹à¸ªà¸”งรายà¸à¸²à¸£';
+
$labels['mailboxlist'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
$labels['messagesfromto'] = 'จดหมายจาภ$from ถึง $to จำนวน $count ฉบับ';
+$labels['threadsfromto'] = 'Threads $from to $to of $count';
$labels['messagenrof'] = 'จดหมายฉบับที่ $nr จาภ$count ฉบับ';
+$labels['fromtoshort'] = '$from – $to of $count';
+
$labels['copy'] = 'คัดลอà¸';
$labels['move'] = 'เลื่อน';
$labels['moveto'] = 'ย้ายไป...';
$labels['download'] = 'ดาวน์โหลด';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'à¹à¸ªà¸”ง';
+$labels['showanyway'] = 'Show it anyway';
+
$labels['filename'] = 'ชื่อไฟล์';
$labels['filesize'] = 'ขนาดไฟล์';
+
$labels['addtoaddressbook'] = 'บันทึà¸à¹ƒà¸™à¸ªà¸¡à¸¸à¸”รายชื่อ';
+
+// weekdays short
$labels['sun'] = 'อ';
$labels['mon'] = 'จ';
$labels['tue'] = 'อ';
@@ -60,6 +81,8 @@ $labels['wed'] = 'พ';
$labels['thu'] = 'พฤ';
$labels['fri'] = 'ศ';
$labels['sat'] = 'ส';
+
+// weekdays long
$labels['sunday'] = 'วันอาทิตย์';
$labels['monday'] = 'วันจันทร์';
$labels['tuesday'] = 'วันอังคาร';
@@ -67,6 +90,8 @@ $labels['wednesday'] = 'วันพุธ';
$labels['thursday'] = 'วันพฤหัสบดี';
$labels['friday'] = 'วันศุà¸à¸£à¹Œ';
$labels['saturday'] = 'วันเสาร์';
+
+// months short
$labels['jan'] = 'ม.ค.';
$labels['feb'] = 'à¸.พ.';
$labels['mar'] = 'มี.ค.';
@@ -79,6 +104,8 @@ $labels['sep'] = 'à¸.ย.';
$labels['oct'] = 'ต.ค.';
$labels['nov'] = 'พ.ย.';
$labels['dec'] = 'ธ.ค.';
+
+// months long
$labels['longjan'] = 'มà¸à¸£à¸²à¸„ม';
$labels['longfeb'] = 'à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ';
$labels['longmar'] = 'มีนาคม';
@@ -91,7 +118,10 @@ $labels['longsep'] = 'à¸à¸±à¸™à¸¢à¸²à¸¢à¸™';
$labels['longoct'] = 'ตุลาคม';
$labels['longnov'] = 'พฤศจิà¸à¸²à¸¢à¸™';
$labels['longdec'] = 'ธันวาคม';
+
$labels['today'] = 'วันนี้';
+
+// toolbar buttons
$labels['refresh'] = 'รีเฟรช';
$labels['checkmail'] = 'ตรวจสอบจดหมายใหม่';
$labels['compose'] = 'เขียนจดหมายใหม่';
@@ -102,6 +132,7 @@ $labels['replytoallmessage'] = 'ตอบà¸à¸¥à¸±à¸šà¸–ึงทุà¸à¸„นใ
$labels['replyall'] = 'ตอบà¸à¸¥à¸±à¸šà¸—ั้งหมด';
$labels['replylist'] = 'รายชื่อตอบà¸à¸¥à¸±à¸š';
$labels['forward'] = 'ส่งต่อ';
+$labels['forwardinline'] = 'Forward inline';
$labels['forwardattachment'] = 'ส่งต่อเป็นไฟล์à¹à¸™à¸š';
$labels['forwardmessage'] = 'ส่งต่อจดหมาย';
$labels['deletemessage'] = 'ลบจดหมาย';
@@ -117,59 +148,125 @@ $labels['mark'] = 'ทำเครื่องหมาย';
$labels['markmessages'] = 'ทำเครื่องหมายข้อความ';
$labels['markread'] = 'ว่าอ่านà¹à¸¥à¹‰à¸§';
$labels['markunread'] = 'ว่ายังไม่ได้อ่าน';
+$labels['markflagged'] = 'As flagged';
+$labels['markunflagged'] = 'As unflagged';
$labels['moreactions'] = 'à¸à¸²à¸£à¸à¸£à¸°à¸—ำเพิ่มเติม...';
$labels['more'] = 'เพิ่มเติม';
$labels['back'] = 'ย้อนà¸à¸¥à¸±à¸š';
$labels['options'] = 'ตัวเลือà¸';
+
$labels['select'] = 'เลือà¸';
$labels['all'] = 'ทั้งหมด';
$labels['none'] = 'ไม่เลือà¸';
$labels['currpage'] = 'หน้าปัจจุบัน';
$labels['unread'] = 'จดหมายที่ไม่ได้อ่าน';
+$labels['flagged'] = 'Flagged';
$labels['unanswered'] = 'ยังไม่ได้ตอบ';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'ลบà¹à¸¥à¹‰à¸§';
$labels['undeleted'] = 'ยังไม่ได้ลบ';
+$labels['invert'] = 'Invert';
$labels['filter'] = 'ตัวà¸à¸£à¸­à¸‡à¸‚้อมูล';
$labels['list'] = 'รายà¸à¸²à¸£';
+$labels['threads'] = 'Threads';
$labels['expand-all'] = 'à¹à¸ªà¸”งทั้งหมด';
$labels['expand-unread'] = 'à¹à¸ªà¸”งเฉพาะที่ยังไม่ได้อ่าน';
$labels['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'] = 'จาà¸/ถึง';
+$labels['flag'] = 'Flag';
$labels['attachment'] = 'ไฟล์à¹à¸™à¸š';
$labels['nonesort'] = 'ไม่เลือà¸';
$labels['sentdate'] = 'วันที่ส่ง';
$labels['arrival'] = 'วันที่มาถึง';
$labels['asc'] = 'เรียงจาà¸à¸™à¹‰à¸­à¸¢à¸¡à¸²à¸¡à¸²à¸';
$labels['desc'] = 'เรีียงจาà¸à¸¡à¸²à¸à¹„ปน้อย';
+$labels['listcolumns'] = 'List columns';
$labels['listsorting'] = 'จัดเรียงคอลัมน์';
+$labels['listorder'] = 'Sorting order';
+$labels['listmode'] = 'List view mode';
+
+$labels['folderactions'] = 'Folder actions...';
$labels['compact'] = 'à¹à¸šà¸šà¸¢à¹ˆà¸­';
$labels['empty'] = 'ว่างเปล่า';
+
$labels['quota'] = 'พื้นที่ใช้งาน';
$labels['unknown'] = 'ไม่ทราบ';
$labels['unlimited'] = 'ไม่จำà¸à¸±à¸”';
+
$labels['quicksearch'] = 'ค้นหาà¹à¸šà¸šà¸”่วน';
$labels['resetsearch'] = 'ล้างà¸à¸²à¸£à¸„้นหา';
+$labels['searchmod'] = 'Search modifiers';
+$labels['msgtext'] = 'Entire message';
$labels['body'] = 'เนื้อหา';
+
+$labels['openinextwin'] = 'Open in new window';
+$labels['emlsave'] = 'Download (.eml)';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
+$labels['editasnew'] = 'Edit as new';
+$labels['send'] = 'Send';
$labels['sendmessage'] = 'ส่งจดหมาย';
$labels['savemessage'] = 'บันทึà¸à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡';
$labels['addattachment'] = 'à¹à¸™à¸šà¹„ฟล์';
$labels['charset'] = 'Charset';
+$labels['editortype'] = 'Editor type';
$labels['returnreceipt'] = 'ตอบà¸à¸¥à¸±à¸šà¸œà¸¹à¹‰à¸£à¸±à¸š';
+$labels['dsn'] = 'Delivery status notification';
+$labels['mailreplyintro'] = 'On $date, $sender wrote:';
+$labels['originalmessage'] = 'Original Message';
+
+$labels['editidents'] = 'Edit identities';
+$labels['spellcheck'] = 'Spell';
$labels['checkspelling'] = 'ตรวจสอบคำผิด';
$labels['resumeediting'] = 'à¹à¸à¹‰à¹„ขต่อ';
$labels['revertto'] = 'ย้นà¸à¸¥à¸±à¸šà¹„ปยัง';
+
+$labels['attach'] = 'Attach';
$labels['attachments'] = 'ไฟล์à¹à¸™à¸š';
$labels['upload'] = 'อัพโหลด';
+$labels['uploadprogress'] = '$percent ($current from $total)';
$labels['close'] = 'ปิด';
+$labels['messageoptions'] = 'Message options...';
+
$labels['low'] = 'ต่ำ';
$labels['lowest'] = 'ต่ำสุด';
$labels['normal'] = 'ปà¸à¸•à¸´';
$labels['high'] = 'สูง';
$labels['highest'] = 'สูงสุด';
+
$labels['nosubject'] = '(ไม่มีหัวข้อ)';
$labels['showimages'] = 'à¹à¸ªà¸”งรูป';
+$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';
+
+// mdn
+$labels['mdnrequest'] = 'The sender of this message has asked to be notified when you read this message. Do you wish to notify the sender?';
+$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.';
+
+// address boook
$labels['name'] = 'ชื่อà¹à¸ªà¸”ง';
$labels['firstname'] = 'ชื่อ';
$labels['surname'] = 'สà¸à¸¸à¸¥';
@@ -180,6 +277,7 @@ $labels['nickname'] = 'ชื่อเล่น';
$labels['jobtitle'] = 'ตำà¹à¸«à¸™à¹ˆà¸‡à¸‡à¸²à¸™';
$labels['department'] = 'à¹à¸œà¸™à¸';
$labels['gender'] = 'เพศ';
+$labels['maidenname'] = 'Maiden Name';
$labels['email'] = 'อีเมล์';
$labels['phone'] = 'โทรศัพท์';
$labels['address'] = 'ที่อยู่';
@@ -189,38 +287,52 @@ $labels['zipcode'] = 'รหัสไปรษณีย์';
$labels['region'] = 'รัà¸/จังหวัด';
$labels['country'] = 'ประเทศ';
$labels['birthday'] = 'วันเà¸à¸´à¸”';
+$labels['anniversary'] = 'Anniversary';
$labels['website'] = 'เว็บไซต์';
$labels['instantmessenger'] = 'IM';
+$labels['notes'] = 'Notes';
$labels['male'] = 'ชาย';
$labels['female'] = 'หà¸à¸´à¸‡';
$labels['manager'] = 'ผู้จัดà¸à¸²à¸£';
$labels['assistant'] = 'ผู้ช่วย';
+$labels['spouse'] = 'Spouse';
$labels['allfields'] = 'ช่องข้อมูลทั้่งหมด';
$labels['search'] = 'ค้นหา';
$labels['advsearch'] = 'ค้นหาขั้นสูง';
$labels['advanced'] = 'ขั้นสูง';
$labels['other'] = 'อื่นๆ';
+
$labels['typehome'] = 'บ้าน';
$labels['typework'] = 'สถานที่ทำงาน';
$labels['typeother'] = 'อื่นๆ';
$labels['typemobile'] = 'มือถือ';
+$labels['typemain'] = 'Main';
$labels['typehomefax'] = 'โทรสารที่บ้าน';
$labels['typeworkfax'] = 'โทรสารที่ทำงาน';
$labels['typecar'] = 'รถ';
$labels['typepager'] = 'เพจเจอร์';
$labels['typevideo'] = 'วีดีโอ';
+$labels['typeassistant'] = 'Assistant';
$labels['typehomepage'] = 'โฮมเพจ';
$labels['typeblog'] = 'บล็อà¸';
$labels['typeprofile'] = 'โปรไฟล์';
+
$labels['addfield'] = 'เพิ่มช่องข้อมูล...';
$labels['addcontact'] = 'เพิ่มรายชื่อ';
$labels['editcontact'] = 'à¹à¸à¹‰à¹„ขรายชื่อ';
+$labels['contacts'] = 'Contacts';
+$labels['contactproperties'] = 'Contact properties';
+$labels['personalinfo'] = 'Personal information';
+
$labels['edit'] = 'à¹à¸à¹‰à¹„ข';
$labels['cancel'] = 'ยà¸à¹€à¸¥à¸´à¸';
$labels['save'] = 'บันทึà¸';
$labels['delete'] = 'ลบ';
$labels['rename'] = 'เปลี่ยนชื่อ';
$labels['addphoto'] = 'เพิ่ม';
+$labels['replacephoto'] = 'Replace';
+$labels['uploadphoto'] = 'Upload photo';
+
$labels['newcontact'] = 'สร้างรายชื่อใหม่';
$labels['deletecontact'] = 'ลบรายชื่อที่เลือà¸';
$labels['composeto'] = 'เขียนจดหมายถึง';
@@ -229,40 +341,141 @@ $labels['print'] = 'พิมพ์';
$labels['export'] = 'ส่งออà¸';
$labels['exportall'] = 'ส่งออà¸à¸—ั้งหมด';
$labels['exportsel'] = 'ส่งออà¸à¹€à¸‰à¸žà¸²à¸°à¸—ี่เลือà¸';
+$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'] = 'หน้าที่à¹à¸¥à¹‰à¸§';
+$labels['firstpage'] = 'Show first page';
$labels['nextpage'] = 'หน้าถัดไป';
+$labels['lastpage'] = 'Show last page';
+
+$labels['group'] = 'Group';
+$labels['groups'] = 'Groups';
+$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 new contacts to address book:';
+$labels['importreplace'] = 'Replace the entire address book';
+$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';
+
+// settings
$labels['settingsfor'] = 'ตั้งค่าสำหรับ';
+$labels['about'] = 'About';
$labels['preferences'] = 'ปรับà¹à¸•à¹ˆà¸‡';
$labels['userpreferences'] = 'ข้อมูลส่วนตัว';
$labels['editpreferences'] = 'à¹à¸à¹‰à¹„ขข้อมูลส่วนตัว';
+
$labels['identities'] = 'ชื่อà¹à¸ªà¸”งตัว';
$labels['manageidentities'] = 'จัดà¸à¸²à¸£à¸Šà¸·à¹ˆà¸­à¹à¸ªà¸”งตัวสำหรับรายชื่อนี้';
$labels['newidentity'] = 'ชื่อà¹à¸ªà¸”งตัวใหม่';
+
$labels['newitem'] = 'New item';
$labels['edititem'] = 'Edit item';
+
$labels['preferhtml'] = 'อ่านà¹à¸šà¸š HTML';
+$labels['defaultcharset'] = 'Default Character Set';
$labels['htmlmessage'] = 'จดหมาย HTML';
+$labels['messagepart'] = 'Part';
+$labels['digitalsig'] = 'Digital Signature';
+$labels['dateformat'] = 'Date format';
+$labels['timeformat'] = 'Time format';
$labels['prettydate'] = 'à¹à¸ªà¸”งวันที่à¹à¸šà¸šà¸¢à¹ˆà¸­';
$labels['setdefault'] = 'ตั้งเป็นค่าใช้งาน';
+$labels['autodetect'] = 'Auto';
$labels['language'] = 'ภาษา';
$labels['timezone'] = 'เขตเวลา';
$labels['pagesize'] = 'จำนวนจดหมายต่อหน้า';
$labels['signature'] = 'ลายมือชื่อ';
$labels['dstactive'] = 'Daylight savings';
+$labels['showinextwin'] = 'Open message in a new window';
+$labels['composeextwin'] = 'Compose in a new window';
$labels['htmleditor'] = 'เขียนจดหมายà¹à¸šà¸š HTML';
+$labels['htmlonreply'] = 'on reply to HTML message';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = 'ลายมือชื่อà¹à¸šà¸š HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'à¹à¸ªà¸”งหน้าต่างตัวอย่างà¹à¸ªà¸”งผล';
+$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'] = 'บันทึà¸à¹€à¸›à¹‡à¸™à¸ˆà¸”หมายร่างอัตโนมัติ';
+$labels['everynminutes'] = 'every $n minute(s)';
+$labels['refreshinterval'] = 'Refresh (check for new messages, etc.)';
$labels['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'] = 'ตัวเลือà¸à¸‚ั้นสูง';
+$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'] = 'ข้อความใหม่';
$labels['signatureoptions'] = 'ตัวเลือà¸à¸ªà¸³à¸«à¸£à¸±à¸šà¸¥à¸²à¸¢à¹€à¸‹à¹‡à¹‡à¸™à¸•à¹Œ';
$labels['whenreplying'] = 'เมื่อตอบà¸à¸¥à¸±à¸š';
+$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'] = 'เพิ่มลายเซ็นต์เข้าไปอัตโนมัติ';
$labels['newmessageonly'] = 'เฉพาะข้อความใหม่เท่านั้น';
$labels['replyandforwardonly'] = 'ตอบà¸à¸¥à¸±à¸šà¹à¸¥à¸°à¸ªà¹ˆà¸‡à¸•à¹ˆà¸­à¹€à¸—่านั้น';
$labels['insertsignature'] = 'à¹à¸—รà¸à¸¥à¸²à¸¢à¹€à¸‹à¹‡à¸™à¸•à¹Œ';
+$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['forwardmode'] = 'Messages forwarding';
+$labels['inline'] = 'inline';
$labels['asattachment'] = 'เป็นไฟล์à¹à¸™à¸š';
+
$labels['folder'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
$labels['folders'] = 'à¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
$labels['foldername'] = 'ชื่อà¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมาย';
@@ -275,21 +488,51 @@ $labels['specialfolders'] = 'โฟลเดอร์พิเศษ';
$labels['properties'] = 'คุณสมบัติ';
$labels['folderproperties'] = 'คุณสมบัติเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹‚ฟลเดอร์';
$labels['parentfolder'] = 'โฟลเดอร์à¹à¸¡à¹ˆ';
+$labels['location'] = 'Location';
$labels['info'] = 'ข้อมูล';
+$labels['getfoldersize'] = 'Click to get folder size';
+$labels['changesubscription'] = 'Click to change subscription';
$labels['foldertype'] = 'ประเภทโฟลเดอร์';
$labels['personalfolder'] = 'โฟลเดอร์ส่วนตัว';
+$labels['otherfolder'] = 'Other User\'s Folder';
$labels['sharedfolder'] = 'โฟลเดอร์สาธารณะ';
+
$labels['sortby'] = 'เรียงตาม';
$labels['sortasc'] = 'เรียงจาà¸à¸«à¸™à¹‰à¸²à¹„ปหลัง';
$labels['sortdesc'] = 'เรียงจาà¸à¸«à¸¥à¸±à¸‡à¹„ปหน้า';
$labels['undo'] = 'เลิà¸à¸—ำ';
+
$labels['installedplugins'] = 'ปลั๊à¸à¸­à¸´à¸™à¸—ี่ติดตั้ง';
$labels['plugin'] = 'ปลั๊à¸à¸­à¸´à¸™';
$labels['version'] = 'รุ่น';
+$labels['source'] = 'Source';
$labels['license'] = 'สัà¸à¸à¸²à¸­à¸™à¸¸à¸à¸²à¸•';
+$labels['support'] = 'Get support';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$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/th_TH/messages.inc b/program/localization/th_TH/messages.inc
index 46d960aff..826930c0e 100644
--- a/program/localization/th_TH/messages.inc
+++ b/program/localization/th_TH/messages.inc
@@ -15,13 +15,22 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'เà¸à¸´à¸”ข้อผิดพลาดบางประà¸à¸²à¸£!';
$messages['loginfailed'] = 'ไม่สามารถเข้าสู่ระบบได้';
$messages['cookiesdisabled'] = 'Browser ของคุณไม่ได้เปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ Cookie ไว้';
$messages['sessionerror'] = 'Your session is invalid or expired';
$messages['storageerror'] = 'ไม่สามารถติดต่อ IMAP Server ได้';
$messages['servererror'] = 'เà¸à¸´à¸”ข้อผิดพลาดเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¹€à¸‹à¸´à¸£à¹Œà¸Ÿà¹€à¸§à¸­à¸£à¹Œ';
+$messages['servererrormsg'] = 'Server Error: $msg';
$messages['dberror'] = 'เà¸à¸´à¸”ข้อผิดพลาดเà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸à¸²à¸™à¸‚้อมูล';
+$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'] = 'ชื่อเซิร์ฟเวอร์ไม่ถูà¸à¸•à¹‰à¸­à¸‡';
$messages['nomessagesfound'] = 'ไม่มีจดหมายในà¸à¸¥à¹ˆà¸­à¸‡à¸ˆà¸”หมายนี้';
$messages['loggedout'] = 'ทำà¸à¸²à¸£à¸­à¸­à¸à¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢';
@@ -39,14 +48,22 @@ $messages['messagesaved'] = 'จดหมายถูà¸à¸šà¸±à¸™à¸—ึà¸à¹€à¸›
$messages['successfullysaved'] = 'บันทึà¸à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢à¹à¸¥à¹‰à¸§';
$messages['addedsuccessfully'] = 'รายชื่อถูà¸à¸šà¸±à¸™à¸—ึà¸à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸­à¸¢à¹à¸¥à¹‰à¸§';
$messages['contactexists'] = 'อีเมล์นี้มีอยู่à¹à¸¥à¹‰à¸§';
+$messages['contactnameexists'] = 'A contact with the same name already exists.';
$messages['blockedimages'] = 'เพื่อปà¸à¸›à¹‰à¸­à¸‡à¸„วามส่วนตัว รูปจาà¸à¸ à¸²à¸¢à¸™à¸­à¸à¹ƒà¸™à¸ˆà¸”หมายนี้จะถูà¸à¸›à¸´à¸”บังไว้';
$messages['encryptedmessage'] = 'จดหมายถูà¸à¹€à¸‚้ารหัสไม่สามารถà¹à¸ªà¸”งผลได้';
$messages['nocontactsfound'] = 'ไม่พบรายชื่อที่ค้นหา';
$messages['contactnotfound'] = 'ไม่พบรายชื่อที่ค้นหา';
+$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'à¸à¸²à¸£à¸ªà¹ˆà¸‡à¸ˆà¸”หมายล้มเหลว';
+$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
+$messages['errorsavingsent'] = 'An error occured while saving sent message.';
+$messages['errorsaving'] = 'เà¸à¸´à¸”ข้อผิดพลาดระหว่างà¸à¸²à¸£à¸šà¸±à¸™à¸—ึà¸';
$messages['errormoving'] = 'ไม่สามารถย้ายจดหมายได้';
+$messages['errorcopying'] = 'Could not copy the message(s).';
$messages['errordeleting'] = 'ไม่สามารถลบจดหมายได้';
+$messages['errormarking'] = 'Could not mark the message(s).';
$messages['deletecontactconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¸—ี่เลือà¸à¹ƒà¸Šà¹ˆà¸«à¸£à¸·à¸­à¹„ม่?';
+$messages['deletegroupconfirm'] = 'Do you really want to delete selected group?';
$messages['deletemessagesconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¸ˆà¸”หมายที่เลือà¸à¹ƒà¸Šà¹ˆà¸«à¸£à¸·à¸­à¹„ม่?';
$messages['deletefolderconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¹à¸Ÿà¹‰à¸¡à¸™à¸µà¹‰à¸«à¸£à¸·à¸­à¹„ม่?';
$messages['purgefolderconfirm'] = 'คุณมั่นใจที่ต้องà¸à¸²à¸£à¸¥à¸šà¸ˆà¸”หมายทั้งหมดในà¹à¸Ÿà¹‰à¸¡à¸™à¸µà¹‰à¹ƒà¸Šà¹ˆà¸«à¸£à¸·à¸­à¹„ม่?';
@@ -54,32 +71,101 @@ $messages['contactdeleting'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¸œà¸¹
$messages['groupdeleting'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸à¸¥à¸¸à¹ˆà¸¡...';
$messages['folderdeleting'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¹‚ฟลเดอร์...';
$messages['foldermoving'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¢à¹‰à¸²à¸¢à¹‚ฟลเดอร์...';
+$messages['foldersubscribing'] = 'Subscribing folder...';
+$messages['folderunsubscribing'] = 'Unsubscribing folder...';
$messages['formincomplete'] = 'ฟอร์มยังไม่ครบถ้วนสมบูรณ์';
$messages['noemailwarning'] = 'โปรดใส่อีเมล์ให้ถูà¸à¸•à¹‰à¸­à¸‡';
$messages['nonamewarning'] = 'โปรดใส่ชื่อ';
$messages['nopagesizewarning'] = 'โปรดใส่จำนวนหน้า';
+$messages['nosenderwarning'] = 'Please enter sender e-mail address.';
$messages['norecipientwarning'] = 'โปรดใส่ผู้รับอย่างน้อย 1 ชื่อ';
$messages['nosubjectwarning'] = 'หัวจดหมายว่างเปล่า คุณต้องà¸à¸²à¸£à¹ƒà¸ªà¹ˆà¸«à¸±à¸§à¸ˆà¸”หมายเดี๋ยวนี้หรือไม่?';
$messages['nobodywarning'] = 'คุณต้องà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸ˆà¸”หมายโดยไม่มีข้อความใช่หรือไม่?';
$messages['notsentwarning'] = 'จดหมายยังไม่ถูà¸à¸ªà¹ˆà¸‡ คุณต้องà¸à¸²à¸£à¸¢à¸à¹€à¸¥à¸´à¸à¸«à¸£à¸·à¸­à¹„ม่?';
$messages['noldapserver'] = 'โปรดเลือภLDAP Server เพื่อค้นหา';
$messages['nosearchname'] = 'โปรดใสชื่อหรืออีเมล์';
+$messages['notuploadedwarning'] = 'Not all attachments have been uploaded yet. Please wait or cancel the upload.';
$messages['searchsuccessful'] = 'พบจดหมายจำนวน $nr ฉบับ';
+$messages['contactsearchsuccessful'] = '$nr contacts found.';
$messages['searchnomatch'] = 'à¸à¸²à¸£à¸„้นหาไม่พบ';
$messages['searching'] = 'à¸à¸³à¸¥à¸±à¸‡à¸„้นหา...';
$messages['checking'] = 'à¸à¸³à¸¥à¸±à¸‡à¸•à¸£à¸§à¸ˆà¸ªà¸­à¸š...';
$messages['nospellerrors'] = 'ไม่พบคำที่สะà¸à¸”ผิด';
$messages['folderdeleted'] = 'ลบà¹à¸Ÿà¹‰à¸¡à¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸¡à¸šà¸¹à¸£à¸“์';
+$messages['foldersubscribed'] = 'Folder successfully subscribed.';
+$messages['folderunsubscribed'] = 'Folder successfully unsubscribed.';
+$messages['folderpurged'] = 'Folder has successfully been emptied.';
+$messages['folderexpunged'] = 'Folder has successfully been compacted.';
$messages['deletedsuccessfully'] = 'ลบเสร็จสมบูรณ์';
$messages['converting'] = 'นำเอาหารจัดรูปà¹à¸šà¸šà¹ƒà¸™à¸ˆà¸”หมายออà¸...';
$messages['messageopenerror'] = 'ไม่สามารถอ่านจดหมายจาภServer ได้';
$messages['fileuploaderror'] = 'à¸à¸²à¸£à¸­à¸±à¸žà¹‚หลดล้มเหลว';
$messages['filesizeerror'] = 'ไฟล์มีขนาดใหà¸à¹ˆà¹€à¸à¸´à¸™ $size';
+$messages['copysuccess'] = 'คัดลอà¸à¸ˆà¸”หมายจำนวน $nr ฉบับเรียบร้อย';
+$messages['copyerror'] = 'ไม่สามารถคัดลอà¸à¹„ด้';
$messages['sourceisreadonly'] = 'จดหมายนี้เป็นà¹à¸šà¸šà¸­à¹ˆà¸²à¸™à¸­à¸¢à¹ˆà¸²à¸‡à¹€à¸”ียว';
$messages['errorsavingcontact'] = 'ไม่สามารถบันทึà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¹„ด้';
$messages['movingmessage'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¢à¹‰à¸²à¸¢à¸‚้อความ...';
$messages['copyingmessage'] = 'à¸à¸³à¸¥à¸±à¸‡à¸„ัดลอà¸à¸‚้อความ...';
$messages['copyingcontact'] = 'à¸à¸³à¸¥à¸±à¸‡à¸„ัดลอà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¸•à¸´à¸”ต่อ...';
$messages['deletingmessage'] = 'à¸à¸³à¸¥à¸±à¸‡à¸¥à¸šà¸‚้อความ...';
+$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'] = 'à¸à¸³à¸¥à¸±à¸‡à¸™à¸³à¹€à¸‚้าข้อมูล, โปรดรอสัà¸à¸„รู่';
+$messages['importformaterror'] = 'Import failed! The uploaded file is not a valid import data file.';
+$messages['importconfirm'] = '<b>Successfully imported $inserted contacts</b>';
+$messages['importconfirmskipped'] = '<b>Skipped $skipped existing entries</b>';
+$messages['opnotpermitted'] = 'Operation not permitted!';
+$messages['nofromaddress'] = 'Missing e-mail address in selected identity.';
+$messages['editorwarning'] = 'Switching to the plain text editor will cause all text formatting to be lost. Do you wish to continue?';
+$messages['httpreceivedencrypterror'] = 'A fatal configuration error occurred. Contact your administrator immediately. <b>Your message can not be sent.</b>';
+$messages['smtpconnerror'] = 'SMTP Error ($code): Connection to server failed.';
+$messages['smtpautherror'] = 'SMTP Error ($code): Authentication failed.';
+$messages['smtpfromerror'] = 'SMTP Error ($code): Failed to set sender "$from" ($msg).';
+$messages['smtptoerror'] = 'SMTP Error ($code): Failed to add recipient "$to" ($msg).';
+$messages['smtprecipientserror'] = 'SMTP Error: Unable to parse recipients list.';
+$messages['smtperror'] = 'SMTP Error: $msg';
+$messages['emailformaterror'] = 'Invalid e-mail address: $email';
+$messages['toomanyrecipients'] = 'Too many recipients. Reduce the number of recipients to $max.';
+$messages['maxgroupmembersreached'] = 'The number of group members exceeds the maximum of $max.';
+$messages['internalerror'] = 'An internal error occured. Please try again.';
+$messages['contactdelerror'] = 'Could not delete contact(s).';
+$messages['contactdeleted'] = 'Contact(s) deleted successfully.';
+$messages['contactrestoreerror'] = 'Could not restore deleted contact(s).';
+$messages['contactrestored'] = 'Contact(s) restored successfully.';
+$messages['groupdeleted'] = 'Group deleted successfully.';
+$messages['grouprenamed'] = 'Group renamed successfully.';
+$messages['groupcreated'] = 'Group created successfully.';
+$messages['savedsearchdeleted'] = 'Saved search deleted successfully.';
+$messages['savedsearchdeleteerror'] = 'Could not delete saved search.';
+$messages['savedsearchcreated'] = 'Saved search created successfully.';
+$messages['savedsearchcreateerror'] = 'Could not create saved search.';
+$messages['messagedeleted'] = 'Message(s) deleted successfully.';
+$messages['messagemoved'] = 'Message(s) moved successfully.';
+$messages['messagecopied'] = 'Message(s) copied successfully.';
+$messages['messagemarked'] = 'Message(s) marked successfully.';
+$messages['autocompletechars'] = 'Enter at least $min characters for autocompletion.';
+$messages['autocompletemore'] = 'More matching entries found. Please type more characters.';
+$messages['namecannotbeempty'] = 'Name cannot be empty.';
+$messages['nametoolong'] = 'Name is too long.';
+$messages['folderupdated'] = 'Folder updated successfully.';
+$messages['foldercreated'] = 'Folder created successfully.';
+$messages['invalidimageformat'] = 'Not a valid image format.';
+$messages['mispellingsfound'] = 'Spelling errors detected in the message.';
+$messages['parentnotwritable'] = 'Unable to create/move folder into selected parent folder. No access rights.';
+$messages['messagetoobig'] = 'The message part is too big to process it.';
+$messages['attachmentvalidationerror'] = 'WARNING! This attachment is suspicious because its type doesn\'t match the type declared in the message. If you do not trust the sender, you shouldn\'t open it in the browser because it may contain malicious contents.<br/><br/><em>Expected: $expected; found: $detected</em>';
+$messages['noscriptwarning'] = 'Warning: This webmail service requires Javascript! In order to use it please enable Javascript in your browser\'s settings.';
+
?>
diff --git a/program/localization/tr_TR/labels.inc b/program/localization/tr_TR/labels.inc
index bcecd51f7..9e78ea3fa 100644
--- a/program/localization/tr_TR/labels.inc
+++ b/program/localization/tr_TR/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
-$labels['welcome'] = '$product E-Posta Sistemine HoÅŸ Geldiniz';
+
+$labels = array();
+
+// login page
+$labels['welcome'] = '$product, HoÅŸ Geldiniz';
$labels['username'] = 'Kullanıcı Adı';
$labels['password'] = 'Parola';
$labels['server'] = 'Sunucu';
$labels['login'] = 'Oturum Aç';
+
+// taskbar
$labels['logout'] = 'Oturumu Kapat';
$labels['mail'] = 'E-Posta';
$labels['settings'] = 'KiÅŸisel Ayarlar';
$labels['addressbook'] = 'Adres Defteri';
+
+// mailbox names
$labels['inbox'] = 'Gelen';
$labels['drafts'] = 'Taslaklar';
$labels['sent'] = 'Giden';
$labels['trash'] = 'Çöp';
$labels['junk'] = 'Ä°stenmeyen';
-$labels['show_real_foldernames'] = 'Özel klasörler için gerçek isimleri göster';
+
+// message listing
$labels['subject'] = 'Konu';
$labels['from'] = 'Gönderen';
$labels['sender'] = 'Gönderici';
@@ -44,11 +53,13 @@ $labels['priority'] = 'Öncelik';
$labels['organization'] = 'KuruluÅŸ';
$labels['readstatus'] = 'Okunma durumu';
$labels['listoptions'] = 'Seçenekleri listele...';
+
$labels['mailboxlist'] = 'Klasörler';
$labels['messagesfromto'] = 'Postalar: $from - $to , Toplam: $count';
$labels['threadsfromto'] = 'Postalar: $from - $to, Toplam $count';
$labels['messagenrof'] = 'Posta: $nr / $count';
$labels['fromtoshort'] = '$from - $to , Toplam: $count';
+
$labels['copy'] = 'Kopyala';
$labels['move'] = 'Taşı';
$labels['moveto'] = 'Şuraya taşı...';
@@ -56,9 +67,13 @@ $labels['download'] = 'Ä°ndir';
$labels['open'] = 'Aç';
$labels['showattachment'] = 'Göster';
$labels['showanyway'] = 'Yine de göster';
+
$labels['filename'] = 'Dosya Adı';
$labels['filesize'] = 'Dosya Boyutu';
+
$labels['addtoaddressbook'] = 'Adres Defterine Ekle';
+
+// weekdays short
$labels['sun'] = 'Paz';
$labels['mon'] = 'Pzt';
$labels['tue'] = 'Sal';
@@ -66,6 +81,8 @@ $labels['wed'] = 'Çrş';
$labels['thu'] = 'Per';
$labels['fri'] = 'Cum';
$labels['sat'] = 'Cts';
+
+// weekdays long
$labels['sunday'] = 'Paz';
$labels['monday'] = 'Pazartesi';
$labels['tuesday'] = 'Salı';
@@ -73,6 +90,8 @@ $labels['wednesday'] = 'Çarşamba';
$labels['thursday'] = 'PerÅŸembe';
$labels['friday'] = 'Cuma';
$labels['saturday'] = 'Cumartesi';
+
+// months short
$labels['jan'] = 'Oca';
$labels['feb'] = 'Åžub';
$labels['mar'] = 'Mar';
@@ -85,6 +104,8 @@ $labels['sep'] = 'Eyl';
$labels['oct'] = 'Eki';
$labels['nov'] = 'Kas';
$labels['dec'] = 'Ara';
+
+// months long
$labels['longjan'] = 'Ocak';
$labels['longfeb'] = 'Åžubat';
$labels['longmar'] = 'Mart';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'Eylül';
$labels['longoct'] = 'Ekim';
$labels['longnov'] = 'Kasım';
$labels['longdec'] = 'Aralık';
+
$labels['today'] = 'Bugün';
+
+// toolbar buttons
$labels['refresh'] = 'Yenile';
$labels['checkmail'] = 'Yeni Postaları Kontrol Et';
$labels['compose'] = 'E-Posta Yaz';
@@ -130,6 +154,7 @@ $labels['moreactions'] = 'DiÄŸer Ä°ÅŸlemler';
$labels['more'] = 'Daha Fazla';
$labels['back'] = 'Geri';
$labels['options'] = 'Seçenekler';
+
$labels['select'] = 'Seç';
$labels['all'] = 'Hepsini';
$labels['none'] = 'Yok';
@@ -148,6 +173,7 @@ $labels['expand-all'] = 'Tümünü genişlet';
$labels['expand-unread'] = 'Okunmamışları genişlet';
$labels['collapse-all'] = 'Tümünü daralt';
$labels['threaded'] = 'Dizilimli';
+
$labels['autoexpand_threads'] = 'Dizilimleri aç';
$labels['do_expand'] = 'tüm dizilimler';
$labels['expand_only_unread'] = 'sadece okunmamış posta içeren dizilimler';
@@ -163,24 +189,27 @@ $labels['listcolumns'] = 'Sütunları listele';
$labels['listsorting'] = 'Sıralama sütunu';
$labels['listorder'] = 'Sıralama düzeni';
$labels['listmode'] = 'Liste görünümü';
+
$labels['folderactions'] = 'Klasör eylemleri...';
$labels['compact'] = 'Sıklaştır';
$labels['empty'] = 'BoÅŸalt';
-$labels['importmessages'] = 'Mesajları içe aktar';
+
$labels['quota'] = 'Disk kullanımı';
$labels['unknown'] = 'bilinmeyen';
$labels['unlimited'] = 'sınırsız';
+
$labels['quicksearch'] = 'Hızlı arama';
$labels['resetsearch'] = 'Aramayı bitir';
$labels['searchmod'] = 'Arama detayları';
$labels['msgtext'] = 'Tüm posta gövdesi';
$labels['body'] = 'Gövde';
-$labels['type'] = 'Tip';
-$labels['namex'] = 'Ad';
+
$labels['openinextwin'] = 'Yeni pencerede aç';
$labels['emlsave'] = 'Ä°ndir (.eml)';
$labels['changeformattext'] = 'Düz yazı formatında göster';
$labels['changeformathtml'] = 'HTML formatında göster';
+
+// message compose
$labels['editasnew'] = 'Postayı yeni olarak düzenle';
$labels['send'] = 'Gönder';
$labels['sendmessage'] = 'Postayı gönder';
@@ -192,22 +221,26 @@ $labels['returnreceipt'] = 'Alındı onayı';
$labels['dsn'] = 'Teslimat durumu bildirisi';
$labels['mailreplyintro'] = '$date, $sender yazmış:';
$labels['originalmessage'] = 'Özgün ileti';
+
$labels['editidents'] = 'Kimlikleri düzenle';
$labels['spellcheck'] = 'Yazım denetimi';
$labels['checkspelling'] = 'Yazım denetimi yap';
$labels['resumeediting'] = 'Düzenlemeye devam et';
$labels['revertto'] = 'Geri çevir:';
+
$labels['attach'] = 'Ekle';
$labels['attachments'] = 'Ekler';
$labels['upload'] = 'Yükle';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = 'Kapat';
$labels['messageoptions'] = 'İleti seçenekleri...';
+
$labels['low'] = 'Düşük';
$labels['lowest'] = 'En Düşük';
$labels['normal'] = 'Normal';
$labels['high'] = 'Yüksek';
$labels['highest'] = 'En yüksek';
+
$labels['nosubject'] = '(Konu BelirtilmemiÅŸ)';
$labels['showimages'] = 'Resimleri göster';
$labels['alwaysshow'] = '$sender tarafından gönderilen resimleri her zaman göster';
@@ -215,19 +248,25 @@ $labels['isdraft'] = 'Bu posta taslaktır.';
$labels['andnmore'] = '$nr daha...';
$labels['togglemoreheaders'] = 'Daha fazla posta başlığı göster';
$labels['togglefullheaders'] = 'Posta başlıklarını göster/gizle';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Düz metin';
$labels['savesentmessagein'] = 'Gönderileni buraya kaydet';
$labels['dontsave'] = 'kaydetme';
$labels['maxuploadsize'] = 'İzin verilen en büyük dosya boyutu $size';
+
$labels['addcc'] = 'İlgili kopyası ekle';
$labels['addbcc'] = 'Gizli kopya ekle';
$labels['addreplyto'] = 'Yanıtlama adresi ekle';
$labels['addfollowupto'] = 'Takip adresi ekle';
+
+// mdn
$labels['mdnrequest'] = 'Bu postayı gönderen kişi, postayı okuduğunuza dair alındı onayı istedi. Alındı onayını göndermek ister misiniz ?';
$labels['receiptread'] = 'Alındı Onayı (okundu)';
$labels['yourmessage'] = 'Bu, postanız için alındı onayıdır';
$labels['receiptnote'] = 'Not: Bu alındı onayı sadece postanızın alıcının bilgisayarında gösterildiğini belirtir. Alıcının posta içeriğini okuduğunu veya anladığını garantilemez.';
+
+// address boook
$labels['name'] = 'Görüntülenen isim';
$labels['firstname'] = 'Ad';
$labels['surname'] = 'Soyad';
@@ -262,6 +301,7 @@ $labels['search'] = 'Ara';
$labels['advsearch'] = 'GeliÅŸmiÅŸ ara';
$labels['advanced'] = 'GeliÅŸmiÅŸ';
$labels['other'] = 'DiÄŸer';
+
$labels['typehome'] = 'Ev';
$labels['typework'] = 'Ä°ÅŸ';
$labels['typeother'] = 'DiÄŸer';
@@ -276,12 +316,14 @@ $labels['typeassistant'] = 'Asistan';
$labels['typehomepage'] = 'Ev sayfası';
$labels['typeblog'] = 'Günlük';
$labels['typeprofile'] = 'Profil';
+
$labels['addfield'] = 'Alan ekle...';
$labels['addcontact'] = 'Adres defterine ekle';
$labels['editcontact'] = 'Kişiyi düzenle';
$labels['contacts'] = 'KiÅŸiler';
$labels['contactproperties'] = 'Kişi özellikleri';
$labels['personalinfo'] = 'KiÅŸisel bilgiler';
+
$labels['edit'] = 'Düzenle';
$labels['cancel'] = 'Ä°ptal';
$labels['save'] = 'Kaydet';
@@ -290,6 +332,7 @@ $labels['rename'] = 'Yeniden adlandır';
$labels['addphoto'] = 'Ekle';
$labels['replacephoto'] = 'DeÄŸiÅŸtir';
$labels['uploadphoto'] = 'Fotoğraf yükle';
+
$labels['newcontact'] = 'Yeni adres kartı ekle';
$labels['deletecontact'] = 'Seçili kişileri sil';
$labels['composeto'] = 'Seçili kişiye posta gönder';
@@ -303,36 +346,41 @@ $labels['newcontactgroup'] = 'Yeni kiÅŸi grubu oluÅŸtur';
$labels['grouprename'] = 'Grubu yeniden adlandır';
$labels['groupdelete'] = 'Grubu sil';
$labels['groupremoveselected'] = 'Seçili kişileri gruptan sil';
+
$labels['previouspage'] = 'Öncekileri göster';
$labels['firstpage'] = 'İlkini göster';
$labels['nextpage'] = 'Sonrakileri göster';
$labels['lastpage'] = 'Sonuncuyu göster';
+
$labels['group'] = 'Grup';
$labels['groups'] = 'Gruplar';
-$labels['listgroup'] = 'Grup üyelerini listele';
$labels['personaladrbook'] = 'Adresler';
+
$labels['searchsave'] = 'Aramayı kaydet';
$labels['searchdelete'] = 'Aramayı sil';
+
$labels['import'] = 'İçe aktar';
$labels['importcontacts'] = 'Kişileri içe aktar';
$labels['importfromfile'] = 'Dosyadan içe aktar:';
-$labels['importtarget'] = 'KiÅŸileri ekle';
+$labels['importtarget'] = 'Yeni kiÅŸiler eklenecek adres defteri:';
$labels['importreplace'] = 'Tüm adres defterinin yerine geçsin';
-$labels['importgroups'] = 'Grup atamalarını içe aktar';
-$labels['importgroupsall'] = 'Tümü (Gerekirse grupları oluştur)';
-$labels['importgroupsexisting'] = 'Sadece mevcut gruplar için';
$labels['importdesc'] = 'Mevcut bir adres defterinden kişileri yükleyebilirsiniz.<br/> Şu anda <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> veya CSV (virgülle ayrılmış) veri formatları desteklenmektedir.';
$labels['done'] = 'Tamam';
+
+// settings
$labels['settingsfor'] = 'Ayarlar';
$labels['about'] = 'Hakkında';
$labels['preferences'] = 'Tercihler';
$labels['userpreferences'] = 'Kullanıcı tercihleri';
$labels['editpreferences'] = 'Kullanıcı tercihlerini düzenle';
+
$labels['identities'] = 'Kimlikler';
$labels['manageidentities'] = 'Bu hesap için kimlikleri düzenle';
$labels['newidentity'] = 'Yeni kimlik';
+
$labels['newitem'] = 'Yeni öğe';
$labels['edititem'] = 'Öğe düzenle';
+
$labels['preferhtml'] = 'HTML görüntüle';
$labels['defaultcharset'] = 'Varsayılan Karakter Kümesi';
$labels['htmlmessage'] = 'HTML Posta';
@@ -354,7 +402,7 @@ $labels['htmleditor'] = 'HTML postaları oluştur';
$labels['htmlonreply'] = 'sadece HTML postaları yanıtlarken';
$labels['htmlonreplyandforward'] = 'HTML biçimindeki posta yanıtlandığında veye iletildiğinde';
$labels['htmlsignature'] = 'HTML imza';
-$labels['showemail'] = 'Eposta adresini görünüm ismi ile görüntüle';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Önizleme panelini göster';
$labels['skin'] = 'Arayüz görünümü';
$labels['logoutclear'] = 'Oturumu kapatınca Çöpü temizle';
@@ -424,10 +472,10 @@ $labels['spellcheckignorenums'] = 'İçinde rakam geçen kelimleri göz ardı et
$labels['spellcheckignorecaps'] = 'Tümü büyük harf olan kelimleri göz ardı et';
$labels['addtodict'] = 'Sözlüğe Ekle';
$labels['mailtoprotohandler'] = 'mailto: bağlantıları için protokol işleyici kayıt et';
-$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['folder'] = 'Klasör';
$labels['folders'] = 'Klasörler';
$labels['foldername'] = 'Klasör Adı';
@@ -448,20 +496,26 @@ $labels['foldertype'] = 'Klasör Türü';
$labels['personalfolder'] = 'Kişisel Klasör';
$labels['otherfolder'] = 'Diğer Kullanıcıların Klasörü';
$labels['sharedfolder'] = 'Genel Klasör';
+
$labels['sortby'] = 'Sırala';
$labels['sortasc'] = 'Artarak';
$labels['sortdesc'] = 'Azalarak';
$labels['undo'] = 'Geri al';
+
$labels['installedplugins'] = 'Yüklü eklentiler';
$labels['plugin'] = 'Eklenti';
$labels['version'] = 'Sürüm';
$labels['source'] = 'Kaynak';
$labels['license'] = 'Lisans';
$labels['support'] = 'Destek Al';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Ä°ngilizce';
$labels['westerneuropean'] = 'Batı Avrupa';
@@ -480,4 +534,5 @@ $labels['vietnamese'] = 'Vietnamca';
$labels['japanese'] = 'Japonca';
$labels['korean'] = 'Korece';
$labels['chinese'] = 'Çince';
+
?>
diff --git a/program/localization/tr_TR/messages.inc b/program/localization/tr_TR/messages.inc
index 182fc966b..3b451d556 100644
--- a/program/localization/tr_TR/messages.inc
+++ b/program/localization/tr_TR/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Bir hata oluÅŸtu!';
$messages['loginfailed'] = 'Giriş Başarısız';
$messages['cookiesdisabled'] = 'Tarayıcınız çerezleri kabul etmiyor';
@@ -44,8 +46,6 @@ $messages['messagesent'] = 'Posta gönderildi';
$messages['savingmessage'] = 'Posta kaydediliyor...';
$messages['messagesaved'] = 'Posta taslaklara kaydedildi';
$messages['successfullysaved'] = 'Kaydedildi';
-$messages['savingresponse'] = 'Yanıt metni kaydediliyor...';
-$messages['deleteresponseconfirm'] = 'Yanıt metnini gerçekten silmek istiyor musunuz?';
$messages['addedsuccessfully'] = 'KiÅŸi adres defterine eklendi';
$messages['contactexists'] = 'Rehberde bu e-posta adresine sahip biri zaten var';
$messages['contactnameexists'] = 'Rehberde bu ada sahip biri zaten var.';
@@ -56,8 +56,8 @@ $messages['contactnotfound'] = 'İstenen kişi bulunamadı';
$messages['contactsearchonly'] = 'Kişi aramak için arama terimleri giriniz';
$messages['sendingfailed'] = 'Posta gönderilemedi';
$messages['senttooquickly'] = 'Lütfen bu postayı göndermeden önce $sec saniye bekleyin';
-$messages['errorsavingsent'] = 'Gönderilen postayı kaydederken hata oluştu.';
-$messages['errorsaving'] = 'Kaydederken bir hata oluÅŸtu.';
+$messages['errorsavingsent'] = 'Gönderilen postayı kaydederken hata oluştu';
+$messages['errorsaving'] = 'Kaydederken bir hata oluÅŸtu';
$messages['errormoving'] = 'Posta taşınamadı';
$messages['errorcopying'] = 'Posta kopyalanamadı';
$messages['errordeleting'] = 'Posta silinemedi';
@@ -101,16 +101,13 @@ $messages['converting'] = 'Postanın biçimlendirmesi kaldırılıyor...';
$messages['messageopenerror'] = 'Sunucudan posta yüklenemedi';
$messages['fileuploaderror'] = 'Dosya yükleme başarısız';
$messages['filesizeerror'] = 'Yüklenen dosya en büyük dosya boyunu ($size) aşıyor';
-$messages['copysuccess'] = '$nr adet kişi başarıyla kopyalandı.';
-$messages['movesuccess'] = '$nr adet kişi başarıyla taşındı.';
-$messages['copyerror'] = 'Kişiler kopyalanamadı.';
-$messages['moveerror'] = 'Kişiler taşınamadı.';
+$messages['copysuccess'] = '$nr adres kopyalandı';
+$messages['copyerror'] = 'Hiçbir adres kopyalanamadı';
$messages['sourceisreadonly'] = 'Adres kaynağı salt okunur durumda';
$messages['errorsavingcontact'] = 'KiÅŸinin adresi kaydedilemedi';
$messages['movingmessage'] = 'Posta(lar) taşınıyor...';
$messages['copyingmessage'] = 'Posta(lar) kopyalanıyor...';
$messages['copyingcontact'] = 'Kişile(ler) kopyalanıyor...';
-$messages['movingcontact'] = 'Kişi(ler) taşınıyor...';
$messages['deletingmessage'] = 'Posta(lar) siliniyor...';
$messages['markingmessage'] = 'Posta(lar) iÅŸaretleniyor...';
$messages['addingmember'] = 'Gruba kiÅŸi(ler) ekleniyor...';
@@ -129,8 +126,6 @@ $messages['importwait'] = 'Aktarılıyor, lütfen bekleyin...';
$messages['importformaterror'] = 'İçe aktarım başarısız. Yüklenen dosya geçerli bir içe aktarım dosyası değil.';
$messages['importconfirm'] = '<b>$inserted kişi başarıyla aktarıldı</b>';
$messages['importconfirmskipped'] = '<b>Var olan $skipped girdi atlandı</b>';
-$messages['importmessagesuccess'] = '$nr adet mesaj başarıyla içe aktarıldı';
-$messages['importmessageerror'] = 'İçe aktarım başarısız. Yüklenen dosya geçerli bir içe aktarım dosyası değil.';
$messages['opnotpermitted'] = 'Bu iÅŸleme izin verilmedi!';
$messages['nofromaddress'] = 'Seçili kimlikte e-posta adresi yok';
$messages['editorwarning'] = 'Düz metin düzenleyiciye geçmek, metin üzerindeki bütün biçimlendirmeleri kaldıracak. Devam etmek istiyor musunuz?';
@@ -144,7 +139,7 @@ $messages['smtperror'] = 'SMTP Hatası: $msg';
$messages['emailformaterror'] = 'Hatalı e-posta adresi: $email';
$messages['toomanyrecipients'] = 'Çok fazla alıcı. En fazla $max alıcı girebilirsiniz.';
$messages['maxgroupmembersreached'] = 'Grup üyelerinin sayısı $max sınırını aşıyor.';
-$messages['internalerror'] = 'Dahili bir hata oluştu. Lütfen tekrar deneyin.';
+$messages['internalerror'] = 'Bir hata oluştu. Lütfen tekrar deneyin.';
$messages['contactdelerror'] = 'KiÅŸi(ler) silinemedi';
$messages['contactdeleted'] = 'KiÅŸi(ler) silindi';
$messages['contactrestoreerror'] = 'Silinen kiÅŸi(ler) geri getirilemiyor.';
@@ -172,4 +167,5 @@ $messages['parentnotwritable'] = 'Klasör, seçilen üst klasöre taşınamıyor
$messages['messagetoobig'] = 'Bu ileti parçası işlenemeyecek kadar büyük.';
$messages['attachmentvalidationerror'] = 'UYARI! Bu eklenti mesajda belirtilenden farklı olduğu için şüpheli bulundu. Eğer göndericiye güvenmiyorsanız eki web tarayıcısında açmayın. Şüpheli içerik bulunabilir.';
$messages['noscriptwarning'] = 'Uyarı: Bu e-posta servisi Javascript gerektirmektedir! Servisi kullanabilmek için lütfen web tarayıcınızın ayarlarından Javascript\'i etkinleştiriniz.';
+
?>
diff --git a/program/localization/uk_UA/labels.inc b/program/localization/uk_UA/labels.inc
index f530c212e..6675e177e 100644
--- a/program/localization/uk_UA/labels.inc
+++ b/program/localization/uk_UA/labels.inc
@@ -15,49 +15,65 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
-$labels['welcome'] = 'ЛаÑкаво проÑимо до $product';
-$labels['username'] = 'Ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
-$labels['password'] = 'Пароль';
-$labels['server'] = 'Сервер';
-$labels['login'] = 'Увійти';
+
+$labels = array();
+
+// login page
+$labels['welcome'] = 'ЛаÑкаво проÑимо!';
+$labels['username'] = 'Ім\'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
+$labels['password'] = 'Пароль';
+$labels['server'] = 'Сервер';
+$labels['login'] = 'Увійти';
+
+// taskbar
$labels['logout'] = 'Вийти';
$labels['mail'] = 'Пошта';
$labels['settings'] = 'ÐалаштуваннÑ';
$labels['addressbook'] = 'Контакти';
+
+// mailbox names
$labels['inbox'] = 'Вхідні';
$labels['drafts'] = 'Чернетки';
$labels['sent'] = 'ÐадіÑлані';
-$labels['trash'] = 'Кошик';
+$labels['trash'] = 'Видалені';
$labels['junk'] = 'Спам';
-$labels['subject'] = 'Тема';
-$labels['from'] = 'Відправник';
-$labels['sender'] = 'Відправник';
-$labels['to'] = 'Кому';
-$labels['cc'] = 'КопіÑ';
-$labels['bcc'] = 'Прихована';
-$labels['replyto'] = 'Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð°Ð´Ñ€ÐµÑа';
-$labels['followupto'] = 'Followup-To';
-$labels['date'] = 'Дата';
-$labels['size'] = 'Розмір';
+
+// message listing
+$labels['subject'] = 'Тема';
+$labels['from'] = 'Від';
+$labels['sender'] = 'Відправник';
+$labels['to'] = 'Кому';
+$labels['cc'] = 'КопіÑ';
+$labels['bcc'] = 'Прихована';
+$labels['replyto'] = 'Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ð°Ð´Ñ€ÐµÑа';
+$labels['followupto'] = 'У відповідь';
+$labels['date'] = 'Дата';
+$labels['size'] = 'Розмір';
$labels['priority'] = 'Пріоритет';
$labels['organization'] = 'ОрганізаціÑ';
$labels['readstatus'] = 'Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ';
-$labels['listoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑпиÑку...';
+$labels['listoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð³Ð»Ñду...';
+
$labels['mailboxlist'] = 'Папки';
-$labels['messagesfromto'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· $from по $to із $count';
+$labels['messagesfromto'] = 'ЛиÑÑ‚ з $from по $to із $count';
$labels['threadsfromto'] = 'ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· $from по $to із $count';
$labels['messagenrof'] = 'ЛиÑÑ‚ $nr із $count';
$labels['fromtoshort'] = '$from – $to з $count';
+
$labels['copy'] = 'Копіювати';
$labels['move'] = 'ПереміÑтити';
-$labels['moveto'] = 'ПереміÑтити до...';
+$labels['moveto'] = 'ПереміÑтити лиÑÑ‚ у...';
$labels['download'] = 'Завантажити';
$labels['open'] = 'Відкрити';
$labels['showattachment'] = 'Показати';
$labels['showanyway'] = 'Ð’Ñе одно показати';
+
$labels['filename'] = 'Ім\'Ñ Ñ„Ð°Ð¹Ð»Ñƒ';
$labels['filesize'] = 'Розмір файлу';
+
$labels['addtoaddressbook'] = 'Додати до контактів';
+
+// weekdays short
$labels['sun'] = 'Ðд';
$labels['mon'] = 'Пн';
$labels['tue'] = 'Ð’Ñ‚';
@@ -65,6 +81,8 @@ $labels['wed'] = 'Ср';
$labels['thu'] = 'Чт';
$labels['fri'] = 'Пт';
$labels['sat'] = 'Сб';
+
+// weekdays long
$labels['sunday'] = 'ÐеділÑ';
$labels['monday'] = 'Понеділок';
$labels['tuesday'] = 'Вівторок';
@@ -72,213 +90,240 @@ $labels['wednesday'] = 'Середа';
$labels['thursday'] = 'Четвер';
$labels['friday'] = 'П\'ÑтницÑ';
$labels['saturday'] = 'Субота';
-$labels['jan'] = 'Ñіч';
-$labels['feb'] = 'лют';
-$labels['mar'] = 'бер';
-$labels['apr'] = 'квіт';
-$labels['may'] = 'Травень';
-$labels['jun'] = 'чер';
-$labels['jul'] = 'лип';
-$labels['aug'] = 'Ñер';
-$labels['sep'] = 'вер';
-$labels['oct'] = 'жов';
-$labels['nov'] = 'лиÑ';
-$labels['dec'] = 'гр';
-$labels['longjan'] = 'Січень';
-$labels['longfeb'] = 'Лютий';
-$labels['longmar'] = 'Березень';
-$labels['longapr'] = 'Квітень';
-$labels['longmay'] = 'Травень';
-$labels['longjun'] = 'Червень';
-$labels['longjul'] = 'Липень';
-$labels['longaug'] = 'Серпень';
-$labels['longsep'] = 'ВереÑень';
-$labels['longoct'] = 'Жовтень';
-$labels['longnov'] = 'ЛиÑтопад';
-$labels['longdec'] = 'Грудень';
+
+// months short
+$labels['jan'] = 'Ñіч';
+$labels['feb'] = 'лют';
+$labels['mar'] = 'бер';
+$labels['apr'] = 'кві';
+$labels['may'] = 'тра';
+$labels['jun'] = 'чер';
+$labels['jul'] = 'лип';
+$labels['aug'] = 'Ñер';
+$labels['sep'] = 'вер';
+$labels['oct'] = 'жов';
+$labels['nov'] = 'лиÑ';
+$labels['dec'] = 'гру';
+
+// months long
+$labels['longjan'] = 'Січень';
+$labels['longfeb'] = 'Лютий';
+$labels['longmar'] = 'Березень';
+$labels['longapr'] = 'Квітень';
+$labels['longmay'] = 'Травень';
+$labels['longjun'] = 'Червень';
+$labels['longjul'] = 'Липень';
+$labels['longaug'] = 'Серпень';
+$labels['longsep'] = 'ВереÑень';
+$labels['longoct'] = 'Жовтень';
+$labels['longnov'] = 'ЛиÑтопад';
+$labels['longdec'] = 'Грудень';
+
$labels['today'] = 'Сьогодні';
-$labels['refresh'] = 'Оновити';
-$labels['checkmail'] = 'Перевірити пошту';
-$labels['compose'] = 'ÐапиÑати лиÑта';
-$labels['writenewmessage'] = 'ÐапиÑати лиÑта';
-$labels['reply'] = 'ВідповіÑти';
-$labels['replytomessage'] = 'ВідповіÑти відправнику';
-$labels['replytoallmessage'] = 'ВідповіÑти до лиÑта або відправнику та уÑім отримувачам';
-$labels['replyall'] = 'ВідповіÑти уÑім';
-$labels['replylist'] = 'ВідповіÑти до лиÑта';
-$labels['forward'] = 'ПереÑлати';
-$labels['forwardinline'] = 'ПереÑлати у тілі лиÑта';
-$labels['forwardattachment'] = 'ПереÑлати Ñк прикріпленнÑ';
-$labels['forwardmessage'] = 'ПереÑлати повідомленнÑ';
-$labels['deletemessage'] = 'У кошик';
-$labels['movemessagetotrash'] = 'ПереміÑтити лиÑÑ‚ у кошик';
-$labels['printmessage'] = 'Друкувати';
-$labels['previousmessage'] = 'Показати попередній лиÑÑ‚';
-$labels['firstmessage'] = 'Показати перший лиÑÑ‚';
-$labels['nextmessage'] = 'Показати наÑтупний лиÑÑ‚';
-$labels['lastmessage'] = 'Показати оÑтанній лиÑÑ‚';
-$labels['backtolist'] = 'До переліку лиÑтів';
-$labels['viewsource'] = 'Вихідний текÑÑ‚';
-$labels['mark'] = 'Помітити';
-$labels['markmessages'] = 'Позначити лиÑти';
-$labels['markread'] = 'Позначити Ñк прочитане';
-$labels['markunread'] = 'Позначити Ñк непрочитане';
-$labels['markflagged'] = 'Додати зірочку';
-$labels['markunflagged'] = 'ЗнÑти зірочку';
-$labels['moreactions'] = 'Інші дії...';
-$labels['more'] = 'Ще';
-$labels['back'] = 'Ðазад';
-$labels['options'] = 'Параметри';
-$labels['select'] = 'Вибрати';
-$labels['all'] = 'Ð’ÑÑ–';
-$labels['none'] = 'Ðе Ñортувати';
-$labels['currpage'] = 'Поточна Ñторінка';
-$labels['unread'] = 'Ðепрочитані';
-$labels['flagged'] = 'Із зірочкою';
+
+// toolbar buttons
+$labels['refresh'] = 'Оновити';
+$labels['checkmail'] = 'Перевірити пошту';
+$labels['compose'] = 'ÐапиÑати лиÑта';
+$labels['writenewmessage'] = 'ÐапиÑати лиÑта';
+$labels['reply'] = 'ВідповіÑти';
+$labels['replytomessage'] = 'ВідповіÑти відправнику';
+$labels['replytoallmessage'] = 'ВідповіÑти відправнику та уÑім отримувачам';
+$labels['replyall'] = 'ВідповіÑти уÑім';
+$labels['replylist'] = 'ВідповіÑти уÑім отримувачам';
+$labels['forward'] = 'ПереÑлати';
+$labels['forwardinline'] = 'ПереÑлати у тілі лиÑта';
+$labels['forwardattachment'] = 'ПереÑлати Ñк додаток';
+$labels['forwardmessage'] = 'ПереÑлати лиÑÑ‚';
+$labels['deletemessage'] = 'Видалити';
+$labels['movemessagetotrash'] = 'ПереміÑтити у Видалені';
+$labels['printmessage'] = 'Друкувати';
+$labels['previousmessage'] = 'Показати попередній лиÑÑ‚';
+$labels['firstmessage'] = 'Показати перший лиÑÑ‚';
+$labels['nextmessage'] = 'Показати наÑтупний лиÑÑ‚';
+$labels['lastmessage'] = 'Показати оÑтанній лиÑÑ‚';
+$labels['backtolist'] = 'До переліку лиÑтів';
+$labels['viewsource'] = 'Вихідний текÑÑ‚';
+$labels['mark'] = 'Позначити';
+$labels['markmessages'] = 'Позначити лиÑти';
+$labels['markread'] = 'Позначити Ñк прочитаний';
+$labels['markunread'] = 'Позначити Ñк непрочитаний';
+$labels['markflagged'] = 'ПоÑтавити позначку';
+$labels['markunflagged'] = 'ЗнÑти позначку';
+$labels['moreactions'] = 'Інші дії...';
+$labels['more'] = 'Ще';
+$labels['back'] = 'Ðазад';
+$labels['options'] = 'Параметри';
+
+$labels['select'] = 'Вибрати';
+$labels['all'] = 'УÑÑ–';
+$labels['none'] = 'Ðе Ñортувати';
+$labels['currpage'] = 'Поточна Ñторінка';
+$labels['unread'] = 'Ðепрочитані';
+$labels['flagged'] = 'З позначкою';
$labels['unanswered'] = 'Без відповіді';
-$labels['deleted'] = 'Видалені';
-$labels['undeleted'] = 'Ðе видалено';
-$labels['invert'] = 'Інвертувати виділеннÑ';
-$labels['filter'] = 'Фільтр';
-$labels['list'] = 'СпиÑком';
-$labels['threads'] = 'Гілки';
-$labels['expand-all'] = 'Розкрити вÑÑ–';
-$labels['expand-unread'] = 'Розкрити непрочитані';
-$labels['collapse-all'] = 'Згорнути вÑÑ–';
-$labels['threaded'] = 'Гілками';
-$labels['autoexpand_threads'] = 'Розкривати гілки';
+$labels['withattachment'] = 'З додатком';
+$labels['deleted'] = 'Видалені';
+$labels['undeleted'] = 'Ðе видалені';
+$labels['invert'] = 'Інвертувати вибір';
+$labels['filter'] = 'Фільтр';
+$labels['list'] = 'СпиÑок';
+$labels['threads'] = 'Гілки';
+$labels['expand-all'] = 'Розгорнути уÑÑ–';
+$labels['expand-unread'] = 'Розгорнути непрочитані';
+$labels['collapse-all'] = 'Згорнути уÑÑ–';
+$labels['threaded'] = 'Гілками';
+
+$labels['autoexpand_threads'] = 'Ðвтоматично розгортати гілки';
$labels['do_expand'] = 'уÑÑ– гілки';
$labels['expand_only_unread'] = 'тільки з непрочитаними лиÑтами';
-$labels['fromto'] = 'Відправник/Одержувач';
-$labels['flag'] = 'Позначка';
-$labels['attachment'] = 'ВкладеннÑ';
-$labels['nonesort'] = 'Ðе Ñортувати';
-$labels['sentdate'] = 'Дата відправленнÑ';
-$labels['arrival'] = 'Дата ориманнÑ';
-$labels['asc'] = 'за зроÑтаннÑм';
-$labels['desc'] = 'за ÑпаданнÑм';
+$labels['fromto'] = 'Відправник/Одержувач';
+$labels['flag'] = 'Позначка';
+$labels['attachment'] = 'Додаток';
+$labels['nonesort'] = 'Ðе Ñортувати';
+$labels['sentdate'] = 'Дата відправленнÑ';
+$labels['arrival'] = 'Дата отриманнÑ';
+$labels['asc'] = 'За зроÑтаннÑм';
+$labels['desc'] = 'За ÑпаданнÑм';
$labels['listcolumns'] = 'Ðтрибути Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
$labels['listsorting'] = 'Сортувати за атрибутом';
$labels['listorder'] = 'ПорÑдок ÑортуваннÑ';
-$labels['listmode'] = 'Режим переглÑду';
+$labels['listmode'] = 'Режим переглÑду';
+
$labels['folderactions'] = 'Операції з папкою...';
$labels['compact'] = 'СтиÑнути';
$labels['empty'] = 'Спорожнити';
-$labels['importmessages'] = 'Імпорт повідомлень';
+
$labels['quota'] = 'ВикориÑтано';
-$labels['unknown'] = 'невідомо';
-$labels['unlimited'] = 'без обмеженнÑ';
-$labels['quicksearch'] = 'Швидкий пошук';
-$labels['resetsearch'] = 'ОчиÑтити пошук';
-$labels['searchmod'] = 'Де шукати';
-$labels['msgtext'] = 'Ð’ уÑьому лиÑÑ‚Ñ–';
-$labels['body'] = 'Тіло повідомленнÑ';
-$labels['namex'] = 'Ім\'Ñ';
-$labels['openinextwin'] = 'Відкрити в новому вікні';
+$labels['unknown'] = 'невідомо';
+$labels['unlimited'] = 'без обмеженнÑ';
+
+$labels['quicksearch'] = 'Швидкий пошук';
+$labels['resetsearch'] = 'ОчиÑтити пошук';
+$labels['searchmod'] = 'Де шукати';
+$labels['msgtext'] = 'ВеÑÑŒ лиÑÑ‚';
+$labels['body'] = 'ТекÑÑ‚ лиÑта';
+
+$labels['openinextwin'] = 'Відкрити у новому вікні';
$labels['emlsave'] = 'Зберегти (.eml)';
-$labels['changeformattext'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² текÑтовому форматі';
-$labels['changeformathtml'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ форматі HTML';
-$labels['editasnew'] = 'Редагувати Ñк новий';
-$labels['send'] = 'Відправлено';
-$labels['sendmessage'] = 'ÐадіÑлати зараз';
-$labels['savemessage'] = 'Зберегти чернетку';
-$labels['addattachment'] = 'ВклаÑти файл';
-$labels['charset'] = 'КодуваннÑ';
-$labels['editortype'] = 'Редактор';
-$labels['returnreceipt'] = 'Запит відповіді';
-$labels['dsn'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ доÑтавку';
+$labels['changeformattext'] = 'Показати Ñк звичайний текÑÑ‚';
+$labels['changeformathtml'] = 'Показати Ñк HTML';
+
+// message compose
+$labels['editasnew'] = 'Редагувати Ñк новий';
+$labels['send'] = 'Відправлено';
+$labels['sendmessage'] = 'ÐадіÑлати зараз';
+$labels['savemessage'] = 'Зберегти чернетку';
+$labels['addattachment'] = 'Додати файл';
+$labels['charset'] = 'КодуваннÑ';
+$labels['editortype'] = 'Редактор';
+$labels['returnreceipt'] = 'Повідомити про прочитаннÑ';
+$labels['dsn'] = 'Повідомити про доÑтавку';
$labels['mailreplyintro'] = '$date, $sender напиÑав:';
-$labels['originalmessage'] = 'Оригінальне повідомленнÑ';
-$labels['editidents'] = 'Змінити данні';
-$labels['spellcheck'] = 'ОрфографіÑ';
+$labels['originalmessage'] = 'Оригінальний лиÑÑ‚';
+
+$labels['editidents'] = 'Змінити дані';
+$labels['spellcheck'] = 'ОрфографіÑ';
$labels['checkspelling'] = 'Перевірити орфографію';
$labels['resumeediting'] = 'Продовжити редагуваннÑ';
-$labels['revertto'] = 'Відмінити редагуваннÑ';
-$labels['attach'] = 'ВклаÑти';
-$labels['attachments'] = 'Вкладені файли';
-$labels['upload'] = 'ВклаÑти';
+$labels['revertto'] = 'Відмінити редагуваннÑ';
+
+$labels['attach'] = 'Додати';
+$labels['attachments'] = 'Додані файли';
+$labels['upload'] = 'Завантажити';
$labels['uploadprogress'] = '$percent ($current з $total)';
-$labels['close'] = 'Закрити';
-$labels['messageoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñтів';
-$labels['low'] = 'Ðизький';
-$labels['lowest'] = 'Ðайнижчий';
-$labels['normal'] = 'Ðормальний';
-$labels['high'] = 'ВиÑокий';
-$labels['highest'] = 'Ðайвищий';
+$labels['close'] = 'Закрити';
+$labels['messageoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñта';
+
+$labels['low'] = 'низький';
+$labels['lowest'] = 'найнижчий';
+$labels['normal'] = 'нормальний';
+$labels['high'] = 'виÑокий';
+$labels['highest'] = 'найвищий';
+
$labels['nosubject'] = '(без теми)';
$labels['showimages'] = 'Показувати зображеннÑ';
$labels['alwaysshow'] = 'Завжди показувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ $sender';
$labels['isdraft'] = 'Це чернетка.';
$labels['andnmore'] = 'ще $nr...';
-$labels['togglemoreheaders'] = 'Завантажити ще заголовки повідомлень';
-$labels['togglefullheaders'] = 'Показати оригінальні заголовки повідомленнÑ';
+$labels['togglemoreheaders'] = 'Показати більше заголовків лиÑта';
+$labels['togglefullheaders'] = 'Показати уÑÑ– заголовки лиÑта';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = 'Звичайний текÑÑ‚';
-$labels['savesentmessagein'] = 'зберегти надіÑланого лиÑта в';
+$labels['savesentmessagein'] = 'Зберегти надіÑланого лиÑта у';
$labels['dontsave'] = 'не зберігати';
$labels['maxuploadsize'] = 'МакÑимальний розмір файлу $size';
+
$labels['addcc'] = 'Додати копію';
$labels['addbcc'] = 'Додати приховану копію';
$labels['addreplyto'] = 'Додати зворотню адреÑу';
-$labels['addfollowupto'] = 'Додати Followup-To';
-$labels['mdnrequest'] = 'Відправник цього лиÑта запитав про прочитаннÑ. Повідомити відправника?';
+$labels['addfollowupto'] = 'Додати у відповідь';
+
+// mdn
+$labels['mdnrequest'] = 'Відправник цього лиÑта запитує про його прочитаннÑ. Повідомити відправника?';
$labels['receiptread'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ';
$labels['yourmessage'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð’Ð°ÑˆÐ¾Ð³Ð¾ лиÑта';
-$labels['receiptnote'] = 'ЗауваженнÑ: Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ” лише, що лиÑта було відкрито одержувачем, Ñ– не гарантує того, що його було прочитано.';
-$labels['name'] = 'Ім`Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
-$labels['firstname'] = 'Ім`Ñ';
-$labels['surname'] = 'Прізвище';
-$labels['middlename'] = 'По-батькові';
-$labels['nameprefix'] = 'ПрефікÑ';
-$labels['namesuffix'] = 'СуфікÑ';
-$labels['nickname'] = 'Ðікнейм';
-$labels['jobtitle'] = 'ПоÑада';
-$labels['department'] = 'Відділ';
-$labels['gender'] = 'Стать';
-$labels['maidenname'] = 'Дівоче прізвище';
-$labels['email'] = 'Електронна адреÑа';
-$labels['phone'] = 'Телефон';
-$labels['address'] = 'ÐдреÑа';
-$labels['street'] = 'ВулицÑ';
-$labels['locality'] = 'МіÑто';
-$labels['zipcode'] = 'ІндекÑ';
-$labels['region'] = 'ОблаÑÑ‚ÑŒ';
-$labels['country'] = 'Страна';
-$labels['birthday'] = 'Дата народженнÑ';
-$labels['anniversary'] = 'Ювілей';
-$labels['website'] = 'Веб-Ñайт';
+$labels['receiptnote'] = 'ЗауваженнÑ: Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ” лише те, що лиÑта було відкрито одержувачем, Ñ– не гарантує того, що його було прочитано.';
+
+// address boook
+$labels['name'] = 'Ім\'Ñ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
+$labels['firstname'] = 'Ім\'Ñ';
+$labels['surname'] = 'Прізвище';
+$labels['middlename'] = 'По-батькові';
+$labels['nameprefix'] = 'ПрефікÑ';
+$labels['namesuffix'] = 'СуфікÑ';
+$labels['nickname'] = 'ПрізвиÑько';
+$labels['jobtitle'] = 'ПоÑада';
+$labels['department'] = 'Відділ';
+$labels['gender'] = 'Стать';
+$labels['maidenname'] = 'Дівоче прізвище';
+$labels['email'] = 'Електронна адреÑа';
+$labels['phone'] = 'Телефон';
+$labels['address'] = 'ÐдреÑа';
+$labels['street'] = 'ВулицÑ';
+$labels['locality'] = 'МіÑто';
+$labels['zipcode'] = 'ІндекÑ';
+$labels['region'] = 'ОблаÑÑ‚ÑŒ';
+$labels['country'] = 'Країна';
+$labels['birthday'] = 'День народженнÑ';
+$labels['anniversary'] = 'Ювілей';
+$labels['website'] = 'Веб-Ñайт';
$labels['instantmessenger'] = 'IM';
-$labels['notes'] = 'Примітки';
-$labels['male'] = 'чоловічий';
-$labels['female'] = 'жіночий';
-$labels['manager'] = 'Менеждер';
-$labels['assistant'] = 'Помічник';
-$labels['spouse'] = 'Шлюбний партнер';
-$labels['allfields'] = 'УÑÑ– полÑ';
-$labels['search'] = 'Пошук';
-$labels['advsearch'] = 'Розширений пошук';
-$labels['advanced'] = 'Додатково';
-$labels['other'] = 'Інше';
+$labels['notes'] = 'Примітки';
+$labels['male'] = 'чоловіча';
+$labels['female'] = 'жіноча';
+$labels['manager'] = 'Менеджер';
+$labels['assistant'] = 'Помічник';
+$labels['spouse'] = 'У шлюбі з';
+$labels['allfields'] = 'УÑÑ– полÑ';
+$labels['search'] = 'Пошук';
+$labels['advsearch'] = 'Розширений пошук';
+$labels['advanced'] = 'Додатково';
+$labels['other'] = 'Інше';
+
$labels['typehome'] = 'Дім';
$labels['typework'] = 'Робота';
$labels['typeother'] = 'Інше';
-$labels['typemobile'] = 'Мобільний';
-$labels['typemain'] = 'ОÑновний';
-$labels['typehomefax'] = 'Домашній факÑ';
-$labels['typeworkfax'] = 'Робочий факÑ';
-$labels['typecar'] = 'Ðвтомобіль';
+$labels['typemobile'] = 'Мобільний';
+$labels['typemain'] = 'ОÑновний';
+$labels['typehomefax'] = 'Домашній факÑ';
+$labels['typeworkfax'] = 'Робочий факÑ';
+$labels['typecar'] = 'Ðвтомобіль';
$labels['typepager'] = 'Пейджер';
$labels['typevideo'] = 'Відео';
-$labels['typeassistant'] = 'Помічник';
-$labels['typehomepage'] = 'Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка';
-$labels['typeblog'] = 'Блог';
+$labels['typeassistant'] = 'Помічник';
+$labels['typehomepage'] = 'Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка';
+$labels['typeblog'] = 'Блог';
$labels['typeprofile'] = 'Профіль';
+
$labels['addfield'] = 'Додати поле...';
-$labels['addcontact'] = 'Додати вибрані контакти до ÑпиÑку контактів';
+$labels['addcontact'] = 'Додати обрані контакти до ÑпиÑку контактів';
$labels['editcontact'] = 'Редагувати контакт';
$labels['contacts'] = 'Контакти';
-$labels['contactproperties'] = 'ВлаÑтивоÑÑ‚Ñ– контакта';
+$labels['contactproperties'] = 'ВлаÑтивоÑÑ‚Ñ– контакту';
$labels['personalinfo'] = 'ОÑобова інформаціÑ';
+
$labels['edit'] = 'Правка';
$labels['cancel'] = 'СкаÑувати';
$labels['save'] = 'Зберегти';
@@ -287,69 +332,80 @@ $labels['rename'] = 'Перейменувати';
$labels['addphoto'] = 'Додати';
$labels['replacephoto'] = 'Замінити';
$labels['uploadphoto'] = 'Завантажити фотографію';
-$labels['newcontact'] = 'Створити новий контакт';
-$labels['deletecontact'] = 'Видалити вибрані контакти';
-$labels['composeto'] = 'Створити лиÑта Ð´Ð»Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð½Ð¸Ñ… контактів';
+
+$labels['newcontact'] = 'Створити новий контакт';
+$labels['deletecontact'] = 'Видалити обрані контакти';
+$labels['composeto'] = 'ÐапиÑати лиÑта до обраних контактів';
$labels['contactsfromto'] = 'Контакти $from - $to / $count';
-$labels['print'] = 'Друкувати';
-$labels['export'] = 'ЕкÑпортувати';
-$labels['exportall'] = 'ЕкÑпортувати вÑе';
-$labels['exportsel'] = 'ЕкÑпортувати виділені';
-$labels['exportvcards'] = 'ЕкÑпортувати контакти у формат vCard';
+$labels['print'] = 'Друкувати';
+$labels['export'] = 'ЕкÑпортувати';
+$labels['exportall'] = 'ЕкÑпортувати вÑе';
+$labels['exportsel'] = 'ЕкÑпортувати обрані';
+$labels['exportvcards'] = 'ЕкÑпортувати контакти у формат vCard';
$labels['newcontactgroup'] = 'Створити нову групу контактів';
-$labels['grouprename'] = 'Перейменувати групу';
-$labels['groupdelete'] = 'Видалити групу';
+$labels['grouprename'] = 'Перейменувати групу';
+$labels['groupdelete'] = 'Видалити групу';
$labels['groupremoveselected'] = 'Видалити обрані контакти з групи';
-$labels['previouspage'] = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñторінка';
-$labels['firstpage'] = 'Перша Ñторінка';
-$labels['nextpage'] = 'ÐаÑтупна Ñторінка';
-$labels['lastpage'] = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñторінка';
+
+$labels['previouspage'] = 'ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñторінка';
+$labels['firstpage'] = 'Перша Ñторінка';
+$labels['nextpage'] = 'ÐаÑтупна Ñторінка';
+$labels['lastpage'] = 'ОÑÑ‚Ð°Ð½Ð½Ñ Ñторінка';
+
$labels['group'] = 'Група';
$labels['groups'] = 'Групи';
$labels['personaladrbook'] = 'ПерÑональні адреÑи';
-$labels['searchsave'] = 'Зберегти пошук';
-$labels['searchdelete'] = 'Видалити пошук';
+
+$labels['searchsave'] = 'Зберегти пошуковий запит';
+$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 (дані розділені комами).';
+$labels['importdesc'] = 'Ви можете завантажити контакти з Ñ–Ñнуючої адреÑної книги.<br/>Ð’ даний Ñ‡Ð°Ñ Ð¼Ð¸ підтримуємо імпорт Ð°Ð´Ñ€ÐµÑ Ñƒ форматі візитної картки <a href="http://en.wikipedia.org/wiki/VCard"> vCard</ a> або CSV (дані розділені комами).';
$labels['done'] = 'Готово';
+
+// settings
$labels['settingsfor'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ';
$labels['about'] = 'Про програму';
$labels['preferences'] = 'Параметри';
$labels['userpreferences'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
$labels['editpreferences'] = 'Редагувати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
+
$labels['identities'] = 'Профілі';
$labels['manageidentities'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»Ñми';
$labels['newidentity'] = 'Ðовий профіль';
+
$labels['newitem'] = 'Ðовий';
$labels['edititem'] = 'Редагувати';
-$labels['preferhtml'] = 'Показувати в HTML';
-$labels['defaultcharset'] = 'ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° замовчуванннÑм';
+
+$labels['preferhtml'] = 'Показувати у HTML';
+$labels['defaultcharset'] = 'ÐšÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° замовчуваннÑм';
$labels['htmlmessage'] = 'ЛиÑÑ‚ у HTML';
$labels['messagepart'] = 'ЧаÑтина';
$labels['digitalsig'] = 'Цифровий підпиÑ';
$labels['dateformat'] = 'Формат дати';
$labels['timeformat'] = 'Формат чаÑу';
$labels['prettydate'] = 'Дати у зручному форматі';
-$labels['setdefault'] = 'Ð’Ñтановити за замовчуваннÑм';
-$labels['autodetect'] = 'Визначати автоматично';
-$labels['language'] = 'Мова';
-$labels['timezone'] = 'ЧаÑовий поÑÑ';
-$labels['pagesize'] = 'РÑдків на Ñторінці';
+$labels['setdefault'] = 'Ð’Ñтановити за замовчуваннÑм';
+$labels['autodetect'] = 'визначити автоматично';
+$labels['language'] = 'Мова';
+$labels['timezone'] = 'ЧаÑовий поÑÑ';
+$labels['pagesize'] = 'РÑдків на Ñторінці';
$labels['signature'] = 'ПідпиÑ';
-$labels['dstactive'] = 'Літній/зимовий чаÑ';
-$labels['showinextwin'] = 'Відкрити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð² новому вікні';
-$labels['composeextwin'] = 'Створити в новому вікні';
-$labels['htmleditor'] = 'Створювати лиÑти в HTML';
-$labels['htmlonreply'] = 'тільки у відповідь на HTML повідомленнÑ';
-$labels['htmlonreplyandforward'] = 'під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ відповіді на Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ HTML';
-$labels['htmlsignature'] = 'ÐŸÑ–Ð´Ð¿Ð¸Ñ Ð² HTML';
+$labels['dstactive'] = 'Літній/зимовий чаÑ';
+$labels['showinextwin'] = 'Відкрити лиÑÑ‚ у новому вікні';
+$labels['composeextwin'] = 'Створити у новому вікні';
+$labels['htmleditor'] = 'Створювати лиÑти у HTML';
+$labels['htmlonreply'] = 'тільки у відповідь на лиÑÑ‚ у HTML';
+$labels['htmlonreplyandforward'] = 'під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ відповіді на лиÑÑ‚ у HTML';
+$labels['htmlsignature'] = 'ÐŸÑ–Ð´Ð¿Ð¸Ñ Ñƒ HTML';
+$labels['showemail'] = 'Показати адреÑу з ім\'Ñм Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ';
$labels['previewpane'] = 'Показати панель переглÑду';
$labels['skin'] = 'Тема';
-$labels['logoutclear'] = 'Очищати кошик при виході';
+$labels['logoutclear'] = 'Очищати папку Видалені при виході';
$labels['logoutcompact'] = 'СтиÑкати папку Вхідні при завершенні';
$labels['uisettings'] = 'Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача';
$labels['serversettings'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñервера';
@@ -357,43 +413,43 @@ $labels['mailboxview'] = 'Вид інтерфейÑу';
$labels['mdnrequests'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ';
$labels['askuser'] = 'запитати кориÑтувача';
$labels['autosend'] = 'відправлÑти автоматично';
-$labels['autosendknown'] = 'відправити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¸Ð¼ контактам, в іншому випадку запитати мене';
-$labels['autosendknownignore'] = 'відправити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¸Ð¼ контактам, в іншому випадку ігнорувати';
+$labels['autosendknown'] = 'відправити лиÑÑ‚ моїм контактам, у іншому випадку запитати мене';
+$labels['autosendknownignore'] = 'відправити лиÑÑ‚ моїм контактам, у іншому випадку ігнорувати';
$labels['ignore'] = 'ігнорувати';
$labels['readwhendeleted'] = 'Позначати Ñк прочитане при видаленні';
$labels['flagfordeletion'] = 'Позначати Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ видаленнÑ';
$labels['skipdeleted'] = 'Ðе показувати видалені лиÑти';
-$labels['deletealways'] = 'ВидалÑти лиÑти при невдалому переміщенні до кошика';
-$labels['deletejunk'] = 'ВидалÑти Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· папки СПÐÐœ минаючи Корзину';
+$labels['deletealways'] = 'ВидалÑти лиÑти при невдалому переміщенні у Видалені';
+$labels['deletejunk'] = 'ВидалÑти лиÑти з папки СПÐÐœ минаючи Видалені';
$labels['showremoteimages'] = 'Показувати віддалені зображеннÑ';
$labels['fromknownsenders'] = 'від відомих відправників';
$labels['always'] = 'завжди';
-$labels['showinlineimages'] = 'Показувати вкладені Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð½Ð¸Ð·Ñƒ лиÑта';
-$labels['autosavedraft'] = 'ÐÐ²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð½ÐµÑ‚ÐºÐ¸';
-$labels['everynminutes'] = 'кожні $n хвилин';
-$labels['refreshinterval'] = 'Оновити (перевірити нові повідомленнÑ, тощо)';
-$labels['never'] = 'ніколи';
-$labels['immediately'] = 'одразу';
+$labels['showinlineimages'] = 'Показувати додані Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð½Ð¸Ð·Ñƒ лиÑта';
+$labels['autosavedraft'] = 'ÐÐ²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð½ÐµÑ‚ÐºÐ¸';
+$labels['everynminutes'] = 'кожні $n хвилин';
+$labels['refreshinterval'] = 'Оновити (перевірити нові лиÑти, тощо)';
+$labels['never'] = 'ніколи';
+$labels['immediately'] = 'одразу';
$labels['messagesdisplaying'] = 'Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñтів';
$labels['messagescomposition'] = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð»Ð¸Ñтів';
-$labels['mimeparamfolding'] = 'Імена вкладень';
-$labels['2231folding'] = 'Повний RFC 2231 (Thunderbird)';
+$labels['mimeparamfolding'] = 'Імена додатків';
+$labels['2231folding'] = 'повний RFC 2231 (Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)';
$labels['2047folding'] = 'RFC 2047 (інші поштові клієнти)';
$labels['force7bit'] = 'ВикориÑтовувати MIME ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ 8-бітних Ñимволів';
$labels['advancedoptions'] = 'Додаткові параметри';
-$labels['focusonnewmessage'] = 'ФокуÑувати вікно браузера при новому лиÑÑ‚Ñ–';
+$labels['focusonnewmessage'] = 'ФокуÑувати вікно переглÑдача при новому лиÑÑ‚Ñ–';
$labels['checkallfolders'] = 'ПеревірÑти нові лиÑти у вÑÑ–Ñ… папках';
$labels['displaynext'] = 'ПіÑÐ»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ/Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð»Ð¸Ñта відображати наÑтупний';
-$labels['defaultfont'] = 'Шрифт за замовчуваннÑм HTML повідомленнÑ';
+$labels['defaultfont'] = 'Шрифт Ð´Ð»Ñ HTML за замовчуваннÑм';
$labels['mainoptions'] = 'ОÑновні налаштуваннÑ';
-$labels['browseroptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ñ€Ð°ÑƒÐ·ÐµÑ€Ð°';
+$labels['browseroptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñдача';
$labels['section'] = 'Розділ';
$labels['maintenance'] = 'Додатково';
$labels['newmessage'] = 'Ðовий лиÑÑ‚';
$labels['signatureoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñу';
$labels['whenreplying'] = 'При відповіді';
-$labels['replyempty'] = 'не цитувати оригінальне повідомленнÑ';
+$labels['replyempty'] = 'не цитувати оригінальний лиÑÑ‚';
$labels['replytopposting'] = 'починати новий лиÑÑ‚ перед цитованим';
$labels['replybottomposting'] = 'починати новий лиÑÑ‚ піÑÐ»Ñ Ñ†Ð¸Ñ‚Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾';
$labels['replyremovesignature'] = 'При відповіді видалÑти первинний Ð¿Ñ–Ð´Ð¿Ð¸Ñ Ð· лиÑта';
@@ -401,32 +457,33 @@ $labels['autoaddsignature'] = 'Ðвтоматично додавати підпÐ
$labels['newmessageonly'] = 'тільки до нових лиÑтів';
$labels['replyandforwardonly'] = 'тільки при відповідÑÑ… та переÑилках';
$labels['insertsignature'] = 'Додати підпиÑ';
-$labels['previewpanemarkread'] = 'Позначити переглÑнуті лиÑти Ñк прочитані';
-$labels['afternseconds'] = 'через $n Ñекунд';
-$labels['reqmdn'] = 'Завжди вимагати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ доÑтавку';
-$labels['reqdsn'] = 'Завжди вимагати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð´Ð¾Ñтавки';
-$labels['replysamefolder'] = 'РозміÑтити відповіді у тій же папці, де знаходитьÑÑ Ð¾Ñ€Ð¸Ð³Ñ–Ð½Ð°Ð»';
+$labels['previewpanemarkread'] = 'Позначити переглÑнуті лиÑти Ñк прочитані';
+$labels['afternseconds'] = 'через $n Ñекунд';
+$labels['reqmdn'] = 'Завжди повідомлÑти про прочитаннÑ';
+$labels['reqdsn'] = 'Завжди повідомлÑти про доÑтавку';
+$labels['replysamefolder'] = 'Розміщувати відповіді у папці вихідного лиÑта';
$labels['defaultabook'] = 'ÐдреÑна книга за замовчуваннÑм';
-$labels['autocompletesingle'] = 'ПропуÑкати додаткові адреÑи в автозавершенні';
+$labels['autocompletesingle'] = 'ПропуÑкати додаткові адреÑи у автозавершенні';
$labels['listnamedisplay'] = 'Виводити ÑпиÑок контактів Ñк';
-$labels['spellcheckbeforesend'] = 'Перевірити орфографію перед відправкою повідомленнÑ';
+$labels['spellcheckbeforesend'] = 'ПеревірÑти орфографію перед відправкою';
$labels['spellcheckoptions'] = 'ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ орфографії';
-$labels['spellcheckignoresyms'] = 'Ігнорувати Ñлова із Ñимволами';
-$labels['spellcheckignorenums'] = 'Ігнорувати Ñлова із чиÑлами';
-$labels['spellcheckignorecaps'] = 'Ігнорувати Ñлова із великими буквами';
+$labels['spellcheckignoresyms'] = 'Ігнорувати Ñлова з Ñимволами';
+$labels['spellcheckignorenums'] = 'Ігнорувати Ñлова з чиÑлами';
+$labels['spellcheckignorecaps'] = 'Ігнорувати Ñлова з великими літерами';
$labels['addtodict'] = 'Додати до Ñловника';
-$labels['mailtoprotohandler'] = 'ЗареєÑтрувати обробник Ð´Ð»Ñ Ð¿Ð¾Ñилань mailto';
-$labels['forwardmode'] = 'ПереÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ';
+$labels['mailtoprotohandler'] = 'ЗареєÑтрувати цей Ñервер Ñк обробник поÑилань mailto:';
+$labels['forwardmode'] = 'ПереÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð»Ð¸Ñтів';
$labels['inline'] = 'у текÑÑ‚Ñ–';
-$labels['asattachment'] = 'Ñк вкладеннÑ';
-$labels['folder'] = 'Папка';
-$labels['folders'] = 'Папки';
-$labels['foldername'] = 'Ðазва папки';
-$labels['subscribed'] = 'ПідпиÑані';
+$labels['asattachment'] = 'Ñк додаток';
+
+$labels['folder'] = 'Папка';
+$labels['folders'] = 'Папки';
+$labels['foldername'] = 'Ðазва папки';
+$labels['subscribed'] = 'ПідпиÑані';
$labels['messagecount'] = 'ЛиÑти';
-$labels['create'] = 'Створити';
-$labels['createfolder'] = 'Створити нову папку';
-$labels['managefolders'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ°Ð¼Ð¸';
+$labels['create'] = 'Створити';
+$labels['createfolder'] = 'Створити нову папку';
+$labels['managefolders'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ°Ð¼Ð¸';
$labels['specialfolders'] = 'ОÑобливі папки';
$labels['properties'] = 'ВлаÑтивоÑÑ‚Ñ–';
$labels['folderproperties'] = 'ВлаÑтивоÑÑ‚Ñ– папки';
@@ -436,23 +493,29 @@ $labels['info'] = 'ІнформаціÑ';
$labels['getfoldersize'] = 'Показати розмір папки';
$labels['changesubscription'] = 'Змінити підпиÑку';
$labels['foldertype'] = 'Тип каталогу';
-$labels['personalfolder'] = 'Приватний каталог';
-$labels['otherfolder'] = 'Каталог іншого кориÑтувача';
-$labels['sharedfolder'] = 'Публічний каталог';
+$labels['personalfolder'] = 'Приватний каталог';
+$labels['otherfolder'] = 'Каталог іншого кориÑтувача';
+$labels['sharedfolder'] = 'Публічний каталог';
+
$labels['sortby'] = 'ВідÑортувати за';
-$labels['sortasc'] = 'Сортувати за зроÑтаннÑм';
+$labels['sortasc'] = 'Сортувати за зроÑтаннÑм';
$labels['sortdesc'] = 'Сортувати за ÑпаданнÑм';
$labels['undo'] = 'Відмінити';
+
$labels['installedplugins'] = 'Ð’Ñтановлені плагіни';
$labels['plugin'] = 'ДоповненнÑ';
$labels['version'] = 'ВерÑÑ–Ñ';
$labels['source'] = 'Джерело';
$labels['license'] = 'ЛіцензіÑ';
$labels['support'] = 'Отримати підтримку';
-$labels['B'] = 'б';
-$labels['KB'] = 'Кб';
-$labels['MB'] = 'Мб';
-$labels['GB'] = 'Гб';
+
+// units
+$labels['B'] = 'Б';
+$labels['KB'] = 'кБ';
+$labels['MB'] = 'МБ';
+$labels['GB'] = 'ГБ';
+
+// character sets
$labels['unicode'] = 'Юнікод';
$labels['english'] = 'ÐнглійÑьке';
$labels['westerneuropean'] = 'ЗахідноєвропейÑьке';
@@ -471,4 +534,5 @@ $labels['vietnamese'] = 'Ð’\'єтнамÑьке';
$labels['japanese'] = 'ЯпонÑьке';
$labels['korean'] = 'КорейÑьке';
$labels['chinese'] = 'КитайÑьке';
+
?>
diff --git a/program/localization/uk_UA/messages.inc b/program/localization/uk_UA/messages.inc
index 620e1520b..0b52e4d6c 100644
--- a/program/localization/uk_UA/messages.inc
+++ b/program/localization/uk_UA/messages.inc
@@ -15,22 +15,25 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
-$messages['errortitle'] = 'Виникла помилка!';
-$messages['loginfailed'] = 'Ðевдала Ñпроба входу';
+
+$messages = array();
+$messages['errortitle'] = 'Виникла помилка!';
+$messages['loginfailed'] = 'Ðевдала Ñпроба входу';
$messages['cookiesdisabled'] = 'Ваш переглÑдач не приймає cookie';
$messages['sessionerror'] = 'Ваша ÑеÑÑ–Ñ Ð·Ð°Ñтаріла';
-$messages['storageerror'] = 'Ðевдале з`Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· IMAP Ñервером';
+$messages['storageerror'] = 'Ðевдале з\'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· IMAP Ñервером';
$messages['servererror'] = 'Помилка Ñервера!';
$messages['servererrormsg'] = 'Помилка Ñервера: $msg';
$messages['dberror'] = 'Помилка бази даних!';
$messages['requesttimedout'] = 'Тайм-аут запиту';
-$messages['errorreadonly'] = 'Ðеможливо виконати операцію. Папка доÑтупна тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.';
-$messages['errornoperm'] = 'Ðеможливо виконати операцію. ДоÑтуп заборонено';
-$messages['erroroverquota'] = 'Ðеможливо виконати операцію. Ðемає вільного міÑÑ†Ñ Ð½Ð° диÑку.';
+$messages['errorreadonly'] = 'Ðеможливо виконати операцію - папка доÑтупна тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ';
+$messages['errornoperm'] = 'Ðеможливо виконати операцію - доÑтуп заборонено';
+$messages['erroroverquota'] = 'Ðеможливо виконати операцію - немає вільного міÑÑ†Ñ Ð½Ð° диÑку';
+$messages['erroroverquotadelete'] = 'Ðемає вільного міÑÑ†Ñ Ð½Ð° диÑку - натиÑніть SHIFT+DEL Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта';
$messages['invalidrequest'] = 'Ðевірний запит! Дані не збережено.';
-$messages['invalidhost'] = 'Ðевірне ім\'Ñ Ñерверу.';
+$messages['invalidhost'] = 'Ðевірне ім\'Ñ Ñервера';
$messages['nomessagesfound'] = 'ЛиÑтів не знайдено';
-$messages['loggedout'] = 'Вашу ÑеÑÑ–ÑŽ завершено. Ð’Ñього найкращого!';
+$messages['loggedout'] = 'Вашу ÑеÑÑ–ÑŽ завершено. УÑього найкращого!';
$messages['mailboxempty'] = 'Поштова Ñкринька порожнÑ';
$messages['refreshing'] = 'ОновленнÑ...';
$messages['loading'] = 'ЗавантаженнÑ...';
@@ -41,37 +44,38 @@ $messages['checkingmail'] = 'Перевірка нових лиÑтів...';
$messages['sendingmessage'] = 'Відправка лиÑта...';
$messages['messagesent'] = 'ЛиÑÑ‚ уÑпішно відправлено';
$messages['savingmessage'] = 'Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¸Ñта...';
-$messages['messagesaved'] = 'Збережено в Чернетках';
+$messages['messagesaved'] = 'Збережено у Чернетках';
$messages['successfullysaved'] = 'Збережено';
$messages['addedsuccessfully'] = 'Контакт уÑпішно доданий до ÑпиÑку контактів';
$messages['contactexists'] = 'Контакт з такою електронною адреÑою вже Ñ–Ñнує';
-$messages['contactnameexists'] = 'Контакт з таким Ñамим іменем вже Ñ–Ñнує.';
-$messages['blockedimages'] = 'З метою безпеки Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· зовнішніх джерел заблоковано у цьому лиÑÑ‚Ñ–.';
-$messages['encryptedmessage'] = 'ЛиÑÑ‚ зашифровано Ñ– не може бути відображено.';
+$messages['contactnameexists'] = 'Контакт з таким ім\'Ñм вже Ñ–Ñнує';
+$messages['blockedimages'] = 'З метою безпеки у цьому лиÑÑ‚Ñ– заблоковано Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· зовнішніх джерел';
+$messages['encryptedmessage'] = 'ЛиÑÑ‚ зашифровано Ñ– не може бути відображено';
$messages['nocontactsfound'] = 'Контакти не знайдені';
$messages['contactnotfound'] = 'Запитаний контакт не знайдений';
-$messages['contactsearchonly'] = 'Введіть деÑкі критерії пошуку, щоб знайти контакти';
+$messages['contactsearchonly'] = 'Щоб знайти контакти введіть критерії пошуку';
$messages['sendingfailed'] = 'Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ лиÑта';
$messages['senttooquickly'] = 'Будь лаÑка, зачекайте $sec Ñекунд Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸ лиÑта';
-$messages['errorsavingsent'] = 'Помилка при збереженні відправленого повідомленнÑ.';
+$messages['errorsavingsent'] = 'Помилка при збереженні відправленого лиÑта';
+$messages['errorsaving'] = 'Помилка при збереженні';
$messages['errormoving'] = 'Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñтити лиÑти';
$messages['errorcopying'] = 'Ðе вдалоÑÑ Ð·ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ñ‚Ð¸ лиÑти';
$messages['errordeleting'] = 'Ðе вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ лиÑти';
$messages['errormarking'] = 'Ðе вдалоÑÑ Ð¿Ð¾Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ лиÑти';
-$messages['deletecontactconfirm'] = 'Ви дійÑно бажаєте видалити вибрані контакти?';
+$messages['deletecontactconfirm'] = 'Ви дійÑно бажаєте видалити обрані контакти?';
$messages['deletegroupconfirm'] = 'Ви дійÑно хочете видалити обрану групу?';
-$messages['deletemessagesconfirm'] = 'Ви дійÑно бажаєте видалити вибрані лиÑти?';
+$messages['deletemessagesconfirm'] = 'Ви дійÑно бажаєте видалити обрані лиÑти?';
$messages['deletefolderconfirm'] = 'Ви дійÑно бажаєте видалити цю папку?';
-$messages['purgefolderconfirm'] = 'Ви дійÑно бажаєте видалити вÑÑ– лиÑти у цій папці?';
+$messages['purgefolderconfirm'] = 'Ви дійÑно бажаєте видалити уÑÑ– лиÑти у цій папці?';
$messages['contactdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів)...';
$messages['groupdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿Ð¸...';
$messages['folderdeleting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...';
$messages['foldermoving'] = 'ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð°Ð¿ÐºÐ¸...';
$messages['foldersubscribing'] = 'ПідпиÑати папку...';
$messages['folderunsubscribing'] = 'ВідпиÑати папку...';
-$messages['formincomplete'] = 'Заповнено не вÑÑ– полÑ';
+$messages['formincomplete'] = 'Заповнено не уÑÑ– полÑ';
$messages['noemailwarning'] = 'Будь лаÑка, введіть коректну адреÑу електронної пошти';
-$messages['nonamewarning'] = 'Будь лаÑка, введіть ім`Ñ';
+$messages['nonamewarning'] = 'Будь лаÑка, введіть ім\'Ñ';
$messages['nopagesizewarning'] = 'Будь лаÑка, введіть розмір Ñторінки';
$messages['nosenderwarning'] = 'Будь лаÑка, введіть адреÑу електронної пошти відправника';
$messages['norecipientwarning'] = 'Будь лаÑка, вкажіть принаймні одного отримувача';
@@ -79,10 +83,10 @@ $messages['nosubjectwarning'] = 'Ðе вказано тему лиÑта. БаÐ
$messages['nobodywarning'] = 'Відправити лиÑта без текÑту?';
$messages['notsentwarning'] = 'ЛиÑÑ‚ не було відправлено. Ви бажаєте відхилити відправку?';
$messages['noldapserver'] = 'Будь лаÑка, виберіть LDAP Ñервер Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ';
-$messages['nosearchname'] = 'Будь лаÑка, введіть ім`Ñ Ñ‡Ð¸ електронну адреÑу';
-$messages['notuploadedwarning'] = 'ДеÑкі Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ð½Ðµ було завантажено. Будь лаÑка, почекайте або відмініть завантаженнÑ.';
-$messages['searchsuccessful'] = 'Зайдено $nr лиÑтів';
-$messages['contactsearchsuccessful'] = '$nr контактів знайдено.';
+$messages['nosearchname'] = 'Будь лаÑка, введіть ім\'Ñ Ñ‡Ð¸ електронну адреÑу';
+$messages['notuploadedwarning'] = 'ДеÑкі додатки не було завантажено. Будь лаÑка, почекайте або відмініть завантаженнÑ.';
+$messages['searchsuccessful'] = 'Знайдено $nr лиÑтів';
+$messages['contactsearchsuccessful'] = '$nr контактів знайдено';
$messages['searchnomatch'] = 'ЛиÑтів не знайдено';
$messages['searching'] = 'Пошук...';
$messages['checking'] = 'Перевірка...';
@@ -94,38 +98,38 @@ $messages['folderpurged'] = 'Папка видалена';
$messages['folderexpunged'] = 'Папка очищена';
$messages['deletedsuccessfully'] = 'Видалено уÑпішно';
$messages['converting'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ...';
-$messages['messageopenerror'] = 'Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· Ñервера';
+$messages['messageopenerror'] = 'Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ лиÑÑ‚ з Ñервера';
$messages['fileuploaderror'] = 'Ðе вдалоÑÑ Ð²ÐºÐ»Ð°Ñти файл';
-$messages['filesizeerror'] = 'Розмір вибраного файлу перевищує макÑимально дозволений ($size)';
-$messages['copyerror'] = 'Ðе вдалоÑÑ Ñкопіювати жодного контакту.';
+$messages['filesizeerror'] = 'Розмір обраного файлу перевищує макÑимально дозволений ($size)';
+$messages['copysuccess'] = 'Скопійовано $nr адреÑ';
+$messages['copyerror'] = 'Ðе вдалоÑÑ Ñкопіювати жодну адреÑу';
$messages['sourceisreadonly'] = 'Дане джерело Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ñтупне лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ';
$messages['errorsavingcontact'] = 'Ðеможливо зберегти адреÑу контакту';
$messages['movingmessage'] = 'ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð»Ð¸Ñта...';
$messages['copyingmessage'] = 'ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð»Ð¸Ñта...';
$messages['copyingcontact'] = 'ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів)...';
-$messages['deletingmessage'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)';
-$messages['markingmessage'] = 'ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸Ñта (ів)';
+$messages['deletingmessage'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¸Ñта(ів)';
+$messages['markingmessage'] = 'ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¸Ñта(ів)';
$messages['addingmember'] = 'Ð”Ð¾Ð´Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів) до групи...';
$messages['removingmember'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ñƒ(ів) з групи...';
$messages['receiptsent'] = 'ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾';
$messages['errorsendingreceipt'] = 'Ðе вдалоÑÑ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð¸Ñ‚Ð¸ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ прочитаннÑ';
$messages['deleteidentityconfirm'] = 'Ви дійÑно бажаєте видалити цей профіль?';
-$messages['nodeletelastidentity'] = 'Ви не можете видалити цей профіль, він у Ð’Ð°Ñ Ð¾Ñтанній.';
-$messages['forbiddencharacter'] = 'Ім\'Ñ Ð¿Ð°Ð¿ÐºÐ¸ міÑтить заборонені Ñимволи';
+$messages['nodeletelastidentity'] = 'Ви не можете видалити оÑтанній профіль';
+$messages['forbiddencharacter'] = 'Ім\'Ñ Ð¿Ð°Ð¿ÐºÐ¸ міÑтить неприпуÑтимі Ñимволи';
$messages['selectimportfile'] = 'Виберіть файл Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ';
$messages['addresswriterror'] = 'Обрана адреÑна книга недоÑтупна Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу';
$messages['contactaddedtogroup'] = 'Контакти уÑпішно додано до цієї групи';
-$messages['contactremovedfromgroup'] = 'УКонтакти уÑпішно видалено з цієї групи';
-$messages['nogroupassignmentschanged'] = 'Розподіл за групами не змінено.';
-$messages['importwait'] = 'ІмпортуваннÑ, будь лаÑка, зачекайте...';
+$messages['contactremovedfromgroup'] = 'Контакти уÑпішно видалено з цієї групи';
+$messages['nogroupassignmentschanged'] = 'Розподіл за групами не змінено';
+$messages['importwait'] = 'Зачекайте, будь лаÑка, відбуваєтьÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ...';
$messages['importformaterror'] = 'Помилка імпорту! Завантажений файл має невідомий формат даних.';
$messages['importconfirm'] = '<b>УÑпішно імпортовано $inserted контактів, пропущено $skipped Ñ–Ñнуючих</b>:<p><em>$names</em></p>';
$messages['importconfirmskipped'] = '<b>Пропущені $skipped наÑвні запиÑи</b>';
-$messages['importmessageerror'] = 'Імпорт не вдавÑÑ! Завантажений файл не Ñ” припуÑтимим Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ файлом поштової Ñкриньки';
$messages['opnotpermitted'] = 'Ð”Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð°!';
-$messages['nofromaddress'] = 'Ð’ обраному профілі не виÑтачає адреÑи електронної пошти';
-$messages['editorwarning'] = 'ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð² режим звичайного текÑту Ñпричинить втрату вÑього форматуваннÑ. Продовжити?';
-$messages['httpreceivedencrypterror'] = 'Помилка конфігурації. Ðегайно звернітьÑÑ Ð´Ð¾ адмініÑтратора. <b>Ваше Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ буде відправлено.</b>';
+$messages['nofromaddress'] = 'У обраному профілі не виÑтачає адреÑи електронної пошти';
+$messages['editorwarning'] = 'ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñƒ режим звичайного текÑту Ñпричинить втрату вÑього форматуваннÑ. Продовжити?';
+$messages['httpreceivedencrypterror'] = 'Помилка конфігурації. Ðегайно звернітьÑÑ Ð´Ð¾ адмініÑтратора. <b>Ваш лиÑÑ‚ не буде відправлено.</b>';
$messages['smtpconnerror'] = 'Помилка SMTP-Ñервера ($code): Ðе вдалоÑÑ Ð·\'єднатиÑÑ Ð· Ñервером';
$messages['smtpautherror'] = 'Помилка SMTP-Ñервера ($code): Ðевдала Ñпроба автентифікації';
$messages['smtpfromerror'] = 'Помилка SMTP-Ñервера ($code): Ðе вдалоÑÑ Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ відправника "$from" ($msg)';
@@ -133,33 +137,35 @@ $messages['smtptoerror'] = 'Помилка SMTP-Ñервера ($code): Ðе вÐ
$messages['smtprecipientserror'] = 'Помилка SMTP: Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ ÑпиÑок отримувачів';
$messages['smtperror'] = 'Помилка SMTP: $msg';
$messages['emailformaterror'] = 'Ðевірна електронна адреÑа: $email';
-$messages['toomanyrecipients'] = 'Занадто багато отримувачів. Зменшіть Ñ—Ñ… чиÑло до $max.';
-$messages['maxgroupmembersreached'] = 'ЧиÑло Ð°Ð´Ñ€ÐµÑ Ñƒ групі перевищило макÑимум у $max.';
+$messages['toomanyrecipients'] = 'Занадто багато отримувачів. Зменшіть Ñ—Ñ… чиÑло до $max';
+$messages['maxgroupmembersreached'] = 'ЧиÑло Ð°Ð´Ñ€ÐµÑ Ñƒ групі перевищило макÑимум у $max';
+$messages['internalerror'] = 'Виникла Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз.';
$messages['contactdelerror'] = 'Ðеможливо видалити контакт(и)';
$messages['contactdeleted'] = 'Контакт(и) видалено уÑпішно';
-$messages['contactrestoreerror'] = 'Ðеможливо відновити видалений(Ñ–) контакт(и).';
-$messages['contactrestored'] = 'Контакт(и) вдало відновлено.';
+$messages['contactrestoreerror'] = 'Ðеможливо відновити видалений(Ñ–) контакт(и)';
+$messages['contactrestored'] = 'Контакт(и) уÑпішно відновлено';
$messages['groupdeleted'] = 'Група видалена уÑпішно';
$messages['grouprenamed'] = 'Група перейменована уÑпішно';
$messages['groupcreated'] = 'Група Ñтворена уÑпішно';
-$messages['savedsearchdeleted'] = 'Збережений пошук вдало видалено.';
-$messages['savedsearchdeleteerror'] = 'Ðеможливо видалити збережений пошук.';
-$messages['savedsearchcreated'] = 'Збережений пошук вдало Ñтворено.';
-$messages['savedsearchcreateerror'] = 'Ðе вдалоÑÑŒ Ñтворити збережений пошук.';
+$messages['savedsearchdeleted'] = 'Збережений пошуковий запит уÑпішно видалено';
+$messages['savedsearchdeleteerror'] = 'Ðеможливо видалити збережений пошуковий запит';
+$messages['savedsearchcreated'] = 'Пошуковий запит уÑпішно збережено';
+$messages['savedsearchcreateerror'] = 'Ðе вдалоÑÑŒ зберегти пошуковий запит';
$messages['messagedeleted'] = 'ЛиÑÑ‚(и) видалено уÑпішно';
$messages['messagemoved'] = 'ЛиÑÑ‚(и) переміщено уÑпішно';
$messages['messagecopied'] = 'ЛиÑÑ‚(и) Ñкопійовано уÑпішно';
-$messages['messagemarked'] = 'ЛиÑÑ‚(и) помічено уÑпішно';
-$messages['autocompletechars'] = 'Введіть щонайменьше $min Ñимволів Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ';
+$messages['messagemarked'] = 'ЛиÑÑ‚(и) позначено уÑпішно';
+$messages['autocompletechars'] = 'Введіть щонайменше $min Ñимволів Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ';
$messages['autocompletemore'] = 'Знайдено багато відповідних запиÑів. Будь лаÑка введіть більше Ñимволів.';
-$messages['namecannotbeempty'] = 'Ð†Ð¼â€™Ñ Ð½Ðµ може бути пуÑтим';
-$messages['nametoolong'] = 'Занадто довге ім’Ñ';
+$messages['namecannotbeempty'] = 'Ім\'Ñ Ð½Ðµ може бути пуÑтим';
+$messages['nametoolong'] = 'Занадто довге ім\'Ñ';
$messages['folderupdated'] = 'Папка відновлена';
$messages['foldercreated'] = 'Папка Ñтворена';
$messages['invalidimageformat'] = 'Ðевірний формат зображеннÑ';
-$messages['mispellingsfound'] = 'Знайдено орфографічні помилки у повідомленні.';
-$messages['parentnotwritable'] = 'Ðеможливо Ñтворити/переміÑтити папку до обраної батьківÑької папки. Ðема прав доÑтупу.';
-$messages['messagetoobig'] = 'ЧаÑтина Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð½Ð°Ð´Ñ‚Ð¾ велика Ð´Ð»Ñ Ð¾Ð¿Ñ€Ð°Ñ†ÑŽÐ²Ð°Ð½Ð½Ñ.';
-$messages['attachmentvalidationerror'] = 'УВÐГÐ! Це Ð²ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ Ñ” підозрілим, тому що його тип не збігаєтьÑÑ Ð· типом, оголошеним у повідомленні. Якщо ви не довірÑєте відправнику, ви не повинні відкривати його в браузері, оÑкільки його вміÑÑ‚ може бути шкідливим.<br/><br/><em>Очікуване: $expected; знайдене: $detected </em>';
-$messages['noscriptwarning'] = 'Увага: Даний клієнт електронної пошти потрібує Javascript! Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб викориÑтовувати його необхідно включити підтримку Javascript в налаштуваннÑÑ… вашого браузера.';
+$messages['mispellingsfound'] = 'У лиÑÑ‚Ñ– знайдено орфографічні помилки';
+$messages['parentnotwritable'] = 'Ðеможливо Ñтворити/переміÑтити папку до обраної батьківÑької папки - немає прав доÑтупу';
+$messages['messagetoobig'] = 'ЧаÑтина лиÑта занадто велика Ð´Ð»Ñ Ð¾Ð¿Ñ€Ð°Ñ†ÑŽÐ²Ð°Ð½Ð½Ñ';
+$messages['attachmentvalidationerror'] = 'УВÐГÐ! Цей додаток Ñ” підозрілим бо його тип (визначений Ñк <em>$detected</em>) не збігаєтьÑÑ Ð· оголошеним у лиÑÑ‚Ñ– типом (<em>$expected</em>). Ðе відкривайте цей додаток Ñкщо Ñ” Ñумніви - його вміÑÑ‚ може бути шкідливим!<br/><br/>';
+$messages['noscriptwarning'] = 'Увага: Цей клієнт електронної пошти потрібує JavaScript. Ð”Ð»Ñ Ð¹Ð¾Ð³Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð¾ включити підтримку JavaScript у налаштуваннÑÑ… переглÑдача.';
+
?>
diff --git a/program/localization/vi_VN/labels.inc b/program/localization/vi_VN/labels.inc
index 6bd6d4402..f1cf95149 100644
--- a/program/localization/vi_VN/labels.inc
+++ b/program/localization/vi_VN/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = 'Chào bạn đã đến với $product';
$labels['username'] = 'Tên đăng nhập';
$labels['password'] = 'Mật khẩu';
$labels['server'] = 'Máy chủ';
$labels['login'] = 'Äăng nhập';
+
+// taskbar
$labels['logout'] = 'Thoát';
$labels['mail'] = 'ThÆ°';
$labels['settings'] = 'Tùy chá»n';
$labels['addressbook'] = 'Sổ địa chỉ';
+
+// mailbox names
$labels['inbox'] = 'Há»™p thÆ°';
$labels['drafts'] = 'Thư nháp';
$labels['sent'] = 'Äã gá»­i';
$labels['trash'] = 'Sá»t rác';
$labels['junk'] = 'Thư rác';
+
+// message listing
$labels['subject'] = 'Tiêu Ä‘á»';
$labels['from'] = 'NgÆ°á»i gá»­i';
$labels['sender'] = 'NgÆ°á»i gá»­i';
@@ -43,20 +53,27 @@ $labels['priority'] = 'Äá»™ Æ°u tiên';
$labels['organization'] = 'Tổ chức';
$labels['readstatus'] = 'Trạng thái của thư';
$labels['listoptions'] = 'Danh sách lá»±a chá»n';
+
$labels['mailboxlist'] = 'Các thư mục';
$labels['messagesfromto'] = 'Thư từ $from đến $to trong tổng số $count';
$labels['threadsfromto'] = 'Dòng thư từ $from đến $to của tổng số $count';
$labels['messagenrof'] = 'Thư thứ $nr trong tổng số $count';
$labels['fromtoshort'] = '$from - $to của $count';
+
$labels['copy'] = 'Sao chép';
$labels['move'] = 'Di Chuyển';
$labels['moveto'] = 'Di chuyển tới...';
$labels['download'] = 'Tải vá»';
+$labels['open'] = 'Open';
$labels['showattachment'] = 'Hiển thị';
$labels['showanyway'] = 'Tiếp tục hiển thị';
+
$labels['filename'] = 'Tên tập tin';
$labels['filesize'] = 'Kích cỡ tập tin';
+
$labels['addtoaddressbook'] = 'Thêm vào danh bạ';
+
+// weekdays short
$labels['sun'] = 'Chủ Nhật';
$labels['mon'] = 'Thứ Hai';
$labels['tue'] = 'Thứ Ba';
@@ -64,6 +81,8 @@ $labels['wed'] = 'Thứ Tư';
$labels['thu'] = 'Thứ Năm';
$labels['fri'] = 'Thứ Sáu';
$labels['sat'] = 'Thứ Bảy';
+
+// weekdays long
$labels['sunday'] = 'Chủ Nhật';
$labels['monday'] = 'Thứ Hai';
$labels['tuesday'] = 'Thứ Ba';
@@ -71,6 +90,8 @@ $labels['wednesday'] = 'Thứ Tư';
$labels['thursday'] = 'Thứ Năm';
$labels['friday'] = 'Thứ Sáu';
$labels['saturday'] = 'Thứ Bảy';
+
+// months short
$labels['jan'] = 'Tháng Một';
$labels['feb'] = 'Tháng Hai';
$labels['mar'] = 'Tháng Ba';
@@ -83,6 +104,8 @@ $labels['sep'] = 'Tháng Chín';
$labels['oct'] = 'Tháng MÆ°á»i';
$labels['nov'] = 'Tháng MÆ°á»i Má»™t';
$labels['dec'] = 'Tháng MÆ°á»i Hai';
+
+// months long
$labels['longjan'] = 'Tháng Một';
$labels['longfeb'] = 'Tháng Hai';
$labels['longmar'] = 'Tháng Ba';
@@ -95,7 +118,10 @@ $labels['longsep'] = 'Tháng Chín';
$labels['longoct'] = 'Tháng MÆ°á»i';
$labels['longnov'] = 'Tháng MÆ°á»i Má»™t';
$labels['longdec'] = 'Tháng MÆ°á»i Hai';
+
$labels['today'] = 'Hôm nay';
+
+// toolbar buttons
$labels['refresh'] = 'Nạp lại';
$labels['checkmail'] = 'Kiểm tra thư mới';
$labels['compose'] = 'Soạn thư';
@@ -128,6 +154,7 @@ $labels['moreactions'] = 'Thêm hành động...';
$labels['more'] = 'Thêm';
$labels['back'] = 'Quay lại';
$labels['options'] = 'Tuỳ chá»n';
+
$labels['select'] = 'Lá»±a chá»n';
$labels['all'] = 'Tất cả';
$labels['none'] = 'Không có';
@@ -135,7 +162,7 @@ $labels['currpage'] = 'Trang hiện tại';
$labels['unread'] = 'ChÆ°a Ä‘á»c';
$labels['flagged'] = 'Äã đánh dấu';
$labels['unanswered'] = 'ChÆ°a trả lá»i';
-$labels['withattachment'] = 'Có tệp tin đính kèm';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = 'Äã xóa';
$labels['undeleted'] = 'Chưa xóa được';
$labels['invert'] = 'Äảo ngược';
@@ -146,6 +173,7 @@ $labels['expand-all'] = 'Mở rộng tất cả';
$labels['expand-unread'] = 'Mở rá»™ng thÆ° chÆ°a Ä‘á»c';
$labels['collapse-all'] = 'Äóng hết';
$labels['threaded'] = 'Äã nhóm theo chủ Ä‘á» thÆ°';
+
$labels['autoexpand_threads'] = 'Mở rộng các chủ đỠthư';
$labels['do_expand'] = 'Tất cả các chủ đỠthư';
$labels['expand_only_unread'] = 'Chỉ vá»›i những thÆ° chÆ°a Ä‘á»c';
@@ -161,23 +189,27 @@ $labels['listcolumns'] = 'Các cột danh sách';
$labels['listsorting'] = 'Cột sắp xếp';
$labels['listorder'] = 'Thứ tự sắp xếp';
$labels['listmode'] = 'Xem dạng danh sách';
+
$labels['folderactions'] = 'Thao tác với thư mục';
$labels['compact'] = 'Nén';
$labels['empty'] = 'Trống';
+
$labels['quota'] = 'Lượng đĩa sử dụng';
$labels['unknown'] = 'Không rõ';
$labels['unlimited'] = 'không giới hạn';
+
$labels['quicksearch'] = 'Tìm nhanh';
$labels['resetsearch'] = 'Thiết lập lại tìm kiếm';
$labels['searchmod'] = 'Tìm kiếm với từ khóa và ký tự đặc biệt [() : " - ]';
$labels['msgtext'] = 'Toàn bộ thư';
$labels['body'] = 'Ná»™i dung thÆ°';
-$labels['type'] = 'Äịnh dạng';
-$labels['namex'] = 'HỠtên';
+
$labels['openinextwin'] = 'Mở trong khung cửa mới';
$labels['emlsave'] = 'Tải vỠtheo định dạng .eml';
-$labels['changeformattext'] = 'Hiển thị ở chế độ text';
-$labels['changeformathtml'] = 'Hiển thị ở chế độ HTML';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = 'Sá»­a nhÆ° má»™t email má»›i';
$labels['send'] = 'Gá»­i';
$labels['sendmessage'] = 'Gá»­i thÆ°';
@@ -189,22 +221,26 @@ $labels['returnreceipt'] = 'Báo nhận';
$labels['dsn'] = 'Thông báo trạng thái gửi thư';
$labels['mailreplyintro'] = 'Vào ngày $date, $sender viết:';
$labels['originalmessage'] = 'Thư gốc';
+
$labels['editidents'] = 'Chỉnh sửa nhận diện';
$labels['spellcheck'] = 'Äánh vần';
$labels['checkspelling'] = 'Kiểm tra chính tả';
$labels['resumeediting'] = 'Tiếp tục soạn thảo';
$labels['revertto'] = 'Trở lại với';
+
$labels['attach'] = 'Äính kèm';
$labels['attachments'] = 'Các đính kèm';
$labels['upload'] = 'Tải lên';
$labels['uploadprogress'] = '$percent ($current từ $total)';
$labels['close'] = 'Äóng';
$labels['messageoptions'] = 'Tùy chá»n cho thÆ°...';
+
$labels['low'] = 'Thấp';
$labels['lowest'] = 'Thấp nhất';
$labels['normal'] = 'Bình thÆ°á»ng';
$labels['high'] = 'Cao';
$labels['highest'] = 'Cao nhất';
+
$labels['nosubject'] = '(Không có chủ Ä‘á»)';
$labels['showimages'] = 'Hiển thị ảnh';
$labels['alwaysshow'] = 'Luôn luôn hiển thị ảnh từ $sender';
@@ -212,19 +248,25 @@ $labels['isdraft'] = 'Äây là thÆ° nháp';
$labels['andnmore'] = 'Thêm $nr';
$labels['togglemoreheaders'] = 'Hiển thị chi tiết thông tin thư';
$labels['togglefullheaders'] = 'Mở/đóng chi tiết thông tin thư';
+
$labels['htmltoggle'] = 'Mã HTML';
$labels['plaintoggle'] = 'Văn bản thô';
$labels['savesentmessagein'] = 'Lưu thư đã gửi trong';
$labels['dontsave'] = 'Không lưu';
$labels['maxuploadsize'] = 'Dung lượng tập tin tối đa cho phép là $size';
+
$labels['addcc'] = 'Thêm Cc';
$labels['addbcc'] = 'Thêm Bcc';
$labels['addreplyto'] = 'Thêm trả lá»i tá»›i';
$labels['addfollowupto'] = 'Thêm sự theo dõi tới';
+
+// mdn
$labels['mdnrequest'] = 'NgÆ°á»i gá»­i thÆ° này muốn nhận được thông báo khi bạn Ä‘á»c thÆ°. Bạn có muốn cho ngÆ°á»i gá»­i biết thông báo này không?';
$labels['receiptread'] = 'Biên nhận (đã Ä‘á»c)';
$labels['yourmessage'] = 'Äây là sá»± trả lại xác nhận cho thÆ° của bạn';
$labels['receiptnote'] = 'LÆ°u ý: Biên nhận này chỉ báo rằng thÆ° đã được hiển thị trên máy tính của ngÆ°á»i nhận. Không bảo đảm rằng ngÆ°á»i nhận đó đã có Ä‘á»c hoặc hiểu ná»™i dung thÆ°.';
+
+// address boook
$labels['name'] = 'Tên hiển thị';
$labels['firstname'] = 'Tên Gá»i';
$labels['surname'] = 'Tên Há»';
@@ -259,6 +301,7 @@ $labels['search'] = 'Tìm kiếm';
$labels['advsearch'] = 'Tìm kiếm chi tiết';
$labels['advanced'] = 'Nâng cao';
$labels['other'] = 'Loại khác';
+
$labels['typehome'] = 'Thư mục chính';
$labels['typework'] = 'CÆ¡ quan';
$labels['typeother'] = 'Loại khác';
@@ -273,12 +316,14 @@ $labels['typeassistant'] = 'Trợ lý';
$labels['typehomepage'] = 'Trang nhà';
$labels['typeblog'] = 'Trang nhật ký';
$labels['typeprofile'] = 'Lý lịch';
+
$labels['addfield'] = 'Thêm lĩnh vực...';
$labels['addcontact'] = 'Thêm một liên hệ mới';
$labels['editcontact'] = 'Sửa liên lạc';
$labels['contacts'] = 'Danh bạ';
$labels['contactproperties'] = 'Tính chất của liên hệ';
$labels['personalinfo'] = 'Thông tin cá nhân';
+
$labels['edit'] = 'Chỉnh sửa';
$labels['cancel'] = 'Huá»·';
$labels['save'] = 'LÆ°u';
@@ -287,6 +332,7 @@ $labels['rename'] = 'Äổi tên';
$labels['addphoto'] = 'Thêm';
$labels['replacephoto'] = 'Thay thế';
$labels['uploadphoto'] = 'Tải ảnh lên';
+
$labels['newcontact'] = 'Tạo danh bạ mới';
$labels['deletecontact'] = 'Xoá các liên lạc đã chá»n';
$labels['composeto'] = 'Soạn thư cho';
@@ -300,32 +346,41 @@ $labels['newcontactgroup'] = 'Tạo nhóm liên lạc mới';
$labels['grouprename'] = 'Äổi tên nhóm';
$labels['groupdelete'] = 'Xóa nhóm';
$labels['groupremoveselected'] = 'Xóa bá» các liên lạc được chá»n từ nhóm';
+
$labels['previouspage'] = 'Hiển thị trang trước';
$labels['firstpage'] = 'Hiển thị trang đầu tiên';
$labels['nextpage'] = 'Hiển thị trang kế tiếp';
$labels['lastpage'] = 'Hiển thị trang cuối';
+
$labels['group'] = 'Nhóm';
$labels['groups'] = 'Các nhóm';
-$labels['listgroup'] = 'Danh sách các thành viên nhóm';
$labels['personaladrbook'] = 'Các địa chỉ cá nhân';
+
$labels['searchsave'] = 'Lưu tìm kiếm';
$labels['searchdelete'] = 'Xóa tìm kiếm';
+
$labels['import'] = 'Nhập';
$labels['importcontacts'] = 'Nhập liên lạc';
$labels['importfromfile'] = 'Nhập từ tập tin:';
+$labels['importtarget'] = 'Thêm liên lạc mới vào sổ địa chỉ';
$labels['importreplace'] = 'Thay thế toàn bộ sổ địa chỉ';
$labels['importdesc'] = 'Bạn có thể cập nhật các liên hệ từ một sổ địa chỉ có sẵn.<br />Hiện tại, chúng tôi hỗ trợ nhập địa chỉ từ dạng dữ liệu <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> hoặc CSV (dạng thức dữ liệu ngăn cách bằng dấu phẩy)';
$labels['done'] = 'Hoàn tất';
+
+// settings
$labels['settingsfor'] = 'Thiết lập cho';
$labels['about'] = 'Lá»i ngõ';
$labels['preferences'] = 'Sở thích';
$labels['userpreferences'] = 'Sở thích ngÆ°á»i dùng';
$labels['editpreferences'] = 'Chỉnh sửa sở thích';
+
$labels['identities'] = 'Các nhận diện';
$labels['manageidentities'] = 'Quản lý nhận diện cho trương mục này';
$labels['newidentity'] = 'Nhận diện mới';
+
$labels['newitem'] = 'Mục mới';
$labels['edititem'] = 'Sửa đổi mục';
+
$labels['preferhtml'] = 'Hiển thị HTML';
$labels['defaultcharset'] = 'Bộ ký tự mặc định';
$labels['htmlmessage'] = 'Thư theo định dạng HTML';
@@ -347,6 +402,7 @@ $labels['htmleditor'] = 'Soạn thư dạng HTML';
$labels['htmlonreply'] = 'Chỉ trả lá»i lại bằng thÆ° HTML';
$labels['htmlonreplyandforward'] = 'Khi chuyển tiếp hoặc trả lá»i thÆ° theo định dạng HTML';
$labels['htmlsignature'] = 'Chữ ký HTML';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = 'Hiển thị ô Xem thử';
$labels['skin'] = 'BỠmặt giao diện';
$labels['logoutclear'] = 'Xóa sạch rác khi thoát';
@@ -419,6 +475,7 @@ $labels['mailtoprotohandler'] = 'Xác định cách xử lý giao thức mailto:
$labels['forwardmode'] = 'Chuyển tiếp thư';
$labels['inline'] = 'nội tuyến';
$labels['asattachment'] = 'dạng gửi kèm';
+
$labels['folder'] = 'Thư mục';
$labels['folders'] = 'Các thư mục';
$labels['foldername'] = 'Tên thư mục';
@@ -439,20 +496,26 @@ $labels['foldertype'] = 'Kiểu thư mục';
$labels['personalfolder'] = 'Thư mục cá nhân';
$labels['otherfolder'] = 'ThÆ° mục khác của NgÆ°á»i dùng';
$labels['sharedfolder'] = 'Thư mục công khai';
+
$labels['sortby'] = 'Soạn theo';
$labels['sortasc'] = 'Soạn tăng dần';
$labels['sortdesc'] = 'Soạn giảm dần';
$labels['undo'] = 'Hoàn lại';
+
$labels['installedplugins'] = 'Các chương trình phụ trợ đã được cài đặt';
$labels['plugin'] = 'Phần bổ sung';
$labels['version'] = 'Phiên bản';
$labels['source'] = 'Nguồn';
$labels['license'] = 'Bản quyá»n';
$labels['support'] = 'Yêu cầu hỗ trợ';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = 'Tiếng Anh';
$labels['westerneuropean'] = 'Tiếng Tây Âu';
@@ -471,4 +534,5 @@ $labels['vietnamese'] = 'Tiếng Việt';
$labels['japanese'] = 'Tiếng Nhật';
$labels['korean'] = 'Tiếng Hàn';
$labels['chinese'] = 'Tiếng Hoa';
+
?>
diff --git a/program/localization/vi_VN/messages.inc b/program/localization/vi_VN/messages.inc
index b2d7c71ff..50bf71846 100644
--- a/program/localization/vi_VN/messages.inc
+++ b/program/localization/vi_VN/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'Xuất hiện 1 lỗi';
$messages['loginfailed'] = 'Không đăng nhập được';
$messages['cookiesdisabled'] = 'Trình duyệt không hỗ trợ cookies';
@@ -26,6 +28,8 @@ $messages['dberror'] = 'Lỗi cơ sở dữ liệu';
$messages['requesttimedout'] = 'Yêu cầu hết hạn';
$messages['errorreadonly'] = 'Không thể thá»±c hiện thao tác. ThÆ° mục chỉ cho phép Ä‘á»c.';
$messages['errornoperm'] = 'Bạn không đủ quyá»n hạn để thá»±c hiện thao tác này.';
+$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'] = 'Yêu cầu không hợp lệ! Không có dữ liệu nào được lưu.';
$messages['invalidhost'] = 'Sai thông tin máy chủ';
$messages['nomessagesfound'] = 'Không thấy có thư nào trong hộp thư này.';
@@ -52,6 +56,8 @@ $messages['contactnotfound'] = 'Không tìm thấy liên lạc được yêu cáº
$messages['contactsearchonly'] = 'Gõ một vài từ tìm kiếm để tìm liên hệ';
$messages['sendingfailed'] = 'Không gửi được thư';
$messages['senttooquickly'] = 'Xin đợi vài giây trước khi gửi thư này';
+$messages['errorsavingsent'] = 'Xuất hiện một lỗi trong khi lưu thư đã gửi';
+$messages['errorsaving'] = 'Lỗi trong quá trình lưu.';
$messages['errormoving'] = 'Không thể chuyển được thư';
$messages['errorcopying'] = 'Không thể sao chép thư';
$messages['errordeleting'] = 'Không thể xóa được thư';
@@ -95,6 +101,8 @@ $messages['converting'] = 'Loại bỠđịnh dạng...';
$messages['messageopenerror'] = 'Không thể tải thư từ máy chủ';
$messages['fileuploaderror'] = 'Tải tập tin lên thất bại';
$messages['filesizeerror'] = 'Tập tin được tải lên vượt quá dung lượng tối đa....';
+$messages['copysuccess'] = 'Sao chép thành công $nr địa chỉ.';
+$messages['copyerror'] = 'Không thể sao chép đỉa chỉ nào.';
$messages['sourceisreadonly'] = 'Nguồn địa chỉ này chỉ cho Ä‘á»c';
$messages['errorsavingcontact'] = 'Không thể lưu địa chỉ liên lạc';
$messages['movingmessage'] = 'Äang chuyển thÆ°...';
@@ -131,6 +139,7 @@ $messages['smtperror'] = 'Lá»—i SMTP: $msg';
$messages['emailformaterror'] = 'Äịa chỉ email không hợp lệ';
$messages['toomanyrecipients'] = 'Quá nhiá»u ngÆ°á»i nhận. Hãy giảm số lượng ngÆ°á»i nhận xuống tối Ä‘a là $max.';
$messages['maxgroupmembersreached'] = 'Số lượng thành viên trong nhóm vượt quá mức tối đa là $max.';
+$messages['internalerror'] = 'Xuất hiện một lỗi nội bộ. Xin hãy thử lại';
$messages['contactdelerror'] = 'Không thể xóa liên lạc';
$messages['contactdeleted'] = 'Liên lạc được xóa thành công';
$messages['contactrestoreerror'] = 'Không thể khôi phục liên lạc đã xóa';
@@ -158,4 +167,5 @@ $messages['parentnotwritable'] = 'Không thể tạo/chuyển folder vào folder
$messages['messagetoobig'] = 'Một phần thư quá lớn để xử lý nó.';
$messages['attachmentvalidationerror'] = 'Cảnh báo: Tệp tin đính kèm có dấu hiệu nguy hiểm, vì kiểu tệp tin không trùng vá»›i kiểu được khai báo sá»­ dụng trong thÆ°. Nếu bạn không biết ngÆ°á»i gá»­i, bạn không nên mở thÆ° vì nó có thể có các dữ liệu gây hại. <br/><br/><em>Dá»± kiến: $expected; được tìm thấy: $detected</em>';
$messages['noscriptwarning'] = 'Cảnh báo: Dịch vụ webmail này yêu cầu sá»­ dụng Javascript. Äể sá»­ dụng, bạn cần kích hoạt há»— trợ Javascript trong cấu hình trình duyệt Internet Ä‘ang sá»­ dụng.';
+
?>
diff --git a/program/localization/zh_CN/labels.inc b/program/localization/zh_CN/labels.inc
index 1d9c04733..23a42b96d 100644
--- a/program/localization/zh_CN/labels.inc
+++ b/program/localization/zh_CN/labels.inc
@@ -15,20 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '欢迎使用 $product';
$labels['username'] = '用户å';
$labels['password'] = '密ç ';
$labels['server'] = 'æœåŠ¡å™¨';
$labels['login'] = '登录';
+
+// taskbar
$labels['logout'] = '注销';
$labels['mail'] = '邮件';
$labels['settings'] = '设置';
$labels['addressbook'] = '通讯录';
+
+// mailbox names
$labels['inbox'] = '收件箱';
$labels['drafts'] = 'è‰ç¨¿ç®±';
$labels['sent'] = 'å·²å‘é€é‚®ä»¶';
$labels['trash'] = '已删除邮件';
$labels['junk'] = '垃圾邮件';
+
+// message listing
$labels['subject'] = '主题';
$labels['from'] = 'å‘件人';
$labels['sender'] = 'å‘件人';
@@ -43,11 +53,13 @@ $labels['priority'] = '优先级';
$labels['organization'] = '组织';
$labels['readstatus'] = '阅读状æ€';
$labels['listoptions'] = '列表选项';
+
$labels['mailboxlist'] = '邮件夹';
-$labels['messagesfromto'] = '从 $from 到 $to,共计 $count å°é‚®ä»¶';
-$labels['threadsfromto'] = '从 $from 到 $to,共计 $count 个主题';
+$labels['messagesfromto'] = '第 $from 到 $to,共计 $count å°é‚®ä»¶';
+$labels['threadsfromto'] = '第 $from 到 $to,共计 $count 个主题';
$labels['messagenrof'] = '第 $nr å°é‚®ä»¶ï¼Œå…±è®¡ $count å°';
-$labels['fromtoshort'] = '$from – $to 共计 $count 个';
+$labels['fromtoshort'] = '自 $from – $to 统计 $count';
+
$labels['copy'] = 'å¤åˆ¶';
$labels['move'] = '移动';
$labels['moveto'] = '移至...';
@@ -55,9 +67,13 @@ $labels['download'] = '下载';
$labels['open'] = '打开';
$labels['showattachment'] = '显示';
$labels['showanyway'] = '总是显示';
+
$labels['filename'] = '文件å';
$labels['filesize'] = '文件大å°';
+
$labels['addtoaddressbook'] = '添加至通讯录';
+
+// weekdays short
$labels['sun'] = '星期日';
$labels['mon'] = '星期一';
$labels['tue'] = '星期二';
@@ -65,6 +81,8 @@ $labels['wed'] = '星期三';
$labels['thu'] = '星期四';
$labels['fri'] = '星期五';
$labels['sat'] = '星期六';
+
+// weekdays long
$labels['sunday'] = '星期日';
$labels['monday'] = '星期一';
$labels['tuesday'] = '星期二';
@@ -72,6 +90,8 @@ $labels['wednesday'] = '星期三';
$labels['thursday'] = '星期四';
$labels['friday'] = '星期五';
$labels['saturday'] = '星期六';
+
+// months short
$labels['jan'] = '一月';
$labels['feb'] = '二月';
$labels['mar'] = '三月';
@@ -84,6 +104,8 @@ $labels['sep'] = 'ä¹æœˆ';
$labels['oct'] = 'å月';
$labels['nov'] = 'å一月';
$labels['dec'] = 'å二月';
+
+// months long
$labels['longjan'] = '一月';
$labels['longfeb'] = '二月';
$labels['longmar'] = '三月';
@@ -96,7 +118,10 @@ $labels['longsep'] = 'ä¹æœˆ';
$labels['longoct'] = 'å月';
$labels['longnov'] = 'å一月';
$labels['longdec'] = 'å二月';
+
$labels['today'] = '今天';
+
+// toolbar buttons
$labels['refresh'] = '刷新';
$labels['checkmail'] = '检查新邮件';
$labels['compose'] = '撰写新邮件';
@@ -118,17 +143,18 @@ $labels['firstmessage'] = '显示第一å°é‚®ä»¶';
$labels['nextmessage'] = '下一å°';
$labels['lastmessage'] = '最åŽä¸€å°';
$labels['backtolist'] = '返回邮件列表';
-$labels['viewsource'] = '显示æ¥æº';
-$labels['mark'] = '标记为';
+$labels['viewsource'] = '显示原始邮件文件';
+$labels['mark'] = '标记';
$labels['markmessages'] = '标记选中的邮件为';
$labels['markread'] = '已读';
$labels['markunread'] = '未读';
-$labels['markflagged'] = 'é‡è¦';
-$labels['markunflagged'] = ' ä¸é‡è¦';
+$labels['markflagged'] = '已标记';
+$labels['markunflagged'] = '未标记';
$labels['moreactions'] = '更多æ“作...';
$labels['more'] = '更多';
$labels['back'] = '返回';
-$labels['options'] = '个人选项';
+$labels['options'] = '选项';
+
$labels['select'] = '选择';
$labels['all'] = '全部';
$labels['none'] = 'æ— ';
@@ -136,7 +162,7 @@ $labels['currpage'] = '当å‰é¡µ';
$labels['unread'] = '未读邮件';
$labels['flagged'] = '已标记邮件';
$labels['unanswered'] = '未回å¤é‚®ä»¶';
-$labels['withattachment'] = '包å«é™„件';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = '已删除邮件';
$labels['undeleted'] = '未删除邮件';
$labels['invert'] = 'å选';
@@ -147,6 +173,7 @@ $labels['expand-all'] = '展开全部';
$labels['expand-unread'] = '展开未读';
$labels['collapse-all'] = '收起全部';
$labels['threaded'] = '所有邮件';
+
$labels['autoexpand_threads'] = '展开消æ¯ä¸»é¢˜';
$labels['do_expand'] = '所有主题';
$labels['expand_only_unread'] = '仅未读消æ¯';
@@ -162,21 +189,27 @@ $labels['listcolumns'] = '列表列';
$labels['listsorting'] = '排åºåˆ—';
$labels['listorder'] = '排åº';
$labels['listmode'] = '列表视图样å¼';
+
$labels['folderactions'] = '文件夹æ“作...';
$labels['compact'] = '压缩';
$labels['empty'] = '清空';
+
$labels['quota'] = '邮箱容é‡';
$labels['unknown'] = '未知';
$labels['unlimited'] = 'æ— é™åˆ¶';
+
$labels['quicksearch'] = '快速查找';
$labels['resetsearch'] = '清空';
$labels['searchmod'] = '修改æœç´¢';
$labels['msgtext'] = 'æ•´å°é‚®ä»¶';
$labels['body'] = '正文';
+
$labels['openinextwin'] = '在新窗å£ä¸­æ‰“å¼€';
$labels['emlsave'] = '下载(.eml)';
-$labels['changeformattext'] = '以文本格å¼æ˜¾ç¤º';
-$labels['changeformathtml'] = '以 HTML æ ¼å¼æ˜¾ç¤º';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = '以新邮件编辑';
$labels['send'] = 'å‘é€';
$labels['sendmessage'] = 'ç«‹å³å‘é€';
@@ -188,42 +221,52 @@ $labels['returnreceipt'] = '需è¦å·²è¯»å›žæ‰§';
$labels['dsn'] = '投递状æ€é€šçŸ¥';
$labels['mailreplyintro'] = '在 $date,$sender 写é“:';
$labels['originalmessage'] = '原始邮件';
+
$labels['editidents'] = '编辑身份';
$labels['spellcheck'] = '拼写';
$labels['checkspelling'] = '拼写检查';
$labels['resumeediting'] = '继续编辑';
$labels['revertto'] = 'æ¢å¤è‡³';
+
$labels['attach'] = '附加';
$labels['attachments'] = '附件';
$labels['upload'] = '上传';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = '关闭';
$labels['messageoptions'] = '邮件选项...';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '普通';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(无主题)';
$labels['showimages'] = '显示图片';
-$labels['alwaysshow'] = '总是显示æ¥è‡ª $sender 的图片';
+$labels['alwaysshow'] = '总是在æ¥è‡ª $sender 的邮件中显示图片';
$labels['isdraft'] = '这是一å°è‰ç¨¿';
-$labels['andnmore'] = '第 $nr å°æˆ–更多...';
+$labels['andnmore'] = '第$nrå°æˆ–更多...';
$labels['togglemoreheaders'] = '显示更多消æ¯å¤´';
$labels['togglefullheaders'] = '切æ¢è‡³åŽŸå§‹æ¶ˆæ¯å¤´';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '纯文本';
$labels['savesentmessagein'] = 'ä¿å­˜å·²å‘é€é‚®ä»¶è‡³';
$labels['dontsave'] = 'ä¸ä¿å­˜';
$labels['maxuploadsize'] = '上传附件最大ä¸è¶…过 $size';
+
$labels['addcc'] = '添加抄é€';
$labels['addbcc'] = '添加密é€';
$labels['addreplyto'] = '添加回å¤';
$labels['addfollowupto'] = '添加投递组';
+
+// mdn
$labels['mdnrequest'] = 'å‘件人è¦æ±‚在您阅读这å°é‚®ä»¶æ—¶å‘é€å·²è¯»é€šçŸ¥ã€‚您是å¦å¸Œæœ›é€šçŸ¥å‘件人?';
$labels['receiptread'] = 'å‘é€å›žæ‰§(已读)';
$labels['yourmessage'] = '这是您的邮件回执';
$labels['receiptnote'] = '注æ„:回执åªè¡¨ç¤ºé‚®ä»¶åœ¨æ”¶ä»¶äººçš„电脑上被打开过,ä¸è¡¨ç¤ºæ”¶ä»¶äººå·²ç»é˜…读或了解邮件内容。';
+
+// address boook
$labels['name'] = '显示å称';
$labels['firstname'] = 'åå­—';
$labels['surname'] = '姓æ°';
@@ -258,6 +301,7 @@ $labels['search'] = '查询';
$labels['advsearch'] = '高级查询';
$labels['advanced'] = '高级选项';
$labels['other'] = '其他';
+
$labels['typehome'] = '家庭';
$labels['typework'] = '工作';
$labels['typeother'] = '其他';
@@ -272,12 +316,14 @@ $labels['typeassistant'] = '助ç†';
$labels['typehomepage'] = '主页';
$labels['typeblog'] = 'åšå®¢';
$labels['typeprofile'] = '资料';
+
$labels['addfield'] = '新增æ¡ç›®...';
$labels['addcontact'] = '新建è”系人';
$labels['editcontact'] = '编辑è”系人';
$labels['contacts'] = 'è”系人';
$labels['contactproperties'] = 'è”系人信æ¯';
$labels['personalinfo'] = '个人信æ¯';
+
$labels['edit'] = '编辑';
$labels['cancel'] = 'å–消';
$labels['save'] = 'ä¿å­˜';
@@ -286,6 +332,7 @@ $labels['rename'] = 'é‡å‘½å';
$labels['addphoto'] = '上传';
$labels['replacephoto'] = '替æ¢ç…§ç‰‡';
$labels['uploadphoto'] = '上传照片';
+
$labels['newcontact'] = '新建è”系人';
$labels['deletecontact'] = '删除选中的è”系人';
$labels['composeto'] = '写信至选中的è”系人';
@@ -297,33 +344,43 @@ $labels['exportsel'] = '导出选中';
$labels['exportvcards'] = '导出è”系人为 vCard æ ¼å¼';
$labels['newcontactgroup'] = '创建新的è”系人群组';
$labels['grouprename'] = 'é‡å‘½å群组';
-$labels['groupdelete'] = '删除群组';
+$labels['groupdelete'] = '删除群组组';
$labels['groupremoveselected'] = '删除选中';
+
$labels['previouspage'] = '上一页';
-$labels['firstpage'] = '首页';
+$labels['firstpage'] = '第一页';
$labels['nextpage'] = '下一页';
-$labels['lastpage'] = '末页';
+$labels['lastpage'] = '最åŽä¸€é¡µ';
+
$labels['group'] = '分组';
$labels['groups'] = '分组';
$labels['personaladrbook'] = '个人通讯录';
+
$labels['searchsave'] = 'ä¿å­˜æœç´¢';
$labels['searchdelete'] = '删除æœç´¢';
+
$labels['import'] = '导入';
$labels['importcontacts'] = '导入通讯录';
$labels['importfromfile'] = '从文件导入';
+$labels['importtarget'] = '添加新è”系人至通讯录:';
$labels['importreplace'] = '替æ¢å…¨éƒ¨é€šè®¯å½•';
$labels['importdesc'] = '您å¯ä»¥ä»Žé€šè®¯å½•æ–‡ä»¶ä¸Šä¼ è”系人,目å‰å·²æ”¯æŒ <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> å’Œ CSV(逗å·åˆ†éš”)æ ¼å¼';
$labels['done'] = '完æˆ';
+
+// settings
$labels['settingsfor'] = '设置';
$labels['about'] = '关于';
$labels['preferences'] = '选项';
$labels['userpreferences'] = '个人选项';
$labels['editpreferences'] = '修改个人选项';
-$labels['identities'] = 'å‘件人身份';
+
+$labels['identities'] = 'å‘件身份';
$labels['manageidentities'] = '管ç†æ­¤è´¦å·çš„身份';
$labels['newidentity'] = '添加身份';
+
$labels['newitem'] = '添加æ¡ç›®';
$labels['edititem'] = '编辑æ¡ç›®';
+
$labels['preferhtml'] = '以 HTML æ ¼å¼æ˜¾ç¤º';
$labels['defaultcharset'] = '默认字符集';
$labels['htmlmessage'] = 'HTML 邮件';
@@ -342,16 +399,16 @@ $labels['dstactive'] = 'å¤ä»¤æ—¶';
$labels['showinextwin'] = '在新窗å£ä¸­æ‰“å¼€';
$labels['composeextwin'] = '在新窗å£ä¸­æ’°å†™';
$labels['htmleditor'] = '使用 HTML 编辑器';
-$labels['htmlonreply'] = 'ä»…å½“å›žå¤ HTML 邮件时';
-$labels['htmlonreplyandforward'] = '仅当回å¤æˆ–è½¬å‘ HTML 邮件时';
+$labels['htmlonreply'] = 'ä»…å½“å›žå¤ HTML 邮件';
+$labels['htmlonreplyandforward'] = 'on forward or reply to HTML message';
$labels['htmlsignature'] = '使用 HTML ç­¾å';
-$labels['showemail'] = '显示邮件地å€æ—¶æ˜¾ç¤ºåå­—';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = '显示预览窗å£';
$labels['skin'] = 'ç•Œé¢çš®è‚¤';
$labels['logoutclear'] = '退出时清空回收站';
$labels['logoutcompact'] = '退出时压缩收件箱';
$labels['uisettings'] = '用户界é¢';
-$labels['serversettings'] = 'æœåŠ¡ç«¯è®¾ç½®';
+$labels['serversettings'] = 'æœåŠ¡å™¨è®¾ç½®';
$labels['mailboxview'] = '显示邮件';
$labels['mdnrequests'] = 'å‘件人请求回执';
$labels['askuser'] = '询问用户';
@@ -363,7 +420,7 @@ $labels['readwhendeleted'] = '删除åŽæ ‡è®°ä¸ºå·²è¯»';
$labels['flagfordeletion'] = '标记邮件为已删除而ä¸æ˜¯å®žé™…删除';
$labels['skipdeleted'] = 'ä¸æ˜¾ç¤ºæ ‡è®°ä¸ºå·²åˆ é™¤çš„邮件';
$labels['deletealways'] = '如果移动邮件到回收站失败,则删除';
-$labels['deletejunk'] = '直接删除垃圾邮箱中的邮件';
+$labels['deletejunk'] = '在ã€';
$labels['showremoteimages'] = '显示内嵌的图片';
$labels['fromknownsenders'] = 'æ¥è‡ªå·²çŸ¥å‘件人';
$labels['always'] = '总是';
@@ -379,7 +436,7 @@ $labels['mimeparamfolding'] = '附件å';
$labels['2231folding'] = '完整的 RFC 2231(Thunderbird)';
$labels['miscfolding'] = 'RFC 2047/2232(MS Outlook)';
$labels['2047folding'] = '完整的 RFC 2047(其它)';
-$labels['force7bit'] = '对 8 ä½å­—符使用 MIME ç¼–ç ';
+$labels['force7bit'] = '对8ä½å­—符使用 MIME ç¼–ç ';
$labels['advancedoptions'] = '高级选项';
$labels['focusonnewmessage'] = '新邮件到达时将窗å£æå‡ä¸ºç„¦ç‚¹çª—å£';
$labels['checkallfolders'] = '检查所有邮件夹里的新邮件';
@@ -404,7 +461,7 @@ $labels['previewpanemarkread'] = '标记预览邮件为已读';
$labels['afternseconds'] = '$n 秒之åŽ';
$labels['reqmdn'] = '总是è¦æ±‚回执';
$labels['reqdsn'] = '总是è¦æ±‚投递状æ€é€šçŸ¥';
-$labels['replysamefolder'] = 'ä¿å­˜å›žå¤é‚®ä»¶åˆ°é‚®ä»¶ç›¸åŒçš„文件夹';
+$labels['replysamefolder'] = 'ä¿å­˜å›žå¤é‚®ä»¶åˆ°é‚®ä»¶ç›¸åŒçš„目录';
$labels['defaultabook'] = '默认地å€è–„';
$labels['autocompletesingle'] = '跳过自动完æˆçš„电å­é‚®ä»¶åœ°å€';
$labels['listnamedisplay'] = '列出è”系人为';
@@ -414,19 +471,20 @@ $labels['spellcheckignoresyms'] = '忽略带符å·çš„å•è¯';
$labels['spellcheckignorenums'] = '忽略带数字的å•è¯';
$labels['spellcheckignorecaps'] = '忽略所有大写字æ¯çš„å•è¯';
$labels['addtodict'] = '添加到字典中';
-$labels['mailtoprotohandler'] = 'æ³¨å†Œä¸ºå¤„ç† mailto 链接的程åº';
+$labels['mailtoprotohandler'] = 'Register protocol handler for mailto: links';
$labels['forwardmode'] = '邮件转å‘æ–¹å¼';
$labels['inline'] = '内嵌';
$labels['asattachment'] = '作为附件';
-$labels['folder'] = '文件夹管ç†';
-$labels['folders'] = '文件夹管ç†';
+
+$labels['folder'] = '目录管ç†';
+$labels['folders'] = '目录管ç†';
$labels['foldername'] = '邮件夹å称';
$labels['subscribed'] = '已订阅';
$labels['messagecount'] = '邮件数é‡';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新邮件夹';
$labels['managefolders'] = '管ç†é‚®ä»¶å¤¹';
-$labels['specialfolders'] = '自定义邮件夹';
+$labels['specialfolders'] = '定义邮件夹';
$labels['properties'] = '属性';
$labels['folderproperties'] = '文件夹属性';
$labels['parentfolder'] = '父文件夹';
@@ -434,24 +492,30 @@ $labels['location'] = 'ä½ç½®';
$labels['info'] = 'ä¿¡æ¯';
$labels['getfoldersize'] = '获得文件夹容é‡';
$labels['changesubscription'] = '更改订阅';
-$labels['foldertype'] = '文件夹类型';
-$labels['personalfolder'] = 'ç§æœ‰æ–‡ä»¶å¤¹';
-$labels['otherfolder'] = '他人文件夹';
-$labels['sharedfolder'] = '共享文件夹';
+$labels['foldertype'] = '目录类型';
+$labels['personalfolder'] = 'ç§æœ‰ç›®å½•';
+$labels['otherfolder'] = '他人目录';
+$labels['sharedfolder'] = '共享目录';
+
$labels['sortby'] = '排åº';
$labels['sortasc'] = '递增排åº';
$labels['sortdesc'] = '递å‡æŽ’åº';
$labels['undo'] = '撤销';
+
$labels['installedplugins'] = '已安装æ’件';
$labels['plugin'] = 'æ’件';
$labels['version'] = '版本';
$labels['source'] = 'æºä»£ç ';
$labels['license'] = '许å¯åè®®';
$labels['support'] = '支æŒ';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'Unicode';
$labels['english'] = '英语';
$labels['westerneuropean'] = '西欧';
@@ -470,4 +534,5 @@ $labels['vietnamese'] = '越å—语';
$labels['japanese'] = '日文';
$labels['korean'] = '韩语';
$labels['chinese'] = '中文';
+
?>
diff --git a/program/localization/zh_CN/messages.inc b/program/localization/zh_CN/messages.inc
index bf6e8cf2f..43703e311 100644
--- a/program/localization/zh_CN/messages.inc
+++ b/program/localization/zh_CN/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = 'å‘生错误ï¼';
$messages['loginfailed'] = '登录失败。';
$messages['cookiesdisabled'] = '您的æµè§ˆå™¨ä¸æ”¯æŒ Cookies。';
@@ -34,7 +36,7 @@ $messages['nomessagesfound'] = '此邮件夹内无邮件。';
$messages['loggedout'] = '您已æˆåŠŸæ³¨é”€ï¼Œå†è§ï¼';
$messages['mailboxempty'] = '邮件夹为空。';
$messages['refreshing'] = '正在刷新...';
-$messages['loading'] = '正在载入...';
+$messages['loading'] = '正在登录...';
$messages['uploading'] = '正在上传文件...';
$messages['uploadingmany'] = '正在上传文件...';
$messages['loadingdata'] = '正在载入数æ®...';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '未找到指定的è”系人。';
$messages['contactsearchonly'] = '请输入è”系人的æœç´¢æ¡ä»¶';
$messages['sendingfailed'] = 'å‘é€å¤±è´¥ã€‚';
$messages['senttooquickly'] = '您需è¦ç­‰å¾…$sec秒æ‰èƒ½å‘é€é‚®ä»¶ã€‚';
+$messages['errorsavingsent'] = 'ä¿å­˜å·²å‘é€é‚®ä»¶æ—¶å‘生错误。';
+$messages['errorsaving'] = 'ä¿å­˜æ—¶å‘生错误。';
$messages['errormoving'] = '无法移动邮件。';
$messages['errorcopying'] = '无法å¤åˆ¶é‚®ä»¶ã€‚';
$messages['errordeleting'] = '无法删除邮件。';
@@ -97,16 +101,13 @@ $messages['converting'] = 'æ ¼å¼è½¬æ¢ä¸­...';
$messages['messageopenerror'] = '无法从æœåŠ¡å™¨åŠ è½½é‚®ä»¶å†…容。';
$messages['fileuploaderror'] = '文件上传失败。';
$messages['filesizeerror'] = '上传的文件超过了 $size 的大å°é™åˆ¶ã€‚';
-$messages['copysuccess'] = 'æˆåŠŸå¤åˆ¶ $nr 个è”系人。';
-$messages['movesuccess'] = 'æˆåŠŸç§»åŠ¨ $nr 个è”系人。';
-$messages['copyerror'] = '无法å¤åˆ¶è”系人。';
-$messages['moveerror'] = '无法移动è”系人。';
+$messages['copysuccess'] = 'æˆåŠŸå¤åˆ¶ $nr 个地å€ã€‚';
+$messages['copyerror'] = '无法å¤åˆ¶åœ°å€ã€‚';
$messages['sourceisreadonly'] = 'æºåœ°å€ä¸ºåªè¯»ã€‚';
$messages['errorsavingcontact'] = '无法ä¿å­˜è”系人地å€ã€‚';
$messages['movingmessage'] = '正在移动邮件...';
$messages['copyingmessage'] = '正在å¤åˆ¶é‚®ä»¶...';
$messages['copyingcontact'] = '正在å¤åˆ¶è”系人...';
-$messages['movingcontact'] = '移动è”系人...';
$messages['deletingmessage'] = '正在删除邮件...';
$messages['markingmessage'] = '正在标记邮件...';
$messages['addingmember'] = '正在添加è”系人至群组...';
@@ -115,7 +116,7 @@ $messages['receiptsent'] = 'æˆåŠŸå‘é€ä¸€ä¸ªå·²è¯»å›žæ‰§ã€‚';
$messages['errorsendingreceipt'] = '无法å‘é€å·²è¯»å›žæ‰§ã€‚';
$messages['deleteidentityconfirm'] = '是å¦åˆ é™¤è¯¥èº«ä»½ï¼Ÿ';
$messages['nodeletelastidentity'] = '无法删除该身份,这是最åŽä¸€ä¸ªã€‚';
-$messages['forbiddencharacter'] = '文件夹å包å«ç¦æ­¢å­—符。';
+$messages['forbiddencharacter'] = '目录å包å«ç¦æ­¢å­—符。';
$messages['selectimportfile'] = '请选择è¦ä¸Šä¼ çš„文件。';
$messages['addresswriterror'] = '选中的通讯录ä¸å¯å†™ã€‚';
$messages['contactaddedtogroup'] = '添加è”系人至该群组æˆåŠŸã€‚';
@@ -125,8 +126,6 @@ $messages['importwait'] = '正在导入,请ç¨åŽ...';
$messages['importformaterror'] = '导入失败ï¼æ–‡ä»¶æ— æ•ˆã€‚';
$messages['importconfirm'] = '<b>æˆåŠŸå¯¼å…¥ $inserted è”系人</b>';
$messages['importconfirmskipped'] = '<b>跳过已存在的 $skipped 项目</b>';
-$messages['importmessagesuccess'] = 'æˆåŠŸå¯¼å…¥ $nr æ¡ä¿¡æ¯';
-$messages['importmessageerror'] = '导入失败ï¼æ–‡ä»¶æ— æ•ˆ';
$messages['opnotpermitted'] = 'ä¸å…许的æ“作!';
$messages['nofromaddress'] = '选中的身份没有邮件地å€ã€‚';
$messages['editorwarning'] = '切æ¢è‡³çº¯æ–‡æœ¬ç¼–辑器将导致邮件正文中的所有文本格å¼å¤±æ•ˆï¼Œæ‚¨ç¡®å®šè¦è¿™æ ·åšå—?';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP 错误: $msg';
$messages['emailformaterror'] = '无效的邮件地å€ï¼š$email';
$messages['toomanyrecipients'] = '收件人太多,请å‡å°‘人数至 $max。';
$messages['maxgroupmembersreached'] = '组员数é‡è¶…过最大值 $max。';
+$messages['internalerror'] = 'å‘生一个内部错误,请é‡è¯•ã€‚';
$messages['contactdelerror'] = '无法删除è”系人。';
$messages['contactdeleted'] = '删除è”系人æˆåŠŸã€‚';
$messages['contactrestoreerror'] = '无法æ¢å¤å·²åˆ é™¤çš„è”系人。';
@@ -163,8 +163,9 @@ $messages['folderupdated'] = 'æˆåŠŸæ›´æ–°æ–‡ä»¶å¤¹';
$messages['foldercreated'] = 'æˆåŠŸåˆ›å»ºæ–‡ä»¶å¤¹';
$messages['invalidimageformat'] = 'éžæ³•çš„图åƒç±»åž‹ã€‚';
$messages['mispellingsfound'] = '检查到拼写错误。';
-$messages['parentnotwritable'] = '无法创建/转移文件夹至指定的上级文件夹,没有æƒé™ã€‚';
+$messages['parentnotwritable'] = '无法创建/转移文件夹至指定的上级目录,æƒé™ä¸è¶³ã€‚';
$messages['messagetoobig'] = '邮件过大无法处ç†ã€‚';
$messages['attachmentvalidationerror'] = '警告ï¼è¯¥é™„件很å¯ç–‘,因为其自身的格å¼ä¸Žé‚®ä»¶ä¸­å£°æ˜Žçš„æ ¼å¼ä¸ç¬¦ã€‚如果您ä¸ä¿¡ä»»å‘é€äººï¼Œåˆ™ä¸åº”该在æµè§ˆå™¨ä¸­æ‰“开该附件。<br/><br/><em>声明格å¼ï¼š$expected;实际格å¼ï¼š$detected</em>';
$messages['noscriptwarning'] = '警告:本程åºéœ€è¦ Javascript 支æŒï¼è¯·åœ¨æµè§ˆå™¨è®¾ç½®ä¸­å¯ç”¨ Javascript。';
+
?>
diff --git a/program/localization/zh_TW/csv2vcard.inc b/program/localization/zh_TW/csv2vcard.inc
index 36c5495e1..9fcacc818 100644
--- a/program/localization/zh_TW/csv2vcard.inc
+++ b/program/localization/zh_TW/csv2vcard.inc
@@ -15,7 +15,14 @@
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
+
+// 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'] = "紀念日";
$map['assistants_name'] = "助ç†";
$map['assistants_phone'] = "助ç†é›»è©±";
@@ -62,6 +69,8 @@ $map['spouse'] = "é…å¶";
$map['suffix'] = "稱謂";
$map['title'] = "頭銜";
$map['web_page'] = "網é ";
+
+// Thunderbird
$map['last'] = "姓";
$map['first'] = "å";
$map['birth_day'] = "生日 (日)";
diff --git a/program/localization/zh_TW/labels.inc b/program/localization/zh_TW/labels.inc
index 4250e5137..a545f2f81 100644
--- a/program/localization/zh_TW/labels.inc
+++ b/program/localization/zh_TW/labels.inc
@@ -15,21 +15,30 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/labels/
*/
+
+$labels = array();
+
+// login page
$labels['welcome'] = '歡迎使用 $product';
$labels['username'] = '使用者å稱';
$labels['password'] = '使用者密碼';
$labels['server'] = '伺æœå™¨';
$labels['login'] = '登入';
+
+// taskbar
$labels['logout'] = '登出';
$labels['mail'] = 'é›»å­éƒµä»¶';
$labels['settings'] = '設定';
$labels['addressbook'] = '通訊錄';
+
+// mailbox names
$labels['inbox'] = '收件匣';
$labels['drafts'] = 'è‰ç¨¿åŒ£';
$labels['sent'] = '寄件備份';
$labels['trash'] = '垃圾桶';
$labels['junk'] = '垃圾郵件';
-$labels['show_real_foldernames'] = '顯示特殊資料夾的實際å稱';
+
+// message listing
$labels['subject'] = '主旨';
$labels['from'] = '寄件者';
$labels['sender'] = '寄件者';
@@ -44,21 +53,27 @@ $labels['priority'] = '優先順åº';
$labels['organization'] = '組織';
$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['move'] = '移動';
$labels['moveto'] = '移至...';
$labels['download'] = '下載';
-$labels['open'] = 'é–‹å•Ÿ';
+$labels['open'] = 'Open';
$labels['showattachment'] = '顯示';
$labels['showanyway'] = '總是顯示';
+
$labels['filename'] = '檔案å稱';
$labels['filesize'] = '檔案大å°';
+
$labels['addtoaddressbook'] = '新增至通訊錄';
+
+// weekdays short
$labels['sun'] = '週日';
$labels['mon'] = '週一';
$labels['tue'] = '週二';
@@ -66,6 +81,8 @@ $labels['wed'] = '週三';
$labels['thu'] = '週四';
$labels['fri'] = '週五';
$labels['sat'] = '週六';
+
+// weekdays long
$labels['sunday'] = '星期日';
$labels['monday'] = '星期一';
$labels['tuesday'] = '星期二';
@@ -73,6 +90,8 @@ $labels['wednesday'] = '星期三';
$labels['thursday'] = '星期四';
$labels['friday'] = '星期五';
$labels['saturday'] = '星期六';
+
+// months short
$labels['jan'] = '一';
$labels['feb'] = '二';
$labels['mar'] = '三';
@@ -85,6 +104,8 @@ $labels['sep'] = 'ä¹';
$labels['oct'] = 'å';
$labels['nov'] = 'å一';
$labels['dec'] = 'å二';
+
+// months long
$labels['longjan'] = '一月';
$labels['longfeb'] = '二月';
$labels['longmar'] = '三月';
@@ -97,7 +118,10 @@ $labels['longsep'] = 'ä¹æœˆ';
$labels['longoct'] = 'å月';
$labels['longnov'] = 'å一月';
$labels['longdec'] = 'å二月';
+
$labels['today'] = '今日';
+
+// toolbar buttons
$labels['refresh'] = 'é‡æ–°æ•´ç†';
$labels['checkmail'] = '檢查新郵件';
$labels['compose'] = '撰寫新郵件';
@@ -119,17 +143,18 @@ $labels['firstmessage'] = '顯示第一å°éƒµä»¶';
$labels['nextmessage'] = '顯示下一å°éƒµä»¶';
$labels['lastmessage'] = '顯示最後一å°éƒµä»¶';
$labels['backtolist'] = '回到郵件清單';
-$labels['viewsource'] = '顯示郵件原始內容';
+$labels['viewsource'] = '顯示原始郵件';
$labels['mark'] = '標記';
-$labels['markmessages'] = '標記é¸å–的郵件';
+$labels['markmessages'] = '標記é¸å–的郵件為';
$labels['markread'] = '標示為已讀å–';
$labels['markunread'] = '標示為未讀å–';
$labels['markflagged'] = '標上旗標';
$labels['markunflagged'] = '移除旗標';
-$labels['moreactions'] = '更多動作...';
+$labels['moreactions'] = '資料夾動作...';
$labels['more'] = '更多';
-$labels['back'] = '返回';
+$labels['back'] = '上一é ';
$labels['options'] = 'é¸é …';
+
$labels['select'] = 'é¸å–';
$labels['all'] = '全部郵件';
$labels['none'] = 'ç„¡';
@@ -137,7 +162,7 @@ $labels['currpage'] = 'ç›®å‰é é¢';
$labels['unread'] = '未讀å–的郵件';
$labels['flagged'] = '已加標記的郵件';
$labels['unanswered'] = '未回覆的郵件';
-$labels['withattachment'] = '包å«é™„件';
+$labels['withattachment'] = 'With attachment';
$labels['deleted'] = '已刪除的郵件';
$labels['undeleted'] = '未刪除的郵件';
$labels['invert'] = 'åé¸';
@@ -148,6 +173,7 @@ $labels['expand-all'] = '全部展開';
$labels['expand-unread'] = '展開未讀å–';
$labels['collapse-all'] = '全部收起';
$labels['threaded'] = '郵件串';
+
$labels['autoexpand_threads'] = 'åªå±•é–‹éƒµä»¶ä¸²';
$labels['do_expand'] = '所有郵件串';
$labels['expand_only_unread'] = 'åªå±•é–‹æœªè®€è¨Šæ¯';
@@ -163,23 +189,27 @@ $labels['listcolumns'] = '列出欄ä½';
$labels['listsorting'] = '排åºæ¬„ä½';
$labels['listorder'] = '排åºé †åº';
$labels['listmode'] = '清單檢視模å¼';
+
$labels['folderactions'] = '資料夾動作...';
$labels['compact'] = '壓縮';
$labels['empty'] = '清空';
-$labels['importmessages'] = '匯入郵件';
+
$labels['quota'] = 'ç£ç¢Ÿä½¿ç”¨é‡';
$labels['unknown'] = '未知';
$labels['unlimited'] = 'ç„¡é™åˆ¶';
+
$labels['quicksearch'] = '快速æœå°‹';
$labels['resetsearch'] = 'é‡è¨­æœå°‹';
$labels['searchmod'] = '修改æœå°‹';
$labels['msgtext'] = 'æ•´å°éƒµä»¶';
$labels['body'] = '內文';
-$labels['namex'] = 'å稱';
+
$labels['openinextwin'] = '在新視窗開啟';
$labels['emlsave'] = '下載(.eml)';
-$labels['changeformattext'] = '以純文字格å¼é¡¯ç¤º';
-$labels['changeformathtml'] = '以 HTML æ ¼å¼é¡¯ç¤º';
+$labels['changeformattext'] = 'Display in plain text format';
+$labels['changeformathtml'] = 'Display in HTML format';
+
+// message compose
$labels['editasnew'] = '以新郵件編輯';
$labels['send'] = '寄出';
$labels['sendmessage'] = 'ç«‹å³å¯„出';
@@ -190,23 +220,27 @@ $labels['editortype'] = '編輯器類型';
$labels['returnreceipt'] = 'è¦æ±‚讀å–回æ¢';
$labels['dsn'] = '傳é€ç‹€æ…‹é€šçŸ¥';
$labels['mailreplyintro'] = '$sender 於 $date 寫到:';
-$labels['originalmessage'] = '原始郵件';
+$labels['originalmessage'] = '郵件顯示設定';
+
$labels['editidents'] = '編輯身份資訊';
$labels['spellcheck'] = '拼字';
$labels['checkspelling'] = '拼字檢查';
$labels['resumeediting'] = '繼續編輯';
$labels['revertto'] = 'æ¢å¾©è‡³';
+
$labels['attach'] = '附件';
$labels['attachments'] = '附加檔案';
$labels['upload'] = '上傳';
$labels['uploadprogress'] = '$percent ($current / $total)';
$labels['close'] = '關閉';
$labels['messageoptions'] = '郵件é¸é …...';
+
$labels['low'] = '低';
$labels['lowest'] = '最低';
$labels['normal'] = '普通';
$labels['high'] = '高';
$labels['highest'] = '最高';
+
$labels['nosubject'] = '(沒有主旨)';
$labels['showimages'] = '顯示圖片';
$labels['alwaysshow'] = 'æ°¸é é¡¯ç¤ºä¾†è‡ª $sender 的圖片';
@@ -214,19 +248,25 @@ $labels['isdraft'] = '這是一å°è‰ç¨¿';
$labels['andnmore'] = '第$nrå°æˆ–是更多...';
$labels['togglemoreheaders'] = '顯示更多的訊æ¯è¡¨é ­';
$labels['togglefullheaders'] = '切æ›åŽŸå§‹è¨Šæ¯è¡¨é ­';
+
$labels['htmltoggle'] = 'HTML';
$labels['plaintoggle'] = '純文字';
$labels['savesentmessagein'] = '儲存寄件備份至';
$labels['dontsave'] = 'ä¸è¦å„²å­˜';
$labels['maxuploadsize'] = '上傳檔案大å°é™åˆ¶ç‚º $size';
+
$labels['addcc'] = '新增副本';
$labels['addbcc'] = '新增密件副本';
$labels['addreplyto'] = '新增回覆地å€';
$labels['addfollowupto'] = '新增 信件跟隨至';
+
+// mdn
$labels['mdnrequest'] = '此郵件的寄件者希望在你閱讀此郵件時å—到通知。你想è¦é€šçŸ¥å¯„件者嗎?';
$labels['receiptread'] = '郵件回æ¢ï¼ˆå·²é–±è®€ï¼‰';
$labels['yourmessage'] = '這是你郵件的郵件回æ¢';
$labels['receiptnote'] = '注æ„:此回æ¢åªèƒ½ç¢ºèªæ”¶ä»¶è€…的電腦顯示了郵件,並ä¸èƒ½ä¿è­‰æ”¶ä»¶è€…已閱讀或了解郵件的內容。';
+
+// address boook
$labels['name'] = '顯示å稱';
$labels['firstname'] = 'å稱';
$labels['surname'] = '姓æ°';
@@ -261,6 +301,7 @@ $labels['search'] = 'æœå°‹';
$labels['advsearch'] = '進階æœå°‹';
$labels['advanced'] = '進階設定';
$labels['other'] = '其他';
+
$labels['typehome'] = 'ä½å®¶';
$labels['typework'] = '工作';
$labels['typeother'] = '其他';
@@ -275,12 +316,14 @@ $labels['typeassistant'] = '助ç†';
$labels['typehomepage'] = '首é ';
$labels['typeblog'] = '部è½æ ¼';
$labels['typeprofile'] = '設定檔';
+
$labels['addfield'] = '新增欄ä½...';
$labels['addcontact'] = '新增è¯çµ¡äºº';
$labels['editcontact'] = '編輯è¯çµ¡äºº';
$labels['contacts'] = 'è¯çµ¡äºº';
$labels['contactproperties'] = 'è¯çµ¡äººè³‡è¨Š';
$labels['personalinfo'] = '個人資訊';
+
$labels['edit'] = '編輯';
$labels['cancel'] = 'å–消';
$labels['save'] = '儲存';
@@ -289,6 +332,7 @@ $labels['rename'] = 'é‡æ–°å‘½å';
$labels['addphoto'] = '新增';
$labels['replacephoto'] = 'å–代';
$labels['uploadphoto'] = '上傳相片';
+
$labels['newcontact'] = '建立新è¯çµ¡äººè³‡æ–™';
$labels['deletecontact'] = '刪除所é¸æ“‡çš„è¯çµ¡äºº';
$labels['composeto'] = '寄信至所é¸æ“‡çš„è¯çµ¡äºº';
@@ -302,33 +346,41 @@ $labels['newcontactgroup'] = '新增è¯çµ¡äººç¾¤çµ„';
$labels['grouprename'] = 'é‡æ–°å‘½å群組';
$labels['groupdelete'] = '刪除群組';
$labels['groupremoveselected'] = '從群組中刪除é¸æ“‡çš„è¯çµ¡äºº';
+
$labels['previouspage'] = '顯示上一é ';
$labels['firstpage'] = '顯示第一é ';
$labels['nextpage'] = '顯示下一é ';
$labels['lastpage'] = '顯示最後一é ';
+
$labels['group'] = '群組';
$labels['groups'] = '群組';
$labels['personaladrbook'] = '個人通訊錄';
+
$labels['searchsave'] = '儲存æœå°‹çµæžœ';
$labels['searchdelete'] = '刪除æœå°‹çµæžœ';
+
$labels['import'] = '匯入通訊錄';
$labels['importcontacts'] = '由檔案匯入通訊錄';
$labels['importfromfile'] = 'é¸æ“‡ä½ è¦åŒ¯å…¥çš„檔案:';
+$labels['importtarget'] = '新增連絡人至通訊錄:';
$labels['importreplace'] = '以匯入的資料å–代已存在的é‡è¤‡è³‡æ–™';
-$labels['importgroupsall'] = '全部(如有必è¦,新增群組)';
-$labels['importgroupsexisting'] = '僅é™æ–¼æ—¢æœ‰ç¾¤çµ„';
$labels['importdesc'] = '您å¯ä»¥å°‡å·²å­˜åœ¨çš„資料匯入通訊錄,目å‰æ”¯æ´åŒ¯å…¥ <a href="http://en.wikipedia.org/wiki/VCard">vCard</a> 與 CSV (逗點分隔)æ ¼å¼è³‡æ–™';
$labels['done'] = '完æˆ';
+
+// settings
$labels['settingsfor'] = '設定';
$labels['about'] = '關於';
$labels['preferences'] = '設定';
$labels['userpreferences'] = '個人設定';
$labels['editpreferences'] = '編輯個人設定';
+
$labels['identities'] = '身份資訊';
$labels['manageidentities'] = '管ç†æ­¤å¸³è™Ÿçš„身份資訊';
$labels['newidentity'] = '新增身份資訊';
+
$labels['newitem'] = '新增項目';
$labels['edititem'] = '編輯項目';
+
$labels['preferhtml'] = '使用 HTML 顯示';
$labels['defaultcharset'] = 'é è¨­ç·¨ç¢¼';
$labels['htmlmessage'] = 'HTML 郵件';
@@ -350,14 +402,14 @@ $labels['htmleditor'] = '使用 HTML 撰寫郵件';
$labels['htmlonreply'] = 'åªæœ‰åœ¨å›žè¦†HTML信件時';
$labels['htmlonreplyandforward'] = 'åªæœ‰åœ¨è½‰å¯„或回覆HTML信件時';
$labels['htmlsignature'] = 'HTML ç°½å檔';
-$labels['showemail'] = '一併顯示å稱和電郵地å€';
+$labels['showemail'] = 'Show email address with display name';
$labels['previewpane'] = '顯示é è¦½çª—æ ¼';
$labels['skin'] = '版é¢é¢¨æ ¼';
$labels['logoutclear'] = '登出時清空垃圾桶';
$labels['logoutcompact'] = '登出時壓縮收件匣';
-$labels['uisettings'] = '使用者介é¢';
+$labels['uisettings'] = '使用介é¢è¨­å®š';
$labels['serversettings'] = '伺æœå™¨è¨­å®š';
-$labels['mailboxview'] = '信箱顯示';
+$labels['mailboxview'] = '信箱顯示設定';
$labels['mdnrequests'] = '讀å–回æ¢å›žæ‡‰';
$labels['askuser'] = 'è©¢å•ä½¿ç”¨è€…';
$labels['autosend'] = '自動é€å‡º';
@@ -371,20 +423,20 @@ $labels['deletealways'] = '如果移到垃圾桶失敗,就直接刪除';
$labels['deletejunk'] = '直接從垃圾郵件刪除';
$labels['showremoteimages'] = '顯示é ç«¯éƒµä»¶å…§æ–‡ä¸­çš„圖片';
$labels['fromknownsenders'] = '從已知的寄件者';
-$labels['always'] = '是';
+$labels['always'] = '總是接å—';
$labels['showinlineimages'] = '將附加檔案的圖片顯示於郵件最後';
$labels['autosavedraft'] = '自動儲存è‰ç¨¿';
$labels['everynminutes'] = 'æ¯ $n 分é˜';
$labels['refreshinterval'] = 'é‡æ–°æ•´ç† (確èªæ˜¯å¦æ–°éƒµä»¶)';
-$labels['never'] = 'æ°¸ä¸';
+$labels['never'] = '絕å°ä¸è¦';
$labels['immediately'] = '馬上';
-$labels['messagesdisplaying'] = '郵件顯示';
-$labels['messagescomposition'] = '撰寫郵件';
+$labels['messagesdisplaying'] = '郵件顯示設定';
+$labels['messagescomposition'] = '撰寫郵件設定';
$labels['mimeparamfolding'] = '附加檔案å稱的編碼方å¼';
$labels['2231folding'] = '完全 RFC 2231 模å¼ï¼ˆThunderbird)';
$labels['miscfolding'] = 'RFC 2047/2231 æ··åˆæ¨¡å¼ï¼ˆMS Outlook)';
$labels['2047folding'] = '完全 RFC 2047 模å¼ï¼ˆå…¶ä»–)';
-$labels['force7bit'] = 'å° 8 ä½å…ƒå­—元使用 MIME 編碼';
+$labels['force7bit'] = '使用 MIME 編碼å°æ–¼ 8 ä½å…ƒå­—å…ƒ';
$labels['advancedoptions'] = '顯示進階設定é¸é …';
$labels['focusonnewmessage'] = '收到新郵件時使ç€è¦½å™¨ç²å¾—焦點';
$labels['checkallfolders'] = '檢查所有資料夾中的新郵件';
@@ -409,7 +461,7 @@ $labels['previewpanemarkread'] = '標示已é è¦½è¨Šæ¯ç‚ºå·²è®€å–';
$labels['afternseconds'] = '$n 秒之後';
$labels['reqmdn'] = 'æ°¸é ç´¢å–讀å–回æ¢';
$labels['reqdsn'] = '總是è¦æ±‚傳é€ç‹€æ…‹é€šçŸ¥';
-$labels['replysamefolder'] = '將回信放在與原信件相åŒçš„資料夾';
+$labels['replysamefolder'] = '將回覆與回覆信件放置於相åŒè³‡æ–™å¤¾';
$labels['defaultabook'] = 'é è¨­é€šè¨ŠéŒ„';
$labels['autocompletesingle'] = '在自動完æˆä¸­ç•¥éŽå¦ä¸€å€‹email';
$labels['listnamedisplay'] = '標記è¯çµ¡äººç‚º';
@@ -423,6 +475,7 @@ $labels['mailtoprotohandler'] = '註冊mailto:å”定處ç†ç¨‹å¼';
$labels['forwardmode'] = '郵件轉寄方å¼';
$labels['inline'] = '放入內文';
$labels['asattachment'] = '當æˆé™„件';
+
$labels['folder'] = '資料夾';
$labels['folders'] = '資料夾';
$labels['foldername'] = '資料夾å稱';
@@ -431,7 +484,7 @@ $labels['messagecount'] = '郵件數目';
$labels['create'] = '建立';
$labels['createfolder'] = '建立新資料夾';
$labels['managefolders'] = '管ç†è³‡æ–™å¤¾';
-$labels['specialfolders'] = '特殊資料夾';
+$labels['specialfolders'] = 'é è¨­è³‡æ–™å¤¾è¨­å®š';
$labels['properties'] = '屬性';
$labels['folderproperties'] = '資料夾屬性';
$labels['parentfolder'] = '上一層資料夾';
@@ -443,20 +496,26 @@ $labels['foldertype'] = '資料夾類型';
$labels['personalfolder'] = 'ç§äººè³‡æ–™å¤¾';
$labels['otherfolder'] = '其他使用者資料夾';
$labels['sharedfolder'] = '公用資料夾';
+
$labels['sortby'] = '排åº';
$labels['sortasc'] = 'éžå¢žæŽ’åº';
$labels['sortdesc'] = 'éžæ¸›æŽ’åº';
$labels['undo'] = '復原';
+
$labels['installedplugins'] = '已安è£çš„æ’件';
$labels['plugin'] = '擴充套件';
$labels['version'] = '版本';
$labels['source'] = '來æº';
$labels['license'] = '授權許å¯';
$labels['support'] = 'å–得支æ´';
+
+// units
$labels['B'] = 'B';
$labels['KB'] = 'KB';
$labels['MB'] = 'MB';
$labels['GB'] = 'GB';
+
+// character sets
$labels['unicode'] = 'è¬åœ‹ç¢¼';
$labels['english'] = '英語';
$labels['westerneuropean'] = '西æ­èªžç³»';
@@ -475,4 +534,5 @@ $labels['vietnamese'] = '越å—';
$labels['japanese'] = '日本';
$labels['korean'] = '韓國';
$labels['chinese'] = '國語';
+
?>
diff --git a/program/localization/zh_TW/messages.inc b/program/localization/zh_TW/messages.inc
index c52116a55..5605ba815 100644
--- a/program/localization/zh_TW/messages.inc
+++ b/program/localization/zh_TW/messages.inc
@@ -15,6 +15,8 @@
For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/
*/
+
+$messages = array();
$messages['errortitle'] = '發生錯誤ï¼';
$messages['loginfailed'] = '登入失敗';
$messages['cookiesdisabled'] = 'ä½ çš„ç€è¦½å™¨ä¸æŽ¥å— cookies';
@@ -42,7 +44,7 @@ $messages['checkingmail'] = '檢查新郵件...';
$messages['sendingmessage'] = '寄出郵件中...';
$messages['messagesent'] = '郵件寄出æˆåŠŸ';
$messages['savingmessage'] = '儲存郵件中...';
-$messages['messagesaved'] = '郵件已經儲存至è‰ç¨¿åŒ£';
+$messages['messagesaved'] = '訊æ¯å·²ç¶“存至';
$messages['successfullysaved'] = '儲存æˆåŠŸ';
$messages['addedsuccessfully'] = 'è¯çµ¡äººå·²ç¶“æˆåŠŸåœ°æ–°å¢žè‡³é€šè¨ŠéŒ„';
$messages['contactexists'] = 'æ­¤è¯çµ¡äººçš„é›»å­éƒµä»¶ä½å€å·²å­˜åœ¨';
@@ -54,6 +56,8 @@ $messages['contactnotfound'] = '找ä¸åˆ°è¦æ±‚çš„è¯çµ¡äºº';
$messages['contactsearchonly'] = '輸入關éµå­—找尋連絡人';
$messages['sendingfailed'] = '郵件寄出失敗';
$messages['senttooquickly'] = '你寄出的郵件太éŽæ–¼é »ç¹ï¼Œè«‹ç¨å€™ $sec 秒後å†è©¦ä¸€æ¬¡ã€‚';
+$messages['errorsavingsent'] = '儲存寄件備份時發生錯誤';
+$messages['errorsaving'] = '儲存時發生錯誤';
$messages['errormoving'] = '無法移動此郵件';
$messages['errorcopying'] = '無法訊æ¯';
$messages['errordeleting'] = '無法刪除此郵件';
@@ -97,16 +101,13 @@ $messages['converting'] = '移除郵件格å¼ä¸­...';
$messages['messageopenerror'] = '無法從伺æœå™¨è¼‰å…¥éƒµä»¶';
$messages['fileuploaderror'] = '檔案上傳失敗';
$messages['filesizeerror'] = '上傳的檔案超éŽäº† $size 的大å°é™åˆ¶';
-$messages['copysuccess'] = 'æˆåŠŸè¤‡è£½ $nr 個è¯çµ¡äººã€‚';
-$messages['movesuccess'] = 'æˆåŠŸç§»å‹• $nr 個è¯çµ¡äººã€‚';
-$messages['copyerror'] = '無法複製任何è¯çµ¡äººã€‚';
-$messages['moveerror'] = '無法移動任何è¯çµ¡äººã€‚';
+$messages['copysuccess'] = '複製 $nr 個ä½å€æˆåŠŸ';
+$messages['copyerror'] = '無法複製任何ä½å€';
$messages['sourceisreadonly'] = '此來æºä½å€æ˜¯å”¯è®€çš„';
$messages['errorsavingcontact'] = '無法儲存連絡人的ä½å€';
$messages['movingmessage'] = '移動郵件中...';
$messages['copyingmessage'] = '複製訊æ¯...';
$messages['copyingcontact'] = '複製群組...';
-$messages['movingcontact'] = '正在移動連絡人...';
$messages['deletingmessage'] = '刪除訊æ¯...';
$messages['markingmessage'] = '標示訊æ¯...';
$messages['addingmember'] = '新增連絡人至群組';
@@ -125,8 +126,6 @@ $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'] = '在é¸æ“‡çš„身分中éºå¤±äº†é›»å­éƒµä»¶ä½å€';
$messages['editorwarning'] = '切æ›åˆ°ç´”文字編輯模å¼å°‡æœƒéºå¤±æ‰€æœ‰è¨­å®šçš„樣å¼ã€‚您確定è¦ç¹¼çºŒå—Žï¼Ÿ';
@@ -140,6 +139,7 @@ $messages['smtperror'] = 'SMTP 錯誤:$msg';
$messages['emailformaterror'] = '錯誤電å­éƒµä»¶ï¼š$email';
$messages['toomanyrecipients'] = '太多收件人。請減少至 $max 人';
$messages['maxgroupmembersreached'] = '太多群組æˆå“¡ï¼Œè¶…éŽæœ€å¤§äººæ•¸ $max 人';
+$messages['internalerror'] = '內部發生錯誤。請å†æ¬¡å˜—試';
$messages['contactdelerror'] = '無法刪除è¯çµ¡äºº';
$messages['contactdeleted'] = 'è¯çµ¡äººæˆåŠŸåˆªé™¤';
$messages['contactrestoreerror'] = '無法復原刪除的連絡人';
@@ -168,4 +168,5 @@ $messages['messagetoobig'] = '郵件太大無法處ç†';
$messages['attachmentvalidationerror'] = '警告ï¼é€™å€‹é™„件是å¯ç–‘的,因為它的檔案類型與其宣稱的ä¸åŒã€‚如果您ä¸èƒ½ç›¸ä¿¡å¯„件者請ä¸è¦é–‹å•Ÿé™„件,它å¯èƒ½å«æœ‰æƒ¡æ„的內容。<br /><br />
<em>Expected: $expected; found: $detected</em>';
$messages['noscriptwarning'] = '警告:使用Webmail需è¦Javascript支æ´ï¼Œè«‹æª¢æŸ¥æ‚¨ç€è¦½å™¨çš„Javascript設定';
+
?>
diff --git a/program/steps/addressbook/copy.inc b/program/steps/addressbook/copy.inc
index d4387194a..480a9b52e 100644
--- a/program/steps/addressbook/copy.inc
+++ b/program/steps/addressbook/copy.inc
@@ -57,16 +57,10 @@ foreach ($cids as $source => $cid)
foreach ($cid as $cid) {
$a_record = $CONTACTS->get_record($cid, true);
- // avoid copying groups
- if ($a_record['_type'] == 'group')
- continue;
-
// Check if contact exists, if so, we'll need it's ID
// Note: Some addressbooks allows empty email address field
- // @TODO: should we check all email addresses?
- $email = $CONTACTS->get_col_values('email', $a_record, true);
- if (!empty($email))
- $result = $TARGET->search('email', $email[0], 1, true, true);
+ if (!empty($a_record['email']))
+ $result = $TARGET->search('email', $a_record['email'], 1, true, true);
else if (!empty($a_record['name']))
$result = $TARGET->search('name', $a_record['name'], 1, true, true);
else
@@ -120,7 +114,7 @@ foreach ($cids as $source => $cid)
}
}
-if (!$success)
+if ($success == 0)
$OUTPUT->show_message($errormsg, 'error');
else
$OUTPUT->show_message('copysuccess', 'notice', array('nr' => $success));
diff --git a/program/steps/addressbook/delete.inc b/program/steps/addressbook/delete.inc
index 3bb2ef500..56118583c 100644
--- a/program/steps/addressbook/delete.inc
+++ b/program/steps/addressbook/delete.inc
@@ -68,14 +68,48 @@ foreach ($cids as $source => $cid)
$page = isset($_SESSION['page']) ? $_SESSION['page'] : 1;
// update saved search after data changed
-if (($records = rcmail_search_update(true)) !== false) {
+if (($search_request = $_REQUEST['_search']) && isset($_SESSION['search'][$search_request])) {
+ $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
+ $afields = $RCMAIL->config->get('contactlist_fields');
+ $search = (array)$_SESSION['search'][$search_request];
+ $records = array();
+
+ // Get records from all sources (refresh search)
+ foreach ($search as $s => $set) {
+ $source = $RCMAIL->get_address_book($s);
+
+ // reset page
+ $source->set_page(1);
+ $source->set_pagesize(9999);
+ $source->set_search_set($set);
+
+ // get records
+ $result = $source->list_records($afields);
+
+ if (!$result->count) {
+ unset($search[$s]);
+ continue;
+ }
+
+ while ($row = $result->next()) {
+ $row['sourceid'] = $s;
+ $key = rcube_addressbook::compose_contact_key($row, $sort_col);
+ $records[$key] = $row;
+ }
+ unset($result);
+
+ $search[$s] = $source->get_search_set();
+ }
+
+ $_SESSION['search'][$search_request] = $search;
+
// create resultset object
$count = count($records);
$first = ($page-1) * $PAGE_SIZE;
$result = new rcube_result_set($count, $first);
- $pages = ceil((count($records) + $delcnt) / $PAGE_SIZE);
// get records from the next page to add to the list
+ $pages = ceil((count($records) + $delcnt) / $PAGE_SIZE);
if ($_GET['_from'] != 'show' && $pages > 1 && $page < $pages) {
// sort the records
ksort($records, SORT_LOCALE_STRING);
diff --git a/program/steps/addressbook/export.inc b/program/steps/addressbook/export.inc
index 1e988feab..11c9ca493 100644
--- a/program/steps/addressbook/export.inc
+++ b/program/steps/addressbook/export.inc
@@ -5,7 +5,7 @@
| program/steps/addressbook/export.inc |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2008-2013, The Roundcube Dev Team |
+ | Copyright (C) 2008-2011, The Roundcube Dev Team |
| Copyright (C) 2011, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
@@ -21,46 +21,6 @@
+-----------------------------------------------------------------------+
*/
-
-/**
- * Copy contact record properties into a vcard object
- */
-function prepare_for_export(&$record, $source = null)
-{
- $groups = $source && $source->groups && $source->export_groups ? $source->get_record_groups($record['ID']) : null;
-
- if (empty($record['vcard'])) {
- $vcard = new rcube_vcard();
- if ($source) {
- $vcard->extend_fieldmap($source->vcard_map);
- }
- $vcard->load($record['vcard']);
- $vcard->reset();
-
- foreach ($record as $key => $values) {
- list($field, $section) = explode(':', $key);
- foreach ((array)$values as $value) {
- if (is_array($value) || @strlen($value)) {
- $vcard->set($field, $value, strtoupper($section));
- }
- }
- }
-
- // append group names
- if ($groups) {
- $vcard->set('groups', join(',', $groups), null);
- }
-
- $record['vcard'] = $vcard->export(true);
- }
- // patch categories to alread existing vcard block
- else if ($record['vcard'] && !empty($groups) && !strpos($record['vcard'], 'CATEGORIES:')) {
- $vgroups = 'CATEGORIES:' . rcube_vcard::vcard_quote(join(',', $groups));
- $record['vcard'] = str_replace('END:VCARD', $vgroups . rcube_vcard::$eol . 'END:VCARD', $record['vcard']);
- }
-}
-
-
// Use search result
if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search']]))
{
@@ -80,15 +40,11 @@ if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search
// get records
$result = $source->list_records();
- while ($record = $result->next()) {
- // because vcard_map is per-source we need to create vcard here
- prepare_for_export($record, $source);
-
- $record['sourceid'] = $s;
- $key = rcube_addressbook::compose_contact_key($record, $sort_col);
- $records[$key] = $record;
+ while ($row = $result->next()) {
+ $row['sourceid'] = $s;
+ $key = rcube_addressbook::compose_contact_key($row, $sort_col);
+ $records[$key] = $row;
}
-
unset($result);
}
@@ -100,35 +56,6 @@ if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search
$result = new rcube_result_set($count);
$result->records = array_values($records);
}
-// selected contacts
-else if (!empty($_REQUEST['_cid'])) {
- $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
- $records = array();
-
- // Selected contact IDs (with multi-source support)
- $cids = rcmail_get_cids();
-
- foreach ($cids as $s => $ids) {
- $source = $RCMAIL->get_address_book($s);
- $result = $source->search('ID', $ids, 1, true, true);
-
- while ($record = $result->next()) {
- // because vcard_map is per-source we need to create vcard here
- prepare_for_export($record, $source);
-
- $record['sourceid'] = $s;
- $key = rcube_addressbook::compose_contact_key($record, $sort_col);
- $records[$key] = $record;
- }
- }
-
- ksort($records, SORT_LOCALE_STRING);
-
- // create resultset object
- $count = count($records);
- $result = new rcube_result_set($count);
- $result->records = array_values($records);
-}
// selected directory/group
else {
$CONTACTS = rcmail_contact_source(null, true);
@@ -141,15 +68,33 @@ else {
// send downlaod headers
header('Content-Type: text/x-vcard; charset='.RCMAIL_CHARSET);
-header('Content-Disposition: attachment; filename="contacts.vcf"');
+header('Content-Disposition: attachment; filename="rcube_contacts.vcf"');
while ($result && ($row = $result->next())) {
- prepare_for_export($row, $CONTACTS);
+ // we already have a vcard record
+ if ($row['vcard'] && $row['name']) {
+ // fix folding and end-of-line chars
+ $row['vcard'] = preg_replace('/\r|\n\s+/', '', $row['vcard']);
+ $row['vcard'] = preg_replace('/\n/', rcube_vcard::$eol, $row['vcard']);
+ echo rcube_vcard::rfc2425_fold($row['vcard']) . rcube_vcard::$eol;
+ }
+ // copy values into vcard object
+ else {
+ $vcard = new rcube_vcard();
+ $vcard->extend_fieldmap($CONTACTS->vcard_map);
+ $vcard->load($row['vcard']);
+ $vcard->reset();
+
+ foreach ($row as $key => $values) {
+ list($field, $section) = explode(':', $key);
+ foreach ((array)$values as $value) {
+ if (is_array($value) || @strlen($value))
+ $vcard->set($field, $value, strtoupper($section));
+ }
+ }
- // fix folding and end-of-line chars
- $row['vcard'] = preg_replace('/\r|\n\s+/', '', $row['vcard']);
- $row['vcard'] = preg_replace('/\n/', rcube_vcard::$eol, $row['vcard']);
- echo rcube_vcard::rfc2425_fold($row['vcard']) . rcube_vcard::$eol;
+ echo $vcard->export(true) . rcube_vcard::$eol;
+ }
}
exit;
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index f94d15338..989b7c1c4 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -183,10 +183,11 @@ function rcmail_directory_list($attrib)
$attrib['id'] = 'rcmdirectorylist';
$out = '';
+ $local_id = '0';
$jsdata = array();
$line_templ = html::tag('li', array(
- 'id' => 'rcmli%s', 'class' => '%s', 'noclose' => true),
+ 'id' => 'rcmli%s', 'class' => '%s'),
html::a(array('href' => '%s',
'rel' => '%s',
'onclick' => "return ".JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
@@ -212,7 +213,7 @@ function rcmail_directory_list($attrib)
$name = !empty($source['name']) ? $source['name'] : $id;
$out .= sprintf($line_templ,
- rcube_utils::html_identifier($id, true),
+ html_identifier($id),
$class_name,
Q(rcmail_url(null, array('_source' => $id))),
$source['id'],
@@ -223,11 +224,10 @@ function rcmail_directory_list($attrib)
$groupdata = rcmail_contact_groups($groupdata);
$jsdata = $groupdata['jsdata'];
$out = $groupdata['out'];
- $out .= '</li>';
}
$line_templ = html::tag('li', array(
- 'id' => 'rcmli%s', 'class' => '%s'),
+ 'id' => 'rcmliS%s', 'class' => '%s'),
html::a(array('href' => '#', 'rel' => 'S%s',
'onclick' => "return ".JS_OBJECT_NAME.".command('listsearch', '%s', this)"), '%s'));
@@ -245,17 +245,14 @@ function rcmail_directory_list($attrib)
$class_name .= ' ' . $source['class_name'];
$out .= sprintf($line_templ,
- rcube_utils::html_identifier('S'.$id, true),
+ html_identifier($id),
$class_name,
$id,
$js_id, (!empty($source['name']) ? Q($source['name']) : Q($id)));
}
$OUTPUT->set_env('contactgroups', $jsdata);
- $OUTPUT->set_env('collapsed_abooks', (string)$RCMAIL->config->get('collapsed_abooks',''));
$OUTPUT->add_gui_object('folderlist', $attrib['id']);
- $OUTPUT->include_script('treelist.js');
-
// add some labels to client
$OUTPUT->add_label('deletegroupconfirm', 'groupdeleting', 'addingmember', 'removingmember');
@@ -267,23 +264,19 @@ function rcmail_contact_groups($args)
{
global $RCMAIL;
- $groups_html = '';
$groups = $RCMAIL->get_address_book($args['source'])->list_groups();
if (!empty($groups)) {
$line_templ = html::tag('li', array(
- 'id' => 'rcmli%s', 'class' => 'contactgroup'),
+ 'id' => 'rcmliG%s', 'class' => 'contactgroup'),
html::a(array('href' => '#',
'rel' => '%s:%s',
'onclick' => "return ".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;
- $args['out'] .= html::div('treetoggle ' . ($is_collapsed ? 'collapsed' : 'expanded'), '&nbsp;');
-
+ $jsdata = array();
foreach ($groups as $group) {
- $groups_html .= sprintf($line_templ,
- rcube_utils::html_identifier('G' . $args['source'] . $group['ID'], true),
+ $args['out'] .= sprintf($line_templ,
+ html_identifier($args['source'] . $group['ID']),
$args['source'], $group['ID'],
$args['source'], $group['ID'], Q($group['name'])
);
@@ -293,10 +286,6 @@ function rcmail_contact_groups($args)
}
}
- $args['out'] .= html::tag('ul',
- array('class' => 'groups', 'style' => ($is_collapsed || empty($groups) ? "display:none;" : null)),
- $groups_html);
-
return $args;
}
@@ -307,7 +296,7 @@ function rcmail_contacts_list($attrib)
global $CONTACTS, $OUTPUT;
// define list of cols to be displayed
- $a_show_cols = array('name','action');
+ $a_show_cols = array('name');
// add id to message list table if not specified
if (!strlen($attrib['id']))
@@ -322,7 +311,7 @@ function rcmail_contacts_list($attrib)
$OUTPUT->include_script('list.js');
// add some labels to client
- $OUTPUT->add_label('deletecontactconfirm', 'copyingcontact', 'movingcontact', 'contactdeleting');
+ $OUTPUT->add_label('deletecontactconfirm', 'copyingcontact', 'contactdeleting');
return $out;
}
@@ -336,73 +325,31 @@ function rcmail_js_contacts_list($result, $prefix='')
return;
// define list of cols to be displayed
- $a_show_cols = array('name','action');
+ $a_show_cols = array('name');
while ($row = $result->next()) {
- $row['CID'] = $row['ID'];
- $row['email'] = reset(rcube_addressbook::get_col_values('email', $row, true));
-
- $source_id = $OUTPUT->get_env('source');
$a_row_cols = array();
- $classes = array($row['_type'] ? $row['_type'] : 'person');
+ $classes = array('person'); // org records will follow some day
// build contact ID with source ID
if (isset($row['sourceid'])) {
$row['ID'] = $row['ID'].'-'.$row['sourceid'];
- $source_id = $row['sourceid'];
}
// format each col
foreach ($a_show_cols as $col) {
- $val = '';
- switch ($col) {
- case 'name':
- $val = Q(rcube_addressbook::compose_list_name($row));
- break;
-
- case 'action':
- if ($row['_type'] == 'group') {
- $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']),
- ), '&raquo;');
- }
- else
- $val = '&nbsp;';
- break;
-
- default:
- $val = Q($row[$col]);
- break;
- }
-
- $a_row_cols[$col] = $val;
+ $val = $col == 'name' ? rcube_addressbook::compose_list_name($row) : $row[$col];
+ $a_row_cols[$col] = Q($val);
}
if ($row['readonly'])
$classes[] = 'readonly';
- $OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols, join(' ', $classes), array_intersect_key($row, array('ID'=>1,'readonly'=>1,'_type'=>1,'email'=>1,'name'=>1)));
+ $OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols, join(' ', $classes));
}
}
-function rcmail_contacts_list_title($attrib)
-{
- global $OUTPUT;
-
- $attrib += array('label' => 'contacts', 'id' => 'rcmabooklisttitle', 'tag' => 'span');
- unset($attrib['name']);
-
- $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);
-}
-
-
// similar function as /steps/settings/identities.inc::rcmail_identity_frame()
function rcmail_contact_frame($attrib)
{
@@ -471,7 +418,7 @@ function rcmail_get_type_label($type)
function rcmail_contact_form($form, $record, $attrib = null)
{
- global $RCMAIL;
+ global $RCMAIL, $CONFIG;
// Allow plugins to modify contact form content
$plugin = $RCMAIL->plugins->exec_hook('contact_form', array(
@@ -480,7 +427,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' => $CONFIG['skin_path'] . $attrib['deleteicon'], 'alt' => rcube_label('delete'))) : rcube_label('delete');
unset($attrib['deleteicon']);
$out = '';
@@ -593,13 +540,22 @@ function rcmail_contact_form($form, $record, $attrib = null)
// iterate over possible subtypes and collect values with their subtype
if (is_array($colprop['subtypes'])) {
$values = $subtypes = array();
- foreach (rcube_addressbook::get_col_values($field, $record) as $st => $vals) {
- foreach((array)$vals as $value) {
- $i = count($values);
- $subtypes[$i] = $st;
- $values[$i] = $value;
+ foreach ($colprop['subtypes'] as $i => $st) {
+ $newval = false;
+ if ($record[$field.':'.$st]) {
+ $subtypes[count($values)] = $st;
+ $newval = $record[$field.':'.$st];
+ }
+ else if ($i == 0 && $record[$field]) {
+ $subtypes[count($values)] = $st;
+ $newval = $record[$field];
+ }
+ if ($newval !== false) {
+ if (is_array($newval) && isset($newval[0]))
+ $values = array_merge($values, $newval);
+ else
+ $values[] = $newval;
}
- // TODO: add $st to $select_subtype if missing ?
}
}
else {
@@ -737,42 +693,23 @@ function rcmail_contact_form($form, $record, $attrib = null)
function rcmail_contact_photo($attrib)
{
- global $SOURCE_ID, $CONTACTS, $CONTACT_COLTYPES, $RCMAIL;
+ global $SOURCE_ID, $CONTACTS, $CONTACT_COLTYPES, $RCMAIL, $CONFIG;
if ($result = $CONTACTS->get_result())
$record = $result->first();
- $photo_img = $attrib['placeholder'] ? $RCMAIL->output->get_skin_file($attrib['placeholder']) : 'program/resources/blank.gif';
- if ($record['_type'] == 'group' && $attrib['placeholdergroup'])
- $photo_img = $RCMAIL->output->get_skin_file($attrib['placeholdergroup']);
-
+ $photo_img = $attrib['placeholder'] ? $CONFIG['skin_path'] . $attrib['placeholder'] : 'program/resources/blank.gif';
$RCMAIL->output->set_env('photo_placeholder', $photo_img);
unset($attrib['placeholder']);
$plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'data' => $record['photo']));
- // check if we have photo data from contact form
- if ($GLOBALS['EDIT_RECORD']) {
- $rec = $GLOBALS['EDIT_RECORD'];
- if ($rec['photo'] == '-del-') {
- $record['photo'] = '';
- }
- else if ($_SESSION['contacts']['files'][$rec['photo']]) {
- $record['photo'] = $file_id = $rec['photo'];
- }
- }
-
if ($plugin['url'])
$photo_img = $plugin['url'];
else if (preg_match('!^https?://!i', $record['photo']))
$photo_img = $record['photo'];
- else if ($record['photo']) {
- $url = array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $SOURCE_ID);
- if ($file_id) {
- $url['_photo'] = $ff_value = $file_id;
- }
- $photo_img = $RCMAIL->url($url);
- }
+ else if ($record['photo'])
+ $photo_img = $RCMAIL->url(array('_action' => 'photo', '_cid' => $record['ID'], '_source' => $SOURCE_ID));
else
$ff_value = '-del-'; // will disable delete-photo action
@@ -795,54 +732,6 @@ function rcmail_format_date_col($val)
return format_date($val, $RCMAIL->config->get('date_format', 'Y-m-d'), false);
}
-/**
- * Updates saved search after data changed
- */
-function rcmail_search_update($return = false)
-{
- global $RCMAIL;
-
- if (($search_request = $_REQUEST['_search']) && isset($_SESSION['search'][$search_request])) {
- $search = (array)$_SESSION['search'][$search_request];
- $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
- $afields = $return ? $RCMAIL->config->get('contactlist_fields') : array('name', 'email');
- $records = array();
-
- foreach ($search as $s => $set) {
- $source = $RCMAIL->get_address_book($s);
-
- // reset page
- $source->set_page(1);
- $source->set_pagesize(9999);
- $source->set_search_set($set);
-
- // get records
- $result = $source->list_records($afields);
-
- if (!$result->count) {
- unset($search[$s]);
- continue;
- }
-
- if ($return) {
- while ($row = $result->next()) {
- $row['sourceid'] = $s;
- $key = rcube_addressbook::compose_contact_key($row, $sort_col);
- $records[$key] = $row;
- }
- unset($result);
- }
-
- $search[$s] = $source->get_search_set();
- }
-
- $_SESSION['search'][$search_request] = $search;
-
- return $records;
- }
-
- return false;
-}
/**
* Returns contact ID(s) and source(s) from GET/POST data
@@ -900,7 +789,6 @@ $OUTPUT->add_handlers(array(
'directorylist' => 'rcmail_directory_list',
// 'groupslist' => 'rcmail_contact_groups',
'addresslist' => 'rcmail_contacts_list',
- 'addresslisttitle' => 'rcmail_contacts_list_title',
'addressframe' => 'rcmail_contact_frame',
'recordscountdisplay' => 'rcmail_rowcount_display',
'searchform' => array($OUTPUT, 'search_form')
@@ -909,6 +797,7 @@ $OUTPUT->add_handlers(array(
// register action aliases
$RCMAIL->register_action_map(array(
'add' => 'edit.inc',
+ 'photo' => 'show.inc',
'group-create' => 'groups.inc',
'group-rename' => 'groups.inc',
'group-delete' => 'groups.inc',
diff --git a/program/steps/addressbook/import.inc b/program/steps/addressbook/import.inc
index 60f5d7b61..915aac884 100644
--- a/program/steps/addressbook/import.inc
+++ b/program/steps/addressbook/import.inc
@@ -40,7 +40,6 @@ function rcmail_import_form($attrib)
'multiple' => 'multiple',
));
$form = html::p(null, html::label('rcmimportfile', rcube_label('importfromfile')) . $upload->show());
- $table = new html_table(array('cols' => 2));
// addressbook selector
if (count($writable_books) > 1) {
@@ -49,31 +48,17 @@ 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(null, $select->show($target));
+ $form .= html::p(null, html::label('rcmimporttarget', rcube_label('importtarget'))
+ . $select->show($target));
}
else {
$abook = new html_hiddenfield(array('name' => '_target', 'value' => key($writable_books)));
$form .= $abook->show();
}
- // 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');
-
- $table->add('title', html::label('rcmimportgroups', rcube_label('importgroups')));
- $table->add(null, $select->show(get_input_value('_groups', RCUBE_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)));
-
- $form .= $table->show(array('id' => null) + $attrib);
+ $form .= html::p(null, $check_replace->show(get_input_value('_replace', RCUBE_INPUT_GPC)) .
+ html::label('rcmimportreplace', rcube_label('importreplace')));
$OUTPUT->set_env('writable_source', !empty($writable_books));
$OUTPUT->add_label('selectimportfile','importwait');
@@ -149,50 +134,19 @@ function rcmail_import_buttons($attrib)
}
-/**
- * Returns the matching group id. If group doesn't exist, it'll be created if allowed.
- */
-function rcmail_import_group_id($group_name, $CONTACTS, $create, &$import_groups)
-{
- $group_id = 0;
- foreach ($import_groups as $key => $group) {
- if (strtolower($group['name']) == strtolower($group_name)) {
- $group_id = $group['ID'];
- break;
- }
- }
-
- // create a new group
- if (!$group_id && $create) {
- $new_group = $CONTACTS->create_group($group_name);
- if (!$new_group['ID'])
- $new_group['ID'] = $new_group['id'];
- $import_groups[] = $new_group;
- $group_id = $new_group['ID'];
- }
-
- return $group_id;
-}
-
-
/** The import process **/
$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)get_input_value('_replace', RCUBE_INPUT_GPC);
+ $target = get_input_value('_target', RCUBE_INPUT_GPC);
$vcards = array();
$upload_error = null;
$CONTACTS = $RCMAIL->get_address_book($target, true);
- if (!$CONTACTS->groups) {
- $with_groups = false;
- }
-
if ($CONTACTS->readonly) {
$OUTPUT->show_message('addresswriterror', 'error');
}
@@ -252,10 +206,6 @@ if (is_array($_FILES['_file'])) {
$CONTACTS->delete_all();
}
- if ($with_groups) {
- $import_groups = $CONTACTS->list_groups();
- }
-
foreach ($vcards as $vcard) {
$a_record = $vcard->get_assoc();
@@ -308,15 +258,6 @@ if (is_array($_FILES['_file'])) {
$success = $plugin['result'];
if ($success) {
- // assign groups for this contact (if enabled)
- if ($with_groups && !empty($a_record['groups'])) {
- foreach (explode(',', $a_record['groups'][0]) as $group_name) {
- if ($group_id = rcmail_import_group_id($group_name, $CONTACTS, $with_groups == 1, $import_groups)) {
- $CONTACTS->add_to_group($group_id, $success);
- }
- }
- }
-
$IMPORT_STATS->inserted++;
$IMPORT_STATS->names[] = $a_record['name'] ? $a_record['name'] : $email;
}
diff --git a/program/steps/addressbook/list.inc b/program/steps/addressbook/list.inc
index aca58d279..1bb28658b 100644
--- a/program/steps/addressbook/list.inc
+++ b/program/steps/addressbook/list.inc
@@ -19,20 +19,47 @@
+-----------------------------------------------------------------------+
*/
-if (!empty($_GET['_page']))
- $page = intval($_GET['_page']);
-else
- $page = !empty($_SESSION['page']) ? $_SESSION['page'] : 1;
-
-$_SESSION['page'] = $page;
+$afields = $RCMAIL->config->get('contactlist_fields');
// Use search result
-if (($records = rcmail_search_update(true)) !== false) {
+if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search']]))
+{
+ $search = (array)$_SESSION['search'][$_REQUEST['_search']];
+ $records = array();
+
+ if (!empty($_GET['_page']))
+ $page = intval($_GET['_page']);
+ else
+ $page = isset($_SESSION['page']) ? $_SESSION['page'] : 1;
+
+ $_SESSION['page'] = $page;
+ $sort_col = $RCMAIL->config->get('addressbook_sort_col', 'name');
+
+ // Get records from all sources
+ foreach ($search as $s => $set) {
+ $source = $RCMAIL->get_address_book($s);
+
+ // reset page
+ $source->set_page(1);
+ $source->set_pagesize(9999);
+ $source->set_search_set($set);
+
+ // get records
+ $result = $source->list_records($afields);
+
+ while ($row = $result->next()) {
+ $row['sourceid'] = $s;
+ $key = rcube_addressbook::compose_contact_key($row, $sort_col);
+ $records[$key] = $row;
+ }
+ unset($result);
+ }
+
// sort the records
ksort($records, SORT_LOCALE_STRING);
// create resultset object
- $count = count($records);
+ $count = count($records);
$first = ($page-1) * $PAGE_SIZE;
$result = new rcube_result_set($count, $first);
@@ -45,7 +72,6 @@ if (($records = rcmail_search_update(true)) !== false) {
}
// List selected directory
else {
- $afields = $RCMAIL->config->get('contactlist_fields');
$CONTACTS = rcmail_contact_source(null, true);
// get contacts for this user
@@ -55,11 +81,6 @@ else {
$OUTPUT->show_message('contactsearchonly', 'notice');
$OUTPUT->command('command', 'advanced-search');
}
-
- if ($CONTACTS->group_id) {
- $OUTPUT->command('set_group_prop', array('ID' => $CONTACTS->group_id)
- + array_intersect_key((array)$CONTACTS->get_group($CONTACTS->group_id), array('name'=>1,'email'=>1)));
- }
}
// update message count display
diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc
index 7911802b9..25bfbd48b 100644
--- a/program/steps/addressbook/save.inc
+++ b/program/steps/addressbook/save.inc
@@ -59,34 +59,15 @@ 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);
+ $values = get_input_value($fname, RCUBE_INPUT_POST, true);
$subtypes = get_input_value('_subtype_' . $col, RCUBE_INPUT_POST);
-
foreach ($values as $i => $val) {
- if ($col == 'email') {
- // extract email from full address specification, e.g. "Name" <addr@domain.tld>
- $addr = rcube_mime::decode_address_list($val, 1, false);
- if (!empty($addr) && ($addr = array_pop($addr)) && $addr['mailto']) {
- $val = $addr['mailto'];
- }
- }
-
$subtype = $subtypes[$i] ? ':'.$subtypes[$i] : '';
$a_record[$col.$subtype][] = $val;
}
}
else if (isset($_POST[$fname])) {
$a_record[$col] = get_input_value($fname, RCUBE_INPUT_POST, true);
-
- // normalize the submitted date strings
- if ($colprop['type'] == 'date') {
- if ($a_record[$col] && ($dt = rcube_utils::anytodatetime($a_record[$col]))) {
- $a_record[$col] = $dt->format('Y-m-d');
- }
- else {
- unset($a_record[$col]);
- }
- }
}
}
@@ -94,10 +75,8 @@ foreach ($GLOBALS['CONTACT_COLTYPES'] as $col => $colprop) {
if (empty($a_record['name'])) {
$a_record['name'] = rcube_addressbook::compose_display_name($a_record, true);
// Reset it if equals to email address (from compose_display_name())
- $email = rcube_addressbook::get_col_values('email', $a_record, true);
- if ($a_record['name'] == $email[0]) {
+ if ($a_record['name'] == $a_record['email'][0])
$a_record['name'] = '';
- }
}
// do input checks (delegated to $CONTACTS instance)
@@ -155,11 +134,11 @@ if (!empty($cid))
$record['email'] = reset($CONTACTS->get_col_values('email', $record, true));
$record['name'] = rcube_addressbook::compose_list_name($record);
- foreach (array('name') as $col)
+ foreach (array('name', 'email') as $col)
$a_js_cols[] = Q((string)$record[$col]);
// update the changed col in list
- $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source, $record);
+ $OUTPUT->command('parent.update_contact_row', $cid, $a_js_cols, $newcid, $source);
// show confirmation
$OUTPUT->show_message('successfullysaved', 'confirmation', null, false);
diff --git a/program/steps/addressbook/show.inc b/program/steps/addressbook/show.inc
index efab5e9e5..d583a6d36 100644
--- a/program/steps/addressbook/show.inc
+++ b/program/steps/addressbook/show.inc
@@ -38,6 +38,58 @@ if ($cid && ($record = $CONTACTS->get_record($cid, true))) {
// get address book name (for display)
rcmail_set_sourcename($CONTACTS);
+// return raw photo of the given contact
+if ($RCMAIL->action == 'photo') {
+ // search for contact first
+ if (!$record && ($email = get_input_value('_email', RCUBE_INPUT_GPC))) {
+ foreach ($RCMAIL->get_address_sources() as $s) {
+ $abook = $RCMAIL->get_address_book($s['id']);
+ $result = $abook->search(array('email'), $email, 1, true, true, 'photo');
+ while ($result && ($record = $result->iterate())) {
+ if ($record['photo'])
+ break 2;
+ }
+ }
+ }
+
+ // read the referenced file
+ if (($file_id = get_input_value('_photo', RCUBE_INPUT_GPC)) && ($tempfile = $_SESSION['contacts']['files'][$file_id])) {
+ $tempfile = $RCMAIL->plugins->exec_hook('attachment_display', $tempfile);
+ if ($tempfile['status']) {
+ if ($tempfile['data'])
+ $data = $tempfile['data'];
+ else if ($tempfile['path'])
+ $data = file_get_contents($tempfile['path']);
+ }
+ }
+ else if ($record['photo']) {
+ $data = is_array($record['photo']) ? $record['photo'][0] : $record['photo'];
+ if (!preg_match('![^a-z0-9/=+-]!i', $data))
+ $data = base64_decode($data, true);
+ }
+
+ // let plugins do fancy things with contact photos
+ $plugin = $RCMAIL->plugins->exec_hook('contact_photo', array('record' => $record, 'email' => $email, 'data' => $data));
+
+ // redirect to url provided by a plugin
+ if ($plugin['url'])
+ $RCMAIL->output->redirect($plugin['url']);
+ else
+ $data = $plugin['data'];
+
+ // deliver alt image
+ if (!$data && ($alt_img = get_input_value('_alt', RCUBE_INPUT_GPC)) && is_file($alt_img))
+ $data = file_get_contents($alt_img);
+
+ // cache for one day if requested by email
+ if (!$cid && $email)
+ $RCMAIL->output->future_expire_header(86400);
+
+ header('Content-Type: ' . rc_image_content_type($data));
+ echo $data ? $data : file_get_contents('program/resources/blank.gif');
+ exit;
+}
+
function rcmail_contact_head($attrib)
{
@@ -49,6 +101,8 @@ function rcmail_contact_head($attrib)
return false;
}
+ $microformats = array('name' => 'fn', 'email' => 'email');
+
$form = array(
'head' => array( // section 'head' is magic!
'content' => array(
@@ -123,7 +177,7 @@ function rcmail_contact_details($attrib)
}
-function rcmail_render_email_value($email)
+function rcmail_render_email_value($email, $col)
{
return html::a(array(
'href' => 'mailto:' . $email,
@@ -134,7 +188,7 @@ function rcmail_render_email_value($email)
}
-function rcmail_render_url_value($url)
+function rcmail_render_url_value($url, $col)
{
$prefix = preg_match('!^(http|ftp)s?://!', $url) ? '' : 'http://';
return html::a(array(
@@ -155,8 +209,9 @@ function rcmail_contact_record_groups($contact_id)
return '';
}
- $members = $CONTACTS->get_record_groups($contact_id);
- $table = new html_table(array('cols' => 2, 'cellspacing' => 0, 'border' => 0));
+ $table = new html_table(array('cols' => 2, 'cellspacing' => 0, 'border' => 0));
+
+ $members = $CONTACTS->get_record_groups($contact_id);
$checkbox = new html_checkbox(array('name' => '_gid[]',
'class' => 'groupmember', 'disabled' => $CONTACTS->readonly));
diff --git a/program/steps/addressbook/undo.inc b/program/steps/addressbook/undo.inc
index c23bd1cb6..9c171143c 100644
--- a/program/steps/addressbook/undo.inc
+++ b/program/steps/addressbook/undo.inc
@@ -46,7 +46,30 @@ foreach ((array)$undo['data'] as $source => $cid)
}
// update saved search after data changed
-rcmail_search_update();
+if ($delcnt && ($search_request = $_REQUEST['_search']) && isset($_SESSION['search'][$search_request])) {
+ $search = (array)$_SESSION['search'][$search_request];
+
+ foreach ($search as $s => $set) {
+ $source = $RCMAIL->get_address_book($s);
+
+ // reset page
+ $source->set_page(1);
+ $source->set_pagesize(9999);
+ $source->set_search_set($set);
+
+ // get records
+ $result = $source->list_records(array('name', 'email'));
+
+ if (!$result->count) {
+ unset($search[$s]);
+ continue;
+ }
+
+ $search[$s] = $source->get_search_set();
+ }
+
+ $_SESSION['search'][$search_request] = $search;
+}
$RCMAIL->session->remove('contact_undo');
diff --git a/program/steps/mail/check_recent.inc b/program/steps/mail/check_recent.inc
index 8c0b1ffc0..d3c14a38d 100644
--- a/program/steps/mail/check_recent.inc
+++ b/program/steps/mail/check_recent.inc
@@ -52,12 +52,12 @@ foreach ($a_mailboxes as $mbox_name) {
}
// Get mailbox status
- $status = $RCMAIL->storage->folder_status($mbox_name, $diff);
+ $status = $RCMAIL->storage->folder_status($mbox_name);
if ($status & 1) {
// trigger plugin hook
$RCMAIL->plugins->exec_hook('new_messages',
- array('mailbox' => $mbox_name, 'is_current' => $is_current, 'diff' => $diff));
+ array('mailbox' => $mbox_name, 'is_current' => $is_current));
}
rcmail_send_unread_count($mbox_name, true, null,
@@ -81,10 +81,9 @@ foreach ($a_mailboxes as $mbox_name) {
if (empty($_GET['_list']))
continue;
- // get overall message count; allow caching because rcube_storage::folder_status()
- // did a refresh but only in list mode
+ // get overall message count; allow caching because rcube_storage::folder_status() did a refresh
$list_mode = $RCMAIL->storage->get_threading() ? 'THREADS' : 'ALL';
- $all_count = $RCMAIL->storage->count($mbox_name, $list_mode, $list_mode == 'THREADS', false);
+ $all_count = $RCMAIL->storage->count($mbox_name, $list_mode, false, false);
$page = $RCMAIL->storage->get_page();
$page_size = $RCMAIL->storage->get_pagesize();
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 646d2bcd1..0130b1c55 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -54,12 +54,30 @@ if (!is_array($COMPOSE))
$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' => request2param(RCUBE_INPUT_GET),
'mailbox' => $RCMAIL->storage->get_folder(),
);
$COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
- rcmail_process_compose_params($COMPOSE);
+ // process values like "mailto:foo@bar.com?subject=new+message&cc=another"
+ if ($COMPOSE['param']['to']) {
+ // #1486037: remove "mailto:" prefix
+ $COMPOSE['param']['to'] = preg_replace('/^mailto:/i', '', $COMPOSE['param']['to']);
+ $mailto = explode('?', $COMPOSE['param']['to']);
+ if (count($mailto) > 1) {
+ $COMPOSE['param']['to'] = $mailto[0];
+ parse_str($mailto[1], $query);
+ foreach ($query as $f => $val)
+ $COMPOSE['param'][$f] = $val;
+ }
+ }
+
+ // select folder where to save the sent message
+ $COMPOSE['param']['sent_mbox'] = $RCMAIL->config->get('sent_mbox');
+
+ // pipe compose parameters thru plugins
+ $plugin = $RCMAIL->plugins->exec_hook('message_compose', $COMPOSE);
+ $COMPOSE['param'] = array_merge($COMPOSE['param'], $plugin['param']);
// add attachments listed by message_compose hook
if (is_array($plugin['attachments'])) {
@@ -109,8 +127,7 @@ if (!is_array($COMPOSE))
$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel',
'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage',
'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'uploadingmany',
- 'fileuploaderror', 'sendmessage', 'savenewresponse', 'responsename', 'responsetext', 'save',
- 'savingresponse');
+ 'fileuploaderror', 'sendmessage');
$OUTPUT->set_env('compose_id', $COMPOSE['id']);
$OUTPUT->set_pagetitle(rcube_label('compose'));
@@ -131,11 +148,6 @@ if ($font && !is_array($font)) {
$OUTPUT->set_env('default_font', $font);
}
-// default font size for HTML editor
-if ($font_size = $RCMAIL->config->get('default_font_size')) {
- $OUTPUT->set_env('default_font_size', $font_size);
-}
-
// get reference message and set compose mode
if ($msg_uid = $COMPOSE['param']['draft_uid']) {
$compose_mode = RCUBE_COMPOSE_DRAFT;
@@ -153,8 +165,6 @@ else if ($msg_uid = $COMPOSE['param']['forward_uid']) {
else if ($msg_uid = $COMPOSE['param']['uid']) {
$compose_mode = RCUBE_COMPOSE_EDIT;
}
-
-$COMPOSE['mode'] = $compose_mode;
$OUTPUT->set_env('compose_mode', $compose_mode);
$config_show_sig = $RCMAIL->config->get('show_sig', 1);
@@ -176,18 +186,9 @@ $LINE_LENGTH = $RCMAIL->config->get('line_length', 72);
if (!empty($msg_uid) && empty($COMPOSE['as_attachment']))
{
- $mbox_name = $RCMAIL->storage->get_folder();
-
- // set format before rcube_message construction
- // use the same format as for the message view
- if (isset($_SESSION['msg_formats'][$mbox_name.':'.$msg_uid])) {
- $RCMAIL->config->set('prefer_html', $_SESSION['msg_formats'][$mbox_name.':'.$msg_uid]);
- }
- else {
- $prefer_html = $CONFIG['prefer_html'] || $CONFIG['htmleditor'] || $compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT;
- $RCMAIL->config->set('prefer_html', $prefer_html);
- }
-
+ // similar as in program/steps/mail/show.inc
+ // re-set 'prefer_html' to have possibility to use html part for compose
+ $CONFIG['prefer_html'] = $CONFIG['prefer_html'] || $CONFIG['htmleditor'] || $compose_mode == RCUBE_COMPOSE_DRAFT || $compose_mode == RCUBE_COMPOSE_EDIT;
$MESSAGE = new rcube_message($msg_uid);
// make sure message is marked as read
@@ -243,14 +244,6 @@ if (!empty($msg_uid) && empty($COMPOSE['as_attachment']))
}
else {
$MESSAGE = new stdClass();
-
- // apply mailto: URL parameters
- if (!empty($COMPOSE['param']['in-reply-to'])) {
- $COMPOSE['reply_msgid'] = '<' . $COMPOSE['param']['in-reply-to'] . '>';
- }
- if (!empty($COMPOSE['param']['references'])) {
- $COMPOSE['references'] = $COMPOSE['param']['references'];
- }
}
$MESSAGE->compose = array();
@@ -320,8 +313,8 @@ foreach ($parts as $header) {
else if (!empty($MESSAGE->headers->from))
$fvalue = $MESSAGE->headers->from;
- // Reply to message sent by yourself (#1487074, #1489230)
- if (!empty($ident) && in_array($ident['ident'], array($fvalue, $MESSAGE->headers->from))) {
+ // Reply to message sent by yourself (#1487074)
+ if (!empty($ident) && $fvalue == $ident['ident']) {
$fvalue = $MESSAGE->headers->to;
}
}
@@ -405,58 +398,11 @@ $MESSAGE_BODY = rcmail_prepare_message_body();
/****** compose mode functions ********/
-// process compose request parameters
-function rcmail_process_compose_params(&$COMPOSE)
-{
- if ($COMPOSE['param']['to']) {
- $mailto = explode('?', $COMPOSE['param']['to'], 2);
-
- // #1486037: remove "mailto:" prefix
- $COMPOSE['param']['to'] = preg_replace('/^mailto:/i', '', $mailto[0]);
-
- // Supported case-insensitive tokens in mailto URL
- $url_tokens = array('to', 'cc', 'bcc', 'reply-to', 'in-reply-to', 'references', 'subject', 'body');
-
- if (!empty($mailto[1])) {
- parse_str($mailto[1], $query);
- foreach ($query as $f => $val) {
- if (($key = array_search(strtolower($f), $url_tokens)) !== false) {
- $f = $url_tokens[$key];
- }
-
- // merge mailto: addresses with addresses from 'to' parameter
- if ($f == 'to' && !empty($COMPOSE['param']['to'])) {
- $to_addresses = rcube_mime::decode_address_list($COMPOSE['param']['to'], null, true, null, true);
- $add_addresses = rcube_mime::decode_address_list($val, null, true);
- foreach ($add_addresses as $addr) {
- if (!in_array($addr['mailto'], $to_addresses)) {
- $to_addresses[] = $addr['mailto'];
- $COMPOSE['param']['to'] = (!empty($to_addresses) ? ', ' : '') . $addr['string'];
- }
- }
- }
- else {
- $COMPOSE['param'][$f] = $val;
- }
- }
- }
- }
-
- $RCMAIL = rcmail::get_instance();
-
- // select folder where to save the sent message
- $COMPOSE['param']['sent_mbox'] = $RCMAIL->config->get('sent_mbox');
-
- // pipe compose parameters thru plugins
- $plugin = $RCMAIL->plugins->exec_hook('message_compose', $COMPOSE);
- $COMPOSE['param'] = array_merge($COMPOSE['param'], $plugin['param']);
-}
-
function rcmail_compose_headers($attrib)
{
global $MESSAGE;
- list($form_start,) = get_form_tags($attrib);
+ list($form_start, $form_end) = get_form_tags($attrib);
$out = '';
$part = strtolower($attrib['part']);
@@ -520,7 +466,7 @@ function rcmail_compose_headers($attrib)
function rcmail_compose_header_from($attrib)
{
- global $MESSAGE, $OUTPUT, $RCMAIL, $COMPOSE, $compose_mode;
+ global $MESSAGE, $OUTPUT, $RCMAIL, $compose_mode;
// pass the following attributes to the form class
$field_attrib = array('name' => '_from');
@@ -531,7 +477,6 @@ function rcmail_compose_header_from($attrib)
if (count($MESSAGE->identities))
{
$a_signatures = array();
- $identities = array();
$separator = intval($RCMAIL->config->get('reply_mode')) > 0
&& ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD) ? '---' : '-- ';
@@ -569,21 +514,12 @@ function rcmail_compose_header_from($attrib)
$a_signatures[$identity_id]['text'] = $text;
$a_signatures[$identity_id]['html'] = $html;
}
-
- // add bcc and reply-to
- if (!empty($sql_arr['reply-to'])) {
- $identities[$identity_id]['replyto'] = $sql_arr['reply-to'];
- }
- if (!empty($sql_arr['bcc'])) {
- $identities[$identity_id]['bcc'] = $sql_arr['bcc'];
- }
}
$out = $select_from->show($MESSAGE->compose['from']);
// add signatures to client
$OUTPUT->set_env('signatures', $a_signatures);
- $OUTPUT->set_env('identities', $identities);
}
// no identities, display text input field
else {
@@ -627,13 +563,13 @@ function rcmail_compose_editor_mode()
function rcmail_message_is_html()
{
- global $RCMAIL, $MESSAGE;
- return $RCMAIL->config->get('prefer_html') && ($MESSAGE instanceof rcube_message) && $MESSAGE->has_html_part(true);
+ global $MESSAGE;
+ return ($MESSAGE instanceof rcube_message) && $MESSAGE->has_html_part(false, true);
}
function rcmail_prepare_message_body()
{
- global $RCMAIL, $MESSAGE, $COMPOSE, $compose_mode, $HTML_MODE;
+ global $RCMAIL, $MESSAGE, $COMPOSE, $compose_mode, $LINE_LENGTH, $HTML_MODE;
// use posted message body
if (!empty($_POST['_message'])) {
@@ -760,11 +696,6 @@ function rcmail_compose_part_body($part, $isHtml = false)
$body = rcmail_remove_signature($body);
}
}
-
- if ($part->ctype_parameters['format'] == 'flowed') {
- $body = rcube_mime::unfold_flowed($body);
- }
-
// add HTML formatting
$body = rcmail_plain_body($body);
if ($body) {
@@ -785,6 +716,9 @@ function rcmail_compose_part_body($part, $isHtml = false)
$txt = new rcube_html2text($body, false, true, $len);
$body = $txt->get_text();
}
+ else if ($part->ctype_secondary == 'enriched') {
+ $body = rcube_enriched::to_html($body);
+ }
else {
if ($part->ctype_secondary == 'plain' && $part->ctype_parameters['format'] == 'flowed') {
$body = rcube_mime::unfold_flowed($body);
@@ -804,7 +738,7 @@ function rcmail_compose_part_body($part, $isHtml = false)
function rcmail_compose_body($attrib)
{
- global $RCMAIL, $CONFIG, $OUTPUT, $MESSAGE, $compose_mode, $HTML_MODE, $MESSAGE_BODY;
+ global $RCMAIL, $CONFIG, $OUTPUT, $MESSAGE, $compose_mode, $LINE_LENGTH, $HTML_MODE, $MESSAGE_BODY;
list($form_start, $form_end) = get_form_tags($attrib);
unset($attrib['form']);
@@ -853,14 +787,29 @@ function rcmail_compose_body($attrib)
// Set language list
if (!empty($CONFIG['enable_spellcheck'])) {
- $engine = new rcube_spellchecker();
+ $engine = $RCMAIL->config->get('spellcheck_engine','googie');
$dictionary = (bool) $RCMAIL->config->get('spellcheck_dictionary');
- $spellcheck_langs = $engine->languages();
- $lang = $_SESSION['language'];
+ $spellcheck_langs = (array) $RCMAIL->config->get('spellcheck_languages',
+ array('da'=>'Dansk', 'de'=>'Deutsch', 'en' => 'English', 'es'=>'Español',
+ 'fr'=>'Français', 'it'=>'Italiano', 'nl'=>'Nederlands', 'pl'=>'Polski',
+ 'pt'=>'Português', 'ru'=>'РуÑÑкий', 'fi'=>'Suomi', 'sv'=>'Svenska'));
+
+ // googie works only with two-letter codes
+ if ($engine == 'googie') {
+ $lang = strtolower(substr($_SESSION['language'], 0, 2));
+
+ $spellcheck_langs_googie = array();
+ foreach ($spellcheck_langs as $key => $name)
+ $spellcheck_langs_googie[strtolower(substr($key,0,2))] = $name;
+ $spellcheck_langs = $spellcheck_langs_googie;
+ }
+ else {
+ $lang = $_SESSION['language'];
- // if not found in the list, try with two-letter code
- if (!$spellcheck_langs[$lang])
- $lang = strtolower(substr($lang, 0, 2));
+ // if not found in the list, try with two-letter code
+ if (!$spellcheck_langs[$lang])
+ $lang = strtolower(substr($lang, 0, 2));
+ }
if (!$spellcheck_langs[$lang])
$lang = 'en';
@@ -973,7 +922,8 @@ 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 = format_date($MESSAGE->headers->date, $RCMAIL->config->get('date_long'));
+ $charset = $RCMAIL->output->get_charset();
if (!$bodyIsHtml) {
$prefix = "\n\n\n-------- " . rcube_label('originalmessage') . " --------\n";
@@ -1025,7 +975,7 @@ function rcmail_create_forward_body($body, $bodyIsHtml)
function rcmail_create_draft_body($body, $bodyIsHtml)
{
- global $MESSAGE, $COMPOSE;
+ global $MESSAGE, $OUTPUT, $COMPOSE;
/**
* add attachments
@@ -1081,14 +1031,7 @@ function rcmail_write_compose_attachments(&$message, $bodyIsHtml)
{
global $RCMAIL, $COMPOSE, $compose_mode;
- $loaded_attachments = array();
- foreach ((array)$COMPOSE['attachments'] as $attachment) {
- $loaded_attachments[$attachment['name'] . $attachment['mimetype']] = $attachment;
- }
-
- $cid_map = array();
- $messages = array();
-
+ $cid_map = $messages = array();
foreach ((array)$message->mime_parts as $pid => $part)
{
if ($part->disposition == 'attachment' || ($part->disposition == 'inline' && $bodyIsHtml) || $part->filename) {
@@ -1124,8 +1067,7 @@ function rcmail_write_compose_attachments(&$message, $bodyIsHtml)
}
}
- if (($attachment = $loaded_attachments[rcmail_attachment_name($part) . $part->mimetype])
- || ($attachment = rcmail_save_attachment($message, $pid))) {
+ if ($attachment = rcmail_save_attachment($message, $pid)) {
$COMPOSE['attachments'][$attachment['id']] = $attachment;
if ($bodyIsHtml && ($part->content_id || $part->content_location)) {
$url = sprintf('%s&_id=%s&_action=display-attachment&_file=rcmfile%s',
@@ -1178,7 +1120,7 @@ function rcmail_write_forward_attachments()
$names = array();
$loaded_attachments = array();
- foreach ((array)$COMPOSE['attachments'] as $attachment) {
+ foreach ((array)$COMPOSE['attachments'] as $id => $attachment) {
$loaded_attachments[$attachment['name'] . $attachment['mimetype']] = $attachment;
}
@@ -1467,7 +1409,7 @@ function rcmail_compose_attachment_form($attrib)
$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(null, rcmail_compose_attachment_field(array('size' => $attrib['attachmentfieldsize']))) .
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()")) . ' ' .
@@ -1481,7 +1423,7 @@ function rcmail_compose_attachment_form($attrib)
}
-function rcmail_compose_attachment_field($attrib = array())
+function rcmail_compose_attachment_field($attrib)
{
$attrib['type'] = 'file';
$attrib['name'] = '_attachments[]';
@@ -1599,7 +1541,7 @@ function rcmail_editor_selector($attrib)
$select->add(Q(rcube_label('plaintoggle')), 'plain');
return $select->show($useHtml ? 'html' : 'plain');
-/*
+
foreach ($choices as $value => $text) {
$attrib['id'] = '_' . $value;
$attrib['value'] = $value;
@@ -1607,7 +1549,6 @@ function rcmail_editor_selector($attrib)
}
return $selector;
-*/
}
@@ -1701,7 +1642,7 @@ function rcmail_addressbook_list($attrib = array())
$class_name .= ' ' . $source['class_name'];
$out .= sprintf($line_templ,
- html_identifier($id,true),
+ html_identifier($id),
$class_name,
$source['id'],
$js_id, (!empty($source['name']) ? $source['name'] : $id));
@@ -1743,38 +1684,6 @@ function compose_file_drop_area($attrib)
}
-/**
- *
- */
-function rcmail_compose_responses_list($attrib)
-{
- global $RCMAIL, $OUTPUT;
-
- $attrib += array('id' => 'rcmresponseslist', 'tagname' => 'ul', 'cols' => 1);
-
- $jsenv = array();
- $list = new html_table($attrib);
- foreach ($RCMAIL->get_compose_responses(true) as $response) {
- $key = $response['key'];
- $item = html::a(array(
- 'href '=> '#'.urlencode($response['name']),
- 'class' => rtrim('insertresponse ' . $attrib['itemclass']),
- 'unselectable' => 'on',
- 'rel' => $key,
- ), Q($response['name']));
-
- $jsenv[$key] = $response;
- $list->add(array(), $item);
- }
-
- // set client env
- $OUTPUT->set_env('textresponses', $jsenv);
- $OUTPUT->add_gui_object('responseslist', $attrib['id']);
-
- return $list->show();
-}
-
-
// register UI objects
$OUTPUT->add_handlers(array(
'composeheaders' => 'rcmail_compose_headers',
@@ -1791,7 +1700,6 @@ $OUTPUT->add_handlers(array(
'storetarget' => 'rcmail_store_target_selection',
'addressbooks' => 'rcmail_addressbook_list',
'addresslist' => 'rcmail_contacts_list',
- 'responseslist' => 'rcmail_compose_responses_list',
));
$OUTPUT->send('compose');
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 78a977b82..2938e91e1 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -89,15 +89,13 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
}
$threading = (bool) $RCMAIL->storage->get_threading();
- $delimiter = $RCMAIL->storage->get_hierarchy_delimiter();
// set current mailbox and some other vars in client environment
$OUTPUT->set_env('mailbox', $mbox_name);
$OUTPUT->set_env('pagesize', $RCMAIL->storage->get_pagesize());
- $OUTPUT->set_env('delimiter', $delimiter);
+ $OUTPUT->set_env('delimiter', $RCMAIL->storage->get_hierarchy_delimiter());
$OUTPUT->set_env('threading', $threading);
$OUTPUT->set_env('threads', $threading || $RCMAIL->storage->get_capability('THREAD'));
- $OUTPUT->set_env('reply_all_mode', (int) $RCMAIL->config->get('reply_all_mode'));
$OUTPUT->set_env('preview_pane_mark_read', $RCMAIL->config->get('preview_pane_mark_read', 0));
if ($RCMAIL->storage->get_capability('QUOTA')) {
$OUTPUT->set_env('quota', true);
@@ -121,48 +119,11 @@ if (empty($RCMAIL->action) || $RCMAIL->action == 'list') {
if (!$OUTPUT->ajax_call)
$OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash',
'movingmessage', 'copyingmessage', 'deletingmessage', 'markingmessage',
- 'copy', 'move', 'quota', 'replyall', 'replylist', 'importwait');
+ 'copy', 'move', 'quota');
- $pagetitle = $RCMAIL->localize_foldername($RCMAIL->storage->mod_folder($mbox_name), true);
- $pagetitle = str_replace($delimiter, " \xC2\xBB ", $pagetitle);
-
- $OUTPUT->set_pagetitle($pagetitle);
+ $OUTPUT->set_pagetitle(rcmail_localize_foldername($RCMAIL->storage->mod_folder($mbox_name)));
}
-// register UI objects
-$OUTPUT->add_handlers(array(
- 'mailboxlist' => 'rcmail_mailbox_list',
- 'messages' => 'rcmail_message_list',
- 'messagecountdisplay' => 'rcmail_messagecount_display',
- 'quotadisplay' => 'rcmail_quota_display',
- 'mailboxname' => 'rcmail_mailbox_name_display',
- 'messageheaders' => 'rcmail_message_headers',
- 'messagefullheaders' => 'rcmail_message_full_headers',
- 'messagebody' => 'rcmail_message_body',
- 'messagecontentframe' => 'rcmail_messagecontent_frame',
- 'messageimportform' => 'rcmail_message_import_form',
- 'searchfilter' => 'rcmail_search_filter',
- 'searchform' => array($OUTPUT, 'search_form'),
-));
-
-// register action aliases
-$RCMAIL->register_action_map(array(
- 'refresh' => 'check_recent.inc',
- 'preview' => 'show.inc',
- 'print' => 'show.inc',
- 'move' => 'move_del.inc',
- 'delete' => 'move_del.inc',
- 'send' => 'sendmail.inc',
- 'expunge' => 'folders.inc',
- 'purge' => 'folders.inc',
- 'remove-attachment' => 'attachments.inc',
- 'display-attachment' => 'attachments.inc',
- 'upload' => 'attachments.inc',
- 'group-expand' => 'autocomplete.inc',
-));
-
-
-
/**
* Returns 'to' if current folder is configured Sent or Drafts
* or their subfolders, otherwise returns 'from'.
@@ -178,9 +139,7 @@ function rcmail_message_list_smart_column_name()
$sent_mbox = $RCMAIL->config->get('sent_mbox');
$drafts_mbox = $RCMAIL->config->get('drafts_mbox');
- if ((strpos($mbox.$delim, $sent_mbox.$delim) === 0 || strpos($mbox.$delim, $drafts_mbox.$delim) === 0)
- && strtoupper($mbox) != 'INBOX'
- ) {
+ if (strpos($mbox.$delim, $sent_mbox.$delim) === 0 || strpos($mbox.$delim, $drafts_mbox.$delim) === 0) {
return 'to';
}
@@ -261,7 +220,7 @@ function rcmail_message_list($attrib)
if (!in_array('threads', $a_show_cols))
array_unshift($a_show_cols, 'threads');
- $_SESSION['skin_path'] = $CONFIG['skin_path'];
+ $skin_path = $_SESSION['skin_path'] = $CONFIG['skin_path'];
// set client env
$OUTPUT->add_gui_object('messagelist', $attrib['id']);
@@ -273,13 +232,15 @@ function rcmail_message_list($attrib)
$OUTPUT->include_script('list.js');
- $table = new html_table($attrib);
- if (!$attrib['noheader']) {
- foreach (rcmail_message_list_head($attrib, $a_show_cols) as $cell)
- $table->add_header(array('class' => $cell['className'], 'id' => $cell['id']), $cell['html']);
- }
+ $thead = '';
+ foreach (rcmail_message_list_head($attrib, $a_show_cols) as $cell)
+ $thead .= html::tag('td', array('class' => $cell['className'], 'id' => $cell['id']), $cell['html']);
- return $table->show();
+ return html::tag('table',
+ $attrib,
+ html::tag('thead', null, html::tag('tr', null, $thead)) .
+ html::tag('tbody', null, ''),
+ array('style', 'class', 'id', 'cellpadding', 'cellspacing', 'border', 'summary'));
}
@@ -326,7 +287,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
$thead = $head_replace ? rcmail_message_list_head($_SESSION['list_attrib'], $a_show_cols) : NULL;
// get name of smart From/To column in folder context
- if (array_search('fromto', $a_show_cols) !== false) {
+ if (($f = array_search('fromto', $a_show_cols)) !== false) {
$smart_col = rcmail_message_list_smart_column_name();
}
@@ -342,7 +303,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE, $a_show_cols=null
}
// loop through message headers
- foreach ($a_headers as $header) {
+ foreach ($a_headers as $n => $header) {
if (empty($header))
continue;
@@ -416,6 +377,7 @@ function rcmail_message_list_head($attrib, $a_show_cols)
global $RCMAIL;
$skin_path = $_SESSION['skin_path'];
+ $image_tag = html::img(array('src' => "%s%s", 'alt' => "%s"));
// check to see if we have some settings for sorting
$sort_col = $_SESSION['sort_col'];
@@ -451,7 +413,7 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$cells = array();
// get name of smart From/To column in folder context
- if (array_search('fromto', $a_show_cols) !== false) {
+ if (($f = array_search('fromto', $a_show_cols)) !== false) {
$smart_col = rcmail_message_list_smart_column_name();
}
@@ -642,8 +604,6 @@ function rcmail_check_safe(&$message)
$message->set_safe(true);
}
}
-
- $RCMAIL->plugins->exec_hook('message_check_safe', array('message' => $message));
break;
case 2: // always
@@ -743,10 +703,7 @@ function rcmail_print_body($part, $p = array())
+ $p + array('safe' => false, 'plain' => false, 'inline_html' => true));
// convert html to text/plain
- if ($data['plain'] && ($data['type'] == 'html' || $data['type'] == 'enriched')) {
- if ($data['type'] == 'enriched') {
- $data['body'] = rcube_enriched::to_html($data['body']);
- }
+ if ($data['type'] == 'html' && $data['plain']) {
$txt = new rcube_html2text($data['body'], false, true);
$body = $txt->get_text();
$part->ctype_secondary = 'plain';
@@ -772,13 +729,8 @@ function rcmail_print_body($part, $p = array())
unset($data['body']);
// plaintext postprocessing
- if ($part->ctype_secondary == 'plain') {
- if ($part->ctype_secondary == 'plain' && $part->ctype_parameters['format'] == 'flowed') {
- $body = rcube_mime::unfold_flowed($body);
- }
-
- $body = rcmail_plain_body($body);
- }
+ if ($part->ctype_secondary == 'plain')
+ $body = rcmail_plain_body($body, $part->ctype_parameters['format'] == 'flowed');
// allow post-processing of the message body
$data = $RCMAIL->plugins->exec_hook('message_part_after',
@@ -792,16 +744,16 @@ function rcmail_print_body($part, $p = array())
* Handle links and citation marks in plain text message
*
* @param string Plain text string
+ * @param boolean Text uses format=flowed
*
* @return string Formatted HTML string
*/
-function rcmail_plain_body($body)
+function rcmail_plain_body($body, $flowed=false)
{
global $RCMAIL;
// make links and email-addresses clickable
- $attribs = array('link_attribs' => array('rel' => 'noreferrer', 'target' => '_blank'));
- $replacer = new rcmail_string_replacer($attribs);
+ $replacer = new rcmail_string_replacer;
// search for patterns like links and e-mail addresses and replace with tokens
$body = $replacer->replace($body);
@@ -827,10 +779,48 @@ function rcmail_plain_body($body)
str_repeat('</blockquote>', $quote_level - $q))) . $body[$n];
$last = $n;
}
+ else if ($flowed) {
+ // previous line is flowed
+ if (isset($body[$last]) && $body[$n]
+ && $body[$last][strlen($body[$last])-1] == ' ') {
+ // merge lines
+ $body[$last] .= $body[$n];
+ unset($body[$n]);
+ }
+ else {
+ $last = $n;
+ }
+ }
}
else {
$q = 0;
- if ($quote_level > 0)
+ if ($flowed) {
+ // sig separator - line is fixed
+ if ($body[$n] == '-- ') {
+ $last = $last_sig = $n;
+ }
+ else {
+ // remove space-stuffing
+ if ($body[$n][0] == ' ')
+ $body[$n] = substr($body[$n], 1);
+
+ // previous line is flowed?
+ if (isset($body[$last]) && $body[$n]
+ && $last !== $last_sig
+ && $body[$last][strlen($body[$last])-1] == ' '
+ ) {
+ $body[$last] .= $body[$n];
+ unset($body[$n]);
+ }
+ else {
+ $last = $n;
+ }
+ }
+ if ($quote_level > 0)
+ $body[$last] = $replacer->get_replacement($replacer->add(
+ str_repeat('</blockquote>', $quote_level))) . $body[$last];
+ }
+ else if ($quote_level > 0)
$body[$n] = $replacer->get_replacement($replacer->add(
str_repeat('</blockquote>', $quote_level))) . $body[$n];
}
@@ -901,7 +891,7 @@ function rcmail_washtml_callback($tagname, $attrib, $content, $washtml)
*/
function rcmail_message_headers($attrib, $headers=null)
{
- global $MESSAGE, $PRINT_MODE, $RCMAIL;
+ global $OUTPUT, $MESSAGE, $PRINT_MODE, $RCMAIL;
static $sa_attrib;
// keep header table attrib
@@ -1086,7 +1076,7 @@ function rcmail_message_body($attrib)
$header_attrib[$regs[1]] = $value;
if (!empty($MESSAGE->parts)) {
- foreach ($MESSAGE->parts as $part) {
+ foreach ($MESSAGE->parts as $i => $part) {
if ($part->type == 'headers') {
$out .= html::div('message-partheaders', rcmail_message_headers(sizeof($header_attrib) ? $header_attrib : null, $part->headers));
}
@@ -1190,9 +1180,10 @@ function rcmail_message_body($attrib)
$show_link = array(
'href' => $MESSAGE->get_part_url($attach_prop->mime_id, false),
'onclick' => sprintf(
- 'return %s.command(\'load-attachment\',\'%s\',this)',
+ 'return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)',
JS_OBJECT_NAME,
- $attach_prop->mime_id)
+ $attach_prop->mime_id,
+ $mimetype)
);
$out .= html::p('image-attachment',
html::a($show_link + array('class' => 'image-link', 'style' => sprintf('width:%dpx', $thumbnail_size)),
@@ -1378,15 +1369,18 @@ function rcmail_html4inline($body, $container_id, $body_id='', &$attributes=null
/**
- * parse link (a, link, area) attributes and set correct target
+ * parse link attributes and set correct target
*/
function rcmail_alter_html_link($matches)
{
global $RCMAIL;
- $tag = strtolower($matches[1]);
+ // Support unicode/punycode in top-level domain part
+ $EMAIL_PATTERN = '([a-z0-9][a-z0-9\-\.\+\_]*@[^&@"\'.][^@&"\']*\\.([^\\x00-\\x40\\x5b-\\x60\\x7b-\\x7f]{2,}|xn--[a-z0-9]{2,}))';
+
+ $tag = $matches[1];
$attrib = parse_attrib_string($matches[2]);
- $end = '>';
+ $end = '>';
// Remove non-printable characters in URL (#1487805)
if ($attrib['href'])
@@ -1398,36 +1392,12 @@ function rcmail_alter_html_link($matches)
$attrib['href'] = $RCMAIL->url(array('task' => 'utils', 'action' => 'modcss', 'u' => $tempurl, 'c' => $GLOBALS['rcmail_html_container_id']));
$end = ' />';
}
- else if (preg_match('/^mailto:(.+)/i', $attrib['href'], $mailto)) {
- list($mailto, $url) = explode('?', html_entity_decode($mailto[1], ENT_QUOTES, 'UTF-8'), 2);
-
- $url = urldecode($url);
- $mailto = urldecode($mailto);
- $addresses = rcube_mime::decode_address_list($mailto, null, true);
- $mailto = array();
-
- // do sanity checks on recipients
- foreach ($addresses as $idx => $addr) {
- if (rcube_utils::check_email($addr['mailto'], false)) {
- $addresses[$idx] = $addr['mailto'];
- $mailto[] = $addr['string'];
- }
- else {
- unset($addresses[$idx]);
- }
- }
-
- if (!empty($addresses)) {
- $attrib['href'] = 'mailto:' . implode(',', $addresses);
- $attrib['onclick'] = sprintf(
- "return %s.command('compose','%s',this)",
- JS_OBJECT_NAME,
- JQ(implode(',', $mailto) . ($url ? "?$url" : '')));
- }
- else {
- $attrib['href'] = '#NOP';
- $attrib['onclick'] = '';
- }
+ else if (preg_match('/^mailto:'.$EMAIL_PATTERN.'(\?[^"\'>]+)?/i', $attrib['href'], $mailto)) {
+ $attrib['href'] = $mailto[0];
+ $attrib['onclick'] = sprintf(
+ "return %s.command('compose','%s',this)",
+ JS_OBJECT_NAME,
+ JQ($mailto[1].$mailto[3]));
}
else if (empty($attrib['href']) && !$attrib['name']) {
$attrib['href'] = './#NOP';
@@ -1437,11 +1407,6 @@ function rcmail_alter_html_link($matches)
$attrib['target'] = '_blank';
}
- // Better security by adding rel="noreferrer" (#1484686)
- if (($tag == 'a' || $tag == 'area') && $attrib['href'] && $attrib['href'][0] != '#') {
- $attrib['rel'] = 'noreferrer';
- }
-
// allowed attributes for a|link|area tags
$allow = array('href','name','target','onclick','id','class','style','title',
'rel','type','media','alt','coords','nohref','hreflang','shape');
@@ -1465,8 +1430,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$c = count($a_parts);
$j = 0;
$out = '';
- $allvalues = array();
- $show_email = $RCMAIL->config->get('message_show_email');
+ $allvalues = array();
if ($addicon && !isset($_SESSION['writeable_abook'])) {
$_SESSION['writeable_abook'] = $RCMAIL->get_address_sources(true) ? true : false;
@@ -1480,7 +1444,7 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$valid = 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, '@')) {
+ if ($name && $valid && $name != $mailto && strpos($name, '@')) {
$name = '';
}
@@ -1492,25 +1456,19 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
$mailto = rcube_idn_to_utf8($mailto);
if ($PRINT_MODE) {
- $address = sprintf('%s &lt;%s&gt;', Q($name), Q($mailto));
+ $out .= ($out ? ', ' : '') . sprintf('%s &lt;%s&gt;', Q($name), $mailto);
+ // for printing we display all addresses
+ continue;
}
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))),
- 'class' => "rcmContactAddress",
- );
-
- if ($show_email && $name && $mailto) {
- $content = Q($name ? sprintf('%s <%s>', $name, $mailto) : $mailto);
- }
- else {
- $content = Q($name ? $name : $mailto);
- $attrs['title'] = $mailto;
- }
-
- $address = html::a($attrs, $content);
+ $address = html::a(array(
+ 'href' => 'mailto:'.$mailto,
+ 'onclick' => sprintf("return %s.command('compose','%s',this)", JS_OBJECT_NAME, JQ($mailto)),
+ 'title' => $mailto,
+ 'class' => "rcmContactAddress",
+ ),
+ Q($name ? $name : $mailto));
}
else {
$address = html::span(array('title' => $mailto, 'class' => "rcmContactAddress"),
@@ -1556,15 +1514,6 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
}
if ($moreadrs) {
- if ($PRINT_MODE) {
- $out .= ' ' . html::a(array(
- 'href' => '#more',
- 'class' => 'morelink',
- 'onclick' => '$(this).hide().next().show()',
- ), Q(rcube_label(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs))))) .
- html::span(array('style' => 'display:none'), join(', ', $allvalues));
- }
- else {
$out .= ' ' . html::a(array(
'href' => '#more',
'class' => 'morelink',
@@ -1574,7 +1523,6 @@ function rcmail_address_string($input, $max=null, $linked=false, $addicon=null,
JQ($title))
),
Q(rcube_label(array('name' => 'andnmore', 'vars' => array('nr' => $moreadrs)))));
- }
}
return $out;
@@ -1647,6 +1595,45 @@ function rcmail_draftinfo_decode($str)
}
+function rcmail_message_part_controls($attrib)
+{
+ global $MESSAGE, $RCMAIL;
+
+ $part = asciiwords(get_input_value('_part', RCUBE_INPUT_GPC));
+ if (!is_object($MESSAGE) || !is_array($MESSAGE->parts) || !($_GET['_uid'] && $_GET['_part']) || !$MESSAGE->mime_parts[$part])
+ return '';
+
+ $part = $MESSAGE->mime_parts[$part];
+ $table = new html_table(array('cols' => 3));
+
+ $filename = rcmail_attachment_name($part);
+
+ if (!empty($filename)) {
+ $table->add('title', Q(rcube_label('filename')));
+ $table->add('header', Q($filename));
+ $table->add('download-link', html::a(array('href' => './?'.str_replace('_frame=', '_download=', $_SERVER['QUERY_STRING'])), Q(rcube_label('download'))));
+ }
+
+ $table->add('title', Q(rcube_label('filesize')));
+ $table->add('header', Q($RCMAIL->message_part_size($part)));
+
+ return $table->show($attrib);
+}
+
+
+function rcmail_message_part_frame($attrib)
+{
+ global $MESSAGE;
+
+ $part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
+ $ctype_primary = strtolower($part->ctype_primary);
+
+ $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_embed=' : '_preload='), $_SERVER['QUERY_STRING']);
+
+ return html::iframe($attrib);
+}
+
+
/**
* clear message composing settings
*/
@@ -1734,7 +1721,8 @@ function rcmail_send_mdn($message, &$smtp_error)
$sent = rcmail_deliver_message($compose, $identity['email'], $mailto, $smtp_error, $body_file, $options);
- if ($sent) {
+ if ($sent)
+ {
$RCMAIL->storage->set_flag($message->uid, 'MDNSENT');
return true;
}
@@ -1776,34 +1764,28 @@ function rcmail_identity_select($MESSAGE, $identities = null, $compose_mode = 'r
}
}
- // decode From: address
- $from = rcube_mime::decode_address_list($MESSAGE->headers->from, null, true, $MESSAGE->headers->charset);
- $from = array_shift($from);
- $from['mailto'] = strtolower($from['mailto']);
-
- $from_idx = null;
- $found_idx = array('to' => null, 'from' => null);
- $check_from = in_array($compose_mode, array('draft', 'edit', 'reply'));
+ $from_idx = null;
+ $found_idx = null;
+ $default_identity = 0; // default identity is always first on the list
// Select identity
foreach ($identities as $idx => $ident) {
- // use From: header when in edit/draft or reply-to-self
- if ($check_from && $from['mailto'] == strtolower($ident['email_ascii'])) {
- // remember first matching identity address
- if ($found_idx['from'] === null) {
- $found_idx['from'] = $idx;
- }
- // match identity name
- if ($from['name'] && $ident['name'] && $from['name'] == $ident['name']) {
+ // use From header
+ if (in_array($compose_mode, array('draft', 'edit'))) {
+ if ($MESSAGE->headers->from == $ident['ident']) {
$from_idx = $idx;
break;
}
}
- // use replied/forwarded message recipients
+ // reply to yourself
+ else if ($compose_mode == 'reply' && $MESSAGE->headers->from == $ident['ident']) {
+ $from_idx = $idx;
+ break;
+ }
+ // use replied message recipients
else if (($found = array_search(strtolower($ident['email_ascii']), $a_recipients)) !== false) {
- // remember first matching identity address
- if ($found_idx['to'] === null) {
- $found_idx['to'] = $idx;
+ if ($found_idx === null) {
+ $found_idx = $idx;
}
// match identity name
if ($a_names[$found] && $ident['name'] && $a_names[$found] == $ident['name']) {
@@ -1813,10 +1795,9 @@ function rcmail_identity_select($MESSAGE, $identities = null, $compose_mode = 'r
}
}
- // If matching by name+address didn't find any matches,
- // get first found identity (address) if any
+ // If matching by name+address doesn't found any matches, get first found address (identity)
if ($from_idx === null) {
- $from_idx = $found_idx['from'] !== null ? $found_idx['from'] : $found_idx['to'];
+ $from_idx = $found_idx;
}
// Try Return-Path
@@ -1841,14 +1822,27 @@ function rcmail_identity_select($MESSAGE, $identities = null, $compose_mode = 'r
}
}
- // See identity_select plugin for example usage of this hook
- $plugin = rcmail::get_instance()->plugins->exec_hook('identity_select',
- array('message' => $MESSAGE, 'identities' => $identities, 'selected' => $from_idx));
+ // Fallback using Delivered-To
+ if ($from_idx === null && ($delivered_to = $MESSAGE->headers->others['delivered-to'])) {
+ foreach ($identities as $idx => $ident) {
+ if (in_array($ident['email_ascii'], (array)$delivered_to)) {
+ $from_idx = $idx;
+ break;
+ }
+ }
+ }
- $selected = $plugin['selected'];
+ // Fallback using Envelope-To
+ if ($from_idx === null && ($envelope_to = $MESSAGE->headers->others['envelope-to'])) {
+ foreach ($identities as $idx => $ident) {
+ if (in_array($ident['email_ascii'], (array)$envelope_to)) {
+ $from_idx = $idx;
+ break;
+ }
+ }
+ }
- // default identity is always first on the list
- return $identities[$selected !== null ? $selected : 0];
+ return $identities[$from_idx !== null ? $from_idx : $default_identity];
}
// Fixes some content-type names
@@ -1905,15 +1899,13 @@ function rcmail_search_filter($attrib)
$attrib['onchange'] = JS_OBJECT_NAME.'.filter_mailbox(this.value)';
- // Content-Type values of messages with attachments
- // the same as in app.js:add_message_row()
- $ctypes = array('application/', 'multipart/m', 'multipart/signed', 'multipart/report');
-
- // Build search string of "with attachment" filter
- $attachment = str_repeat(' OR', count($ctypes)-1);
- foreach ($ctypes as $type) {
- $attachment .= ' HEADER Content-Type ' . rcube_imap_generic::escape($type);
- }
+ /*
+ RFC3501 (6.4.4): 'ALL', 'RECENT',
+ 'ANSWERED', 'DELETED', 'FLAGGED', 'SEEN',
+ 'UNANSWERED', 'UNDELETED', 'UNFLAGGED', 'UNSEEN',
+ 'NEW', // = (RECENT UNSEEN)
+ 'OLD' // = NOT RECENT
+ */
$select_filter = new html_select($attrib);
$select_filter->add(rcube_label('all'), 'ALL');
@@ -1924,7 +1916,6 @@ function rcmail_search_filter($attrib)
$select_filter->add(rcube_label('deleted'), 'DELETED');
$select_filter->add(rcube_label('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');
@@ -1954,36 +1945,35 @@ function rcmail_message_error($uid=null)
$RCMAIL->output->send('messageerror');
}
-function rcmail_message_import_form($attrib = array())
-{
- global $OUTPUT;
-
- // set defaults
- $attrib += array('id' => 'rcmImportform', 'buttons' => 'yes');
-
- // Get filesize, enable upload progress bar
- $max_filesize = rcube_upload_init();
-
- $button = new html_inputfield(array('type' => 'button'));
- $fileinput = new html_inputfield(array(
- 'type' => 'file',
- 'name' => '_file[]',
- 'multiple' => 'multiple',
- 'accept' => ".eml, .mbox, message/rfc822, text/*",
- ));
-
- $out = html::div($attrib,
- $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)"))
- ) : '')
- )
- );
+// register UI objects
+$OUTPUT->add_handlers(array(
+ 'mailboxlist' => 'rcmail_mailbox_list',
+ 'messages' => 'rcmail_message_list',
+ 'messagecountdisplay' => 'rcmail_messagecount_display',
+ 'quotadisplay' => 'rcmail_quota_display',
+ 'mailboxname' => 'rcmail_mailbox_name_display',
+ 'messageheaders' => 'rcmail_message_headers',
+ 'messagefullheaders' => 'rcmail_message_full_headers',
+ 'messagebody' => 'rcmail_message_body',
+ 'messagecontentframe' => 'rcmail_messagecontent_frame',
+ 'messagepartframe' => 'rcmail_message_part_frame',
+ 'messagepartcontrols' => 'rcmail_message_part_controls',
+ 'searchfilter' => 'rcmail_search_filter',
+ 'searchform' => array($OUTPUT, 'search_form'),
+));
- $OUTPUT->add_gui_object('importform', $attrib['id'].'Frm');
- return $out;
-}
+// register action aliases
+$RCMAIL->register_action_map(array(
+ 'refresh' => 'check_recent.inc',
+ 'preview' => 'show.inc',
+ 'print' => 'show.inc',
+ 'moveto' => 'move_del.inc',
+ 'delete' => 'move_del.inc',
+ 'send' => 'sendmail.inc',
+ 'expunge' => 'folders.inc',
+ 'purge' => 'folders.inc',
+ 'remove-attachment' => 'attachments.inc',
+ 'display-attachment' => 'attachments.inc',
+ 'upload' => 'attachments.inc',
+ 'group-expand' => 'autocomplete.inc',
+));
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index ae48307e3..372757720 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -38,34 +38,19 @@ ob_end_clean();
// similar code as in program/steps/mail/show.inc
if (!empty($_GET['_uid'])) {
- $uid = get_input_value('_uid', RCUBE_INPUT_GET);
$RCMAIL->config->set('prefer_html', true);
- $MESSAGE = new rcube_message($uid);
+ $MESSAGE = new rcube_message(get_input_value('_uid', RCUBE_INPUT_GET));
}
// check connection status
check_storage_status();
-$part_id = get_input_value('_part', RCUBE_INPUT_GPC);
-
// show part page
if (!empty($_GET['_frame'])) {
- if ($part_id && ($part = $MESSAGE->mime_parts[$part_id])) {
- $filename = rcmail_attachment_name($part);
- $OUTPUT->set_pagetitle($filename);
+ if (($part_id = get_input_value('_part', RCUBE_INPUT_GPC)) && ($part = $MESSAGE->mime_parts[$part_id])) {
+ $OUTPUT->set_pagetitle(rcmail_attachment_name($part));
}
- // register UI objects
- $OUTPUT->add_handlers(array(
- 'messagepartframe' => 'rcmail_message_part_frame',
- 'messagepartcontrols' => 'rcmail_message_part_controls',
- ));
-
- $OUTPUT->set_env('mailbox', $RCMAIL->storage->get_folder());
- $OUTPUT->set_env('uid', $uid);
- $OUTPUT->set_env('part', $part_id);
- $OUTPUT->set_env('filename', $filename);
-
$OUTPUT->send('messagepart');
exit;
}
@@ -84,18 +69,17 @@ else if ($_GET['_thumb']) {
// render thumbnail image if not done yet
if (!is_file($cache_file)) {
- if ($fp = fopen(($orig_name = $cache_basename . '.orig.' . $ext), 'w')) {
- $MESSAGE->get_part_content($part->mime_id, $fp);
- fclose($fp);
-
- $image = new rcube_image($orig_name);
- if ($imgtype = $image->resize($thumbnail_size, $cache_file, true)) {
- $mimetype = 'image/' . $imgtype;
- unlink($orig_name);
- }
- else {
- rename($orig_name, $cache_file);
- }
+ $fp = fopen(($orig_name = $cache_basename . '.orig.' . $ext), 'w');
+ $MESSAGE->get_part_content($part->mime_id, $fp);
+ fclose($fp);
+
+ $image = new rcube_image($orig_name);
+ if ($imgtype = $image->resize($thumbnail_size, $cache_file, true)) {
+ $mimetype = 'image/' . $imgtype;
+ unlink($orig_name);
+ }
+ else {
+ rename($orig_name, $cache_file);
}
}
@@ -108,8 +92,9 @@ else if ($_GET['_thumb']) {
exit;
}
-else if (strlen($part_id)) {
- if ($part = $MESSAGE->mime_parts[$part_id]) {
+else if (strlen($pid = get_input_value('_part', RCUBE_INPUT_GET))) {
+
+ if ($part = $MESSAGE->mime_parts[$pid]) {
$mimetype = rcmail_fix_mimetype($part->mimetype);
// allow post-processing of the message body
@@ -135,7 +120,7 @@ else if (strlen($part_id)) {
$valid = $file_extension && in_array($file_extension, (array)$extensions) || !empty($_REQUEST['_mimeclass']);
// 2. detect the real mimetype of the attachment part and compare it with the stated mimetype and filename extension
- if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || stripos($mimetype, 'text/') === 0) {
+ if ($valid || !$file_extension || $mimetype == 'application/octet-stream' || $mimetype == 'text/plain') {
if ($part->body) // part body is already loaded
$body = $part->body;
else if ($part->size && $part->size < 1024*1024) // load the entire part if it's small enough
@@ -190,8 +175,8 @@ else if (strlen($part_id)) {
rcube_label(array(
'name' => 'attachmentvalidationerror',
'vars' => array(
- 'expected' => $mimetype . ($file_extension ? " (.$file_extension)" : ''),
- 'detected' => $real_mimetype . ($extensions[0] ? " (.$extensions[0])" : ''),
+ 'expected' => $mimetype . ($file_extension ? "(.$file_extension)" : ''),
+ 'detected' => $real_mimetype . ($extensions[0] ? "(.$extensions[0])" : ''),
)
)) .
html::p(array('class' => 'rcmail-inline-buttons'),
@@ -234,6 +219,7 @@ else if (strlen($part_id)) {
header("Content-Transfer-Encoding: binary");
}
+
// deliver part content
if ($ctype_primary == 'text' && $ctype_secondary == 'html' && empty($plugin['download'])) {
// Check if we have enough memory to handle the message in it
@@ -358,8 +344,7 @@ else if (strlen($part_id)) {
header("Content-Length: $size");
}
- // 8th argument disables re-formatting of text/* parts (#1489267)
- $sent = $RCMAIL->storage->get_message_part($MESSAGE->uid, $part->mime_id, $part, true, null, false, 0, false);
+ $sent = $RCMAIL->storage->get_message_part($MESSAGE->uid, $part->mime_id, $part, true);
}
}
@@ -393,9 +378,7 @@ else {
header('HTTP/1.1 404 Not Found');
exit;
-/**
- * Handles nicely storage connection errors
- */
+
function check_storage_status()
{
$error = rcmail::get_instance()->storage->get_error_code();
@@ -427,49 +410,3 @@ function check_storage_status()
exit;
}
}
-
-/**
- * Attachment properties table
- */
-function rcmail_message_part_controls($attrib)
-{
- global $MESSAGE, $RCMAIL;
-
- $part = asciiwords(get_input_value('_part', RCUBE_INPUT_GPC));
- if (!is_object($MESSAGE) || !is_array($MESSAGE->parts)
- || !($_GET['_uid'] && $_GET['_part']) || !$MESSAGE->mime_parts[$part]
- ) {
- return '';
- }
-
- $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', Q(rcube_label('type')).':');
- $table->add('header', Q($part->mimetype));
-
- $table->add('title', Q(rcube_label('size')).':');
- $table->add('header', Q($RCMAIL->message_part_size($part)));
-
- return $table->show($attrib);
-}
-
-/**
- * Attachment preview frame
- */
-function rcmail_message_part_frame($attrib)
-{
- global $MESSAGE, $RCMAIL;
-
- $part = $MESSAGE->mime_parts[asciiwords(get_input_value('_part', RCUBE_INPUT_GPC))];
- $ctype_primary = strtolower($part->ctype_primary);
-
- $attrib['src'] = './?' . str_replace('_frame=', ($ctype_primary=='text' ? '_embed=' : '_preload='), $_SERVER['QUERY_STRING']);
-
- $RCMAIL->output->add_gui_object('messagepartframe', $attrib['id']);
-
- return html::iframe($attrib);
-}
diff --git a/program/steps/mail/list.inc b/program/steps/mail/list.inc
index a2380131a..b8c3ee021 100644
--- a/program/steps/mail/list.inc
+++ b/program/steps/mail/list.inc
@@ -97,6 +97,7 @@ $OUTPUT->set_env('threading', $threading);
$OUTPUT->set_env('current_page', $count ? $RCMAIL->storage->get_page() : 1);
$OUTPUT->set_env('exists', $RCMAIL->storage->count($mbox_name, 'EXISTS'));
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($count), $mbox_name);
+$OUTPUT->command('set_mailboxname', rcmail_get_mailbox_name_text());
// add message rows
rcmail_js_message_list($a_headers, FALSE, $cols);
diff --git a/program/steps/mail/list_contacts.inc b/program/steps/mail/list_contacts.inc
index dab146431..479c21422 100644
--- a/program/steps/mail/list_contacts.inc
+++ b/program/steps/mail/list_contacts.inc
@@ -73,11 +73,8 @@ else {
$CONTACTS->set_pagesize($page_size);
$CONTACTS->set_page($list_page);
- if ($group_id = get_input_value('_gid', RCUBE_INPUT_GPC)) {
- $CONTACTS->set_group($group_id);
- }
// list groups of this source (on page one)
- else if ($CONTACTS->groups && $CONTACTS->list_page == 1) {
+ if ($CONTACTS->groups && $CONTACTS->list_page == 1) {
foreach ($CONTACTS->list_groups() as $group) {
$CONTACTS->reset();
$CONTACTS->set_group($group['ID']);
@@ -92,19 +89,6 @@ else {
'contactgroup' => html::span(array('title' => $email), Q($group['name']))), 'group');
}
}
- // make virtual groups clickable to list their members
- else if ($group_prop['virtual']) {
- $row_id = 'G'.$group['ID'];
- $OUTPUT->command('add_contact_row', $row_id, array(
- '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;'))),
- 'group',
- array('ID' => $group['ID'], 'name' => $group['name'], 'virtual' => true));
- }
// show group with count
else if (($result = $CONTACTS->count()) && $result->count) {
$row_id = 'E'.$group['ID'];
@@ -113,12 +97,10 @@ else {
'contactgroup' => Q($group['name'] . ' (' . intval($result->count) . ')')), 'group');
}
}
-
- $CONTACTS->reset();
- $CONTACTS->set_group(0);
}
// get contacts for this user
+ $CONTACTS->set_group(0);
$result = $CONTACTS->list_records($afields);
}
}
@@ -136,13 +118,10 @@ else if (!empty($result) && $result->count > 0) {
foreach ($emails as $i => $email) {
$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) .
+ 'contact' => html::span(array('title' => $email), Q($name ? $name : $email) .
($name && count($emails) > 1 ? '&nbsp;' . html::span('email', Q($email)) : '')
- )), $classname);
+ )), 'person');
}
}
}
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index f15cd2460..37157b71f 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -29,11 +29,10 @@ $old_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL');
$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))));
+if ($RCMAIL->action=='moveto' && !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);
- $trash = $RCMAIL->config->get('trash_mbox');
+ $mbox = get_input_value('_mbox', RCUBE_INPUT_POST, true);
$moved = $RCMAIL->storage->move_message($uids, $target, $mbox);
@@ -41,7 +40,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');
$OUTPUT->send();
exit;
}
@@ -126,7 +125,7 @@ else
rcmail_set_unseen_count($mbox, $unseen_count);
}
- if ($RCMAIL->action == 'move' && strlen($target)) {
+ if ($RCMAIL->action == 'moveto' && strlen($target)) {
rcmail_send_unread_count($target, true);
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 52b02ecff..c1c257127 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -123,7 +123,7 @@ function rcmail_fix_emoticon_paths($mime_message)
// sanitize image name so resulting attachment doesn't leave images dir
$image_name = preg_replace('/[^a-zA-Z0-9_\.\-]/i', '', $image_name);
- $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
+ $img_file = '/usr/share/tinymce/www/plugins/emotions/img/' . $image_name;
if (! in_array($image_name, $included_images)) {
// add the image to the MIME message
@@ -391,6 +391,10 @@ if (!empty($mailcc)) {
if (!empty($mailbcc)) {
$headers['Bcc'] = $mailbcc;
}
+if (!empty($identity_arr['bcc']) && stripos($headers['Bcc'], $identity_arr['bcc']) === false) {
+ $headers['Bcc'] = ($headers['Bcc'] ? $headers['Bcc'].', ' : '') . $identity_arr['bcc'];
+ $RECIPIENT_COUNT ++;
+}
if (($max_recipients = (int) $RCMAIL->config->get('max_recipients')) > 0) {
if ($RECIPIENT_COUNT > $max_recipients) {
@@ -408,12 +412,18 @@ if (!empty($identity_arr['organization'])) {
if (!empty($_POST['_replyto'])) {
$headers['Reply-To'] = rcmail_email_input_format(get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset));
}
+else if (!empty($identity_arr['reply-to'])) {
+ $headers['Reply-To'] = rcmail_email_input_format($identity_arr['reply-to'], false, true);
+}
if (!empty($headers['Reply-To'])) {
$headers['Mail-Reply-To'] = $headers['Reply-To'];
}
if (!empty($_POST['_followupto'])) {
$headers['Mail-Followup-To'] = rcmail_email_input_format(get_input_value('_followupto', RCUBE_INPUT_POST, TRUE, $message_charset));
}
+if (!empty($COMPOSE['reply_msgid'])) {
+ $headers['In-Reply-To'] = $COMPOSE['reply_msgid'];
+}
// remember reply/forward UIDs in special headers
if (!empty($COMPOSE['reply_uid']) && $savedraft) {
@@ -423,9 +433,6 @@ else if (!empty($COMPOSE['forward_uid']) && $savedraft) {
$headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => $COMPOSE['forward_uid']);
}
-if (!empty($COMPOSE['reply_msgid'])) {
- $headers['In-Reply-To'] = $COMPOSE['reply_msgid'];
-}
if (!empty($COMPOSE['references'])) {
$headers['References'] = $COMPOSE['references'];
}
@@ -473,19 +480,12 @@ $isHtml = (bool) get_input_value('_is_html', RCUBE_INPUT_POST);
$message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset);
if ($isHtml) {
- $bstyle = array();
-
- if ($font_size = $RCMAIL->config->get('default_font_size')) {
- $bstyle[] = 'font-size: ' . $font_size;
- }
- if ($font_family = $RCMAIL->config->get('default_font')) {
- $bstyle[] = 'font-family: ' . rcmail::font_defs($font_family);
- }
+ $font = rcube_fontdefs($RCMAIL->config->get('default_font'));
+ $bstyle = $font && is_string($font) ? " style='font-family: $font'" : '';
// append doctype and html/body wrappers
- $message_body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">'
- . "\r\n<html><body" . (!empty($bstyle) ? " style='" . implode($bstyle, '; ') . "'" : '') . ">\r\n"
- . $message_body;
+ $message_body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">' .
+ "\r\n<html><body$bstyle>\r\n" . $message_body;
}
if (!$savedraft) {
@@ -615,39 +615,22 @@ else {
}
// add stored attachments, if any
-if (is_array($COMPOSE['attachments'])) {
+if (is_array($COMPOSE['attachments']))
+{
foreach ($COMPOSE['attachments'] as $id => $attachment) {
// This hook retrieves the attachment contents from the file storage backend
$attachment = $RCMAIL->plugins->exec_hook('attachment_get', $attachment);
- if ($isHtml) {
- $dispurl = '/\ssrc\s*=\s*[\'"]*\S+display-attachment\S+file=rcmfile' . preg_quote($attachment['id']) . '[\s\'"]*/';
- $message_body = $MAIL_MIME->getHTMLBody();
- $is_inline = preg_match($dispurl, $message_body);
- }
- else {
- $is_inline = false;
- }
-
- // inline image
- if ($is_inline) {
- // Mail_Mime does not support many inline attachments with the same name (#1489406)
- // we'll generate cid: urls here to workaround this
- $cid = preg_replace('/[^0-9a-zA-Z]/', '', uniqid(time(), true));
- if (preg_match('#(@[0-9a-zA-Z\-\.]+)#', $from, $matches)) {
- $cid .= $matches[1];
- } else {
- $cid .= '@localhost';
- }
-
- $message_body = preg_replace($dispurl, ' src="cid:' . $cid . '" ', $message_body);
-
+ $dispurl = '/\ssrc\s*=\s*[\'"]*\S+display-attachment\S+file=rcmfile' . preg_quote($attachment['id']) . '[\s\'"]*/';
+ $message_body = $MAIL_MIME->getHTMLBody();
+ if ($isHtml && (preg_match($dispurl, $message_body) > 0)) {
+ $message_body = preg_replace($dispurl, ' src="'.$attachment['name'].'" ', $message_body);
$MAIL_MIME->setHTMLBody($message_body);
if ($attachment['data'])
- $MAIL_MIME->addHTMLImage($attachment['data'], $attachment['mimetype'], $attachment['name'], false, $cid);
+ $MAIL_MIME->addHTMLImage($attachment['data'], $attachment['mimetype'], $attachment['name'], false);
else
- $MAIL_MIME->addHTMLImage($attachment['path'], $attachment['mimetype'], $attachment['name'], true, $cid);
+ $MAIL_MIME->addHTMLImage($attachment['path'], $attachment['mimetype'], $attachment['name'], true);
}
else {
$ctype = str_replace('image/pjpeg', 'image/jpeg', $attachment['mimetype']); // #1484914
@@ -776,7 +759,7 @@ if ($store_target) {
if (PEAR::isError($msg))
raise_error(array('code' => 650, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
+ 'file' => __FILE__, 'line' => __LINE__,
'message' => "Could not create message: ".$msg->getMessage()),
TRUE, FALSE);
else {
@@ -847,24 +830,15 @@ if ($savedraft) {
// start the auto-save timer again
$OUTPUT->command('auto_save_start');
+
+ $OUTPUT->send('iframe');
}
else {
- $folders = array();
-
- if ($COMPOSE['mode'] == 'reply' || $COMPOSE['mode'] == 'forward')
- $folders[] = $COMPOSE['mailbox'];
-
rcmail_compose_cleanup($COMPOSE_ID);
if ($store_folder && !$saved)
- $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'), $folders);
- else {
- if ($store_folder) {
- $folders[] = $store_target;
- }
-
- $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $folders);
- }
+ $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'));
+ else
+ $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $store_target);
+ $OUTPUT->send('iframe');
}
-
-$OUTPUT->send('iframe');
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 9d85f9c8f..c1726bbdf 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -19,7 +19,7 @@
+-----------------------------------------------------------------------+
*/
-$PRINT_MODE = $RCMAIL->action == 'print' ? TRUE : FALSE;
+$PRINT_MODE = $RCMAIL->action=='print' ? TRUE : FALSE;
// Read browser capabilities and store them in session
if ($caps = get_input_value('_caps', RCUBE_INPUT_GET)) {
@@ -31,21 +31,8 @@ if ($caps = get_input_value('_caps', RCUBE_INPUT_GET)) {
$_SESSION['browser_caps'] = $browser_caps;
}
-$uid = get_input_value('_uid', RCUBE_INPUT_GET);
-$mbox_name = $RCMAIL->storage->get_folder();
-
// similar code as in program/steps/mail/get.inc
-if ($uid) {
- // set message format (need to be done before rcube_message construction)
- if (!empty($_GET['_format'])) {
- $prefer_html = $_GET['_format'] == 'html';
- $RCMAIL->config->set('prefer_html', $prefer_html);
- $_SESSION['msg_formats'][$mbox_name.':'.$uid] = $prefer_html;
- }
- else if (isset($_SESSION['msg_formats'][$mbox_name.':'.$uid])) {
- $RCMAIL->config->set('prefer_html', $_SESSION['msg_formats'][$mbox_name.':'.$uid]);
- }
-
+if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) {
$MESSAGE = new rcube_message($uid);
// if message not found (wrong UID)...
@@ -53,6 +40,7 @@ if ($uid) {
rcmail_message_error($uid);
}
+ $mbox_name = $RCMAIL->storage->get_folder();
// show images?
rcmail_check_safe($MESSAGE);
@@ -116,12 +104,7 @@ if ($uid) {
if (!$OUTPUT->ajax_call)
$OUTPUT->add_label('checkingmail', 'deletemessage', 'movemessagetotrash',
- 'movingmessage', 'deletingmessage', 'markingmessage', 'replyall', 'replylist');
-
- $prefer_html = $RCMAIL->config->get('prefer_html');
- if ($MESSAGE->has_html_part()) {
- $OUTPUT->set_env('optional_format', $prefer_html ? 'text' : 'html');
- }
+ 'movingmessage', 'deletingmessage', 'markingmessage');
// check for unset disposition notification
if ($MESSAGE->headers->mdn_to
@@ -164,7 +147,6 @@ function rcmail_message_attachments($attrib)
global $PRINT_MODE, $MESSAGE, $RCMAIL;
$out = $ol = '';
- $attachments = array();
if (sizeof($MESSAGE->attachments)) {
foreach ($MESSAGE->attachments as $attach_prop) {
@@ -183,24 +165,22 @@ function rcmail_message_attachments($attrib)
$title = '';
}
- $mimetype = rcmail_fix_mimetype($attach_prop->mimetype);
- $class = rcmail_filetype2classname($mimetype, $filename);
- $id = 'attach' . $attach_prop->mime_id;
- $link = html::a(array(
+ $ol .= html::tag('li', rcmail_filetype2classname($attach_prop->mimetype, $filename),
+ 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),
- 'onmouseover' => $title ? '' : 'rcube_webmail.long_subject_title_ex(this, 0)',
- 'title' => Q($title),
- ), Q($filename));
- $ol .= html::tag('li', array('class' => $class, 'id' => $id), $link);
-
- $attachments[$attach_prop->mime_id] = $mimetype;
+ 'onclick' => sprintf(
+ 'return %s.command(\'load-attachment\',{part:\'%s\', mimetype:\'%s\'},this)',
+ JS_OBJECT_NAME,
+ $attach_prop->mime_id,
+ rcmail_fix_mimetype($attach_prop->mimetype)),
+ 'onmouseover' => $title ? '' : 'rcube_webmail.long_subject_title_ex(this, 0)',
+ 'title' => Q($title),
+ ),
+ Q($filename)));
}
}
$out = html::tag('ul', $attrib, $ol, html::$common_attrib);
- $RCMAIL->output->set_env('attachments', $attachments);
}
return $out;
@@ -229,11 +209,11 @@ function rcmail_remote_objects_msg()
function rcmail_message_buttons()
{
- global $RCMAIL;
+ global $MESSAGE, $RCMAIL, $CONFIG;
$mbox = $RCMAIL->storage->get_folder();
$delim = $RCMAIL->storage->get_hierarchy_delimiter();
- $dbox = $RCMAIL->config->get('drafts_mbox');
+ $dbox = $CONFIG['drafts_mbox'];
// the message is not a draft
if ($mbox != $dbox && strpos($mbox, $dbox.$delim) !== 0) {
@@ -310,9 +290,9 @@ $OUTPUT->add_handlers(array(
));
-if ($RCMAIL->action == 'print' && $OUTPUT->template_exists('messageprint'))
+if ($RCMAIL->action=='print' && $OUTPUT->template_exists('messageprint'))
$OUTPUT->send('messageprint', false);
-else if ($RCMAIL->action == 'preview' && $OUTPUT->template_exists('messagepreview'))
+else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview'))
$OUTPUT->send('messagepreview', false);
else
$OUTPUT->send('message', false);
diff --git a/program/steps/settings/about.inc b/program/steps/settings/about.inc
index 0fdefddda..9b13402f1 100644
--- a/program/steps/settings/about.inc
+++ b/program/steps/settings/about.inc
@@ -40,28 +40,17 @@ function rcmail_plugins_list($attrib)
$attrib['id'] = 'rcmpluginlist';
$plugins = array_filter((array) $RCMAIL->config->get('plugins'));
- $plugin_info = array();
+ $plugins = array_flip($plugins);
- foreach ($plugins as $name) {
- if ($info = $RCMAIL->plugins->get_info($name))
- $plugin_info[$name] = $info;
+ foreach ($plugins as $name => $plugin) {
+ rcube_plugin_data($name, $plugins);
}
- // load info from required plugins, too
- foreach ($plugin_info as $name => $info) {
- if (is_array($info['required']) && !empty($info['required'])) {
- foreach ($info['required'] as $req_name) {
- if (!isset($plugin_info[$req_name]) && ($req_info = $RCMAIL->plugins->get_info($req_name)))
- $plugin_info[$req_name] = $req_info;
- }
- }
- }
-
- if (empty($plugin_info)) {
+ if (empty($plugins)) {
return '';
}
- ksort($plugin_info, SORT_LOCALE_STRING);
+ ksort($plugins, SORT_LOCALE_STRING);
$table = new html_table($attrib);
@@ -71,8 +60,8 @@ function rcmail_plugins_list($attrib)
$table->add_header('license', rcube_label('license'));
$table->add_header('source', rcube_label('source'));
- foreach ($plugin_info as $name => $data) {
- $uri = $data['src_uri'] ? $data['src_uri'] : $data['uri'];
+ foreach ($plugins as $name => $data) {
+ $uri = $data['srcuri'] ? $data['srcuri'] : $data['uri'];
if ($uri && stripos($uri, 'http') !== 0) {
$uri = 'http://' . $uri;
}
@@ -89,6 +78,48 @@ function rcmail_plugins_list($attrib)
return $table->show();
}
+function rcube_plugin_data($name, &$plugins = array())
+{
+ // XPaths of plugin metadata elements
+ $metadata = array(
+ 'name' => 'string(//rc:package/rc:name)',
+ 'version' => 'string(//rc:package/rc:version/rc:release)',
+ 'license' => 'string(//rc:package/rc:license)',
+ 'license_uri' => 'string(//rc:package/rc:license/@uri)',
+ 'srcuri' => 'string(//rc:package/rc:srcuri)',
+ 'uri' => 'string(//rc:package/rc:uri)',
+ );
+
+ $package = INSTALL_PATH . "/plugins/$name/package.xml";
+ if (file_exists($package) && ($file = file_get_contents($package))) {
+ $doc = new DOMDocument();
+ $doc->loadXML($file);
+ $xpath = new DOMXPath($doc);
+ $xpath->registerNamespace('rc', "http://pear.php.net/dtd/package-2.0");
+ $data = array();
+
+ foreach ($metadata as $key => $path) {
+ $data[$key] = $xpath->evaluate($path);
+ }
+
+ $plugins[$name] = $data;
+
+ // dependent required plugins (can be used, but not included in config)
+ $deps = $xpath->evaluate('//rc:package/rc:dependencies/rc:required/rc:package/rc:name');
+ $cnt = $deps->length;
+
+ for ($i=0; $i<$cnt; $i++) {
+ $dn = $deps->item($i)->nodeValue;
+ if (!array_key_exists($dn, $plugins)) {
+ rcube_plugin_data($dn, $plugins);
+ }
+ }
+ }
+ else {
+ unset($plugins[$name]);
+ }
+}
+
$OUTPUT->set_pagetitle(rcube_label('about'));
diff --git a/program/steps/settings/edit_folder.inc b/program/steps/settings/edit_folder.inc
index 7f2a10ebc..fdb38e602 100644
--- a/program/steps/settings/edit_folder.inc
+++ b/program/steps/settings/edit_folder.inc
@@ -28,11 +28,11 @@ 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 = trim(get_input_value('_mbox', RCUBE_INPUT_GPC, true));
$mbox_imap = rcube_charset_convert($mbox, RCMAIL_CHARSET, 'UTF7-IMAP');
// predefined path for new folder
- $parent = get_input_value('_path', RCUBE_INPUT_GPC, true);
+ $parent = trim(get_input_value('_path', RCUBE_INPUT_GPC, true));
$parent_imap = rcube_charset_convert($parent, RCMAIL_CHARSET, 'UTF7-IMAP');
$threading_supported = $storage->get_capability('THREAD');
@@ -264,12 +264,9 @@ function rcmail_folder_form($attrib)
$content = rcmail_get_form_part($tab, $attrib);
}
- if ($content && sizeof($form) > 1) {
+ if ($content) {
$out .= html::tag('fieldset', null, html::tag('legend', null, Q($tab['name'])) . $content) ."\n";
}
- else {
- $out .= $content ."\n";
- }
}
$out .= "\n$form_end";
diff --git a/program/steps/settings/edit_prefs.inc b/program/steps/settings/edit_prefs.inc
index adf6b1623..971ed60b6 100644
--- a/program/steps/settings/edit_prefs.inc
+++ b/program/steps/settings/edit_prefs.inc
@@ -40,21 +40,24 @@ function rcmail_user_prefs_form($attrib)
$out = $form_start;
- foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $class => $block) {
+ foreach ($SECTIONS[$CURR_SECTION]['blocks'] as $idx => $block) {
if (!empty($block['options'])) {
$table = new html_table(array('cols' => 2));
foreach ($block['options'] as $option) {
+ if ($option['advanced'])
+ $table->set_row_attribs('advanced');
+
if (isset($option['title'])) {
$table->add('title', $option['title']);
- $table->add(null, $option['content']);
+ $table->add(null, $option['content']);
}
else {
$table->add(array('colspan' => 2), $option['content']);
}
}
- $out .= html::tag('fieldset', $class, html::tag('legend', null, $block['name']) . $table->show($attrib));
+ $out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $table->show($attrib));
}
else if (!empty($block['content'])) {
$out .= html::tag('fieldset', null, html::tag('legend', null, $block['name']) . $block['content']);
diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc
index 44482e938..778d93c03 100644
--- a/program/steps/settings/folders.inc
+++ b/program/steps/settings/folders.inc
@@ -109,7 +109,7 @@ else if ($RCMAIL->action == 'delete-folder')
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);
+ $oldname_utf8 = trim(get_input_value('_folder_oldname', RCUBE_INPUT_POST, true));
if (strlen($name_utf8) && strlen($oldname_utf8)) {
$name = rcube_charset_convert($name_utf8, RCMAIL_CHARSET, 'UTF7-IMAP');
@@ -167,7 +167,7 @@ else if ($RCMAIL->action == 'purge')
// get mailbox size
else if ($RCMAIL->action == 'folder-size')
{
- $name = get_input_value('_mbox', RCUBE_INPUT_POST, true);
+ $name = trim(get_input_value('_mbox', RCUBE_INPUT_POST, true));
$size = $STORAGE->folder_size($name);
@@ -232,16 +232,16 @@ function rcube_subscription_form($attrib)
// add any necessary "virtual" parent folders
if ($parent_folder && !isset($seen[$parent_folder])) {
for ($i=1; $i<=$level; $i++) {
- $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i));
- if ($ancestor_folder && !$seen[$ancestor_folder]++) {
- $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP');
- $list_folders[] = array(
+ $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i));
+ if ($ancestor_folder && !$seen[$ancestor_folder]++) {
+ $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF7-IMAP');
+ $list_folders[] = array(
'id' => $ancestor_folder,
'name' => $ancestor_name,
'level' => $i-1,
'virtual' => true,
);
- }
+ }
}
}
@@ -283,6 +283,7 @@ function rcube_subscription_form($attrib)
$noselect = false;
$classes = array($i%2 ? 'even' : 'odd');
+ $folder_js = Q($folder['id']);
$folder_utf8 = rcube_charset_convert($folder['id'], 'UTF7-IMAP');
$display_folder = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $folder['level'])
. Q($protected ? rcmail_localize_foldername($folder['id']) : $folder['name']);
@@ -291,8 +292,7 @@ function rcube_subscription_form($attrib)
$classes[] = 'virtual';
}
- // Check \Noselect flag (of existing folder)
- if (!$protected && in_array($folder['id'], $a_unsubscribed)) {
+ if (!$protected) {
$attrs = $STORAGE->folder_attributes($folder['id']);
$noselect = in_array('\\Noselect', $attrs);
}
@@ -394,7 +394,7 @@ function rcmail_rename_folder($oldname, $newname)
$a_threaded = (array) $RCMAIL->config->get('message_threading', array());
$oldprefix = '/^' . preg_quote($oldname . $delimiter, '/') . '/';
- foreach (array_keys($a_threaded) as $key) {
+ foreach ($a_threaded as $key => $val) {
if ($key == $oldname) {
unset($a_threaded[$key]);
$a_threaded[$newname] = true;
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 016264128..981d4e406 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -19,1215 +19,915 @@
+-----------------------------------------------------------------------+
*/
-if (!$OUTPUT->ajax_call) {
- $OUTPUT->set_pagetitle(rcube_label('preferences'));
-}
+if (!$OUTPUT->ajax_call)
+ $OUTPUT->set_pagetitle(rcube_label('preferences'));
+
// similar function as /steps/settings/identities.inc::rcmail_identity_frame()
function rcmail_preferences_frame($attrib)
{
- global $OUTPUT;
+ global $OUTPUT;
- if (!$attrib['id']) {
- $attrib['id'] = 'rcmprefsframe';
- }
+ if (!$attrib['id'])
+ $attrib['id'] = 'rcmprefsframe';
- return $OUTPUT->frame($attrib, true);
+ return $OUTPUT->frame($attrib, true);
}
function rcmail_sections_list($attrib)
{
- global $RCMAIL;
+ global $RCMAIL;
- // add id to message list table if not specified
- if (!strlen($attrib['id'])) {
- $attrib['id'] = 'rcmsectionslist';
- }
+ // add id to message list table if not specified
+ if (!strlen($attrib['id']))
+ $attrib['id'] = 'rcmsectionslist';
- list($list, $cols) = rcmail_user_prefs();
+ list($list, $cols) = rcmail_user_prefs();
- // create XHTML table
- $out = rcube_table_output($attrib, $list, $cols, 'id');
+ // create XHTML table
+ $out = rcube_table_output($attrib, $list, $cols, 'id');
- // set client env
- $RCMAIL->output->add_gui_object('sectionslist', $attrib['id']);
- $RCMAIL->output->include_script('list.js');
+ // set client env
+ $RCMAIL->output->add_gui_object('sectionslist', $attrib['id']);
+ $RCMAIL->output->include_script('list.js');
- return $out;
+ return $out;
}
function rcmail_identities_list($attrib)
{
- global $OUTPUT, $RCMAIL;
+ global $OUTPUT, $RCMAIL;
- // add id to message list table if not specified
- if (!strlen($attrib['id'])) {
- $attrib['id'] = 'rcmIdentitiesList';
- }
+ // add id to message list table if not specified
+ if (!strlen($attrib['id']))
+ $attrib['id'] = 'rcmIdentitiesList';
- // 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']) .'>');
- }
+ // 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']) .'>');
- // get all identites from DB and define list of cols to be displayed
- $plugin = $RCMAIL->plugins->exec_hook('identities_list', array(
- 'list' => $list,
- 'cols' => array('mail')
- ));
+ // get all identites from DB and define list of cols to be displayed
+ $plugin = $RCMAIL->plugins->exec_hook('identities_list', array(
+ 'list' => $list,
+ 'cols' => array('mail')));
- // @TODO: use <UL> instead of <TABLE> for identities list
- // create XHTML table
- $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
+ // @TODO: use <UL> instead of <TABLE> for identities list
+ // create XHTML table
+ $out = rcube_table_output($attrib, $plugin['list'], $plugin['cols'], 'identity_id');
- // set client env
- $OUTPUT->add_gui_object('identitieslist', $attrib['id']);
+ // set client env
+ $OUTPUT->add_gui_object('identitieslist', $attrib['id']);
- return $out;
+ return $out;
}
// similar function as in /steps/addressbook/edit.inc
function get_form_tags($attrib, $action, $id = null, $hidden = null)
{
- global $EDIT_FORM, $RCMAIL;
-
- $form_start = $form_end = '';
-
- if (empty($EDIT_FORM)) {
- $request_key = $action . (isset($id) ? '.'.$id : '');
- $form_start = $RCMAIL->output->request_form(array(
- 'name' => 'form',
- 'method' => 'post',
- 'task' => $RCMAIL->task,
- 'action' => $action,
- 'request' => $request_key,
- 'noclose' => true
- ) + $attrib);
-
- if (is_array($hidden)) {
- $hiddenfields = new html_hiddenfield($hidden);
- $form_start .= $hiddenfields->show();
- }
+ global $EDIT_FORM, $RCMAIL;
+
+ $form_start = $form_end = '';
+
+ if (empty($EDIT_FORM)) {
+ $request_key = $action . (isset($id) ? '.'.$id : '');
+ $form_start = $RCMAIL->output->request_form(array(
+ 'name' => 'form',
+ 'method' => 'post',
+ 'task' => $RCMAIL->task,
+ 'action' => $action,
+ 'request' => $request_key,
+ 'noclose' => true
+ ) + $attrib);
+
+ if (is_array($hidden)) {
+ $hiddenfields = new html_hiddenfield($hidden);
+ $form_start .= $hiddenfields->show();
+ }
- $form_end = !strlen($attrib['form']) ? '</form>' : '';
+ $form_end = !strlen($attrib['form']) ? '</form>' : '';
- $EDIT_FORM = !empty($attrib['form']) ? $attrib['form'] : 'form';
- $RCMAIL->output->add_gui_object('editform', $EDIT_FORM);
- }
+ $EDIT_FORM = !empty($attrib['form']) ? $attrib['form'] : 'form';
+ $RCMAIL->output->add_gui_object('editform', $EDIT_FORM);
+ }
- return array($form_start, $form_end);
+ return array($form_start, $form_end);
}
-function rcmail_user_prefs($current = null)
+function rcmail_user_prefs($current=null)
{
- global $RCMAIL;
+ 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'));
+
+ // hook + define list cols
+ $plugin = $RCMAIL->plugins->exec_hook('preferences_sections_list',
+ array('list' => $sections, 'cols' => array('section')));
- $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 = $plugin['list'];
- // hook + define list cols
- $plugin = $RCMAIL->plugins->exec_hook('preferences_sections_list',
- array('list' => $sections, 'cols' => array('section')));
+ $config = $RCMAIL->config->all();
+ $no_override = array_flip($RCMAIL->config->get('dont_override', array()));
- $sections = $plugin['list'];
- $config = $RCMAIL->config->all();
- $no_override = array_flip((array)$RCMAIL->config->get('dont_override'));
+ foreach ($sections as $idx => $sect) {
- foreach ($sections as $idx => $sect) {
- if ($current && $sect['id'] != $current) {
- continue;
+ if ($current && $sect['id'] != $current)
+ continue;
+
+ $blocks = array();
+
+ switch ($sect['id']) {
+ // general
+ case 'general':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ // language selection
+ if (!isset($no_override['language'])) {
+ $a_lang = $RCMAIL->list_languages();
+ asort($a_lang);
+
+ $field_id = 'rcmfd_lang';
+ $select_lang = new html_select(array('name' => '_language', 'id' => $field_id));
+ $select_lang->add(array_values($a_lang), array_keys($a_lang));
+
+ $blocks['main']['options']['language'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('language'))),
+ 'content' => $select_lang->show($RCMAIL->user->language),
+ );
+ }
+
+ // timezone selection
+ if (!isset($no_override['timezone'])) {
+ $field_id = 'rcmfd_timezone';
+ $select_timezone = new html_select(array('name' => '_timezone', 'id' => $field_id));
+ $select_timezone->add(rcube_label('autodetect'), 'auto');
+
+ $zones = array();
+ foreach (DateTimeZone::listIdentifiers() as $i => $tzs) {
+ try {
+ $tz = new DateTimeZone($tzs);
+ $date = new DateTime('2012-12-21', $tz);
+ $offset = $date->format('Z') + 45000;
+ $sortkey = sprintf('%06d.%s', $offset, $tzs);
+ $zones[$sortkey] = array($tzs, $date->format('P'));
}
+ catch (Exception $e) {}
+ }
+
+ ksort($zones);
+ foreach ($zones as $zone) {
+ list($tzs, $offset) = $zone;
+ $select_timezone->add('(GMT ' . $offset . ') ' . strtr($tzs, '_', ' '), $tzs);
+ }
+
+ $blocks['main']['options']['timezone'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('timezone'))),
+ 'content' => $select_timezone->show((string)$config['timezone']),
+ );
+ }
+
+ // date/time formatting
+ if (!isset($no_override['time_format'])) {
+ $reftime = mktime(7,30,0);
+ $field_id = 'rcmfd_time_format';
+ $select_time = new html_select(array('name' => '_time_format', 'id' => $field_id));
+ foreach ((array)$RCMAIL->config->get('time_formats', array('G:i', 'H:i', 'g:i a', 'h:i A')) as $choice)
+ $select_time->add(date($choice, $reftime), $choice);
+
+ $blocks['main']['options']['time_format'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('timeformat'))),
+ 'content' => $select_time->show($RCMAIL->config->get('time_format')),
+ );
+ }
+
+ if (!isset($no_override['date_format'])) {
+ $refdate = mktime(12,30,0,7,24);
+ $field_id = 'rcmfd_date_format';
+ $select_date = new html_select(array('name' => '_date_format', 'id' => $field_id));
+ foreach ((array)$RCMAIL->config->get('date_formats', array('Y-m-d','d-m-Y','Y/m/d','m/d/Y','d/m/Y','d.m.Y','j.n.Y')) as $choice)
+ $select_date->add(date($choice, $refdate), $choice);
+
+ $blocks['main']['options']['date_format'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('dateformat'))),
+ 'content' => $select_date->show($config['date_format']),
+ );
+ }
+
+ // MM: Show checkbox for toggling 'pretty dates'
+ if (!isset($no_override['prettydate'])) {
+ $field_id = 'rcmfd_prettydate';
+ $input_prettydate = 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'))),
+ 'content' => $input_prettydate->show($config['prettydate']?1:0),
+ );
+ }
- $blocks = array();
-
- switch ($sect['id']) {
-
- // 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'))),
- );
-
- // language selection
- if (!isset($no_override['language'])) {
- if (!$current) {
- continue 2;
- }
-
- $a_lang = $RCMAIL->list_languages();
- asort($a_lang);
-
- $field_id = 'rcmfd_lang';
- $select = new html_select(array('name' => '_language', 'id' => $field_id));
- $select->add(array_values($a_lang), array_keys($a_lang));
-
- $blocks['main']['options']['language'] = array(
- 'title' => html::label($field_id, Q(rcube_label('language'))),
- 'content' => $select->show($RCMAIL->user->language),
- );
- }
-
- // timezone selection
- if (!isset($no_override['timezone'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_timezone';
- $select = new html_select(array('name' => '_timezone', 'id' => $field_id));
- $select->add(rcube_label('autodetect'), 'auto');
-
- $zones = array();
- foreach (DateTimeZone::listIdentifiers() as $i => $tzs) {
- try {
- $tz = new DateTimeZone($tzs);
- $date = new DateTime('2012-12-21', $tz);
- $offset = $date->format('Z') + 45000;
- $sortkey = sprintf('%06d.%s', $offset, $tzs);
- $zones[$sortkey] = array($tzs, $date->format('P'));
- }
- catch (Exception $e) {}
- }
-
- ksort($zones);
-
- foreach ($zones as $zone) {
- list($tzs, $offset) = $zone;
- $select->add('(GMT ' . $offset . ') ' . strtr($tzs, '_', ' '), $tzs);
- }
-
- $blocks['main']['options']['timezone'] = array(
- 'title' => html::label($field_id, Q(rcube_label('timezone'))),
- 'content' => $select->show((string)$config['timezone']),
- );
- }
-
- // date/time formatting
- if (!isset($no_override['time_format'])) {
- if (!$current) {
- continue 2;
- }
-
- $reftime = mktime(7,30,0);
- $defaults = array('G:i', 'H:i', 'g:i a', 'h:i A');
- $formats = (array)$RCMAIL->config->get('time_formats', $defaults);
- $field_id = 'rcmfd_time_format';
- $select = new html_select(array('name' => '_time_format', 'id' => $field_id));
-
- foreach ($formats as $choice) {
- $select->add(date($choice, $reftime), $choice);
- }
-
- $blocks['main']['options']['time_format'] = array(
- 'title' => html::label($field_id, Q(rcube_label('timeformat'))),
- 'content' => $select->show($RCMAIL->config->get('time_format')),
- );
- }
-
- if (!isset($no_override['date_format'])) {
- if (!$current) {
- continue 2;
- }
-
- $refdate = mktime(12,30,0,7,24);
- $defaults = array('Y-m-d','d-m-Y','Y/m/d','m/d/Y','d/m/Y','d.m.Y','j.n.Y');
- $formats = (array)$RCMAIL->config->get('date_formats', $defaults);
- $field_id = 'rcmfd_date_format';
- $select = new html_select(array('name' => '_date_format', 'id' => $field_id));
-
- foreach ($formats as $choice) {
- $select->add(date($choice, $refdate), $choice);
- }
-
- $blocks['main']['options']['date_format'] = array(
- 'title' => html::label($field_id, Q(rcube_label('dateformat'))),
- 'content' => $select->show($config['date_format']),
- );
- }
-
- // Show checkbox for toggling 'pretty dates'
- if (!isset($no_override['prettydate'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_prettydate';
- $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'))),
- 'content' => $input->show($config['prettydate']?1:0),
- );
- }
-
- if (!isset($no_override['refresh_interval'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_refresh_interval';
- $select = new html_select(array('name' => '_refresh_interval', 'id' => $field_id));
-
- $select->add(rcube_label('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)));
- $select->add($label, $min);
- }
- }
-
- $blocks['main']['options']['refresh_interval'] = array(
- 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))),
- 'content' => $select->show($config['refresh_interval']/60),
- );
- }
-
- // show drop-down for available skins
- if (!isset($no_override['skin'])) {
- if (!$current) {
- continue 2;
- }
-
- $skins = rcmail_get_skins();
-
- if (count($skins) > 1) {
- $field_id = 'rcmfd_skin';
- $input = new html_radiobutton(array('name'=>'_skin'));
-
- foreach ($skins as $skin) {
- $thumbnail = "./skins/$skin/thumbnail.png";
- if (!is_file($thumbnail))
- $thumbnail = './program/resources/blank.gif';
-
- $skinname = ucfirst($skin);
- $author_link = $license_link = '';
- $meta = @json_decode(@file_get_contents("./skins/$skin/meta.json"), true);
-
- 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']);
- }
-
- $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('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() .
- html::span('skinlicense', $license_link ? rcube_label('license').':&nbsp;' . $license_link : ''))
- );
- }
- }
- }
-
- // standard_windows option decides if new windows should be
- // opened as popups or standard windows (which can be handled by browsers as tabs)
- if (!isset($no_override['standard_windows'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_standard_windows';
- $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'))),
- 'content' => $checkbox->show($config['standard_windows']?1:0),
- );
- }
-
- 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');
- }
-
- $blocks['browser']['options']['mailtoprotohandler'] = array(
- 'content' => html::a(array(
- 'href' => '#',
- 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))),
- );
-
- break;
-
- // 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'))),
- );
-
- // show config parameter for preview pane
- if (!isset($no_override['preview_pane'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_preview';
- $input = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1,
- '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'))),
- 'content' => $input->show($config['preview_pane']?1:0),
- );
- }
-
- // show config parameter for preview pane auto mark as read delay
- if (!isset($no_override['preview_pane_mark_read'])) {
- if (!$current) {
- continue 2;
- }
-
- // apply default if config option is not set at all
- $config['preview_pane_mark_read'] = $RCMAIL->config->get('preview_pane_mark_read', 0);
-
- $field_id = 'rcmfd_preview_pane_mark_read';
- $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);
-
- foreach (array(5, 10, 20, 30) as $sec) {
- $label = rcube_label(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'))),
- 'content' => $select->show(intval($config['preview_pane_mark_read'])),
- );
- }
-
- if (!isset($no_override['mdn_requests'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['main']['options']['mdn_requests'] = array(
- 'title' => html::label($field_id, Q(rcube_label('mdnrequests'))),
- 'content' => $select->show($config['mdn_requests']),
- );
- }
-
- if (!isset($no_override['autoexpand_threads'])) {
- if (!$current) {
- continue 2;
- }
-
- $storage = $RCMAIL->get_storage();
- $supported = $storage->get_capability('THREAD');
-
- 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);
-
- $blocks['main']['options']['autoexpand_threads'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autoexpand_threads'))),
- 'content' => $select->show($config['autoexpand_threads']),
- );
- }
- }
-
- // show page size selection
- if (!isset($no_override['mail_pagesize'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_mail_pagesize';
- $input = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5));
- $size = intval($config['mail_pagesize'] ? $config['mail_pagesize'] : $config['pagesize']);
-
- $blocks['main']['options']['pagesize'] = array(
- 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
- 'content' => $input->show($size ? $size : 50),
- );
- }
-
- if (!isset($no_override['check_all_folders'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_check_all_folders';
- $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'))),
- 'content' => $input->show($config['check_all_folders']?1:0),
- );
- }
- break;
-
- // Message viewing
- case 'mailview':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- // show checkbox to open message view in new window
- if (!isset($no_override['message_extwin'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_message_extwin';
- $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'))),
- 'content' => $input->show($config['message_extwin']?1:0),
- );
- }
-
- // show checkbox to show email instead of name
- if (!isset($no_override['message_show_email'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_message_show_email';
- $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'))),
- 'content' => $input->show($config['message_show_email']?1:0),
- );
- }
-
- // show checkbox for HTML/plaintext messages
- if (!isset($no_override['prefer_html'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_htmlmsg';
- $input = new html_checkbox(array('name' => '_prefer_html', 'id' => $field_id, 'value' => 1,
- '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'))),
- 'content' => $input->show($config['prefer_html']?1:0),
- );
- }
-
- if (!isset($no_override['default_charset'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_default_charset';
-
- $blocks['advanced']['options']['default_charset'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultcharset'))),
- 'content' => $RCMAIL->output->charset_selector(array(
- 'id' => $field_id, 'name' => '_default_charset', 'selected' => $config['default_charset']
- )));
- }
-
- if (!isset($no_override['show_images'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_show_images';
- $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);
-
- $blocks['main']['options']['show_images'] = array(
- 'title' => html::label($field_id, Q(rcube_label('showremoteimages'))),
- 'content' => $input->show($config['prefer_html'] ? $config['show_images'] : 0),
- );
- }
-
- if (!isset($no_override['inline_images'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_inline_images';
- $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'))),
- 'content' => $input->show($config['inline_images']?1:0),
- );
- }
-
- // "display after delete" checkbox
- if (!isset($no_override['display_next'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_displaynext';
- $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'))),
- 'content' => $input->show($config['display_next']?1:0),
- );
- }
- break;
-
- // 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'))),
- );
-
- // show checkbox to compose messages in a new window
- if (!isset($no_override['compose_extwin'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfdcompose_extwin';
- $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'))),
- 'content' => $input->show($config['compose_extwin']?1:0),
- );
- }
-
- if (!isset($no_override['htmleditor'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['main']['options']['htmleditor'] = array(
- 'title' => html::label($field_id, Q(rcube_label('htmleditor'))),
- 'content' => $select->show(intval($config['htmleditor'])),
- );
- }
-
- if (!isset($no_override['draft_autosave'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
- foreach (array(1, 3, 5, 10) as $i => $min) {
- $label = rcube_label(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'))),
- 'content' => $select->show($config['draft_autosave']),
- );
- }
-
- if (!isset($no_override['mime_param_folding'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['advanced']['options']['mime_param_folding'] = array(
- 'title' => html::label($field_id, Q(rcube_label('mimeparamfolding'))),
- 'content' => $select->show($config['mime_param_folding']),
- );
- }
-
- if (!isset($no_override['force_7bit'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_force_7bit';
- $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'))),
- 'content' => $input->show($config['force_7bit']?1:0),
- );
- }
-
- if (!isset($no_override['mdn_default'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_mdn_default';
- $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'))),
- 'content' => $input->show($config['mdn_default']?1:0),
- );
- }
-
- if (!isset($no_override['dsn_default'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_dsn_default';
- $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'))),
- 'content' => $input->show($config['dsn_default']?1:0),
- );
- }
-
- if (!isset($no_override['reply_same_folder'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_reply_same_folder';
- $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'))),
- 'content' => $input->show($config['reply_same_folder']?1:0),
- );
- }
-
- if (!isset($no_override['reply_mode'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['main']['options']['reply_mode'] = array(
- 'title' => html::label($field_id, Q(rcube_label('whenreplying'))),
- 'content' => $select->show(intval($config['reply_mode'])),
- );
- }
-
- if (!isset($no_override['spellcheck_before_send']) && $config['enable_spellcheck']) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_spellcheck_before_send';
- $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'))),
- 'content' => $input->show($config['spellcheck_before_send']?1:0),
- );
- }
-
- if ($config['enable_spellcheck']) {
- if (!$current) {
- continue 2;
- }
-
- foreach (array('syms', 'nums', 'caps') as $key) {
- $key = 'spellcheck_ignore_'.$key;
- if (!isset($no_override[$key])) {
- $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)))),
- 'content' => $input->show($config[$key]?1:0),
- );
- }
- }
- }
-
- if (!isset($no_override['show_sig'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['sig']['options']['show_sig'] = array(
- 'title' => html::label($field_id, Q(rcube_label('autoaddsignature'))),
- 'content' => $select->show($RCMAIL->config->get('show_sig', 1)),
- );
- }
-
- if (!isset($no_override['strip_existing_sig'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_strip_existing_sig';
- $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'))),
- 'content' => $input->show($config['strip_existing_sig']?1:0),
- );
- }
-
- if (!isset($no_override['forward_attachment'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['main']['options']['forward_attachment'] = array(
- 'title' => html::label($field_id, Q(rcube_label('forwardmode'))),
- 'content' => $select->show(intval($config['forward_attachment'])),
- );
- }
-
- if (!isset($no_override['default_font']) || !isset($no_override['default_font_size'])) {
- if (!$current) {
- continue 2;
- }
-
- // Default font size
- $field_id = 'rcmfd_default_font_size';
- $select_default_font_size = new html_select(array('name' => '_default_font_size', 'id' => $field_id));
-
- $fontsizes = array('', '8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt');
- foreach ($fontsizes as $size) {
- $select_default_font_size->add($size, $size);
- }
-
- // Default font
- $field_id = 'rcmfd_default_font';
- $select_default_font = new html_select(array('name' => '_default_font', 'id' => $field_id));
- $select_default_font->add('', '');
-
- $fonts = rcube_fontdefs();
- 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'))),
- 'content' => $select_default_font->show($RCMAIL->config->get('default_font', 1)) .
- $select_default_font_size->show($RCMAIL->config->get('default_font_size', 1))
- );
- }
-
- if (!isset($no_override['reply_all_mode'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['main']['options']['reply_all_mode'] = array(
- 'title' => html::label($field_id, Q(rcube_label('replyallmode'))),
- 'content' => $select->show(intval($config['reply_all_mode'])),
- );
- }
-
- break;
-
- // Addressbook config
- case 'addressbook':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- if (!isset($no_override['default_addressbook'])
- && (!$current || ($books = $RCMAIL->get_address_sources(true, true)))
- ) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_default_addressbook';
- $select = new html_select(array('name' => '_default_addressbook', 'id' => $field_id));
-
- foreach ($books as $book) {
- $select->add(html_entity_decode($book['name'], ENT_COMPAT, 'UTF-8'), $book['id']);
- }
-
- $blocks['main']['options']['default_addressbook'] = array(
- 'title' => html::label($field_id, Q(rcube_label('defaultabook'))),
- 'content' => $select->show($config['default_addressbook']),
- );
- }
-
- // show addressbook listing mode selection
- if (!isset($no_override['addressbook_name_listing'])) {
- if (!$current) {
- continue 2;
- }
-
- $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);
-
- $blocks['main']['options']['list_name_listing'] = array(
- 'title' => html::label($field_id, Q(rcube_label('listnamedisplay'))),
- 'content' => $select->show($config['addressbook_name_listing']),
- );
- }
-
- // show addressbook sort column
- if (!isset($no_override['addressbook_sort_col'])) {
- if (!$current) {
- continue 2;
- }
-
- $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');
-
- $blocks['main']['options']['sort_col'] = array(
- 'title' => html::label($field_id, Q(rcube_label('listsorting'))),
- 'content' => $select->show($config['addressbook_sort_col']),
- );
- }
-
- // show addressbook page size selection
- if (!isset($no_override['addressbook_pagesize'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_addressbook_pagesize';
- $input = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5));
- $size = intval($config['addressbook_pagesize'] ? $config['addressbook_pagesize'] : $config['pagesize']);
-
- $blocks['main']['options']['pagesize'] = array(
- 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
- 'content' => $input->show($size ? $size : 50),
- );
- }
-
- if (!isset($no_override['autocomplete_single'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_autocomplete_single';
- $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'))),
- 'content' => $checkbox->show($config['autocomplete_single']?1:0),
- );
- }
- break;
-
- // Special IMAP folders
- case 'folders':
- $blocks = array(
- 'main' => array('name' => Q(rcube_label('mainoptions'))),
- 'advanced' => array('name' => Q(rcube_label('advancedoptions'))),
- );
-
- if (!isset($no_override['show_real_foldernames'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'show_real_foldernames';
- $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'))),
- 'content' => $input->show($config['show_real_foldernames']?1:0),
- );
- }
-
- // Configure special folders
- if (!isset($no_override['default_folders']) && $current) {
- $select = rcmail_mailbox_select(array(
- 'noselection' => '---',
- 'realnames' => true,
- 'maxlength' => 30,
- 'folder_filter' => 'mail',
- 'folder_rights' => 'w',
- ));
- }
-
- // #1486114, #1488279, #1489219
- $onchange = "if ($(this).val() == 'INBOX') $(this).val('')";
-
- if (!isset($no_override['drafts_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['drafts_mbox'] = array(
- 'title' => Q(rcube_label('drafts')),
- 'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox", 'onchange' => $onchange)),
- );
- }
-
- if (!isset($no_override['sent_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['sent_mbox'] = array(
- 'title' => Q(rcube_label('sent')),
- 'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox", 'onchange' => '')),
- );
- }
-
- if (!isset($no_override['junk_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['junk_mbox'] = array(
- 'title' => Q(rcube_label('junk')),
- 'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox", 'onchange' => $onchange)),
- );
- }
-
- if (!isset($no_override['trash_mbox'])) {
- if (!$current) {
- continue 2;
- }
-
- $blocks['main']['options']['trash_mbox'] = array(
- 'title' => Q(rcube_label('trash')),
- 'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox", 'onchange' => $onchange)),
- );
- }
- break;
-
- // 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'))),
- );
-
- if (!isset($no_override['read_when_deleted'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_read_deleted';
- $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'))),
- 'content' => $input->show($config['read_when_deleted']?1:0),
- );
- }
-
- if (!isset($no_override['flag_for_deletion'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_flag_for_deletion';
- $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'))),
- 'content' => $input->show($config['flag_for_deletion']?1:0),
- );
- }
-
- // don't show deleted messages
- if (!isset($no_override['skip_deleted'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_skip_deleted';
- $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'))),
- 'content' => $input->show($config['skip_deleted']?1:0),
- );
- }
-
- if (!isset($no_override['delete_always'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_delete_always';
- $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'))),
- 'content' => $input->show($config['delete_always']?1:0),
- );
- }
-
- if (!isset($no_override['delete_junk'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_delete_junk';
- $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'))),
- 'content' => $input->show($config['delete_junk']?1:0),
- );
- }
-
- // Trash purging on logout
- if (!isset($no_override['logout_purge'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_logout_purge';
- $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'))),
- 'content' => $input->show($config['logout_purge']?1:0),
- );
- }
-
- // INBOX compacting on logout
- if (!isset($no_override['logout_expunge'])) {
- if (!$current) {
- continue 2;
- }
-
- $field_id = 'rcmfd_logout_expunge';
- $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'))),
- 'content' => $input->show($config['logout_expunge']?1:0),
- );
- }
+ if (!isset($no_override['refresh_interval'])) {
+ $field_id = 'rcmfd_refresh_interval';
+ $select_refresh_interval = new html_select(array('name' => '_refresh_interval', 'id' => $field_id));
+
+ $select_refresh_interval->add(rcube_label('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)));
+ $select_refresh_interval->add($label, $min);
}
+ }
+
+ $blocks['main']['options']['refresh_interval'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))),
+ 'content' => $select_refresh_interval->show($config['refresh_interval']/60),
+ );
+ }
- $found = false;
- $data = $RCMAIL->plugins->exec_hook('preferences_list',
- array('section' => $sect['id'], 'blocks' => $blocks, 'current' => $current));
-
- $advanced_prefs = $config['advanced_prefs'];
-
- // create output
- foreach ($data['blocks'] as $key => $block) {
- if (!empty($block['content']) || !empty($block['options'])) {
- $found = true;
- }
- // move some options to the 'advanced' block as configured by admin
- if ($key != 'advanced') {
- foreach ($advanced_prefs as $opt) {
- if ($block['options'][$opt]) {
- $data['blocks']['advanced']['options'][$opt] = $block['options'][$opt];
- unset($data['blocks'][$key]['options'][$opt]);
- }
- }
- }
+ // show drop-down for available skins
+ if (!isset($no_override['skin'])) {
+ $skins = rcmail_get_skins();
+
+ if (count($skins) > 1) {
+ $field_id = 'rcmfd_skin';
+ $input_skin = new html_radiobutton(array('name'=>'_skin'));
+
+ $blocks['skin'] = array('name' => Q(rcube_label('skin')),);
+
+ foreach($skins as $skin) {
+ $thumbnail = "./skins/$skin/thumbnail.png";
+ if (!is_file($thumbnail))
+ $thumbnail = './program/resources/blank.gif';
+
+ $skinname = ucfirst($skin);
+ $author_link = $license_link = '';
+ $meta = @json_decode(@file_get_contents("./skins/$skin/meta.json"), true);
+ 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']);
+ }
+
+ $blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'),
+ html::span('skinitem', $input_skin->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('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() .
+ html::span('skinlicense', $license_link ? rcube_label('license').':&nbsp;' . $license_link : ''))
+ );
}
+ }
+ }
+
+ $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');
+
+ $blocks['browser'] = array(
+ 'name' => Q(rcube_label('browseroptions')),
+ 'options' => array('mailtoprotohandler' => array(
+ 'content' => html::a(array(
+ 'href' => '#',
+ 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))),
+ )),
+ );
+
+ break;
+
+ // Mailbox view (mail screen)
+ case 'mailbox':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ 'new_message' => array('name' => Q(rcube_label('newmessage'))),
+ );
+
+ // show config parameter for preview pane
+ if (!isset($no_override['preview_pane'])) {
+ $field_id = 'rcmfd_preview';
+ $input_preview = new html_checkbox(array('name' => '_preview_pane', 'id' => $field_id, 'value' => 1,
+ 'onchange' => "$('#rcmfd_preview_pane_mark_read').prop('disabled', !this.checked)"));
- if (!$found)
- unset($sections[$idx]);
- else
- $sections[$idx]['blocks'] = $data['blocks'];
+ $blocks['main']['options']['preview_pane'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('previewpane'))),
+ 'content' => $input_preview->show($config['preview_pane']?1:0),
+ );
}
- return array($sections, $plugin['cols']);
-}
+ // show config parameter for preview pane auto mark as read delay
+ if (!isset($no_override['preview_pane_mark_read'])) {
+ // apply default if config option is not set at all
+ $config['preview_pane_mark_read'] = $RCMAIL->config->get('preview_pane_mark_read', 0);
+ $field_id = 'rcmfd_preview_pane_mark_read';
+ $select_delay = new html_select(array('name' => '_preview_pane_mark_read', 'id' => $field_id,
+ 'disabled' => $config['preview_pane']?0:1));
-function rcmail_get_skins()
-{
- $path = RCUBE_INSTALL_PATH . 'skins';
- $skins = array();
- $dir = opendir($path);
+ $select_delay->add(rcube_label('never'), '-1');
+ $select_delay->add(rcube_label('immediately'), 0);
+ foreach(array(5, 10, 20, 30) as $sec)
+ $select_delay->add(rcube_label(array('name' => 'afternseconds', 'vars' => array('n' => $sec))), $sec);
+
+ $blocks['main']['options']['preview_pane_mark_read'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('previewpanemarkread'))),
+ 'content' => $select_delay->show(intval($config['preview_pane_mark_read'])),
+ );
+ }
+
+ if (!isset($no_override['mdn_requests'])) {
+ $field_id = 'rcmfd_mdn_requests';
+ $select_mdn_requests = new html_select(array('name' => '_mdn_requests', 'id' => $field_id));
+ $select_mdn_requests->add(rcube_label('askuser'), 0);
+ $select_mdn_requests->add(rcube_label('autosend'), 1);
+ $select_mdn_requests->add(rcube_label('autosendknown'), 3);
+ $select_mdn_requests->add(rcube_label('autosendknownignore'), 4);
+ $select_mdn_requests->add(rcube_label('ignore'), 2);
+
+ $blocks['main']['options']['mdn_requests'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('mdnrequests'))),
+ 'content' => $select_mdn_requests->show($config['mdn_requests']),
+ );
+ }
+
+ $storage = $RCMAIL->get_storage();
+ $threading_supported = $storage->get_capability('THREAD');
+
+ if (!isset($no_override['autoexpand_threads']) && $threading_supported) {
+ $field_id = 'rcmfd_autoexpand_threads';
+ $select_autoexpand_threads = new html_select(array('name' => '_autoexpand_threads', 'id' => $field_id));
+ $select_autoexpand_threads->add(rcube_label('never'), 0);
+ $select_autoexpand_threads->add(rcube_label('do_expand'), 1);
+ $select_autoexpand_threads->add(rcube_label('expand_only_unread'), 2);
+
+ $blocks['main']['options']['autoexpand_threads'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autoexpand_threads'))),
+ 'content' => $select_autoexpand_threads->show($config['autoexpand_threads']),
+ );
+ }
+
+ // show page size selection
+ if (!isset($no_override['mail_pagesize'])) {
+ $field_id = 'rcmfd_mail_pagesize';
+ $input_pagesize = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5));
+
+ $size = intval($config['mail_pagesize'] ? $config['mail_pagesize'] : $config['pagesize']);
+
+ $blocks['main']['options']['pagesize'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
+ 'content' => $input_pagesize->show($size ? $size : 50),
+ );
+ }
+ if (!isset($no_override['check_all_folders'])) {
+ $field_id = 'rcmfd_check_all_folders';
+ $input_check_all = 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'))),
+ 'content' => $input_check_all->show($config['check_all_folders']?1:0),
+ );
+ }
+
+ break;
+
+ // Message viewing
+ case 'mailview':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ // show checkbox to open message view in new window
+ if (!isset($no_override['message_extwin'])) {
+ $field_id = 'rcmfd_message_extwin';
+ $input_msgextwin = 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'))),
+ 'content' => $input_msgextwin->show($config['message_extwin']?1:0),
+ );
+ }
+
+ // show checkbox for HTML/plaintext messages
+ if (!isset($no_override['prefer_html'])) {
+ $field_id = 'rcmfd_htmlmsg';
+ $input_preferhtml = new html_checkbox(array('name' => '_prefer_html', 'id' => $field_id, 'value' => 1,
+ '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'))),
+ 'content' => $input_preferhtml->show($config['prefer_html']?1:0),
+ );
+ }
+
+ if (!isset($no_override['default_charset'])) {
+ $field_id = 'rcmfd_default_charset';
+
+ $blocks['main']['options']['default_charset'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('defaultcharset'))),
+ 'content' => $RCMAIL->output->charset_selector(array(
+ 'name' => '_default_charset', 'selected' => $config['default_charset']
+ ))
+ );
+ }
+
+ if (!isset($no_override['show_images'])) {
+ $field_id = 'rcmfd_show_images';
+ $input_show_images = new html_select(array('name' => '_show_images', 'id' => $field_id,
+ 'disabled' => !$config['prefer_html']));
+ $input_show_images->add(rcube_label('never'), 0);
+ $input_show_images->add(rcube_label('fromknownsenders'), 1);
+ $input_show_images->add(rcube_label('always'), 2);
+
+ $blocks['main']['options']['show_images'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('showremoteimages'))),
+ 'content' => $input_show_images->show($config['prefer_html'] ? $config['show_images'] : 0),
+ );
+ }
+
+ if (!isset($no_override['inline_images'])) {
+ $field_id = 'rcmfd_inline_images';
+ $input_inline_images = 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'))),
+ 'content' => $input_inline_images->show($config['inline_images']?1:0),
+ );
+ }
+
+ // "display after delete" checkbox
+ if (!isset($no_override['display_next'])) {
+ $field_id = 'rcmfd_displaynext';
+ $input_displaynext = 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'))),
+ 'content' => $input_displaynext->show($config['display_next']?1:0),
+ );
+ }
+
+ break;
+
+ // 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'))),
+ );
+
+ // show checkbox to compose messages in a new window
+ if (!isset($no_override['compose_extwin'])) {
+ $field_id = 'rcmfdcompose_extwin';
+ $input_compextwin = 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'))),
+ 'content' => $input_compextwin->show($config['compose_extwin']?1:0),
+ );
+ }
+
+ if (!isset($no_override['htmleditor'])) {
+ $field_id = 'rcmfd_htmleditor';
+ $select_htmleditor = new html_select(array('name' => '_htmleditor', 'id' => $field_id));
+ $select_htmleditor->add(rcube_label('never'), 0);
+ $select_htmleditor->add(rcube_label('always'), 1);
+ $select_htmleditor->add(rcube_label('htmlonreply'), 2);
+ $select_htmleditor->add(rcube_label('htmlonreplyandforward'), 3);
+
+ $blocks['main']['options']['htmleditor'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('htmleditor'))),
+ 'content' => $select_htmleditor->show(intval($config['htmleditor'])),
+ );
+ }
+
+ if (!isset($no_override['draft_autosave'])) {
+ $field_id = 'rcmfd_autosave';
+ $select_autosave = new html_select(array('name' => '_draft_autosave', 'id' => $field_id, 'disabled' => empty($config['drafts_mbox'])));
+ $select_autosave->add(rcube_label('never'), 0);
+ foreach (array(1, 3, 5, 10) as $i => $min)
+ $select_autosave->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min*60);
+
+ $blocks['main']['options']['draft_autosave'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autosavedraft'))),
+ 'content' => $select_autosave->show($config['draft_autosave']),
+ );
+ }
+
+ if (!isset($no_override['mime_param_folding'])) {
+ $field_id = 'rcmfd_param_folding';
+ $select_param_folding = new html_select(array('name' => '_mime_param_folding', 'id' => $field_id));
+ $select_param_folding->add(rcube_label('2231folding'), 0);
+ $select_param_folding->add(rcube_label('miscfolding'), 1);
+ $select_param_folding->add(rcube_label('2047folding'), 2);
+
+ $blocks['main']['options']['mime_param_folding'] = array(
+ 'advanced' => true,
+ 'title' => html::label($field_id, Q(rcube_label('mimeparamfolding'))),
+ 'content' => $select_param_folding->show($config['mime_param_folding']),
+ );
+ }
+
+ if (!isset($no_override['force_7bit'])) {
+ $field_id = 'rcmfd_force_7bit';
+ $input_7bit = new html_checkbox(array('name' => '_force_7bit', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['force_7bit'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('force7bit'))),
+ 'content' => $input_7bit->show($config['force_7bit']?1:0),
+ );
+ }
+
+ if (!isset($no_override['mdn_default'])) {
+ $field_id = 'rcmfd_mdn_default';
+ $input_mdn = 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'))),
+ 'content' => $input_mdn->show($config['mdn_default']?1:0),
+ );
+ }
+
+ if (!isset($no_override['dsn_default'])) {
+ $field_id = 'rcmfd_dsn_default';
+ $input_dsn = 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'))),
+ 'content' => $input_dsn->show($config['dsn_default']?1:0),
+ );
+ }
+
+ if (!isset($no_override['reply_same_folder'])) {
+ $field_id = 'rcmfd_reply_same_folder';
+ $input_reply_same_folder = 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'))),
+ 'content' => $input_reply_same_folder->show($config['reply_same_folder']?1:0),
+ );
+ }
- if (!$dir) {
- return false;
+ if (!isset($no_override['reply_mode'])) {
+ $field_id = 'rcmfd_reply_mode';
+ $select_replymode = new html_select(array('name' => '_reply_mode', 'id' => $field_id));
+ $select_replymode->add(rcube_label('replyempty'), -1);
+ $select_replymode->add(rcube_label('replybottomposting'), 0);
+ $select_replymode->add(rcube_label('replytopposting'), 1);
+
+ $blocks['main']['options']['reply_mode'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('whenreplying'))),
+ 'content' => $select_replymode->show(intval($config['reply_mode'])),
+ );
}
- while (($file = readdir($dir)) !== false) {
- $filename = $path.'/'.$file;
- if (!preg_match('/^\./', $file) && is_dir($filename) && is_readable($filename)) {
- $skins[] = $file;
+ if (!isset($no_override['spellcheck_before_send']) && $config['enable_spellcheck']) {
+ $field_id = 'rcmfd_spellcheck_before_send';
+ $input_spellcheck = 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'))),
+ 'content' => $input_spellcheck->show($config['spellcheck_before_send']?1:0),
+ );
+ }
+
+ if ($config['enable_spellcheck']) {
+ foreach (array('syms', 'nums', 'caps') as $key) {
+ $key = 'spellcheck_ignore_'.$key;
+ if (!isset($no_override[$key])) {
+ $input_spellcheck = 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)))),
+ 'content' => $input_spellcheck->show($config[$key]?1:0),
+ );
}
+ }
+ }
+
+ if (!isset($no_override['show_sig'])) {
+ $field_id = 'rcmfd_show_sig';
+ $select_show_sig = new html_select(array('name' => '_show_sig', 'id' => $field_id));
+ $select_show_sig->add(rcube_label('never'), 0);
+ $select_show_sig->add(rcube_label('always'), 1);
+ $select_show_sig->add(rcube_label('newmessageonly'), 2);
+ $select_show_sig->add(rcube_label('replyandforwardonly'), 3);
+
+ $blocks['sig']['options']['show_sig'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('autoaddsignature'))),
+ 'content' => $select_show_sig->show($RCMAIL->config->get('show_sig', 1)),
+ );
+ }
+
+ if (!isset($no_override['strip_existing_sig'])) {
+ $field_id = 'rcmfd_strip_existing_sig';
+ $input_stripexistingsig = 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'))),
+ 'content' => $input_stripexistingsig->show($config['strip_existing_sig']?1:0),
+ );
+ }
+
+ if (!isset($no_override['forward_attachment'])) {
+ $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);
+
+ $blocks['main']['options']['forward_attachment'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('forwardmode'))),
+ 'content' => $select->show(intval($config['forward_attachment'])),
+ );
+ }
+
+ if (!isset($no_override['default_font'])) {
+ $field_id = 'rcmfd_default_font';
+ $fonts = rcube_fontdefs();
+ $selected = $config['default_font'];
+
+ $select = '<select name="_default_font" id="'.$field_id.'">';
+ $select .= '<option value=""' . (!$selected ? ' selected="selected"' : '') . '>---</option>';
+ foreach ($fonts as $fname => $font)
+ $select .= '<option value="'.$fname.'"'
+ . ($fname == $selected ? ' selected="selected"' : '')
+ . ' style=\'font-family: ' . $font . '\'>'
+ . Q($fname) . '</option>';
+ $select .= '</select>';
+
+ $blocks['main']['options']['default_font'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('defaultfont'))),
+ 'content' => $select
+ );
+ }
+
+ break;
+
+
+ // Addressbook config
+ case 'addressbook':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ if (!isset($no_override['default_addressbook'])
+ && ($books = $RCMAIL->get_address_sources(true, true))
+ ) {
+ $field_id = 'rcmfd_default_addressbook';
+ $select_abook = new html_select(array('name' => '_default_addressbook', 'id' => $field_id));
+
+ foreach ($books as $book) {
+ $select_abook->add(html_entity_decode($book['name'], ENT_COMPAT, 'UTF-8'), $book['id']);
+ }
+
+ $blocks['main']['options']['default_addressbook'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('defaultabook'))),
+ 'content' => $select_abook->show($config['default_addressbook']),
+ );
+ }
+
+ // show addressbook listing mode selection
+ if (!isset($no_override['addressbook_name_listing'])) {
+ $field_id = 'rcmfd_addressbook_name_listing';
+ $select_listing = new html_select(array('name' => '_addressbook_name_listing', 'id' => $field_id));
+ $select_listing->add(rcube_label('name'), 0);
+ $select_listing->add(rcube_label('firstname') . ' ' . rcube_label('surname'), 1);
+ $select_listing->add(rcube_label('surname') . ' ' . rcube_label('firstname'), 2);
+ $select_listing->add(rcube_label('surname') . ', ' . rcube_label('firstname'), 3);
+
+ $blocks['main']['options']['list_name_listing'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('listnamedisplay'))),
+ 'content' => $select_listing->show($config['addressbook_name_listing']),
+ );
+ }
+
+ // show addressbook sort column
+ if (!isset($no_override['addressbook_sort_col'])) {
+ $field_id = 'rcmfd_addressbook_sort_col';
+ $select_sort = new html_select(array('name' => '_addressbook_sort_col', 'id' => $field_id));
+ $select_sort->add(rcube_label('name'), 'name');
+ $select_sort->add(rcube_label('firstname'), 'firstname');
+ $select_sort->add(rcube_label('surname'), 'surname');
+
+ $blocks['main']['options']['sort_col'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('listsorting'))),
+ 'content' => $select_sort->show($config['addressbook_sort_col']),
+ );
+ }
+
+ // show addressbook page size selection
+ if (!isset($no_override['addressbook_pagesize'])) {
+ $field_id = 'rcmfd_addressbook_pagesize';
+ $input_pagesize = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5));
+
+ $size = intval($config['addressbook_pagesize'] ? $config['addressbook_pagesize'] : $config['pagesize']);
+
+ $blocks['main']['options']['pagesize'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('pagesize'))),
+ 'content' => $input_pagesize->show($size ? $size : 50),
+ );
+ }
+
+ if (!isset($no_override['autocomplete_single'])) {
+ $field_id = 'rcmfd_autocomplete_single';
+ $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'))),
+ 'content' => $checkbox->show($config['autocomplete_single']?1:0),
+ );
+ }
+
+ break;
+
+ // Special IMAP folders
+ case 'folders':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ );
+
+ // Configure special folders
+ if (!isset($no_override['default_folders'])) {
+ // load folders list only when needed
+ if ($current) {
+ $select = rcmail_mailbox_select(array(
+ 'noselection' => '---',
+ 'realnames' => true,
+ 'maxlength' => 30,
+ 'folder_filter' => 'mail',
+ 'folder_rights' => 'w',
+ // #1486114, #1488279
+ 'onchange' => "if ($(this).val() == 'INBOX') $(this).val('')",
+ ));
+ }
+ else // dummy select
+ $select = new html_select();
+
+ if (!isset($no_override['drafts_mbox']))
+ $blocks['main']['options']['drafts_mbox'] = array(
+ 'title' => Q(rcube_label('drafts')),
+ 'content' => $select->show($config['drafts_mbox'], array('name' => "_drafts_mbox")),
+ );
+
+ if (!isset($no_override['sent_mbox']))
+ $blocks['main']['options']['sent_mbox'] = array(
+ 'title' => Q(rcube_label('sent')),
+ 'content' => $select->show($config['sent_mbox'], array('name' => "_sent_mbox")),
+ );
+
+ if (!isset($no_override['junk_mbox']))
+ $blocks['main']['options']['junk_mbox'] = array(
+ 'title' => Q(rcube_label('junk')),
+ 'content' => $select->show($config['junk_mbox'], array('name' => "_junk_mbox")),
+ );
+
+ if (!isset($no_override['trash_mbox']))
+ $blocks['main']['options']['trash_mbox'] = array(
+ 'title' => Q(rcube_label('trash')),
+ 'content' => $select->show($config['trash_mbox'], array('name' => "_trash_mbox")),
+ );
+ }
+
+ break;
+
+ // Server settings
+ case 'server':
+
+ $blocks = array(
+ 'main' => array('name' => Q(rcube_label('mainoptions'))),
+ 'maintenance' => array('name' => Q(rcube_label('maintenance'))),
+ );
+
+ if (!isset($no_override['read_when_deleted'])) {
+ $field_id = 'rcmfd_read_deleted';
+ $input_readdeleted = 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'))),
+ 'content' => $input_readdeleted->show($config['read_when_deleted']?1:0),
+ );
+ }
+
+ if (!isset($no_override['flag_for_deletion'])) {
+ $field_id = 'rcmfd_flag_for_deletion';
+ $input_flagfordeletion = 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'))),
+ 'content' => $input_flagfordeletion->show($config['flag_for_deletion']?1:0),
+ );
+ }
+
+ // don't show deleted messages
+ if (!isset($no_override['skip_deleted'])) {
+ $field_id = 'rcmfd_skip_deleted';
+ $input_purge = 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'))),
+ 'content' => $input_purge->show($config['skip_deleted']?1:0),
+ );
+ }
+
+ if (!isset($no_override['delete_always'])) {
+ $field_id = 'rcmfd_delete_always';
+ $input_delete_always = 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'))),
+ 'content' => $input_delete_always->show($config['delete_always']?1:0),
+ );
+ }
+
+ if (!isset($no_override['delete_junk'])) {
+ $field_id = 'rcmfd_delete_junk';
+ $input_delete_junk = 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'))),
+ 'content' => $input_delete_junk->show($config['delete_junk']?1:0),
+ );
+ }
+
+ // Trash purging on logout
+ if (!isset($no_override['logout_purge'])) {
+ $field_id = 'rcmfd_logout_purge';
+ $input_purge = 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'))),
+ 'content' => $input_purge->show($config['logout_purge']?1:0),
+ );
+ }
+
+ // INBOX compacting on logout
+ if (!isset($no_override['logout_expunge'])) {
+ $field_id = 'rcmfd_logout_expunge';
+ $input_expunge = 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'))),
+ 'content' => $input_expunge->show($config['logout_expunge']?1:0),
+ );
+ }
+
+ break;
}
- closedir($dir);
+ $data = $RCMAIL->plugins->exec_hook('preferences_list', array('section' => $sect['id'], 'blocks' => $blocks));
+ $found = false;
+
+ // create output
+ foreach ($data['blocks'] as $block) {
+ if (!empty($block['content']) || !empty($block['options'])) {
+ $found = true;
+ break;
+ }
+ }
+
+ if (!$found)
+ unset($sections[$idx]);
+ else
+ $sections[$idx]['blocks'] = $data['blocks'];
+ }
- return $skins;
+ return array($sections, $plugin['cols']);
+}
+
+
+function rcmail_get_skins()
+{
+ $path = 'skins';
+ $skins = array();
+
+ $dir = opendir($path);
+
+ if (!$dir)
+ return false;
+
+ while (($file = readdir($dir)) !== false)
+ {
+ $filename = $path.'/'.$file;
+ if (!preg_match('/^\./', $file) && is_dir($filename) && is_readable($filename))
+ $skins[] = $file;
+ }
+
+ closedir($dir);
+
+ return $skins;
}
@@ -1274,70 +974,12 @@ function rcmail_update_folder_row($name, $oldname=null, $subscribe=false, $class
$name_utf8, $display_name, $protected, $class_name);
}
-/**
- * Render the list of settings sections (AKA tabs)
- */
-function rcmail_settings_tabs($attrib)
-{
- global $RCMAIL, $OUTPUT;
-
- // add default attributes
- $attrib += array('tagname' => 'span', 'idprefix' => 'settingstab', 'selclass' => 'selected');
-
- $default_actions = array(
- array('command' => 'preferences', 'type' => 'link', 'label' => 'preferences', 'title' => 'editpreferences'),
- array('command' => 'folders', 'type' => 'link', 'label' => 'folders', 'title' => 'managefolders'),
- array('command' => 'identities', 'type' => 'link', 'label' => 'identities', 'title' => 'manageidentities'),
- array('command' => 'responses', 'type' => 'link', 'label' => 'responses', 'title' => 'editresponses'),
- );
-
- // get all identites from DB and define list of cols to be displayed
- $plugin = $RCMAIL->plugins->exec_hook('settings_actions', array(
- 'actions' => $default_actions,
- 'attrib' => $attrib,
- ));
-
- $attrib = $plugin['attrib'];
- $tagname = $attrib['tagname'];
- $tabs = array();
-
- foreach ($plugin['actions'] as $k => $action) {
- if (!$action['command'] && !$action['href'] && $action['action']) {
- $action['href'] = $RCMAIL->url(array('_action' => $action['action']));
- }
-
- $button = $OUTPUT->button($action);
- $attr = $attrib;
-
- $cmd = $action['action'] ? $action['action'] : $action['command'];
- $id = $action['id'] ? $action['id'] : $cmd;
- if (!empty($id)) {
- $attr['id'] = preg_replace('/[^a-z0-9]/i', '', $attrib['idprefix'] . $id);
- }
- $classnames = array($attrib['class']);
- if (!empty($action['class'])) {
- $classnames[] = $action['class'];
- }
- else if (!empty($cmd)) {
- $classnames[] = $cmd;
- }
- if ($RCMAIL->action == $cmd) {
- $classnames[] = $attrib['selclass'];
- }
- $attr['class'] = join(' ', $classnames);
- $tabs[] = html::tag($tagname, $attr, $button, html::$common_attrib);
- }
-
- return join('', $tabs);
-}
-
// register UI objects
$OUTPUT->add_handlers(array(
- 'settingstabs' => 'rcmail_settings_tabs',
- 'prefsframe' => 'rcmail_preferences_frame',
- 'sectionslist' => 'rcmail_sections_list',
- 'identitieslist' => 'rcmail_identities_list',
+ 'prefsframe' => 'rcmail_preferences_frame',
+ 'sectionslist' => 'rcmail_sections_list',
+ 'identitieslist' => 'rcmail_identities_list',
));
// register action aliases
@@ -1350,7 +992,4 @@ $RCMAIL->register_action_map(array(
'purge' => 'folders.inc',
'folder-size' => 'folders.inc',
'add-identity' => 'edit_identity.inc',
- 'add-response' => 'edit_response.inc',
- 'save-response' => 'edit_response.inc',
- 'delete-response' => 'responses.inc',
));
diff --git a/program/steps/settings/save_folder.inc b/program/steps/settings/save_folder.inc
index efb096d57..877b0fbbe 100644
--- a/program/steps/settings/save_folder.inc
+++ b/program/steps/settings/save_folder.inc
@@ -5,7 +5,7 @@
| program/steps/settings/save_folder.inc |
| |
| This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2013, The Roundcube Dev Team |
+ | Copyright (C) 2005-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
@@ -26,8 +26,8 @@ $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);
+$old = trim(get_input_value('_mbox', RCUBE_INPUT_POST, true));
+$path = trim(get_input_value('_parent', RCUBE_INPUT_POST, true));
$name_imap = rcube_charset_convert($name, RCMAIL_CHARSET, 'UTF7-IMAP');
$old_imap = rcube_charset_convert($old, RCMAIL_CHARSET, 'UTF7-IMAP');
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index bcd05bb85..945005d39 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -34,7 +34,6 @@ switch ($CURR_SECTION)
'time_format' => isset($_POST['_time_format']) ? get_input_value('_time_format', RCUBE_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'],
);
@@ -61,7 +60,6 @@ switch ($CURR_SECTION)
case 'mailview':
$a_user_prefs = array(
'message_extwin' => intval($_POST['_message_extwin']),
- 'message_show_email' => isset($_POST['_message_show_email']) ? TRUE : FALSE,
'prefer_html' => isset($_POST['_prefer_html']) ? TRUE : FALSE,
'inline_images' => isset($_POST['_inline_images']) ? TRUE : FALSE,
'show_images' => isset($_POST['_show_images']) ? intval($_POST['_show_images']) : 0,
@@ -89,8 +87,6 @@ switch ($CURR_SECTION)
'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),
- 'reply_all_mode' => intval($_POST['_reply_all_mode']),
'forward_attachment' => !empty($_POST['_forward_attachment']),
);
@@ -122,8 +118,6 @@ switch ($CURR_SECTION)
case 'folders':
$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),
diff --git a/program/steps/utils/spell.inc b/program/steps/utils/spell.inc
index 595cfd6f2..a0dd35d27 100644
--- a/program/steps/utils/spell.inc
+++ b/program/steps/utils/spell.inc
@@ -42,16 +42,6 @@ else {
$result = $spellchecker->get_xml();
}
-if ($err = $spellchecker->error()) {
- rcube::raise_error(array('code' => 500, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => "Spell check engine error: " . trim($err)),
- true, false);
-
- header("HTTP/1.0 500 Internal Server Error");
- exit;
-}
-
// set response length
header("Content-Length: " . strlen($result));
diff --git a/program/steps/utils/spell_html.inc b/program/steps/utils/spell_html.inc
index 96b41e230..861e4ba48 100644
--- a/program/steps/utils/spell_html.inc
+++ b/program/steps/utils/spell_html.inc
@@ -46,11 +46,6 @@ else if ($request['method'] == 'learnWord') {
}
if ($error = $spellchecker->error()) {
- rcube::raise_error(array('code' => 500, 'type' => 'php',
- 'file' => __FILE__, 'line' => __LINE__,
- 'message' => sprintf("Spell check engine error: " . $error)),
- true, false);
-
echo '{"error":{"errstr":"' . addslashes($error) . '","errfile":"","errline":null,"errcontext":"","level":"FATAL"}}';
exit;
}