diff options
Diffstat (limited to 'webmail/plugins/managesieve')
113 files changed, 18675 insertions, 0 deletions
diff --git a/webmail/plugins/managesieve/Changelog b/webmail/plugins/managesieve/Changelog new file mode 100644 index 0000000..159cc3e --- /dev/null +++ b/webmail/plugins/managesieve/Changelog @@ -0,0 +1,271 @@ +- Fix handling of &, <, > characters in scripts/filter names (#1489208) + +* version 6.2 [2013-02-17] +----------------------------------------------------------- +- Support tls:// prefix in managesieve_host option +- Removed depracated functions usage +- Don't trim whitespace in folder names (#1488955) + +* version 6.1 [2012-12-21] +----------------------------------------------------------- +- Fixed filter activation/deactivation confirmation message (#1488765) +- Moved rcube_* classes to <plugin>/lib/Roundcube for compat. with Roundcube Framework autoloader +- Fixed filter selection after filter deletion (#1488832) +- Fixed compatibility with jQueryUI-1.9 +- Don't force 'stop' action on last rule in a script + +* version 6.0 [2012-10-03] +----------------------------------------------------------- +- Fixed issue with DBMail bug [http://pear.php.net/bugs/bug.php?id=19077] (#1488594) +- Added support for enotify/notify (RFC5435, RFC5436, draft-ietf-sieve-notify-00) +- Change default port to 4190 (IANA-allocated), add port auto-detection (#1488713) +- Added request size limits detection and script corruption prevention (#1488648) +- Fix so scripts listed in managesieve_filename_exceptions aren't displayed on the list (#1488724) + +* version 5.2 [2012-07-24] +----------------------------------------------------------- +- Added GUI for variables setting - RFC5229 (patch from Paweł Słowik) +- Fixed scrollbars in Larry's iframes +- Fix performance issue in message_headers_output hook handling + +* version 5.1 [2012-06-21] +----------------------------------------------------------- +- Fixed filter popup width (for non-english localizations) +- Fixed tokenizer infinite loop on invalid script content +- Larry skin support +- Fixed custom header name validity check, made RFC2822-compliant + +* version 5.0 [2012-01-05] +----------------------------------------------------------- +- Fixed setting test type to :is when none is specified +- Fixed javascript error in IE8 +- Fixed possible ID duplication when adding filter rules very fast (#1488288) +- Fixed bug where drag layer wasn't removed when dragging was ended over sets list + +* version 5.0-rc1 [2011-11-17] +----------------------------------------------------------- +- Fixed sorting of scripts, scripts including aware of the sort order +- Fixed import of rules with unsupported tests +- Added 'address' and 'envelope' tests support +- Added 'body' extension support (RFC5173) +- Added 'subaddress' extension support (RFC5233) +- Added comparators support +- Changed Sender/Recipient labels to From/To +- Fixed importing rule names from Ingo +- Fixed handling of extensions disabled in config + +* version 5.0-beta [2011-10-17] +----------------------------------------------------------- +- Added possibility to create a filter based on selected message "in-place" +- Fixed import from Horde-INGO (#1488064) +- Add managesieve_script_name option for default name of the script (#1487956) +- Fixed handling of enabled magic_quotes_gpc setting +- Fixed PHP warning on connection error when submitting filter form +- Fixed bug where new action row with flags wasn't handled properly +- Added managesieve_connect hook for plugins +- Fixed doubled Filter tab on page refresh +- Added filters set selector in filter form when invoked in mail task +- Improved script parser, added support for include and variables extensions +- Added Kolab's KEP:14 support (http://wiki.kolab.org/User:Greve/Drafts/KEP:14) +- Use smaller action/rule buttons +- UI redesign: added possibility to move filter to any place using drag&drop + (instead of up/down buttons), added filter sets list object, added more + 'loading' messages +- Added option to hide some scripts (managesieve_filename_exceptions) + +* version 4.3 [2011-07-28] +----------------------------------------------------------- +- Fixed handling of error in Net_Sieve::listScripts() +- Fixed handling of REFERRAL responses (http://pear.php.net/bugs/bug.php?id=17107) +- Fixed bug where wrong folders hierarchy was displayed on folders listing + +* version 4.2 [2011-05-24] +----------------------------------------------------------- +- Moved elsif replacement code to handle only imports from other formats +- Fixed mod_mailbox() usage for newer Roundcube versions +- Fixed regex extension (error: regex require missing) + +* version 4.1 [2011-03-07] +----------------------------------------------------------- +- Fix fileinto target is always INBOX (#1487776) +- Fix escaping of backslash character in quoted strings (#1487780) +- Fix handling of non-safe characters (double-quote, backslash) + or UTF-8 characters (dovecot's implementation bug workaround) + in script names +- Fix saving of a script using flags extension on servers with imap4flags support (#1487825) + +* version 4.0 [2011-02-10] +----------------------------------------------------------- +- Fix STARTTLS for timsieved < 2.3.10 +- Added :regex and :matches support (#1487746) +- Added setflag/addflag/removeflag support (#1487449) +- Added support for vacation :subject field (#1487120) +- rcube_sieve_script class moved to separate file +- Moved javascript code from skin templates into managesieve.js file + +* version 3.0 [2011-02-01] +----------------------------------------------------------- +- Added support for SASL proxy authentication (#1486691) +- Fixed parsing of scripts with \r\n line separator +- Apply forgotten changes for form errors handling +- Fix multi-line strings parsing (#1487685) +- Added tests for script parser +- Rewritten script parser +- Fix double request when clicking on Filters tab using Firefox + +* version 2.10 [2010-10-10] +----------------------------------------------------------- +- Fixed import from Avelsieve +- Use localized size units (#1486976) +- Added support for relational operators and i;ascii-numeric comparator +- Added popups with form errors + +* version 2.9 [2010-08-02] +----------------------------------------------------------- +- Fixed vacation parameters parsing (#1486883) + +* version 2.8 [2010-07-08] +----------------------------------------------------------- +- Added managesieve_auth_type option (#1486731) + +* version 2.7 [2010-07-06] +----------------------------------------------------------- +- Update Net_Sieve to version 1.3.0 (fixes LOGIN athentication) +- Added support for copying and copy sending of messages (COPY extension) + +* version 2.6 [2010-06-03] +----------------------------------------------------------- +- Support %n and %d variables in managesieve_host option + +* version 2.5 [2010-05-04] +----------------------------------------------------------- +- Fix filters set label after activation +- Fix filters set activation, add possibility to deactivate sets (#1486699) +- Fix download button state when sets list is empty +- Fix errors when sets list is empty + +* version 2.4 [2010-04-01] +----------------------------------------------------------- +- Fixed bug in DIGEST-MD5 authentication (http://pear.php.net/bugs/bug.php?id=17285) +- Fixed disabling rules with many tests +- Small css unification with core +- Scripts import/export + +* version 2.3 [2010-03-18] +----------------------------------------------------------- +- Added import from Horde-INGO +- Support for more than one match using if+stop instead of if+elsif structures (#1486078) +- Support for selectively disabling rules within a single sieve script (#1485882) +- Added vertical splitter + +* version 2.2 [2010-02-06] +----------------------------------------------------------- +- Fix handling of "<>" characters in filter names (#1486477) + +* version 2.1 [2010-01-12] +----------------------------------------------------------- +- Fix "require" structure generation when many modules are used +- Fix problem with '<' and '>' characters in header tests + +* version 2.0 [2009-11-02] +----------------------------------------------------------- +- Added 'managesieve_debug' option +- Added multi-script support +- Small css improvements + sprite image buttons +- PEAR::NetSieve 1.2.0b1 + +* version 1.7 [2009-09-20] +----------------------------------------------------------- +- Support multiple managesieve hosts using %h variable + in managesieve_host option +- Fix first rule deleting (#1486140) + +* version 1.6 [2009-09-08] +----------------------------------------------------------- +- Fix warning when importing squirrelmail rules +- Fix handling of "true" as "anyof (true)" test + +* version 1.5 [2009-09-04] +----------------------------------------------------------- +- Added es_ES, ua_UA localizations +- Added 'managesieve_mbox_encoding' option + +* version 1.4 [2009-07-29] +----------------------------------------------------------- +- Updated PEAR::Net_Sieve to 1.1.7 + +* version 1.3 [2009-07-24] +----------------------------------------------------------- +- support more languages +- support config.inc.php file + +* version 1.2 [2009-06-28] +----------------------------------------------------------- +- Support IMAP namespaces in fileinto (#1485943) +- Added it_IT localization + +* version 1.1 [2009-05-27] +----------------------------------------------------------- +- Added new icons +- Added support for headers lists (coma-separated) in rules +- Added de_CH localization + +* version 1.0 [2009-05-21] +----------------------------------------------------------- +- Rewritten using plugin API +- Added hu_HU localization (Tamas Tevesz) + +* version beta7 (svn-r2300) [2009-03-01] +----------------------------------------------------------- +- Added SquirrelMail script auto-import (Jonathan Ernst) +- Added 'vacation' support (Jonathan Ernst & alec) +- Added 'stop' support (Jonathan Ernst) +- Added option for extensions disabling (Jonathan Ernst & alec) +- Added fi_FI, nl_NL, bg_BG localization +- Small style fixes + +* version 0.2-stable1 (svn-r2205) [2009-01-03] +----------------------------------------------------------- +- Fix moving down filter row +- Fixes for compressed js files in stable release package +- Created patch for svn version r2205 + +* version 0.2-stable [2008-12-31] +----------------------------------------------------------- +- Added ru_RU, fr_FR, zh_CN translation +- Fixes for Roundcube 0.2-stable + +* version rc0.2beta [2008-09-21] +----------------------------------------------------------- +- Small css fixes for IE +- Fixes for Roundcube 0.2-beta + +* version beta6 [2008-08-08] +----------------------------------------------------------- +- Added de_DE translation +- Fix for Roundcube r1634 + +* version beta5 [2008-06-10] +----------------------------------------------------------- +- Fixed 'exists' operators +- Fixed 'not*' operators for custom headers +- Fixed filters deleting + +* version beta4 [2008-06-09] +----------------------------------------------------------- +- Fix for Roundcube r1490 + +* version beta3 [2008-05-22] +----------------------------------------------------------- +- Fixed textarea error class setting +- Added pagetitle setting +- Added option 'managesieve_replace_delimiter' +- Fixed errors on IE (still need some css fixes) + +* version beta2 [2008-05-20] +----------------------------------------------------------- +- Use 'if' only for first filter and 'elsif' for the rest + +* version beta1 [2008-05-15] +----------------------------------------------------------- +- Initial version for Roundcube r1388. diff --git a/webmail/plugins/managesieve/config.inc.php.dist b/webmail/plugins/managesieve/config.inc.php.dist new file mode 100644 index 0000000..65dbcfc --- /dev/null +++ b/webmail/plugins/managesieve/config.inc.php.dist @@ -0,0 +1,67 @@ +<?php + +// managesieve server port. When empty the port will be determined automatically +// using getservbyname() function, with 4190 as a fallback. +$rcmail_config['managesieve_port'] = null; + +// managesieve server address, default is localhost. +// Replacement variables supported in host name: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld +$rcmail_config['managesieve_host'] = 'localhost'; + +// authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL +// or none. Optional, defaults to best method supported by server. +$rcmail_config['managesieve_auth_type'] = null; + +// Optional managesieve authentication identifier to be used as authorization proxy. +// Authenticate as a different user but act on behalf of the logged in user. +// Works with PLAIN and DIGEST-MD5 auth. +$rcmail_config['managesieve_auth_cid'] = null; + +// Optional managesieve authentication password to be used for imap_auth_cid +$rcmail_config['managesieve_auth_pw'] = null; + +// use or not TLS for managesieve server connection +// Note: tls:// prefix in managesieve_host is also supported +$rcmail_config['managesieve_usetls'] = false; + +// default contents of filters script (eg. default spam filter) +$rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/global'; + +// The name of the script which will be used when there's no user script +$rcmail_config['managesieve_script_name'] = 'managesieve'; + +// Sieve RFC says that we should use UTF-8 endcoding for mailbox names, +// but some implementations does not covert UTF-8 to modified UTF-7. +// Defaults to UTF7-IMAP +$rcmail_config['managesieve_mbox_encoding'] = 'UTF-8'; + +// I need this because my dovecot (with listescape plugin) uses +// ':' delimiter, but creates folders with dot delimiter +$rcmail_config['managesieve_replace_delimiter'] = ''; + +// disabled sieve extensions (body, copy, date, editheader, encoded-character, +// envelope, environment, ereject, fileinto, ihave, imap4flags, index, +// mailbox, mboxmetadata, regex, reject, relational, servermetadata, +// spamtest, spamtestplus, subaddress, vacation, variables, virustest, etc. +// Note: not all extensions are implemented +$rcmail_config['managesieve_disabled_extensions'] = array(); + +// Enables debugging of conversation with sieve server. Logs it into <log_dir>/sieve +$rcmail_config['managesieve_debug'] = false; + +// Enables features described in http://wiki.kolab.org/KEP:14 +$rcmail_config['managesieve_kolab_master'] = false; + +// Script name extension used for scripts including. Dovecot uses '.sieve', +// Cyrus uses '.siv'. Doesn't matter if you have managesieve_kolab_master disabled. +$rcmail_config['managesieve_filename_extension'] = '.sieve'; + +// List of reserved script names (without extension). +// Scripts listed here will be not presented to the user. +$rcmail_config['managesieve_filename_exceptions'] = array(); + +?> diff --git a/webmail/plugins/managesieve/lib/Net/Sieve.php b/webmail/plugins/managesieve/lib/Net/Sieve.php new file mode 100644 index 0000000..8a0a9b0 --- /dev/null +++ b/webmail/plugins/managesieve/lib/Net/Sieve.php @@ -0,0 +1,1276 @@ +<?php +/** + * This file contains the Net_Sieve class. + * + * PHP version 4 + * + * +-----------------------------------------------------------------------+ + * | All rights reserved. | + * | | + * | Redistribution and use in source and binary forms, with or without | + * | modification, are permitted provided that the following conditions | + * | are met: | + * | | + * | o Redistributions of source code must retain the above copyright | + * | notice, this list of conditions and the following disclaimer. | + * | o Redistributions in binary form must reproduce the above copyright | + * | notice, this list of conditions and the following disclaimer in the | + * | documentation and/or other materials provided with the distribution.| + * | | + * | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | + * | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | + * | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | + * | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | + * | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | + * | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | + * | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | + * | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | + * | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | + * | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | + * | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | + * +-----------------------------------------------------------------------+ + * + * @category Networking + * @package Net_Sieve + * @author Richard Heyes <richard@phpguru.org> + * @author Damian Fernandez Sosa <damlists@cnba.uba.ar> + * @author Anish Mistry <amistry@am-productions.biz> + * @author Jan Schneider <jan@horde.org> + * @copyright 2002-2003 Richard Heyes + * @copyright 2006-2008 Anish Mistry + * @license http://www.opensource.org/licenses/bsd-license.php BSD + * @version SVN: $Id: Sieve.php 300898 2010-07-01 09:49:02Z yunosh $ + * @link http://pear.php.net/package/Net_Sieve + */ + +require_once 'PEAR.php'; +require_once 'Net/Socket.php'; + +/** + * TODO + * + * o supportsAuthMech() + */ + +/** + * Disconnected state + * @const NET_SIEVE_STATE_DISCONNECTED + */ +define('NET_SIEVE_STATE_DISCONNECTED', 1, true); + +/** + * Authorisation state + * @const NET_SIEVE_STATE_AUTHORISATION + */ +define('NET_SIEVE_STATE_AUTHORISATION', 2, true); + +/** + * Transaction state + * @const NET_SIEVE_STATE_TRANSACTION + */ +define('NET_SIEVE_STATE_TRANSACTION', 3, true); + + +/** + * A class for talking to the timsieved server which comes with Cyrus IMAP. + * + * @category Networking + * @package Net_Sieve + * @author Richard Heyes <richard@phpguru.org> + * @author Damian Fernandez Sosa <damlists@cnba.uba.ar> + * @author Anish Mistry <amistry@am-productions.biz> + * @author Jan Schneider <jan@horde.org> + * @copyright 2002-2003 Richard Heyes + * @copyright 2006-2008 Anish Mistry + * @license http://www.opensource.org/licenses/bsd-license.php BSD + * @version Release: 1.3.0 + * @link http://pear.php.net/package/Net_Sieve + * @link http://www.ietf.org/rfc/rfc3028.txt RFC 3028 (Sieve: A Mail + * Filtering Language) + * @link http://tools.ietf.org/html/draft-ietf-sieve-managesieve A + * Protocol for Remotely Managing Sieve Scripts + */ +class Net_Sieve +{ + /** + * The authentication methods this class supports. + * + * Can be overwritten if having problems with certain methods. + * + * @var array + */ + var $supportedAuthMethods = array('DIGEST-MD5', 'CRAM-MD5', 'EXTERNAL', + 'PLAIN' , 'LOGIN'); + + /** + * SASL authentication methods that require Auth_SASL. + * + * @var array + */ + var $supportedSASLAuthMethods = array('DIGEST-MD5', 'CRAM-MD5'); + + /** + * The socket handle. + * + * @var resource + */ + var $_sock; + + /** + * Parameters and connection information. + * + * @var array + */ + var $_data; + + /** + * Current state of the connection. + * + * One of the NET_SIEVE_STATE_* constants. + * + * @var integer + */ + var $_state; + + /** + * Constructor error. + * + * @var PEAR_Error + */ + var $_error; + + /** + * Whether to enable debugging. + * + * @var boolean + */ + var $_debug = false; + + /** + * Debug output handler. + * + * This has to be a valid callback. + * + * @var string|array + */ + var $_debug_handler = null; + + /** + * Whether to pick up an already established connection. + * + * @var boolean + */ + var $_bypassAuth = false; + + /** + * Whether to use TLS if available. + * + * @var boolean + */ + var $_useTLS = true; + + /** + * Additional options for stream_context_create(). + * + * @var array + */ + var $_options = null; + + /** + * Maximum number of referral loops + * + * @var array + */ + var $_maxReferralCount = 15; + + /** + * Constructor. + * + * Sets up the object, connects to the server and logs in. Stores any + * generated error in $this->_error, which can be retrieved using the + * getError() method. + * + * @param string $user Login username. + * @param string $pass Login password. + * @param string $host Hostname of server. + * @param string $port Port of server. + * @param string $logintype Type of login to perform (see + * $supportedAuthMethods). + * @param string $euser Effective user. If authenticating as an + * administrator, login as this user. + * @param boolean $debug Whether to enable debugging (@see setDebug()). + * @param string $bypassAuth Skip the authentication phase. Useful if the + * socket is already open. + * @param boolean $useTLS Use TLS if available. + * @param array $options Additional options for + * stream_context_create(). + * @param mixed $handler A callback handler for the debug output. + */ + function Net_Sieve($user = null, $pass = null, $host = 'localhost', + $port = 2000, $logintype = '', $euser = '', + $debug = false, $bypassAuth = false, $useTLS = true, + $options = null, $handler = null) + { + $this->_state = NET_SIEVE_STATE_DISCONNECTED; + $this->_data['user'] = $user; + $this->_data['pass'] = $pass; + $this->_data['host'] = $host; + $this->_data['port'] = $port; + $this->_data['logintype'] = $logintype; + $this->_data['euser'] = $euser; + $this->_sock = new Net_Socket(); + $this->_bypassAuth = $bypassAuth; + $this->_useTLS = $useTLS; + $this->_options = $options; + $this->setDebug($debug, $handler); + + /* Try to include the Auth_SASL package. If the package is not + * available, we disable the authentication methods that depend upon + * it. */ + if ((@include_once 'Auth/SASL.php') === false) { + $this->_debug('Auth_SASL not present'); + foreach ($this->supportedSASLAuthMethods as $SASLMethod) { + $pos = array_search($SASLMethod, $this->supportedAuthMethods); + $this->_debug('Disabling method ' . $SASLMethod); + unset($this->supportedAuthMethods[$pos]); + } + } + + if (strlen($user) && strlen($pass)) { + $this->_error = $this->_handleConnectAndLogin(); + } + } + + /** + * Returns any error that may have been generated in the constructor. + * + * @return boolean|PEAR_Error False if no error, PEAR_Error otherwise. + */ + function getError() + { + return PEAR::isError($this->_error) ? $this->_error : false; + } + + /** + * Sets the debug state and handler function. + * + * @param boolean $debug Whether to enable debugging. + * @param string $handler A custom debug handler. Must be a valid callback. + * + * @return void + */ + function setDebug($debug = true, $handler = null) + { + $this->_debug = $debug; + $this->_debug_handler = $handler; + } + + /** + * Connects to the server and logs in. + * + * @return boolean True on success, PEAR_Error on failure. + */ + function _handleConnectAndLogin() + { + if (PEAR::isError($res = $this->connect($this->_data['host'], $this->_data['port'], $this->_options, $this->_useTLS))) { + return $res; + } + if ($this->_bypassAuth === false) { + if (PEAR::isError($res = $this->login($this->_data['user'], $this->_data['pass'], $this->_data['logintype'], $this->_data['euser'], $this->_bypassAuth))) { + return $res; + } + } + return true; + } + + /** + * Handles connecting to the server and checks the response validity. + * + * @param string $host Hostname of server. + * @param string $port Port of server. + * @param array $options List of options to pass to + * stream_context_create(). + * @param boolean $useTLS Use TLS if available. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function connect($host, $port, $options = null, $useTLS = true) + { + $this->_data['host'] = $host; + $this->_data['port'] = $port; + $this->_useTLS = $useTLS; + if (!empty($options) && is_array($options)) { + $this->_options = array_merge($this->_options, $options); + } + + if (NET_SIEVE_STATE_DISCONNECTED != $this->_state) { + return PEAR::raiseError('Not currently in DISCONNECTED state', 1); + } + + if (PEAR::isError($res = $this->_sock->connect($host, $port, false, 5, $options))) { + return $res; + } + + if ($this->_bypassAuth) { + $this->_state = NET_SIEVE_STATE_TRANSACTION; + } else { + $this->_state = NET_SIEVE_STATE_AUTHORISATION; + if (PEAR::isError($res = $this->_doCmd())) { + return $res; + } + } + + // Explicitly ask for the capabilities in case the connection is + // picked up from an existing connection. + if (PEAR::isError($res = $this->_cmdCapability())) { + return PEAR::raiseError( + 'Failed to connect, server said: ' . $res->getMessage(), 2 + ); + } + + // Check if we can enable TLS via STARTTLS. + if ($useTLS && !empty($this->_capability['starttls']) + && function_exists('stream_socket_enable_crypto') + ) { + if (PEAR::isError($res = $this->_startTLS())) { + return $res; + } + } + + return true; + } + + /** + * Disconnect from the Sieve server. + * + * @param boolean $sendLogoutCMD Whether to send LOGOUT command before + * disconnecting. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function disconnect($sendLogoutCMD = true) + { + return $this->_cmdLogout($sendLogoutCMD); + } + + /** + * Logs into server. + * + * @param string $user Login username. + * @param string $pass Login password. + * @param string $logintype Type of login method to use. + * @param string $euser Effective UID (perform on behalf of $euser). + * @param boolean $bypassAuth Do not perform authentication. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function login($user, $pass, $logintype = null, $euser = '', $bypassAuth = false) + { + $this->_data['user'] = $user; + $this->_data['pass'] = $pass; + $this->_data['logintype'] = $logintype; + $this->_data['euser'] = $euser; + $this->_bypassAuth = $bypassAuth; + + if (NET_SIEVE_STATE_AUTHORISATION != $this->_state) { + return PEAR::raiseError('Not currently in AUTHORISATION state', 1); + } + + if (!$bypassAuth ) { + if (PEAR::isError($res = $this->_cmdAuthenticate($user, $pass, $logintype, $euser))) { + return $res; + } + } + $this->_state = NET_SIEVE_STATE_TRANSACTION; + + return true; + } + + /** + * Returns an indexed array of scripts currently on the server. + * + * @return array Indexed array of scriptnames. + */ + function listScripts() + { + if (is_array($scripts = $this->_cmdListScripts())) { + $this->_active = $scripts[1]; + return $scripts[0]; + } else { + return $scripts; + } + } + + /** + * Returns the active script. + * + * @return string The active scriptname. + */ + function getActive() + { + if (!empty($this->_active)) { + return $this->_active; + } + if (is_array($scripts = $this->_cmdListScripts())) { + $this->_active = $scripts[1]; + return $scripts[1]; + } + } + + /** + * Sets the active script. + * + * @param string $scriptname The name of the script to be set as active. + * + * @return boolean True on success, PEAR_Error on failure. + */ + function setActive($scriptname) + { + return $this->_cmdSetActive($scriptname); + } + + /** + * Retrieves a script. + * + * @param string $scriptname The name of the script to be retrieved. + * + * @return string The script on success, PEAR_Error on failure. + */ + function getScript($scriptname) + { + return $this->_cmdGetScript($scriptname); + } + + /** + * Adds a script to the server. + * + * @param string $scriptname Name of the script. + * @param string $script The script content. + * @param boolean $makeactive Whether to make this the active script. + * + * @return boolean True on success, PEAR_Error on failure. + */ + function installScript($scriptname, $script, $makeactive = false) + { + if (PEAR::isError($res = $this->_cmdPutScript($scriptname, $script))) { + return $res; + } + if ($makeactive) { + return $this->_cmdSetActive($scriptname); + } + return true; + } + + /** + * Removes a script from the server. + * + * @param string $scriptname Name of the script. + * + * @return boolean True on success, PEAR_Error on failure. + */ + function removeScript($scriptname) + { + return $this->_cmdDeleteScript($scriptname); + } + + /** + * Checks if the server has space to store the script by the server. + * + * @param string $scriptname The name of the script to mark as active. + * @param integer $size The size of the script. + * + * @return boolean|PEAR_Error True if there is space, PEAR_Error otherwise. + * + * @todo Rename to hasSpace() + */ + function haveSpace($scriptname, $size) + { + if (NET_SIEVE_STATE_TRANSACTION != $this->_state) { + return PEAR::raiseError('Not currently in TRANSACTION state', 1); + } + + $command = sprintf('HAVESPACE %s %d', $this->_escape($scriptname), $size); + if (PEAR::isError($res = $this->_doCmd($command))) { + return $res; + } + return true; + } + + /** + * Returns the list of extensions the server supports. + * + * @return array List of extensions or PEAR_Error on failure. + */ + function getExtensions() + { + if (NET_SIEVE_STATE_DISCONNECTED == $this->_state) { + return PEAR::raiseError('Not currently connected', 7); + } + return $this->_capability['extensions']; + } + + /** + * Returns whether the server supports an extension. + * + * @param string $extension The extension to check. + * + * @return boolean Whether the extension is supported or PEAR_Error on + * failure. + */ + function hasExtension($extension) + { + if (NET_SIEVE_STATE_DISCONNECTED == $this->_state) { + return PEAR::raiseError('Not currently connected', 7); + } + + $extension = trim($this->_toUpper($extension)); + if (is_array($this->_capability['extensions'])) { + foreach ($this->_capability['extensions'] as $ext) { + if ($ext == $extension) { + return true; + } + } + } + + return false; + } + + /** + * Returns the list of authentication methods the server supports. + * + * @return array List of authentication methods or PEAR_Error on failure. + */ + function getAuthMechs() + { + if (NET_SIEVE_STATE_DISCONNECTED == $this->_state) { + return PEAR::raiseError('Not currently connected', 7); + } + return $this->_capability['sasl']; + } + + /** + * Returns whether the server supports an authentication method. + * + * @param string $method The method to check. + * + * @return boolean Whether the method is supported or PEAR_Error on + * failure. + */ + function hasAuthMech($method) + { + if (NET_SIEVE_STATE_DISCONNECTED == $this->_state) { + return PEAR::raiseError('Not currently connected', 7); + } + + $method = trim($this->_toUpper($method)); + if (is_array($this->_capability['sasl'])) { + foreach ($this->_capability['sasl'] as $sasl) { + if ($sasl == $method) { + return true; + } + } + } + + return false; + } + + /** + * Handles the authentication using any known method. + * + * @param string $uid The userid to authenticate as. + * @param string $pwd The password to authenticate with. + * @param string $userMethod The method to use. If empty, the class chooses + * the best (strongest) available method. + * @param string $euser The effective uid to authenticate as. + * + * @return void + */ + function _cmdAuthenticate($uid, $pwd, $userMethod = null, $euser = '') + { + if (PEAR::isError($method = $this->_getBestAuthMethod($userMethod))) { + return $method; + } + switch ($method) { + case 'DIGEST-MD5': + return $this->_authDigestMD5($uid, $pwd, $euser); + case 'CRAM-MD5': + $result = $this->_authCRAMMD5($uid, $pwd, $euser); + break; + case 'LOGIN': + $result = $this->_authLOGIN($uid, $pwd, $euser); + break; + case 'PLAIN': + $result = $this->_authPLAIN($uid, $pwd, $euser); + break; + case 'EXTERNAL': + $result = $this->_authEXTERNAL($uid, $pwd, $euser); + break; + default : + $result = PEAR::raiseError( + $method . ' is not a supported authentication method' + ); + break; + } + + if (PEAR::isError($res = $this->_doCmd())) { + return $res; + } + + return $result; + } + + /** + * Authenticates the user using the PLAIN method. + * + * @param string $user The userid to authenticate as. + * @param string $pass The password to authenticate with. + * @param string $euser The effective uid to authenticate as. + * + * @return void + */ + function _authPLAIN($user, $pass, $euser) + { + return $this->_sendCmd( + sprintf( + 'AUTHENTICATE "PLAIN" "%s"', + base64_encode($euser . chr(0) . $user . chr(0) . $pass) + ) + ); + } + + /** + * Authenticates the user using the LOGIN method. + * + * @param string $user The userid to authenticate as. + * @param string $pass The password to authenticate with. + * @param string $euser The effective uid to authenticate as. + * + * @return void + */ + function _authLOGIN($user, $pass, $euser) + { + if (PEAR::isError($result = $this->_sendCmd('AUTHENTICATE "LOGIN"'))) { + return $result; + } + if (PEAR::isError($result = $this->_doCmd('"' . base64_encode($user) . '"', true))) { + return $result; + } + return $this->_doCmd('"' . base64_encode($pass) . '"', true); + } + + /** + * Authenticates the user using the CRAM-MD5 method. + * + * @param string $user The userid to authenticate as. + * @param string $pass The password to authenticate with. + * @param string $euser The effective uid to authenticate as. + * + * @return void + */ + function _authCRAMMD5($user, $pass, $euser) + { + if (PEAR::isError($challenge = $this->_doCmd('AUTHENTICATE "CRAM-MD5"', true))) { + return $challenge; + } + + $challenge = base64_decode(trim($challenge)); + $cram = Auth_SASL::factory('crammd5'); + if (PEAR::isError($response = $cram->getResponse($user, $pass, $challenge))) { + return $response; + } + + return $this->_sendStringResponse(base64_encode($response)); + } + + /** + * Authenticates the user using the DIGEST-MD5 method. + * + * @param string $user The userid to authenticate as. + * @param string $pass The password to authenticate with. + * @param string $euser The effective uid to authenticate as. + * + * @return void + */ + function _authDigestMD5($user, $pass, $euser) + { + if (PEAR::isError($challenge = $this->_doCmd('AUTHENTICATE "DIGEST-MD5"', true))) { + return $challenge; + } + + $challenge = base64_decode(trim($challenge)); + $digest = Auth_SASL::factory('digestmd5'); + // @todo Really 'localhost'? + if (PEAR::isError($response = $digest->getResponse($user, $pass, $challenge, 'localhost', 'sieve', $euser))) { + return $response; + } + + if (PEAR::isError($result = $this->_sendStringResponse(base64_encode($response)))) { + return $result; + } + if (PEAR::isError($result = $this->_doCmd('', true))) { + return $result; + } + if ($this->_toUpper(substr($result, 0, 2)) == 'OK') { + return; + } + + /* We don't use the protocol's third step because SIEVE doesn't allow + * subsequent authentication, so we just silently ignore it. */ + if (PEAR::isError($result = $this->_sendStringResponse(''))) { + return $result; + } + + return $this->_doCmd(); + } + + /** + * Authenticates the user using the EXTERNAL method. + * + * @param string $user The userid to authenticate as. + * @param string $pass The password to authenticate with. + * @param string $euser The effective uid to authenticate as. + * + * @return void + * + * @since 1.1.7 + */ + function _authEXTERNAL($user, $pass, $euser) + { + $cmd = sprintf( + 'AUTHENTICATE "EXTERNAL" "%s"', + base64_encode(strlen($euser) ? $euser : $user) + ); + return $this->_sendCmd($cmd); + } + + /** + * Removes a script from the server. + * + * @param string $scriptname Name of the script to delete. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function _cmdDeleteScript($scriptname) + { + if (NET_SIEVE_STATE_TRANSACTION != $this->_state) { + return PEAR::raiseError('Not currently in AUTHORISATION state', 1); + } + + $command = sprintf('DELETESCRIPT %s', $this->_escape($scriptname)); + if (PEAR::isError($res = $this->_doCmd($command))) { + return $res; + } + return true; + } + + /** + * Retrieves the contents of the named script. + * + * @param string $scriptname Name of the script to retrieve. + * + * @return string The script if successful, PEAR_Error otherwise. + */ + function _cmdGetScript($scriptname) + { + if (NET_SIEVE_STATE_TRANSACTION != $this->_state) { + return PEAR::raiseError('Not currently in AUTHORISATION state', 1); + } + + $command = sprintf('GETSCRIPT %s', $this->_escape($scriptname)); + if (PEAR::isError($res = $this->_doCmd($command))) { + return $res; + } + + return preg_replace('/^{[0-9]+}\r\n/', '', $res); + } + + /** + * Sets the active script, i.e. the one that gets run on new mail by the + * server. + * + * @param string $scriptname The name of the script to mark as active. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function _cmdSetActive($scriptname) + { + if (NET_SIEVE_STATE_TRANSACTION != $this->_state) { + return PEAR::raiseError('Not currently in AUTHORISATION state', 1); + } + + $command = sprintf('SETACTIVE %s', $this->_escape($scriptname)); + if (PEAR::isError($res = $this->_doCmd($command))) { + return $res; + } + + $this->_activeScript = $scriptname; + return true; + } + + /** + * Returns the list of scripts on the server. + * + * @return array An array with the list of scripts in the first element + * and the active script in the second element on success, + * PEAR_Error otherwise. + */ + function _cmdListScripts() + { + if (NET_SIEVE_STATE_TRANSACTION != $this->_state) { + return PEAR::raiseError('Not currently in AUTHORISATION state', 1); + } + + if (PEAR::isError($res = $this->_doCmd('LISTSCRIPTS'))) { + return $res; + } + + $scripts = array(); + $activescript = null; + $res = explode("\r\n", $res); + foreach ($res as $value) { + if (preg_match('/^"(.*)"( ACTIVE)?$/i', $value, $matches)) { + $script_name = stripslashes($matches[1]); + $scripts[] = $script_name; + if (!empty($matches[2])) { + $activescript = $script_name; + } + } + } + + return array($scripts, $activescript); + } + + /** + * Adds a script to the server. + * + * @param string $scriptname Name of the new script. + * @param string $scriptdata The new script. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function _cmdPutScript($scriptname, $scriptdata) + { + if (NET_SIEVE_STATE_TRANSACTION != $this->_state) { + return PEAR::raiseError('Not currently in AUTHORISATION state', 1); + } + + $stringLength = $this->_getLineLength($scriptdata); + $command = sprintf("PUTSCRIPT %s {%d+}\r\n%s", + $this->_escape($scriptname), $stringLength, $scriptdata); + + if (PEAR::isError($res = $this->_doCmd($command))) { + return $res; + } + + return true; + } + + /** + * Logs out of the server and terminates the connection. + * + * @param boolean $sendLogoutCMD Whether to send LOGOUT command before + * disconnecting. + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function _cmdLogout($sendLogoutCMD = true) + { + if (NET_SIEVE_STATE_DISCONNECTED == $this->_state) { + return PEAR::raiseError('Not currently connected', 1); + } + + if ($sendLogoutCMD) { + if (PEAR::isError($res = $this->_doCmd('LOGOUT'))) { + return $res; + } + } + + $this->_sock->disconnect(); + $this->_state = NET_SIEVE_STATE_DISCONNECTED; + + return true; + } + + /** + * Sends the CAPABILITY command + * + * @return boolean True on success, PEAR_Error otherwise. + */ + function _cmdCapability() + { + if (NET_SIEVE_STATE_DISCONNECTED == $this->_state) { + return PEAR::raiseError('Not currently connected', 1); + } + if (PEAR::isError($res = $this->_doCmd('CAPABILITY'))) { + return $res; + } + $this->_parseCapability($res); + return true; + } + + /** + * Parses the response from the CAPABILITY command and stores the result + * in $_capability. + * + * @param string $data The response from the capability command. + * + * @return void + */ + function _parseCapability($data) + { + // Clear the cached capabilities. + $this->_capability = array('sasl' => array(), + 'extensions' => array()); + + $data = preg_split('/\r?\n/', $this->_toUpper($data), -1, PREG_SPLIT_NO_EMPTY); + + for ($i = 0; $i < count($data); $i++) { + if (!preg_match('/^"([A-Z]+)"( "(.*)")?$/', $data[$i], $matches)) { + continue; + } + switch ($matches[1]) { + case 'IMPLEMENTATION': + $this->_capability['implementation'] = $matches[3]; + break; + + case 'SASL': + $this->_capability['sasl'] = preg_split('/\s+/', $matches[3]); + break; + + case 'SIEVE': + $this->_capability['extensions'] = preg_split('/\s+/', $matches[3]); + break; + + case 'STARTTLS': + $this->_capability['starttls'] = true; + break; + } + } + } + + /** + * Sends a command to the server + * + * @param string $cmd The command to send. + * + * @return void + */ + function _sendCmd($cmd) + { + $status = $this->_sock->getStatus(); + if (PEAR::isError($status) || $status['eof']) { + return PEAR::raiseError('Failed to write to socket: connection lost'); + } + if (PEAR::isError($error = $this->_sock->write($cmd . "\r\n"))) { + return PEAR::raiseError( + 'Failed to write to socket: ' . $error->getMessage() + ); + } + $this->_debug("C: $cmd"); + } + + /** + * Sends a string response to the server. + * + * @param string $str The string to send. + * + * @return void + */ + function _sendStringResponse($str) + { + return $this->_sendCmd('{' . $this->_getLineLength($str) . "+}\r\n" . $str); + } + + /** + * Receives a single line from the server. + * + * @return string The server response line. + */ + function _recvLn() + { + if (PEAR::isError($lastline = $this->_sock->gets(8192))) { + return PEAR::raiseError( + 'Failed to read from socket: ' . $lastline->getMessage() + ); + } + + $lastline = rtrim($lastline); + $this->_debug("S: $lastline"); + + if ($lastline === '') { + return PEAR::raiseError('Failed to read from socket'); + } + + return $lastline; + } + + /** + * Receives x bytes from the server. + * + * @param int $length Number of bytes to read + * + * @return string The server response. + */ + function _recvBytes($length) + { + $response = ''; + $response_length = 0; + + while ($response_length < $length) { + $response .= $this->_sock->read($length - $response_length); + $response_length = $this->_getLineLength($response); + } + + $this->_debug("S: " . rtrim($response)); + + return $response; + } + + /** + * Send a command and retrieves a response from the server. + * + * @param string $cmd The command to send. + * @param boolean $auth Whether this is an authentication command. + * + * @return string|PEAR_Error Reponse string if an OK response, PEAR_Error + * if a NO response. + */ + function _doCmd($cmd = '', $auth = false) + { + $referralCount = 0; + while ($referralCount < $this->_maxReferralCount) { + if (strlen($cmd)) { + if (PEAR::isError($error = $this->_sendCmd($cmd))) { + return $error; + } + } + + $response = ''; + while (true) { + if (PEAR::isError($line = $this->_recvLn())) { + return $line; + } + $uc_line = $this->_toUpper($line); + + if ('OK' == substr($uc_line, 0, 2)) { + $response .= $line; + return rtrim($response); + } + + if ('NO' == substr($uc_line, 0, 2)) { + // Check for string literal error message. + if (preg_match('/{([0-9]+)}$/i', $line, $matches)) { + $line = substr($line, 0, -(strlen($matches[1])+2)) + . str_replace( + "\r\n", ' ', $this->_recvBytes($matches[1] + 2) + ); + } + return PEAR::raiseError(trim($response . substr($line, 2)), 3); + } + + if ('BYE' == substr($uc_line, 0, 3)) { + if (PEAR::isError($error = $this->disconnect(false))) { + return PEAR::raiseError( + 'Cannot handle BYE, the error was: ' + . $error->getMessage(), + 4 + ); + } + // Check for referral, then follow it. Otherwise, carp an + // error. + if (preg_match('/^bye \(referral "(sieve:\/\/)?([^"]+)/i', $line, $matches)) { + // Replace the old host with the referral host + // preserving any protocol prefix. + $this->_data['host'] = preg_replace( + '/\w+(?!(\w|\:\/\/)).*/', $matches[2], + $this->_data['host'] + ); + if (PEAR::isError($error = $this->_handleConnectAndLogin())) { + return PEAR::raiseError( + 'Cannot follow referral to ' + . $this->_data['host'] . ', the error was: ' + . $error->getMessage(), + 5 + ); + } + break; + } + return PEAR::raiseError(trim($response . $line), 6); + } + + // "\+?" is added in the regexp to workaround DBMail bug + // http://dbmail.org/mantis/view.php?id=963 + if (preg_match('/^{([0-9]+)\+?}/i', $line, $matches)) { + // Matches literal string responses. + $line = $this->_recvBytes($matches[1] + 2); + + if (!$auth) { + // Receive the pending OK only if we aren't + // authenticating since string responses during + // authentication don't need an OK. + $this->_recvLn(); + } + return $line; + } + + if ($auth) { + // String responses during authentication don't need an + // OK. + $response .= $line; + return rtrim($response); + } + + $response .= $line . "\r\n"; + $referralCount++; + } + } + + return PEAR::raiseError('Max referral count (' . $referralCount . ') reached. Cyrus murder loop error?', 7); + } + + /** + * Returns the name of the best authentication method that the server + * has advertised. + * + * @param string $userMethod Only consider this method as available. + * + * @return string The name of the best supported authentication method or + * a PEAR_Error object on failure. + */ + function _getBestAuthMethod($userMethod = null) + { + if (!isset($this->_capability['sasl'])) { + return PEAR::raiseError('This server doesn\'t support any authentication methods. SASL problem?'); + } + if (!$this->_capability['sasl']) { + return PEAR::raiseError('This server doesn\'t support any authentication methods.'); + } + + if ($userMethod) { + if (in_array($userMethod, $this->_capability['sasl'])) { + return $userMethod; + } + return PEAR::raiseError( + sprintf('No supported authentication method found. The server supports these methods: %s, but we want to use: %s', + implode(', ', $this->_capability['sasl']), + $userMethod)); + } + + foreach ($this->supportedAuthMethods as $method) { + if (in_array($method, $this->_capability['sasl'])) { + return $method; + } + } + + return PEAR::raiseError( + sprintf('No supported authentication method found. The server supports these methods: %s, but we only support: %s', + implode(', ', $this->_capability['sasl']), + implode(', ', $this->supportedAuthMethods))); + } + + /** + * Starts a TLS connection. + * + * @return boolean True on success, PEAR_Error on failure. + */ + function _startTLS() + { + if (PEAR::isError($res = $this->_doCmd('STARTTLS'))) { + return $res; + } + + if (!stream_socket_enable_crypto($this->_sock->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { + return PEAR::raiseError('Failed to establish TLS connection', 2); + } + + $this->_debug('STARTTLS negotiation successful'); + + // The server should be sending a CAPABILITY response after + // negotiating TLS. Read it, and ignore if it doesn't. + // Doesn't work with older timsieved versions + $regexp = '/^CYRUS TIMSIEVED V([0-9.]+)/'; + if (!preg_match($regexp, $this->_capability['implementation'], $matches) + || version_compare($matches[1], '2.3.10', '>=') + ) { + $this->_doCmd(); + } + + // RFC says we need to query the server capabilities again now that we + // are under encryption. + if (PEAR::isError($res = $this->_cmdCapability())) { + return PEAR::raiseError( + 'Failed to connect, server said: ' . $res->getMessage(), 2 + ); + } + + return true; + } + + /** + * Returns the length of a string. + * + * @param string $string A string. + * + * @return integer The length of the string. + */ + function _getLineLength($string) + { + if (extension_loaded('mbstring')) { + return mb_strlen($string, 'latin1'); + } else { + return strlen($string); + } + } + + /** + * Locale independant strtoupper() implementation. + * + * @param string $string The string to convert to lowercase. + * + * @return string The lowercased string, based on ASCII encoding. + */ + function _toUpper($string) + { + $language = setlocale(LC_CTYPE, 0); + setlocale(LC_CTYPE, 'C'); + $string = strtoupper($string); + setlocale(LC_CTYPE, $language); + return $string; + } + + /** + * Convert string into RFC's quoted-string or literal-c2s form + * + * @param string $string The string to convert. + * + * @return string Result string + */ + function _escape($string) + { + // Some implementations doesn't allow UTF-8 characters in quoted-string + // It's safe to use literal-c2s + if (preg_match('/[^\x01-\x09\x0B-\x0C\x0E-\x7F]/', $string)) { + return sprintf("{%d+}\r\n%s", $this->_getLineLength($string), $string); + } + + return '"' . addcslashes($string, '\\"') . '"'; + } + + /** + * Write debug text to the current debug output handler. + * + * @param string $message Debug message text. + * + * @return void + */ + function _debug($message) + { + if ($this->_debug) { + if ($this->_debug_handler) { + call_user_func_array($this->_debug_handler, array(&$this, $message)); + } else { + echo "$message\n"; + } + } + } +} diff --git a/webmail/plugins/managesieve/lib/Roundcube/rcube_sieve.php b/webmail/plugins/managesieve/lib/Roundcube/rcube_sieve.php new file mode 100644 index 0000000..4f66bf0 --- /dev/null +++ b/webmail/plugins/managesieve/lib/Roundcube/rcube_sieve.php @@ -0,0 +1,384 @@ +<?php + +/** + * Classes for managesieve operations (using PEAR::Net_Sieve) + * + * Copyright (C) 2008-2011, The Roundcube Dev Team + * Copyright (C) 2011, Kolab Systems AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +// Managesieve Protocol: RFC5804 + +define('SIEVE_ERROR_CONNECTION', 1); +define('SIEVE_ERROR_LOGIN', 2); +define('SIEVE_ERROR_NOT_EXISTS', 3); // script not exists +define('SIEVE_ERROR_INSTALL', 4); // script installation +define('SIEVE_ERROR_ACTIVATE', 5); // script activation +define('SIEVE_ERROR_DELETE', 6); // script deletion +define('SIEVE_ERROR_INTERNAL', 7); // internal error +define('SIEVE_ERROR_DEACTIVATE', 8); // script activation +define('SIEVE_ERROR_OTHER', 255); // other/unknown error + + +class rcube_sieve +{ + private $sieve; // Net_Sieve object + private $error = false; // error flag + private $list = array(); // scripts list + + public $script; // rcube_sieve_script object + public $current; // name of currently loaded script + private $exts; // array of supported extensions + + + /** + * Object constructor + * + * @param string Username (for managesieve login) + * @param string Password (for managesieve login) + * @param string Managesieve server hostname/address + * @param string Managesieve server port number + * @param string Managesieve authentication method + * @param boolean Enable/disable TLS use + * @param array Disabled extensions + * @param boolean Enable/disable debugging + * @param string Proxy authentication identifier + * @param string Proxy authentication password + */ + public function __construct($username, $password='', $host='localhost', $port=2000, + $auth_type=null, $usetls=true, $disabled=array(), $debug=false, + $auth_cid=null, $auth_pw=null) + { + $this->sieve = new Net_Sieve(); + + if ($debug) { + $this->sieve->setDebug(true, array($this, 'debug_handler')); + } + + if (PEAR::isError($this->sieve->connect($host, $port, null, $usetls))) { + return $this->_set_error(SIEVE_ERROR_CONNECTION); + } + + if (!empty($auth_cid)) { + $authz = $username; + $username = $auth_cid; + $password = $auth_pw; + } + + if (PEAR::isError($this->sieve->login($username, $password, + $auth_type ? strtoupper($auth_type) : null, $authz)) + ) { + return $this->_set_error(SIEVE_ERROR_LOGIN); + } + + $this->exts = $this->get_extensions(); + + // disable features by config + if (!empty($disabled)) { + // we're working on lower-cased names + $disabled = array_map('strtolower', (array) $disabled); + foreach ($disabled as $ext) { + if (($idx = array_search($ext, $this->exts)) !== false) { + unset($this->exts[$idx]); + } + } + } + } + + public function __destruct() { + $this->sieve->disconnect(); + } + + /** + * Getter for error code + */ + public function error() + { + return $this->error ? $this->error : false; + } + + /** + * Saves current script into server + */ + public function save($name = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$this->script) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$name) + $name = $this->current; + + $script = $this->script->as_text(); + + if (!$script) + $script = '/* empty script */'; + + if (PEAR::isError($this->sieve->installScript($name, $script))) + return $this->_set_error(SIEVE_ERROR_INSTALL); + + return true; + } + + /** + * Saves text script into server + */ + public function save_script($name, $content = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$content) + $content = '/* empty script */'; + + if (PEAR::isError($this->sieve->installScript($name, $content))) + return $this->_set_error(SIEVE_ERROR_INSTALL); + + return true; + } + + /** + * Activates specified script + */ + public function activate($name = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$name) + $name = $this->current; + + if (PEAR::isError($this->sieve->setActive($name))) + return $this->_set_error(SIEVE_ERROR_ACTIVATE); + + return true; + } + + /** + * De-activates specified script + */ + public function deactivate() + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (PEAR::isError($this->sieve->setActive(''))) + return $this->_set_error(SIEVE_ERROR_DEACTIVATE); + + return true; + } + + /** + * Removes specified script + */ + public function remove($name = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$name) + $name = $this->current; + + // script must be deactivated first + if ($name == $this->sieve->getActive()) + if (PEAR::isError($this->sieve->setActive(''))) + return $this->_set_error(SIEVE_ERROR_DELETE); + + if (PEAR::isError($this->sieve->removeScript($name))) + return $this->_set_error(SIEVE_ERROR_DELETE); + + if ($name == $this->current) + $this->current = null; + + return true; + } + + /** + * Gets list of supported by server Sieve extensions + */ + public function get_extensions() + { + if ($this->exts) + return $this->exts; + + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + $ext = $this->sieve->getExtensions(); + // we're working on lower-cased names + $ext = array_map('strtolower', (array) $ext); + + if ($this->script) { + $supported = $this->script->get_extensions(); + foreach ($ext as $idx => $ext_name) + if (!in_array($ext_name, $supported)) + unset($ext[$idx]); + } + + return array_values($ext); + } + + /** + * Gets list of scripts from server + */ + public function get_scripts() + { + if (!$this->list) { + + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + $list = $this->sieve->listScripts(); + + if (PEAR::isError($list)) + return $this->_set_error(SIEVE_ERROR_OTHER); + + $this->list = $list; + } + + return $this->list; + } + + /** + * Returns active script name + */ + public function get_active() + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + return $this->sieve->getActive(); + } + + /** + * Loads script by name + */ + public function load($name) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if ($this->current == $name) + return true; + + $script = $this->sieve->getScript($name); + + if (PEAR::isError($script)) + return $this->_set_error(SIEVE_ERROR_OTHER); + + // try to parse from Roundcube format + $this->script = $this->_parse($script); + + $this->current = $name; + + return true; + } + + /** + * Loads script from text content + */ + public function load_script($script) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + // try to parse from Roundcube format + $this->script = $this->_parse($script); + } + + /** + * Creates rcube_sieve_script object from text script + */ + private function _parse($txt) + { + // parse + $script = new rcube_sieve_script($txt, $this->exts); + + // fix/convert to Roundcube format + if (!empty($script->content)) { + // replace all elsif with if+stop, we support only ifs + foreach ($script->content as $idx => $rule) { + if (empty($rule['type']) || !preg_match('/^(if|elsif|else)$/', $rule['type'])) { + continue; + } + + $script->content[$idx]['type'] = 'if'; + + // 'stop' not found? + foreach ($rule['actions'] as $action) { + if (preg_match('/^(stop|vacation)$/', $action['type'])) { + continue 2; + } + } + if (!empty($script->content[$idx+1]) && $script->content[$idx+1]['type'] != 'if') { + $script->content[$idx]['actions'][] = array('type' => 'stop'); + } + } + } + + return $script; + } + + /** + * Gets specified script as text + */ + public function get_script($name) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + $content = $this->sieve->getScript($name); + + if (PEAR::isError($content)) + return $this->_set_error(SIEVE_ERROR_OTHER); + + return $content; + } + + /** + * Creates empty script or copy of other script + */ + public function copy($name, $copy) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if ($copy) { + $content = $this->sieve->getScript($copy); + + if (PEAR::isError($content)) + return $this->_set_error(SIEVE_ERROR_OTHER); + } + + return $this->save_script($name, $content); + } + + private function _set_error($error) + { + $this->error = $error; + return false; + } + + /** + * This is our own debug handler for connection + */ + public function debug_handler(&$sieve, $message) + { + write_log('sieve', preg_replace('/\r\n$/', '', $message)); + } +} diff --git a/webmail/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php b/webmail/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php new file mode 100644 index 0000000..36eb1bc --- /dev/null +++ b/webmail/plugins/managesieve/lib/Roundcube/rcube_sieve_script.php @@ -0,0 +1,1154 @@ +<?php + +/** + * Class for operations on Sieve scripts + * + * Copyright (C) 2008-2011, The Roundcube Dev Team + * Copyright (C) 2011, Kolab Systems AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +class rcube_sieve_script +{ + public $content = array(); // script rules array + + private $vars = array(); // "global" variables + private $prefix = ''; // script header (comments) + private $supported = array( // Sieve extensions supported by class + 'fileinto', // RFC5228 + 'envelope', // RFC5228 + 'reject', // RFC5429 + 'ereject', // RFC5429 + 'copy', // RFC3894 + 'vacation', // RFC5230 + 'relational', // RFC3431 + 'regex', // draft-ietf-sieve-regex-01 + 'imapflags', // draft-melnikov-sieve-imapflags-06 + 'imap4flags', // RFC5232 + 'include', // draft-ietf-sieve-include-12 + 'variables', // RFC5229 + 'body', // RFC5173 + 'subaddress', // RFC5233 + 'enotify', // RFC5435 + 'notify', // draft-ietf-sieve-notify-00 + // @TODO: spamtest+virustest, mailbox, date + ); + + /** + * Object constructor + * + * @param string Script's text content + * @param array List of capabilities supported by server + */ + public function __construct($script, $capabilities=array()) + { + $capabilities = array_map('strtolower', (array) $capabilities); + + // disable features by server capabilities + if (!empty($capabilities)) { + foreach ($this->supported as $idx => $ext) { + if (!in_array($ext, $capabilities)) { + unset($this->supported[$idx]); + } + } + } + + // Parse text content of the script + $this->_parse_text($script); + } + + /** + * Adds rule to the script (at the end) + * + * @param string Rule name + * @param array Rule content (as array) + * + * @return int The index of the new rule + */ + public function add_rule($content) + { + // TODO: check this->supported + array_push($this->content, $content); + return sizeof($this->content)-1; + } + + public function delete_rule($index) + { + if(isset($this->content[$index])) { + unset($this->content[$index]); + return true; + } + return false; + } + + public function size() + { + return sizeof($this->content); + } + + public function update_rule($index, $content) + { + // TODO: check this->supported + if ($this->content[$index]) { + $this->content[$index] = $content; + return $index; + } + return false; + } + + /** + * Sets "global" variable + * + * @param string $name Variable name + * @param string $value Variable value + * @param array $mods Variable modifiers + */ + public function set_var($name, $value, $mods = array()) + { + // Check if variable exists + for ($i=0, $len=count($this->vars); $i<$len; $i++) { + if ($this->vars[$i]['name'] == $name) { + break; + } + } + + $var = array_merge($mods, array('name' => $name, 'value' => $value)); + $this->vars[$i] = $var; + } + + /** + * Unsets "global" variable + * + * @param string $name Variable name + */ + public function unset_var($name) + { + // Check if variable exists + foreach ($this->vars as $idx => $var) { + if ($var['name'] == $name) { + unset($this->vars[$idx]); + break; + } + } + } + + /** + * Gets the value of "global" variable + * + * @param string $name Variable name + * + * @return string Variable value + */ + public function get_var($name) + { + // Check if variable exists + for ($i=0, $len=count($this->vars); $i<$len; $i++) { + if ($this->vars[$i]['name'] == $name) { + return $this->vars[$i]['name']; + } + } + } + + /** + * Sets script header content + * + * @param string $text Header content + */ + public function set_prefix($text) + { + $this->prefix = $text; + } + + /** + * Returns script as text + */ + public function as_text() + { + $output = ''; + $exts = array(); + $idx = 0; + + if (!empty($this->vars)) { + if (in_array('variables', (array)$this->supported)) { + $has_vars = true; + array_push($exts, 'variables'); + } + foreach ($this->vars as $var) { + if (empty($has_vars)) { + // 'variables' extension not supported, put vars in comments + $output .= sprintf("# %s %s\n", $var['name'], $var['value']); + } + else { + $output .= 'set '; + foreach (array_diff(array_keys($var), array('name', 'value')) as $opt) { + $output .= ":$opt "; + } + $output .= self::escape_string($var['name']) . ' ' . self::escape_string($var['value']) . ";\n"; + } + } + } + + $imapflags = in_array('imap4flags', $this->supported) ? 'imap4flags' : 'imapflags'; + $notify = in_array('enotify', $this->supported) ? 'enotify' : 'notify'; + + // rules + foreach ($this->content as $rule) { + $extension = ''; + $script = ''; + $tests = array(); + $i = 0; + + // header + if (!empty($rule['name']) && strlen($rule['name'])) { + $script .= '# rule:[' . $rule['name'] . "]\n"; + } + + // constraints expressions + if (!empty($rule['tests'])) { + foreach ($rule['tests'] as $test) { + $tests[$i] = ''; + switch ($test['test']) { + case 'size': + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= 'size :' . ($test['type']=='under' ? 'under ' : 'over ') . $test['arg']; + break; + + case 'true': + $tests[$i] .= ($test['not'] ? 'false' : 'true'); + break; + + case 'exists': + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= 'exists ' . self::escape_string($test['arg']); + break; + + case 'header': + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= 'header'; + + if (!empty($test['type'])) { + // relational operator + comparator + if (preg_match('/^(value|count)-([gteqnl]{2})/', $test['type'], $m)) { + array_push($exts, 'relational'); + array_push($exts, 'comparator-i;ascii-numeric'); + + $tests[$i] .= ' :' . $m[1] . ' "' . $m[2] . '" :comparator "i;ascii-numeric"'; + } + else { + $this->add_comparator($test, $tests[$i], $exts); + + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + + $tests[$i] .= ' :' . $test['type']; + } + } + + $tests[$i] .= ' ' . self::escape_string($test['arg1']); + $tests[$i] .= ' ' . self::escape_string($test['arg2']); + break; + + case 'address': + case 'envelope': + if ($test['test'] == 'envelope') { + array_push($exts, 'envelope'); + } + + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= $test['test']; + + if (!empty($test['part'])) { + $tests[$i] .= ' :' . $test['part']; + if ($test['part'] == 'user' || $test['part'] == 'detail') { + array_push($exts, 'subaddress'); + } + } + + $this->add_comparator($test, $tests[$i], $exts); + + if (!empty($test['type'])) { + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + $tests[$i] .= ' :' . $test['type']; + } + + $tests[$i] .= ' ' . self::escape_string($test['arg1']); + $tests[$i] .= ' ' . self::escape_string($test['arg2']); + break; + + case 'body': + array_push($exts, 'body'); + + $tests[$i] .= ($test['not'] ? 'not ' : '') . 'body'; + + $this->add_comparator($test, $tests[$i], $exts); + + if (!empty($test['part'])) { + $tests[$i] .= ' :' . $test['part']; + + if (!empty($test['content']) && $test['part'] == 'content') { + $tests[$i] .= ' ' . self::escape_string($test['content']); + } + } + + if (!empty($test['type'])) { + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + $tests[$i] .= ' :' . $test['type']; + } + + $tests[$i] .= ' ' . self::escape_string($test['arg']); + break; + } + $i++; + } + } + + // disabled rule: if false #.... + if (!empty($tests)) { + $script .= 'if ' . ($rule['disabled'] ? 'false # ' : ''); + + if (count($tests) > 1) { + $tests_str = implode(', ', $tests); + } + else { + $tests_str = $tests[0]; + } + + if ($rule['join'] || count($tests) > 1) { + $script .= sprintf('%s (%s)', $rule['join'] ? 'allof' : 'anyof', $tests_str); + } + else { + $script .= $tests_str; + } + $script .= "\n{\n"; + } + + // action(s) + if (!empty($rule['actions'])) { + foreach ($rule['actions'] as $action) { + $action_script = ''; + + switch ($action['type']) { + + case 'fileinto': + array_push($exts, 'fileinto'); + $action_script .= 'fileinto '; + if ($action['copy']) { + $action_script .= ':copy '; + array_push($exts, 'copy'); + } + $action_script .= self::escape_string($action['target']); + break; + + case 'redirect': + $action_script .= 'redirect '; + if ($action['copy']) { + $action_script .= ':copy '; + array_push($exts, 'copy'); + } + $action_script .= self::escape_string($action['target']); + break; + + case 'reject': + case 'ereject': + array_push($exts, $action['type']); + $action_script .= $action['type'].' ' + . self::escape_string($action['target']); + break; + + case 'addflag': + case 'setflag': + case 'removeflag': + array_push($exts, $imapflags); + $action_script .= $action['type'].' ' + . self::escape_string($action['target']); + break; + + case 'keep': + case 'discard': + case 'stop': + $action_script .= $action['type']; + break; + + case 'include': + array_push($exts, 'include'); + $action_script .= 'include '; + foreach (array_diff(array_keys($action), array('target', 'type')) as $opt) { + $action_script .= ":$opt "; + } + $action_script .= self::escape_string($action['target']); + break; + + case 'set': + array_push($exts, 'variables'); + $action_script .= 'set '; + foreach (array_diff(array_keys($action), array('name', 'value', 'type')) as $opt) { + $action_script .= ":$opt "; + } + $action_script .= self::escape_string($action['name']) . ' ' . self::escape_string($action['value']); + break; + + case 'notify': + array_push($exts, $notify); + $action_script .= 'notify'; + + // Here we support only 00 version of notify draft, there + // were a couple regressions in 00 to 04 changelog, we use + // the version used by Cyrus + if ($notify == 'notify') { + switch ($action['importance']) { + case 1: $action_script .= " :high"; break; + case 2: $action_script .= " :normal"; break; + case 3: $action_script .= " :low"; break; + + } + unset($action['importance']); + } + + foreach (array('from', 'importance', 'options', 'message') as $n_tag) { + if (!empty($action[$n_tag])) { + $action_script .= " :$n_tag " . self::escape_string($action[$n_tag]); + } + } + + if (!empty($action['address'])) { + $method = 'mailto:' . $action['address']; + if (!empty($action['body'])) { + $method .= '?body=' . rawurlencode($action['body']); + } + } + else { + $method = $action['method']; + } + + // method is optional in notify extension + if (!empty($method)) { + $action_script .= ($notify == 'notify' ? " :method " : " ") . self::escape_string($method); + } + + break; + + case 'vacation': + array_push($exts, 'vacation'); + $action_script .= 'vacation'; + if (!empty($action['days'])) + $action_script .= " :days " . $action['days']; + if (!empty($action['addresses'])) + $action_script .= " :addresses " . self::escape_string($action['addresses']); + if (!empty($action['subject'])) + $action_script .= " :subject " . self::escape_string($action['subject']); + if (!empty($action['handle'])) + $action_script .= " :handle " . self::escape_string($action['handle']); + if (!empty($action['from'])) + $action_script .= " :from " . self::escape_string($action['from']); + if (!empty($action['mime'])) + $action_script .= " :mime"; + $action_script .= " " . self::escape_string($action['reason']); + break; + } + + if ($action_script) { + $script .= !empty($tests) ? "\t" : ''; + $script .= $action_script . ";\n"; + } + } + } + + if ($script) { + $output .= $script . (!empty($tests) ? "}\n" : ''); + $idx++; + } + } + + // requires + if (!empty($exts)) + $output = 'require ["' . implode('","', array_unique($exts)) . "\"];\n" . $output; + + if (!empty($this->prefix)) { + $output = $this->prefix . "\n\n" . $output; + } + + return $output; + } + + /** + * Returns script object + * + */ + public function as_array() + { + return $this->content; + } + + /** + * Returns array of supported extensions + * + */ + public function get_extensions() + { + return array_values($this->supported); + } + + /** + * Converts text script to rules array + * + * @param string Text script + */ + private function _parse_text($script) + { + $prefix = ''; + $options = array(); + + while ($script) { + $script = trim($script); + $rule = array(); + + // Comments + while (!empty($script) && $script[0] == '#') { + $endl = strpos($script, "\n"); + $line = $endl ? substr($script, 0, $endl) : $script; + + // Roundcube format + if (preg_match('/^# rule:\[(.*)\]/', $line, $matches)) { + $rulename = $matches[1]; + } + // KEP:14 variables + else if (preg_match('/^# (EDITOR|EDITOR_VERSION) (.+)$/', $line, $matches)) { + $this->set_var($matches[1], $matches[2]); + } + // Horde-Ingo format + else if (!empty($options['format']) && $options['format'] == 'INGO' + && preg_match('/^# (.*)/', $line, $matches) + ) { + $rulename = $matches[1]; + } + else if (empty($options['prefix'])) { + $prefix .= $line . "\n"; + } + + $script = ltrim(substr($script, strlen($line) + 1)); + } + + // handle script header + if (empty($options['prefix'])) { + $options['prefix'] = true; + if ($prefix && strpos($prefix, 'horde.org/ingo')) { + $options['format'] = 'INGO'; + } + } + + // Control structures/blocks + if (preg_match('/^(if|else|elsif)/i', $script)) { + $rule = $this->_tokenize_rule($script); + if (strlen($rulename) && !empty($rule)) { + $rule['name'] = $rulename; + } + } + // Simple commands + else { + $rule = $this->_parse_actions($script, ';'); + if (!empty($rule[0]) && is_array($rule)) { + // set "global" variables + if ($rule[0]['type'] == 'set') { + unset($rule[0]['type']); + $this->vars[] = $rule[0]; + } + else { + $rule = array('actions' => $rule); + } + } + } + + $rulename = ''; + + if (!empty($rule)) { + $this->content[] = $rule; + } + } + + if (!empty($prefix)) { + $this->prefix = trim($prefix); + } + } + + /** + * Convert text script fragment to rule object + * + * @param string Text rule + * + * @return array Rule data + */ + private function _tokenize_rule(&$content) + { + $cond = strtolower(self::tokenize($content, 1)); + + if ($cond != 'if' && $cond != 'elsif' && $cond != 'else') { + return null; + } + + $disabled = false; + $join = false; + + // disabled rule (false + comment): if false # ..... + if (preg_match('/^\s*false\s+#/i', $content)) { + $content = preg_replace('/^\s*false\s+#\s*/i', '', $content); + $disabled = true; + } + + while (strlen($content)) { + $tokens = self::tokenize($content, true); + $separator = array_pop($tokens); + + if (!empty($tokens)) { + $token = array_shift($tokens); + } + else { + $token = $separator; + } + + $token = strtolower($token); + + if ($token == 'not') { + $not = true; + $token = strtolower(array_shift($tokens)); + } + else { + $not = false; + } + + switch ($token) { + case 'allof': + $join = true; + break; + case 'anyof': + break; + + case 'size': + $size = array('test' => 'size', 'not' => $not); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) + && preg_match('/^:(under|over)$/i', $tokens[$i]) + ) { + $size['type'] = strtolower(substr($tokens[$i], 1)); + } + else { + $size['arg'] = $tokens[$i]; + } + } + + $tests[] = $size; + break; + + case 'header': + $header = array('test' => 'header', 'not' => $not, 'arg1' => '', 'arg2' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(count|value)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)) . '-' . $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else { + $header['arg1'] = $header['arg2']; + $header['arg2'] = $tokens[$i]; + } + } + + $tests[] = $header; + break; + + case 'address': + case 'envelope': + $header = array('test' => $token, 'not' => $not, 'arg1' => '', 'arg2' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else if (!is_array($tokens[$i]) && preg_match('/^:(localpart|domain|all|user|detail)$/i', $tokens[$i])) { + $header['part'] = strtolower(substr($tokens[$i], 1)); + } + else { + $header['arg1'] = $header['arg2']; + $header['arg2'] = $tokens[$i]; + } + } + + $tests[] = $header; + break; + + case 'body': + $header = array('test' => 'body', 'not' => $not, 'arg' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else if (!is_array($tokens[$i]) && preg_match('/^:(raw|content|text)$/i', $tokens[$i])) { + $header['part'] = strtolower(substr($tokens[$i], 1)); + + if ($header['part'] == 'content') { + $header['content'] = $tokens[++$i]; + } + } + else { + $header['arg'] = $tokens[$i]; + } + } + + $tests[] = $header; + break; + + case 'exists': + $tests[] = array('test' => 'exists', 'not' => $not, + 'arg' => array_pop($tokens)); + break; + + case 'true': + $tests[] = array('test' => 'true', 'not' => $not); + break; + + case 'false': + $tests[] = array('test' => 'true', 'not' => !$not); + break; + } + + // goto actions... + if ($separator == '{') { + break; + } + } + + // ...and actions block + $actions = $this->_parse_actions($content); + + if ($tests && $actions) { + $result = array( + 'type' => $cond, + 'tests' => $tests, + 'actions' => $actions, + 'join' => $join, + 'disabled' => $disabled, + ); + } + + return $result; + } + + /** + * Parse body of actions section + * + * @param string $content Text body + * @param string $end End of text separator + * + * @return array Array of parsed action type/target pairs + */ + private function _parse_actions(&$content, $end = '}') + { + $result = null; + + while (strlen($content)) { + $tokens = self::tokenize($content, true); + $separator = array_pop($tokens); + + if (!empty($tokens)) { + $token = array_shift($tokens); + } + else { + $token = $separator; + } + + switch ($token) { + case 'discard': + case 'keep': + case 'stop': + $result[] = array('type' => $token); + break; + + case 'fileinto': + case 'redirect': + $copy = false; + $target = ''; + + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (strtolower($tokens[$i]) == ':copy') { + $copy = true; + } + else { + $target = $tokens[$i]; + } + } + + $result[] = array('type' => $token, 'copy' => $copy, + 'target' => $target); + break; + + case 'reject': + case 'ereject': + $result[] = array('type' => $token, 'target' => array_pop($tokens)); + break; + + case 'vacation': + $vacation = array('type' => 'vacation', 'reason' => array_pop($tokens)); + + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok == ':days') { + $vacation['days'] = $tokens[++$i]; + } + else if ($tok == ':subject') { + $vacation['subject'] = $tokens[++$i]; + } + else if ($tok == ':addresses') { + $vacation['addresses'] = $tokens[++$i]; + } + else if ($tok == ':handle') { + $vacation['handle'] = $tokens[++$i]; + } + else if ($tok == ':from') { + $vacation['from'] = $tokens[++$i]; + } + else if ($tok == ':mime') { + $vacation['mime'] = true; + } + } + + $result[] = $vacation; + break; + + case 'setflag': + case 'addflag': + case 'removeflag': + $result[] = array('type' => $token, + // Flags list: last token (skip optional variable) + 'target' => $tokens[count($tokens)-1] + ); + break; + + case 'include': + $include = array('type' => 'include', 'target' => array_pop($tokens)); + + // Parameters: :once, :optional, :global, :personal + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + $include[substr($tok, 1)] = true; + } + } + + $result[] = $include; + break; + + case 'set': + $set = array('type' => 'set', 'value' => array_pop($tokens), 'name' => array_pop($tokens)); + + // Parameters: :lower :upper :lowerfirst :upperfirst :quotewildcard :length + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + $set[substr($tok, 1)] = true; + } + } + + $result[] = $set; + break; + + case 'require': + // skip, will be build according to used commands + // $result[] = array('type' => 'require', 'target' => $tokens); + break; + + case 'notify': + $notify = array('type' => 'notify'); + $priorities = array(':high' => 1, ':normal' => 2, ':low' => 3); + + // Parameters: :from, :importance, :options, :message + // additional (optional) :method parameter for notify extension + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + // Here we support only 00 version of notify draft, there + // were a couple regressions in 00 to 04 changelog, we use + // the version used by Cyrus + if (isset($priorities[$tok])) { + $notify['importance'] = $priorities[$tok]; + } + else { + $notify[substr($tok, 1)] = $tokens[++$i]; + } + } + else { + // unnamed parameter is a :method in enotify extension + $notify['method'] = $tokens[$i]; + } + } + + $method_components = parse_url($notify['method']); + if ($method_components['scheme'] == 'mailto') { + $notify['address'] = $method_components['path']; + $method_params = array(); + if (array_key_exists('query', $method_components)) { + parse_str($method_components['query'], $method_params); + } + $method_params = array_change_key_case($method_params, CASE_LOWER); + // magic_quotes_gpc and magic_quotes_sybase affect the output of parse_str + if (ini_get('magic_quotes_gpc') || ini_get('magic_quotes_sybase')) { + array_map('stripslashes', $method_params); + } + $notify['body'] = (array_key_exists('body', $method_params)) ? $method_params['body'] : ''; + } + + $result[] = $notify; + break; + + } + + if ($separator == $end) + break; + } + + return $result; + } + + /** + * + */ + private function add_comparator($test, &$out, &$exts) + { + if (empty($test['comparator'])) { + return; + } + + if ($test['comparator'] == 'i;ascii-numeric') { + array_push($exts, 'relational'); + array_push($exts, 'comparator-i;ascii-numeric'); + } + else if (!in_array($test['comparator'], array('i;octet', 'i;ascii-casemap'))) { + array_push($exts, 'comparator-' . $test['comparator']); + } + + // skip default comparator + if ($test['comparator'] != 'i;ascii-casemap') { + $out .= ' :comparator ' . self::escape_string($test['comparator']); + } + } + + /** + * Escape special chars into quoted string value or multi-line string + * or list of strings + * + * @param string $str Text or array (list) of strings + * + * @return string Result text + */ + static function escape_string($str) + { + if (is_array($str) && count($str) > 1) { + foreach($str as $idx => $val) + $str[$idx] = self::escape_string($val); + + return '[' . implode(',', $str) . ']'; + } + else if (is_array($str)) { + $str = array_pop($str); + } + + // multi-line string + if (preg_match('/[\r\n\0]/', $str) || strlen($str) > 1024) { + return sprintf("text:\n%s\n.\n", self::escape_multiline_string($str)); + } + // quoted-string + else { + return '"' . addcslashes($str, '\\"') . '"'; + } + } + + /** + * Escape special chars in multi-line string value + * + * @param string $str Text + * + * @return string Text + */ + static function escape_multiline_string($str) + { + $str = preg_split('/(\r?\n)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE); + + foreach ($str as $idx => $line) { + // dot-stuffing + if (isset($line[0]) && $line[0] == '.') { + $str[$idx] = '.' . $line; + } + } + + return implode($str); + } + + /** + * Splits script into string tokens + * + * @param string &$str The script + * @param mixed $num Number of tokens to return, 0 for all + * or True for all tokens until separator is found. + * Separator will be returned as last token. + * @param int $in_list Enable to call recursively inside a list + * + * @return mixed Tokens array or string if $num=1 + */ + static function tokenize(&$str, $num=0, $in_list=false) + { + $result = array(); + + // remove spaces from the beginning of the string + while (($str = ltrim($str)) !== '' + && (!$num || $num === true || count($result) < $num) + ) { + switch ($str[0]) { + + // Quoted string + case '"': + $len = strlen($str); + + for ($pos=1; $pos<$len; $pos++) { + if ($str[$pos] == '"') { + break; + } + if ($str[$pos] == "\\") { + if ($str[$pos + 1] == '"' || $str[$pos + 1] == "\\") { + $pos++; + } + } + } + if ($str[$pos] != '"') { + // error + } + // we need to strip slashes for a quoted string + $result[] = stripslashes(substr($str, 1, $pos - 1)); + $str = substr($str, $pos + 1); + break; + + // Parenthesized list + case '[': + $str = substr($str, 1); + $result[] = self::tokenize($str, 0, true); + break; + case ']': + $str = substr($str, 1); + return $result; + break; + + // list/test separator + case ',': + // command separator + case ';': + // block/tests-list + case '(': + case ')': + case '{': + case '}': + $sep = $str[0]; + $str = substr($str, 1); + if ($num === true) { + $result[] = $sep; + break 2; + } + break; + + // bracket-comment + case '/': + if ($str[1] == '*') { + if ($end_pos = strpos($str, '*/')) { + $str = substr($str, $end_pos + 2); + } + else { + // error + $str = ''; + } + } + break; + + // hash-comment + case '#': + if ($lf_pos = strpos($str, "\n")) { + $str = substr($str, $lf_pos); + break; + } + else { + $str = ''; + } + + // String atom + default: + // empty or one character + if ($str === '' || $str === null) { + break 2; + } + if (strlen($str) < 2) { + $result[] = $str; + $str = ''; + break; + } + + // tag/identifier/number + if (preg_match('/^([a-z0-9:_]+)/i', $str, $m)) { + $str = substr($str, strlen($m[1])); + + if ($m[1] != 'text:') { + $result[] = $m[1]; + } + // multiline string + else { + // possible hash-comment after "text:" + if (preg_match('/^( |\t)*(#[^\n]+)?\n/', $str, $m)) { + $str = substr($str, strlen($m[0])); + } + // get text until alone dot in a line + if (preg_match('/^(.*)\r?\n\.\r?\n/sU', $str, $m)) { + $text = $m[1]; + // remove dot-stuffing + $text = str_replace("\n..", "\n.", $text); + $str = substr($str, strlen($m[0])); + } + else { + $text = ''; + } + + $result[] = $text; + } + } + // fallback, skip one character as infinite loop prevention + else { + $str = substr($str, 1); + } + + break; + } + } + + return $num === 1 ? (isset($result[0]) ? $result[0] : null) : $result; + } + +} diff --git a/webmail/plugins/managesieve/lib/rcube_sieve.php b/webmail/plugins/managesieve/lib/rcube_sieve.php new file mode 100644 index 0000000..2ed2e54 --- /dev/null +++ b/webmail/plugins/managesieve/lib/rcube_sieve.php @@ -0,0 +1,387 @@ +<?php + +/** + * Classes for managesieve operations (using PEAR::Net_Sieve) + * + * Copyright (C) 2008-2011, The Roundcube Dev Team + * Copyright (C) 2011, Kolab Systems AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * $Id$ + * + */ + +// Managesieve Protocol: RFC5804 + +define('SIEVE_ERROR_CONNECTION', 1); +define('SIEVE_ERROR_LOGIN', 2); +define('SIEVE_ERROR_NOT_EXISTS', 3); // script not exists +define('SIEVE_ERROR_INSTALL', 4); // script installation +define('SIEVE_ERROR_ACTIVATE', 5); // script activation +define('SIEVE_ERROR_DELETE', 6); // script deletion +define('SIEVE_ERROR_INTERNAL', 7); // internal error +define('SIEVE_ERROR_DEACTIVATE', 8); // script activation +define('SIEVE_ERROR_OTHER', 255); // other/unknown error + + +class rcube_sieve +{ + private $sieve; // Net_Sieve object + private $error = false; // error flag + private $list = array(); // scripts list + + public $script; // rcube_sieve_script object + public $current; // name of currently loaded script + private $exts; // array of supported extensions + + + /** + * Object constructor + * + * @param string Username (for managesieve login) + * @param string Password (for managesieve login) + * @param string Managesieve server hostname/address + * @param string Managesieve server port number + * @param string Managesieve authentication method + * @param boolean Enable/disable TLS use + * @param array Disabled extensions + * @param boolean Enable/disable debugging + * @param string Proxy authentication identifier + * @param string Proxy authentication password + */ + public function __construct($username, $password='', $host='localhost', $port=2000, + $auth_type=null, $usetls=true, $disabled=array(), $debug=false, + $auth_cid=null, $auth_pw=null) + { + $this->sieve = new Net_Sieve(); + + if ($debug) { + $this->sieve->setDebug(true, array($this, 'debug_handler')); + } + + if (PEAR::isError($this->sieve->connect($host, $port, null, $usetls))) { + return $this->_set_error(SIEVE_ERROR_CONNECTION); + } + + if (!empty($auth_cid)) { + $authz = $username; + $username = $auth_cid; + $password = $auth_pw; + } + + if (PEAR::isError($this->sieve->login($username, $password, + $auth_type ? strtoupper($auth_type) : null, $authz)) + ) { + return $this->_set_error(SIEVE_ERROR_LOGIN); + } + + $this->exts = $this->get_extensions(); + + // disable features by config + if (!empty($disabled)) { + // we're working on lower-cased names + $disabled = array_map('strtolower', (array) $disabled); + foreach ($disabled as $ext) { + if (($idx = array_search($ext, $this->exts)) !== false) { + unset($this->exts[$idx]); + } + } + } + } + + public function __destruct() { + $this->sieve->disconnect(); + } + + /** + * Getter for error code + */ + public function error() + { + return $this->error ? $this->error : false; + } + + /** + * Saves current script into server + */ + public function save($name = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$this->script) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$name) + $name = $this->current; + + $script = $this->script->as_text(); + + if (!$script) + $script = '/* empty script */'; + + if (PEAR::isError($this->sieve->installScript($name, $script))) + return $this->_set_error(SIEVE_ERROR_INSTALL); + + return true; + } + + /** + * Saves text script into server + */ + public function save_script($name, $content = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$content) + $content = '/* empty script */'; + + if (PEAR::isError($this->sieve->installScript($name, $content))) + return $this->_set_error(SIEVE_ERROR_INSTALL); + + return true; + } + + /** + * Activates specified script + */ + public function activate($name = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$name) + $name = $this->current; + + if (PEAR::isError($this->sieve->setActive($name))) + return $this->_set_error(SIEVE_ERROR_ACTIVATE); + + return true; + } + + /** + * De-activates specified script + */ + public function deactivate() + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (PEAR::isError($this->sieve->setActive(''))) + return $this->_set_error(SIEVE_ERROR_DEACTIVATE); + + return true; + } + + /** + * Removes specified script + */ + public function remove($name = null) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if (!$name) + $name = $this->current; + + // script must be deactivated first + if ($name == $this->sieve->getActive()) + if (PEAR::isError($this->sieve->setActive(''))) + return $this->_set_error(SIEVE_ERROR_DELETE); + + if (PEAR::isError($this->sieve->removeScript($name))) + return $this->_set_error(SIEVE_ERROR_DELETE); + + if ($name == $this->current) + $this->current = null; + + return true; + } + + /** + * Gets list of supported by server Sieve extensions + */ + public function get_extensions() + { + if ($this->exts) + return $this->exts; + + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + $ext = $this->sieve->getExtensions(); + // we're working on lower-cased names + $ext = array_map('strtolower', (array) $ext); + + if ($this->script) { + $supported = $this->script->get_extensions(); + foreach ($ext as $idx => $ext_name) + if (!in_array($ext_name, $supported)) + unset($ext[$idx]); + } + + return array_values($ext); + } + + /** + * Gets list of scripts from server + */ + public function get_scripts() + { + if (!$this->list) { + + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + $list = $this->sieve->listScripts(); + + if (PEAR::isError($list)) + return $this->_set_error(SIEVE_ERROR_OTHER); + + $this->list = $list; + } + + return $this->list; + } + + /** + * Returns active script name + */ + public function get_active() + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + return $this->sieve->getActive(); + } + + /** + * Loads script by name + */ + public function load($name) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if ($this->current == $name) + return true; + + $script = $this->sieve->getScript($name); + + if (PEAR::isError($script)) + return $this->_set_error(SIEVE_ERROR_OTHER); + + // try to parse from Roundcube format + $this->script = $this->_parse($script); + + $this->current = $name; + + return true; + } + + /** + * Loads script from text content + */ + public function load_script($script) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + // try to parse from Roundcube format + $this->script = $this->_parse($script); + } + + /** + * Creates rcube_sieve_script object from text script + */ + private function _parse($txt) + { + // parse + $script = new rcube_sieve_script($txt, $this->exts); + + // fix/convert to Roundcube format + if (!empty($script->content)) { + // replace all elsif with if+stop, we support only ifs + foreach ($script->content as $idx => $rule) { + if (empty($rule['type']) || !preg_match('/^(if|elsif|else)$/', $rule['type'])) { + continue; + } + + $script->content[$idx]['type'] = 'if'; + + // 'stop' not found? + foreach ($rule['actions'] as $action) { + if (preg_match('/^(stop|vacation)$/', $action['type'])) { + continue 2; + } + } + if (empty($script->content[$idx+1]) || $script->content[$idx+1]['type'] != 'if') { + $script->content[$idx]['actions'][] = array('type' => 'stop'); + } + } + } + + return $script; + } + + /** + * Gets specified script as text + */ + public function get_script($name) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + $content = $this->sieve->getScript($name); + + if (PEAR::isError($content)) + return $this->_set_error(SIEVE_ERROR_OTHER); + + return $content; + } + + /** + * Creates empty script or copy of other script + */ + public function copy($name, $copy) + { + if (!$this->sieve) + return $this->_set_error(SIEVE_ERROR_INTERNAL); + + if ($copy) { + $content = $this->sieve->getScript($copy); + + if (PEAR::isError($content)) + return $this->_set_error(SIEVE_ERROR_OTHER); + } + + return $this->save_script($name, $content); + } + + private function _set_error($error) + { + $this->error = $error; + return false; + } + + /** + * This is our own debug handler for connection + */ + public function debug_handler(&$sieve, $message) + { + write_log('sieve', preg_replace('/\r\n$/', '', $message)); + } +} diff --git a/webmail/plugins/managesieve/lib/rcube_sieve_script.php b/webmail/plugins/managesieve/lib/rcube_sieve_script.php new file mode 100644 index 0000000..92f979c --- /dev/null +++ b/webmail/plugins/managesieve/lib/rcube_sieve_script.php @@ -0,0 +1,1073 @@ +<?php + +/** + * Class for operations on Sieve scripts + * + * Copyright (C) 2008-2011, The Roundcube Dev Team + * Copyright (C) 2011, Kolab Systems AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * $Id$ + * + */ + +class rcube_sieve_script +{ + public $content = array(); // script rules array + + private $vars = array(); // "global" variables + private $prefix = ''; // script header (comments) + private $supported = array( // Sieve extensions supported by class + 'fileinto', // RFC5228 + 'envelope', // RFC5228 + 'reject', // RFC5429 + 'ereject', // RFC5429 + 'copy', // RFC3894 + 'vacation', // RFC5230 + 'relational', // RFC3431 + 'regex', // draft-ietf-sieve-regex-01 + 'imapflags', // draft-melnikov-sieve-imapflags-06 + 'imap4flags', // RFC5232 + 'include', // draft-ietf-sieve-include-12 + 'variables', // RFC5229 + 'body', // RFC5173 + 'subaddress', // RFC5233 + // @TODO: enotify/notify, spamtest+virustest, mailbox, date + ); + + /** + * Object constructor + * + * @param string Script's text content + * @param array List of capabilities supported by server + */ + public function __construct($script, $capabilities=array()) + { + $capabilities = array_map('strtolower', (array) $capabilities); + + // disable features by server capabilities + if (!empty($capabilities)) { + foreach ($this->supported as $idx => $ext) { + if (!in_array($ext, $capabilities)) { + unset($this->supported[$idx]); + } + } + } + + // Parse text content of the script + $this->_parse_text($script); + } + + /** + * Adds rule to the script (at the end) + * + * @param string Rule name + * @param array Rule content (as array) + * + * @return int The index of the new rule + */ + public function add_rule($content) + { + // TODO: check this->supported + array_push($this->content, $content); + return sizeof($this->content)-1; + } + + public function delete_rule($index) + { + if(isset($this->content[$index])) { + unset($this->content[$index]); + return true; + } + return false; + } + + public function size() + { + return sizeof($this->content); + } + + public function update_rule($index, $content) + { + // TODO: check this->supported + if ($this->content[$index]) { + $this->content[$index] = $content; + return $index; + } + return false; + } + + /** + * Sets "global" variable + * + * @param string $name Variable name + * @param string $value Variable value + * @param array $mods Variable modifiers + */ + public function set_var($name, $value, $mods = array()) + { + // Check if variable exists + for ($i=0, $len=count($this->vars); $i<$len; $i++) { + if ($this->vars[$i]['name'] == $name) { + break; + } + } + + $var = array_merge($mods, array('name' => $name, 'value' => $value)); + $this->vars[$i] = $var; + } + + /** + * Unsets "global" variable + * + * @param string $name Variable name + */ + public function unset_var($name) + { + // Check if variable exists + foreach ($this->vars as $idx => $var) { + if ($var['name'] == $name) { + unset($this->vars[$idx]); + break; + } + } + } + + /** + * Gets the value of "global" variable + * + * @param string $name Variable name + * + * @return string Variable value + */ + public function get_var($name) + { + // Check if variable exists + for ($i=0, $len=count($this->vars); $i<$len; $i++) { + if ($this->vars[$i]['name'] == $name) { + return $this->vars[$i]['name']; + } + } + } + + /** + * Sets script header content + * + * @param string $text Header content + */ + public function set_prefix($text) + { + $this->prefix = $text; + } + + /** + * Returns script as text + */ + public function as_text() + { + $output = ''; + $exts = array(); + $idx = 0; + + if (!empty($this->vars)) { + if (in_array('variables', (array)$this->supported)) { + $has_vars = true; + array_push($exts, 'variables'); + } + foreach ($this->vars as $var) { + if (empty($has_vars)) { + // 'variables' extension not supported, put vars in comments + $output .= sprintf("# %s %s\n", $var['name'], $var['value']); + } + else { + $output .= 'set '; + foreach (array_diff(array_keys($var), array('name', 'value')) as $opt) { + $output .= ":$opt "; + } + $output .= self::escape_string($var['name']) . ' ' . self::escape_string($var['value']) . ";\n"; + } + } + } + + // rules + foreach ($this->content as $rule) { + $extension = ''; + $script = ''; + $tests = array(); + $i = 0; + + // header + if (!empty($rule['name']) && strlen($rule['name'])) { + $script .= '# rule:[' . $rule['name'] . "]\n"; + } + + // constraints expressions + if (!empty($rule['tests'])) { + foreach ($rule['tests'] as $test) { + $tests[$i] = ''; + switch ($test['test']) { + case 'size': + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= 'size :' . ($test['type']=='under' ? 'under ' : 'over ') . $test['arg']; + break; + + case 'true': + $tests[$i] .= ($test['not'] ? 'false' : 'true'); + break; + + case 'exists': + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= 'exists ' . self::escape_string($test['arg']); + break; + + case 'header': + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= 'header'; + + if (!empty($test['type'])) { + // relational operator + comparator + if (preg_match('/^(value|count)-([gteqnl]{2})/', $test['type'], $m)) { + array_push($exts, 'relational'); + array_push($exts, 'comparator-i;ascii-numeric'); + + $tests[$i] .= ' :' . $m[1] . ' "' . $m[2] . '" :comparator "i;ascii-numeric"'; + } + else { + $this->add_comparator($test, $tests[$i], $exts); + + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + + $tests[$i] .= ' :' . $test['type']; + } + } + + $tests[$i] .= ' ' . self::escape_string($test['arg1']); + $tests[$i] .= ' ' . self::escape_string($test['arg2']); + break; + + case 'address': + case 'envelope': + if ($test['test'] == 'envelope') { + array_push($exts, 'envelope'); + } + + $tests[$i] .= ($test['not'] ? 'not ' : ''); + $tests[$i] .= $test['test']; + + if (!empty($test['part'])) { + $tests[$i] .= ' :' . $test['part']; + if ($test['part'] == 'user' || $test['part'] == 'detail') { + array_push($exts, 'subaddress'); + } + } + + $this->add_comparator($test, $tests[$i], $exts); + + if (!empty($test['type'])) { + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + $tests[$i] .= ' :' . $test['type']; + } + + $tests[$i] .= ' ' . self::escape_string($test['arg1']); + $tests[$i] .= ' ' . self::escape_string($test['arg2']); + break; + + case 'body': + array_push($exts, 'body'); + + $tests[$i] .= ($test['not'] ? 'not ' : '') . 'body'; + + $this->add_comparator($test, $tests[$i], $exts); + + if (!empty($test['part'])) { + $tests[$i] .= ' :' . $test['part']; + + if (!empty($test['content']) && $test['part'] == 'content') { + $tests[$i] .= ' ' . self::escape_string($test['content']); + } + } + + if (!empty($test['type'])) { + if ($test['type'] == 'regex') { + array_push($exts, 'regex'); + } + $tests[$i] .= ' :' . $test['type']; + } + + $tests[$i] .= ' ' . self::escape_string($test['arg']); + break; + } + $i++; + } + } + + // disabled rule: if false #.... + if (!empty($tests)) { + $script .= 'if ' . ($rule['disabled'] ? 'false # ' : ''); + + if (count($tests) > 1) { + $tests_str = implode(', ', $tests); + } + else { + $tests_str = $tests[0]; + } + + if ($rule['join'] || count($tests) > 1) { + $script .= sprintf('%s (%s)', $rule['join'] ? 'allof' : 'anyof', $tests_str); + } + else { + $script .= $tests_str; + } + $script .= "\n{\n"; + } + + // action(s) + if (!empty($rule['actions'])) { + foreach ($rule['actions'] as $action) { + $action_script = ''; + + switch ($action['type']) { + + case 'fileinto': + array_push($exts, 'fileinto'); + $action_script .= 'fileinto '; + if ($action['copy']) { + $action_script .= ':copy '; + array_push($exts, 'copy'); + } + $action_script .= self::escape_string($action['target']); + break; + + case 'redirect': + $action_script .= 'redirect '; + if ($action['copy']) { + $action_script .= ':copy '; + array_push($exts, 'copy'); + } + $action_script .= self::escape_string($action['target']); + break; + + case 'reject': + case 'ereject': + array_push($exts, $action['type']); + $action_script .= $action['type'].' ' + . self::escape_string($action['target']); + break; + + case 'addflag': + case 'setflag': + case 'removeflag': + if (in_array('imap4flags', $this->supported)) + array_push($exts, 'imap4flags'); + else + array_push($exts, 'imapflags'); + + $action_script .= $action['type'].' ' + . self::escape_string($action['target']); + break; + + case 'keep': + case 'discard': + case 'stop': + $action_script .= $action['type']; + break; + + case 'include': + array_push($exts, 'include'); + $action_script .= 'include '; + foreach (array_diff(array_keys($action), array('target', 'type')) as $opt) { + $action_script .= ":$opt "; + } + $action_script .= self::escape_string($action['target']); + break; + + case 'set': + array_push($exts, 'variables'); + $action_script .= 'set '; + foreach (array_diff(array_keys($action), array('name', 'value', 'type')) as $opt) { + $action_script .= ":$opt "; + } + $action_script .= self::escape_string($action['name']) . ' ' . self::escape_string($action['value']); + break; + + case 'vacation': + array_push($exts, 'vacation'); + $action_script .= 'vacation'; + if (!empty($action['days'])) + $action_script .= " :days " . $action['days']; + if (!empty($action['addresses'])) + $action_script .= " :addresses " . self::escape_string($action['addresses']); + if (!empty($action['subject'])) + $action_script .= " :subject " . self::escape_string($action['subject']); + if (!empty($action['handle'])) + $action_script .= " :handle " . self::escape_string($action['handle']); + if (!empty($action['from'])) + $action_script .= " :from " . self::escape_string($action['from']); + if (!empty($action['mime'])) + $action_script .= " :mime"; + $action_script .= " " . self::escape_string($action['reason']); + break; + } + + if ($action_script) { + $script .= !empty($tests) ? "\t" : ''; + $script .= $action_script . ";\n"; + } + } + } + + if ($script) { + $output .= $script . (!empty($tests) ? "}\n" : ''); + $idx++; + } + } + + // requires + if (!empty($exts)) + $output = 'require ["' . implode('","', array_unique($exts)) . "\"];\n" . $output; + + if (!empty($this->prefix)) { + $output = $this->prefix . "\n\n" . $output; + } + + return $output; + } + + /** + * Returns script object + * + */ + public function as_array() + { + return $this->content; + } + + /** + * Returns array of supported extensions + * + */ + public function get_extensions() + { + return array_values($this->supported); + } + + /** + * Converts text script to rules array + * + * @param string Text script + */ + private function _parse_text($script) + { + $prefix = ''; + $options = array(); + + while ($script) { + $script = trim($script); + $rule = array(); + + // Comments + while (!empty($script) && $script[0] == '#') { + $endl = strpos($script, "\n"); + $line = $endl ? substr($script, 0, $endl) : $script; + + // Roundcube format + if (preg_match('/^# rule:\[(.*)\]/', $line, $matches)) { + $rulename = $matches[1]; + } + // KEP:14 variables + else if (preg_match('/^# (EDITOR|EDITOR_VERSION) (.+)$/', $line, $matches)) { + $this->set_var($matches[1], $matches[2]); + } + // Horde-Ingo format + else if (!empty($options['format']) && $options['format'] == 'INGO' + && preg_match('/^# (.*)/', $line, $matches) + ) { + $rulename = $matches[1]; + } + else if (empty($options['prefix'])) { + $prefix .= $line . "\n"; + } + + $script = ltrim(substr($script, strlen($line) + 1)); + } + + // handle script header + if (empty($options['prefix'])) { + $options['prefix'] = true; + if ($prefix && strpos($prefix, 'horde.org/ingo')) { + $options['format'] = 'INGO'; + } + } + + // Control structures/blocks + if (preg_match('/^(if|else|elsif)/i', $script)) { + $rule = $this->_tokenize_rule($script); + if (strlen($rulename) && !empty($rule)) { + $rule['name'] = $rulename; + } + } + // Simple commands + else { + $rule = $this->_parse_actions($script, ';'); + if (!empty($rule[0]) && is_array($rule)) { + // set "global" variables + if ($rule[0]['type'] == 'set') { + unset($rule[0]['type']); + $this->vars[] = $rule[0]; + } + else { + $rule = array('actions' => $rule); + } + } + } + + $rulename = ''; + + if (!empty($rule)) { + $this->content[] = $rule; + } + } + + if (!empty($prefix)) { + $this->prefix = trim($prefix); + } + } + + /** + * Convert text script fragment to rule object + * + * @param string Text rule + * + * @return array Rule data + */ + private function _tokenize_rule(&$content) + { + $cond = strtolower(self::tokenize($content, 1)); + + if ($cond != 'if' && $cond != 'elsif' && $cond != 'else') { + return null; + } + + $disabled = false; + $join = false; + + // disabled rule (false + comment): if false # ..... + if (preg_match('/^\s*false\s+#/i', $content)) { + $content = preg_replace('/^\s*false\s+#\s*/i', '', $content); + $disabled = true; + } + + while (strlen($content)) { + $tokens = self::tokenize($content, true); + $separator = array_pop($tokens); + + if (!empty($tokens)) { + $token = array_shift($tokens); + } + else { + $token = $separator; + } + + $token = strtolower($token); + + if ($token == 'not') { + $not = true; + $token = strtolower(array_shift($tokens)); + } + else { + $not = false; + } + + switch ($token) { + case 'allof': + $join = true; + break; + case 'anyof': + break; + + case 'size': + $size = array('test' => 'size', 'not' => $not); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) + && preg_match('/^:(under|over)$/i', $tokens[$i]) + ) { + $size['type'] = strtolower(substr($tokens[$i], 1)); + } + else { + $size['arg'] = $tokens[$i]; + } + } + + $tests[] = $size; + break; + + case 'header': + $header = array('test' => 'header', 'not' => $not, 'arg1' => '', 'arg2' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(count|value)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)) . '-' . $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else { + $header['arg1'] = $header['arg2']; + $header['arg2'] = $tokens[$i]; + } + } + + $tests[] = $header; + break; + + case 'address': + case 'envelope': + $header = array('test' => $token, 'not' => $not, 'arg1' => '', 'arg2' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else if (!is_array($tokens[$i]) && preg_match('/^:(localpart|domain|all|user|detail)$/i', $tokens[$i])) { + $header['part'] = strtolower(substr($tokens[$i], 1)); + } + else { + $header['arg1'] = $header['arg2']; + $header['arg2'] = $tokens[$i]; + } + } + + $tests[] = $header; + break; + + case 'body': + $header = array('test' => 'body', 'not' => $not, 'arg' => ''); + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (!is_array($tokens[$i]) && preg_match('/^:comparator$/i', $tokens[$i])) { + $header['comparator'] = $tokens[++$i]; + } + else if (!is_array($tokens[$i]) && preg_match('/^:(is|contains|matches|regex)$/i', $tokens[$i])) { + $header['type'] = strtolower(substr($tokens[$i], 1)); + } + else if (!is_array($tokens[$i]) && preg_match('/^:(raw|content|text)$/i', $tokens[$i])) { + $header['part'] = strtolower(substr($tokens[$i], 1)); + + if ($header['part'] == 'content') { + $header['content'] = $tokens[++$i]; + } + } + else { + $header['arg'] = $tokens[$i]; + } + } + + $tests[] = $header; + break; + + case 'exists': + $tests[] = array('test' => 'exists', 'not' => $not, + 'arg' => array_pop($tokens)); + break; + + case 'true': + $tests[] = array('test' => 'true', 'not' => $not); + break; + + case 'false': + $tests[] = array('test' => 'true', 'not' => !$not); + break; + } + + // goto actions... + if ($separator == '{') { + break; + } + } + + // ...and actions block + $actions = $this->_parse_actions($content); + + if ($tests && $actions) { + $result = array( + 'type' => $cond, + 'tests' => $tests, + 'actions' => $actions, + 'join' => $join, + 'disabled' => $disabled, + ); + } + + return $result; + } + + /** + * Parse body of actions section + * + * @param string $content Text body + * @param string $end End of text separator + * + * @return array Array of parsed action type/target pairs + */ + private function _parse_actions(&$content, $end = '}') + { + $result = null; + + while (strlen($content)) { + $tokens = self::tokenize($content, true); + $separator = array_pop($tokens); + + if (!empty($tokens)) { + $token = array_shift($tokens); + } + else { + $token = $separator; + } + + switch ($token) { + case 'discard': + case 'keep': + case 'stop': + $result[] = array('type' => $token); + break; + + case 'fileinto': + case 'redirect': + $copy = false; + $target = ''; + + for ($i=0, $len=count($tokens); $i<$len; $i++) { + if (strtolower($tokens[$i]) == ':copy') { + $copy = true; + } + else { + $target = $tokens[$i]; + } + } + + $result[] = array('type' => $token, 'copy' => $copy, + 'target' => $target); + break; + + case 'reject': + case 'ereject': + $result[] = array('type' => $token, 'target' => array_pop($tokens)); + break; + + case 'vacation': + $vacation = array('type' => 'vacation', 'reason' => array_pop($tokens)); + + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok == ':days') { + $vacation['days'] = $tokens[++$i]; + } + else if ($tok == ':subject') { + $vacation['subject'] = $tokens[++$i]; + } + else if ($tok == ':addresses') { + $vacation['addresses'] = $tokens[++$i]; + } + else if ($tok == ':handle') { + $vacation['handle'] = $tokens[++$i]; + } + else if ($tok == ':from') { + $vacation['from'] = $tokens[++$i]; + } + else if ($tok == ':mime') { + $vacation['mime'] = true; + } + } + + $result[] = $vacation; + break; + + case 'setflag': + case 'addflag': + case 'removeflag': + $result[] = array('type' => $token, + // Flags list: last token (skip optional variable) + 'target' => $tokens[count($tokens)-1] + ); + break; + + case 'include': + $include = array('type' => 'include', 'target' => array_pop($tokens)); + + // Parameters: :once, :optional, :global, :personal + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + $include[substr($tok, 1)] = true; + } + } + + $result[] = $include; + break; + + case 'set': + $set = array('type' => 'set', 'value' => array_pop($tokens), 'name' => array_pop($tokens)); + + // Parameters: :lower :upper :lowerfirst :upperfirst :quotewildcard :length + for ($i=0, $len=count($tokens); $i<$len; $i++) { + $tok = strtolower($tokens[$i]); + if ($tok[0] == ':') { + $set[substr($tok, 1)] = true; + } + } + + $result[] = $set; + break; + + case 'require': + // skip, will be build according to used commands + // $result[] = array('type' => 'require', 'target' => $tokens); + break; + + } + + if ($separator == $end) + break; + } + + return $result; + } + + /** + * + */ + private function add_comparator($test, &$out, &$exts) + { + if (empty($test['comparator'])) { + return; + } + + if ($test['comparator'] == 'i;ascii-numeric') { + array_push($exts, 'relational'); + array_push($exts, 'comparator-i;ascii-numeric'); + } + else if (!in_array($test['comparator'], array('i;octet', 'i;ascii-casemap'))) { + array_push($exts, 'comparator-' . $test['comparator']); + } + + // skip default comparator + if ($test['comparator'] != 'i;ascii-casemap') { + $out .= ' :comparator ' . self::escape_string($test['comparator']); + } + } + + /** + * Escape special chars into quoted string value or multi-line string + * or list of strings + * + * @param string $str Text or array (list) of strings + * + * @return string Result text + */ + static function escape_string($str) + { + if (is_array($str) && count($str) > 1) { + foreach($str as $idx => $val) + $str[$idx] = self::escape_string($val); + + return '[' . implode(',', $str) . ']'; + } + else if (is_array($str)) { + $str = array_pop($str); + } + + // multi-line string + if (preg_match('/[\r\n\0]/', $str) || strlen($str) > 1024) { + return sprintf("text:\n%s\n.\n", self::escape_multiline_string($str)); + } + // quoted-string + else { + return '"' . addcslashes($str, '\\"') . '"'; + } + } + + /** + * Escape special chars in multi-line string value + * + * @param string $str Text + * + * @return string Text + */ + static function escape_multiline_string($str) + { + $str = preg_split('/(\r?\n)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE); + + foreach ($str as $idx => $line) { + // dot-stuffing + if (isset($line[0]) && $line[0] == '.') { + $str[$idx] = '.' . $line; + } + } + + return implode($str); + } + + /** + * Splits script into string tokens + * + * @param string &$str The script + * @param mixed $num Number of tokens to return, 0 for all + * or True for all tokens until separator is found. + * Separator will be returned as last token. + * @param int $in_list Enable to call recursively inside a list + * + * @return mixed Tokens array or string if $num=1 + */ + static function tokenize(&$str, $num=0, $in_list=false) + { + $result = array(); + + // remove spaces from the beginning of the string + while (($str = ltrim($str)) !== '' + && (!$num || $num === true || count($result) < $num) + ) { + switch ($str[0]) { + + // Quoted string + case '"': + $len = strlen($str); + + for ($pos=1; $pos<$len; $pos++) { + if ($str[$pos] == '"') { + break; + } + if ($str[$pos] == "\\") { + if ($str[$pos + 1] == '"' || $str[$pos + 1] == "\\") { + $pos++; + } + } + } + if ($str[$pos] != '"') { + // error + } + // we need to strip slashes for a quoted string + $result[] = stripslashes(substr($str, 1, $pos - 1)); + $str = substr($str, $pos + 1); + break; + + // Parenthesized list + case '[': + $str = substr($str, 1); + $result[] = self::tokenize($str, 0, true); + break; + case ']': + $str = substr($str, 1); + return $result; + break; + + // list/test separator + case ',': + // command separator + case ';': + // block/tests-list + case '(': + case ')': + case '{': + case '}': + $sep = $str[0]; + $str = substr($str, 1); + if ($num === true) { + $result[] = $sep; + break 2; + } + break; + + // bracket-comment + case '/': + if ($str[1] == '*') { + if ($end_pos = strpos($str, '*/')) { + $str = substr($str, $end_pos + 2); + } + else { + // error + $str = ''; + } + } + break; + + // hash-comment + case '#': + if ($lf_pos = strpos($str, "\n")) { + $str = substr($str, $lf_pos); + break; + } + else { + $str = ''; + } + + // String atom + default: + // empty or one character + if ($str === '' || $str === null) { + break 2; + } + if (strlen($str) < 2) { + $result[] = $str; + $str = ''; + break; + } + + // tag/identifier/number + if (preg_match('/^([a-z0-9:_]+)/i', $str, $m)) { + $str = substr($str, strlen($m[1])); + + if ($m[1] != 'text:') { + $result[] = $m[1]; + } + // multiline string + else { + // possible hash-comment after "text:" + if (preg_match('/^( |\t)*(#[^\n]+)?\n/', $str, $m)) { + $str = substr($str, strlen($m[0])); + } + // get text until alone dot in a line + if (preg_match('/^(.*)\r?\n\.\r?\n/sU', $str, $m)) { + $text = $m[1]; + // remove dot-stuffing + $text = str_replace("\n..", "\n.", $text); + $str = substr($str, strlen($m[0])); + } + else { + $text = ''; + } + + $result[] = $text; + } + } + // fallback, skip one character as infinite loop prevention + else { + $str = substr($str, 1); + } + + break; + } + } + + return $num === 1 ? (isset($result[0]) ? $result[0] : null) : $result; + } + +} diff --git a/webmail/plugins/managesieve/localization/az_AZ.inc b/webmail/plugins/managesieve/localization/az_AZ.inc new file mode 100644 index 0000000..f272df7 --- /dev/null +++ b/webmail/plugins/managesieve/localization/az_AZ.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Süzgəclər'; +$labels['managefilters'] = 'Gələn məktub üçün süzgəclərin idarəsi'; +$labels['filtername'] = 'Süzgəcin adı'; +$labels['newfilter'] = 'Yeni süzgəc'; +$labels['filteradd'] = 'Süzgəc əlavə et'; +$labels['filterdel'] = 'Süzgəci sil'; +$labels['moveup'] = 'Yuxarı apar'; +$labels['movedown'] = 'Aşağı apar'; +$labels['filterallof'] = 'göstərilən bütün qaydalara uyur'; +$labels['filteranyof'] = 'verilmiş istənilən qaydaya uyur'; +$labels['filterany'] = 'bütün məktublar'; +$labels['filtercontains'] = 'daxildir'; +$labels['filternotcontains'] = 'daxil deyil'; +$labels['filteris'] = 'uyğundur'; +$labels['filterisnot'] = 'uyğun deyil'; +$labels['filterexists'] = 'mövcuddur'; +$labels['filternotexists'] = 'mövcud deyil'; +$labels['filtermatches'] = 'ifadə ilə üst-üstə düşür'; +$labels['filternotmatches'] = 'ifadə ilə üst-üstə düşmür'; +$labels['filterregex'] = 'daimi ifadənin nəticəsi ilə üst-üstə düşür'; +$labels['filternotregex'] = 'daimi ifadə ilə üst-üstə düşmür'; +$labels['filterunder'] = 'altında'; +$labels['filterover'] = 'yuxarıda'; +$labels['addrule'] = 'Qayda əlavə et'; +$labels['delrule'] = 'Qaydanı sil'; +$labels['messagemoveto'] = 'Məktubu köçür'; +$labels['messageredirect'] = 'Məktubu yolla'; +$labels['messagecopyto'] = 'Məktubu kopyala'; +$labels['messagesendcopy'] = 'Məktubun kopyasını göndər'; +$labels['messagereply'] = 'Məktubla cavab ver'; +$labels['messagedelete'] = 'Sil'; +$labels['messagediscard'] = 'Məktubla rədd et'; +$labels['messagesrules'] = 'Daxil olan məktub üçün:'; +$labels['messagesactions'] = '...növbəti hərəkəti yerinə yetir:'; +$labels['add'] = 'Əlavə et'; +$labels['del'] = 'Sil'; +$labels['sender'] = 'Göndərən'; +$labels['recipient'] = 'Qəbul edən'; +$labels['vacationaddresses'] = 'Əlavə ünvanlarım üçün siyahı (vergüllər ilə ayrılmış):'; +$labels['vacationdays'] = 'Məktub neçə müddətdən bir göndərilsin (gündə):'; +$labels['vacationinterval'] = 'Məktublar nə qədər sıx göndərilsin:'; +$labels['days'] = 'günlər'; +$labels['seconds'] = 'saniyələr'; +$labels['vacationreason'] = 'Məktubun mətni (səbəb yoxdur):'; +$labels['vacationsubject'] = 'Məktubun mövzusu:'; +$labels['rulestop'] = 'Yerinə yetirməyi dayandır'; +$labels['enable'] = 'Yandır/Söndür'; +$labels['filterset'] = 'Süzgəc dəsti'; +$labels['filtersets'] = 'Süzgəc dəstləri'; +$labels['filtersetadd'] = 'Süzgəc dəsti əlavə et'; +$labels['filtersetdel'] = 'İndiki sücgəc dəstini sil'; +$labels['filtersetact'] = 'İndiki sücgəc dəstini yandır'; +$labels['filtersetdeact'] = 'İndiki süzgəc dəstini söndür'; +$labels['filterdef'] = 'Süzgəcin təsviri'; +$labels['filtersetname'] = 'Süzgəc dəstinin adı'; +$labels['newfilterset'] = 'Yeni süzgəc dəsti'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'heç biri'; +$labels['fromset'] = 'dəstdən'; +$labels['fromfile'] = 'fayldan'; +$labels['filterdisabled'] = 'Süzgəci söndür'; +$labels['countisgreaterthan'] = 'sayı buradan daha çoxdur'; +$labels['countisgreaterthanequal'] = 'say çox və ya bərabərdir'; +$labels['countislessthan'] = 'say buradan azdır'; +$labels['countislessthanequal'] = 'say azdır və ya bərabərdir'; +$labels['countequals'] = 'say bərabərdir'; +$labels['countnotequals'] = 'say bərabər deyil'; +$labels['valueisgreaterthan'] = 'dəyər buradan daha böyükdür'; +$labels['valueisgreaterthanequal'] = 'dəyər çoxdur və ya bərabərdir'; +$labels['valueislessthan'] = 'dəyər buradan azdır'; +$labels['valueislessthanequal'] = 'dəyər azdır və ya bərabərdir'; +$labels['valueequals'] = 'dəyər bərabərdir'; +$labels['valuenotequals'] = 'dəyər bərabər deyil'; +$labels['setflags'] = 'Məktublara flaq quraşdır'; +$labels['addflags'] = 'Məktuba flaq əlavə et'; +$labels['removeflags'] = 'Məktubdan flaqları sil'; +$labels['flagread'] = 'Oxu'; +$labels['flagdeleted'] = 'Silindi'; +$labels['flaganswered'] = 'Cavab verilmiş'; +$labels['flagflagged'] = 'İşarəlilər'; +$labels['flagdraft'] = 'Qaralama'; +$labels['setvariable'] = 'Dəyişəni təyin et'; +$labels['setvarname'] = 'Dəyişənin adı:'; +$labels['setvarvalue'] = 'Dəyişənin dəyəri:'; +$labels['setvarmodifiers'] = 'Modifikatorlar'; +$labels['varlower'] = 'aşağı registr'; +$labels['varupper'] = 'yuxarı registr'; +$labels['varlowerfirst'] = 'aşağı registrdə birinci simvol'; +$labels['varupperfirst'] = 'yuxarı registrdə birinci simvol'; +$labels['varquotewildcard'] = 'dırnaq simvolu'; +$labels['varlength'] = 'uzunluq'; +$labels['notify'] = 'Bildiriş göndər'; +$labels['notifyaddress'] = 'Poçt ünvanı:'; +$labels['notifybody'] = 'Bildiriş mətni'; +$labels['notifysubject'] = 'Bildiriş mövzusu'; +$labels['notifyfrom'] = 'Bildirişi yolla:'; +$labels['notifyimportance'] = 'Vaciblik'; +$labels['notifyimportancelow'] = 'aşağı'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'yuxarı'; +$labels['filtercreate'] = 'Süzgəc yarat'; +$labels['usedata'] = 'Süzgəcdə bu məlumatları istifadə et:'; +$labels['nextstep'] = 'Sonrakı'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Əlavə ayarlar'; +$labels['body'] = 'Məzmun'; +$labels['address'] = 'ünvan'; +$labels['envelope'] = 'zərf'; +$labels['modifier'] = 'modifikator:'; +$labels['text'] = 'mətn'; +$labels['undecoded'] = 'emal olunmamış (xammal)'; +$labels['contenttype'] = 'məzmun növü'; +$labels['modtype'] = 'növ:'; +$labels['allparts'] = 'hamısı'; +$labels['domain'] = 'domen'; +$labels['localpart'] = 'lokal hissə'; +$labels['user'] = 'istifadəçi'; +$labels['detail'] = 'təfsilat'; +$labels['comparator'] = 'komparator:'; +$labels['default'] = 'ön qurğulu'; +$labels['octet'] = 'ciddi (oktet)'; +$labels['asciicasemap'] = 'qeydiyyat üzrə müstəqil (ascii-casemap)'; +$labels['asciinumeric'] = 'ədədi (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Serverin naməlum xətası.'; +$messages['filterconnerror'] = 'Serverə qoşulmaq alınmır'; +$messages['filterdeleteerror'] = 'Süzgəci silmək mümkün deyil. Server xətası.'; +$messages['filterdeleted'] = 'Süzgəc uğurla silindi.'; +$messages['filtersaved'] = 'Süzgəc uğurla saxlanıldı.'; +$messages['filtersaveerror'] = 'Süzgəci saxlamaq mümkün deyil. Server xətası.'; +$messages['filterdeleteconfirm'] = 'Siz həqiqətən süzgəci silmək istəyirsiniz?'; +$messages['ruledeleteconfirm'] = 'Bu qaydanı silməkdə əminsiniz?'; +$messages['actiondeleteconfirm'] = 'Bu hərəkəti silməkdə əminsiniz?'; +$messages['forbiddenchars'] = 'Sahədə qadağan edilən işarələr.'; +$messages['cannotbeempty'] = 'Sahə boş ola bilməz.'; +$messages['ruleexist'] = 'Bu adla süzgəc artıq mövcuddur.'; +$messages['setactivateerror'] = 'Seçilmiş süzgəc dəstini yandırmaq mümkün deyil. Server xətası.'; +$messages['setdeactivateerror'] = 'Seçilmiş süzgəc dəstini söndürmək mümkün deyil. Server xətası.'; +$messages['setdeleteerror'] = 'Seçilmiş süzgəc dəstini silmək mümkün deyil. Server xətası.'; +$messages['setactivated'] = 'Süzgəc dəsti yandırıldı.'; +$messages['setdeactivated'] = 'Süzgəc dəsti söndürüldü.'; +$messages['setdeleted'] = 'Süzgəc dəsti silindi.'; +$messages['setdeleteconfirm'] = 'Bu süzgəc dəstini silməkdə əminsiniz?'; +$messages['setcreateerror'] = 'Süzgəc dəstini yaratmaq mümkün deyil. Server xərası.'; +$messages['setcreated'] = 'Süzgəc dəsti uğurla yaradıldı.'; +$messages['activateerror'] = 'Seçilmiş süzgəc(lər)i yandırmaq mümkün deyil. Server xətası.'; +$messages['deactivateerror'] = 'Seçilmiş süzgəc(lər)i söndürmək mümkün deyil. Server xətası.'; +$messages['deactivated'] = 'Süzgəc(lər) uğurla yandırıldı.'; +$messages['activated'] = 'Süzgəc(lər) uğurla söndürüldü.'; +$messages['moved'] = 'Süzgəc uğurla köçürüldü.'; +$messages['moveerror'] = 'Süzgəci köçürmək mümkün deyil. Server xətası.'; +$messages['nametoolong'] = 'Süzgəc dəstini yaratmaq mümkün deyil. Ad çox uzundur.'; +$messages['namereserved'] = 'Rezerv edilmiş ad.'; +$messages['setexist'] = 'Dəst artıq mövcuddur.'; +$messages['nodata'] = 'Heç olmasa bir mövqe tutmaq lazımdır!'; + +?> diff --git a/webmail/plugins/managesieve/localization/be_BE.inc b/webmail/plugins/managesieve/localization/be_BE.inc new file mode 100644 index 0000000..64f8159 --- /dev/null +++ b/webmail/plugins/managesieve/localization/be_BE.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Фільтры'; +$labels['managefilters'] = 'Кіраваць фільтрамі ўваходнае пошты'; +$labels['filtername'] = 'Назва фільтра'; +$labels['newfilter'] = 'Новы фільтар'; +$labels['filteradd'] = 'Дадаць фільтар'; +$labels['filterdel'] = 'Выдаліць фільтар'; +$labels['moveup'] = 'Пасунуць уверх'; +$labels['movedown'] = 'Пасунуць уніз'; +$labels['filterallof'] = 'супадаюць усе наступныя правілы'; +$labels['filteranyof'] = 'супадае любое наступнае правіла'; +$labels['filterany'] = 'усе паведамленні'; +$labels['filtercontains'] = 'змяшчае'; +$labels['filternotcontains'] = 'не змяшчае'; +$labels['filteris'] = 'роўна'; +$labels['filterisnot'] = 'не роўна'; +$labels['filterexists'] = 'існуе'; +$labels['filternotexists'] = 'не існуе'; +$labels['filtermatches'] = 'супадае з выразам'; +$labels['filternotmatches'] = 'не супадае з выразам'; +$labels['filterregex'] = 'супадае са сталым выразам'; +$labels['filternotregex'] = 'не супадае са сталым выразам'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Дадаць правіла'; +$labels['delrule'] = 'Выдаліць правіла'; +$labels['messagemoveto'] = 'Перамясціць паведамленне ў'; +$labels['messageredirect'] = 'Перанакіраваць павдамленне на'; +$labels['messagecopyto'] = 'Скапіяваць паведамленне ў'; +$labels['messagesendcopy'] = 'Даслаць копію на'; +$labels['messagereply'] = 'Адказаць наступнае'; +$labels['messagedelete'] = 'Выдаліць паведамленне'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Дадаць'; +$labels['del'] = 'Выдаліць'; +$labels['sender'] = 'Ад каго'; +$labels['recipient'] = 'Каму'; +$labels['vacationaddresses'] = 'Дадатковы спіс атрымальнікаў (праз коску):'; +$labels['vacationdays'] = 'Як часта дасылаць паведамленні (ў днях):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/bg_BG.inc b/webmail/plugins/managesieve/localization/bg_BG.inc new file mode 100644 index 0000000..28f2ddb --- /dev/null +++ b/webmail/plugins/managesieve/localization/bg_BG.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Филтри'; +$labels['managefilters'] = 'Управление на филтри за входяща поща'; +$labels['filtername'] = 'Име на филтър'; +$labels['newfilter'] = 'Нов филтър'; +$labels['filteradd'] = 'Добавяне на филтър'; +$labels['filterdel'] = 'Изтриване на филтър'; +$labels['moveup'] = 'Преместване нагоре'; +$labels['movedown'] = 'Преместване надолу'; +$labels['filterallof'] = 'съвпадение на всички следващи правила'; +$labels['filteranyof'] = 'съвпадение на някое от следните правила'; +$labels['filterany'] = 'всички съобщения'; +$labels['filtercontains'] = 'съдържа'; +$labels['filternotcontains'] = 'не съдържа'; +$labels['filteris'] = 'е равно на'; +$labels['filterisnot'] = 'не е равно на'; +$labels['filterexists'] = 'съществува'; +$labels['filternotexists'] = 'не съществува'; +$labels['filtermatches'] = 'съответствия при израз'; +$labels['filternotmatches'] = 'няма съвпадения при израз'; +$labels['filterregex'] = 'съвпадения при обикновен израз'; +$labels['filternotregex'] = 'няма съвпадения при обикновен израз'; +$labels['filterunder'] = 'под'; +$labels['filterover'] = 'над'; +$labels['addrule'] = 'Добавяне на правило'; +$labels['delrule'] = 'Изтриване на правило'; +$labels['messagemoveto'] = 'Преместване на съобщението в'; +$labels['messageredirect'] = 'Пренасочване на съобщението до'; +$labels['messagecopyto'] = 'Копиране на съобщенията в'; +$labels['messagesendcopy'] = 'Изпращане на копие до'; +$labels['messagereply'] = 'Отговор със съобщение'; +$labels['messagedelete'] = 'Изтриване на съобщение'; +$labels['messagediscard'] = 'Отхвърляне със съобщение'; +$labels['messagesrules'] = 'За входящата поща:'; +$labels['messagesactions'] = '... изпълнение на следните действия:'; +$labels['add'] = 'Добавяне'; +$labels['del'] = 'Изтриване'; +$labels['sender'] = 'Подател'; +$labels['recipient'] = 'Получател'; +$labels['vacationaddresses'] = 'Допълнителни e-mail адреси (разделени със запетая):'; +$labels['vacationdays'] = 'Колко често пращате съобщения (в дни):'; +$labels['vacationinterval'] = 'Колко често да праща съобщения:'; +$labels['days'] = 'дни'; +$labels['seconds'] = 'секунди'; +$labels['vacationreason'] = 'Текст на съобщението (причина за ваканцията)'; +$labels['vacationsubject'] = 'Тема на съобщението'; +$labels['rulestop'] = 'Правила за спиране'; +$labels['enable'] = 'Включено/Изключено'; +$labels['filterset'] = 'Избрани филтри'; +$labels['filtersets'] = 'Избрани филтри'; +$labels['filtersetadd'] = 'Добавяне на избран филтър'; +$labels['filtersetdel'] = 'Изтриване на текущ филтър'; +$labels['filtersetact'] = 'Активиране на текущи филтри'; +$labels['filtersetdeact'] = 'Деактивиране на текущи филтри'; +$labels['filterdef'] = 'Дефиниране на филтър'; +$labels['filtersetname'] = 'Име на филтър'; +$labels['newfilterset'] = 'Нов филтър'; +$labels['active'] = 'активен'; +$labels['none'] = 'няма'; +$labels['fromset'] = 'от набор'; +$labels['fromfile'] = 'от файл'; +$labels['filterdisabled'] = 'Изключен филтър'; +$labels['countisgreaterthan'] = 'отброявай като по-висок от'; +$labels['countisgreaterthanequal'] = 'отброявай като по-висок или равен на'; +$labels['countislessthan'] = 'отброявай като по-малък'; +$labels['countislessthanequal'] = 'отброявай като по-малък или равен на'; +$labels['countequals'] = 'отброявай като равен на'; +$labels['countnotequals'] = 'отброявай неравните'; +$labels['valueisgreaterthan'] = 'стойността е по-висока от'; +$labels['valueisgreaterthanequal'] = 'стойността е по-висока от или равна на'; +$labels['valueislessthan'] = 'стойността е по-ниска от'; +$labels['valueislessthanequal'] = 'стойността е по-ниска или равна на'; +$labels['valueequals'] = 'стойността е равна на'; +$labels['valuenotequals'] = 'стойността не е равна'; +$labels['setflags'] = 'Избор на флагове за съобщенията'; +$labels['addflags'] = 'Добавяне на флагове за съобщенията'; +$labels['removeflags'] = 'Премахване на флагове от съобщенията'; +$labels['flagread'] = 'Четене'; +$labels['flagdeleted'] = 'Изтрито'; +$labels['flaganswered'] = 'Отговорено'; +$labels['flagflagged'] = 'Отбелязано'; +$labels['flagdraft'] = 'Чернова'; +$labels['setvariable'] = 'Въвеждане на променлива'; +$labels['setvarname'] = 'Име на променлива:'; +$labels['setvarvalue'] = 'Стойност на променлива:'; +$labels['setvarmodifiers'] = 'Промени:'; +$labels['varlower'] = 'малки букви'; +$labels['varupper'] = 'главни букви'; +$labels['varlowerfirst'] = 'първи знак с малка буква'; +$labels['varupperfirst'] = 'първи знак с главна буква'; +$labels['varquotewildcard'] = 'цитиране на специални знаци'; +$labels['varlength'] = 'дължина'; +$labels['notify'] = 'Известие за изпращане'; +$labels['notifyaddress'] = 'До e-mail адреси:'; +$labels['notifybody'] = 'Известие:'; +$labels['notifysubject'] = 'Тема на известието'; +$labels['notifyfrom'] = 'Подател на известието'; +$labels['notifyimportance'] = 'Важност:'; +$labels['notifyimportancelow'] = 'ниска'; +$labels['notifyimportancenormal'] = 'нормална'; +$labels['notifyimportancehigh'] = 'висока'; +$labels['filtercreate'] = 'Нов филтър'; +$labels['usedata'] = 'Ползват се следните данни във филтъра:'; +$labels['nextstep'] = 'Следваща стъпка'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Разширени настройки'; +$labels['body'] = 'Основа'; +$labels['address'] = 'адрес'; +$labels['envelope'] = 'плик'; +$labels['modifier'] = 'промени:'; +$labels['text'] = 'текст'; +$labels['undecoded'] = 'без кодиране'; +$labels['contenttype'] = 'тип на съдържанието'; +$labels['modtype'] = 'тип:'; +$labels['allparts'] = 'всичко'; +$labels['domain'] = 'домейн'; +$labels['localpart'] = 'локална част'; +$labels['user'] = 'потребител'; +$labels['detail'] = 'данни'; +$labels['comparator'] = 'за сравнение:'; +$labels['default'] = 'по подразбиране'; +$labels['octet'] = 'стриктно'; +$labels['asciicasemap'] = 'без значение от малки/големи букви'; +$labels['asciinumeric'] = 'цифрово'; + +$messages = array(); +$messages['filterunknownerror'] = 'Неизвестна грешка на сървъра'; +$messages['filterconnerror'] = 'Невъзможност за свързване с managesieve сървъра'; +$messages['filterdeleteerror'] = 'Невъзможност за изтриване на филтър. Сървър грешка'; +$messages['filterdeleted'] = 'Филтърът е изтрит успешно'; +$messages['filtersaved'] = 'Филтърът е записан успешно'; +$messages['filtersaveerror'] = 'Филтърът не може да бъде записан. Сървър грешка.'; +$messages['filterdeleteconfirm'] = 'Наистина ли искате да изтриете избрания филтър?'; +$messages['ruledeleteconfirm'] = 'Сигурни ли сте, че искате да изтриете избраното правило?'; +$messages['actiondeleteconfirm'] = 'Сигурни ли сте, че искате да изтриете избраното действие?'; +$messages['forbiddenchars'] = 'Забранени символи в полето'; +$messages['cannotbeempty'] = 'Полето не може да бъде празно'; +$messages['ruleexist'] = 'Вече има филтър с указаното име.'; +$messages['setactivateerror'] = 'Невъзможно активиране на избраните филтри, възникна сървърна грешка.'; +$messages['setdeactivateerror'] = 'Невъзможно деактивиране на избраните филтри, възникна сървърна грешка.'; +$messages['setdeleteerror'] = 'Невъзможно изтриване на избраните филтри, възникна сървърна грешка.'; +$messages['setactivated'] = 'Филтрите са активиране.'; +$messages['setdeactivated'] = 'Филтрите са деактивирани.'; +$messages['setdeleted'] = 'Филтрите са изтрити.'; +$messages['setdeleteconfirm'] = 'Сигурни ли сте, че желаете да изтриете избраните филтири?'; +$messages['setcreateerror'] = 'Невъзможно създаване на филтри, възникна сървърна грешка.'; +$messages['setcreated'] = 'Филтрите са създадени.'; +$messages['activateerror'] = 'Невъзможно включване на филтрите, възникна сървърна грешка.'; +$messages['deactivateerror'] = 'Невъзможно изключване на филтрите, възникна сървърна грешка.'; +$messages['deactivated'] = 'Филтрите са изключени.'; +$messages['activated'] = 'Филтрите са включени.'; +$messages['moved'] = 'Филтрите са преместени.'; +$messages['moveerror'] = 'Невъзможно преместване на филтрите, възникна сървърна грешка.'; +$messages['nametoolong'] = 'Името е прекалено дълго.'; +$messages['namereserved'] = 'Резервирано име.'; +$messages['setexist'] = 'Вече има такъв набор филтри.'; +$messages['nodata'] = 'Поне една позиция трябва да е избрана!'; + +?> diff --git a/webmail/plugins/managesieve/localization/bs_BA.inc b/webmail/plugins/managesieve/localization/bs_BA.inc new file mode 100644 index 0000000..7d21dbd --- /dev/null +++ b/webmail/plugins/managesieve/localization/bs_BA.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filteri'; +$labels['managefilters'] = 'Upravljanje dolaznim email filterima'; +$labels['filtername'] = 'Naziv filtera'; +$labels['newfilter'] = 'Novi filter'; +$labels['filteradd'] = 'Dodaj filter'; +$labels['filterdel'] = 'Obriši filter'; +$labels['moveup'] = 'Pomjeri gore'; +$labels['movedown'] = 'Pomjeri dole'; +$labels['filterallof'] = 'poklapa se sa svim sljedećim pravilima'; +$labels['filteranyof'] = 'poklapa se sa bilo kojim od sljedećih pravila'; +$labels['filterany'] = 'sve poruke'; +$labels['filtercontains'] = 'sadrži'; +$labels['filternotcontains'] = 'ne sadrži'; +$labels['filteris'] = 'jednako'; +$labels['filterisnot'] = 'nije jednako'; +$labels['filterexists'] = 'postoji'; +$labels['filternotexists'] = 'ne postoji'; +$labels['filtermatches'] = 'poklapa se sa izrazom'; +$labels['filternotmatches'] = 'ne poklapa se sa izrazom'; +$labels['filterregex'] = 'poklapa se sa regularnim izrazom'; +$labels['filternotregex'] = 'ne poklapa se sa regularnim izrazom'; +$labels['filterunder'] = 'ispod'; +$labels['filterover'] = 'iznad'; +$labels['addrule'] = 'Dodaj pravilo'; +$labels['delrule'] = 'Obriši pravilo'; +$labels['messagemoveto'] = 'Premjesti poruku u'; +$labels['messageredirect'] = 'Preusmjeri poruku ka'; +$labels['messagecopyto'] = 'Kopiraj poruku u'; +$labels['messagesendcopy'] = 'Pošalji kopiju poruke'; +$labels['messagereply'] = 'Odgovori'; +$labels['messagedelete'] = 'Obriši poruku'; +$labels['messagediscard'] = 'Odbaci sa porukom'; +$labels['messagesrules'] = 'Za dolazne emailove:'; +$labels['messagesactions'] = '...izvrši sljedeće akcije:'; +$labels['add'] = 'Dodaj'; +$labels['del'] = 'Obriši'; +$labels['sender'] = 'Pošiljaoc'; +$labels['recipient'] = 'Primaoc'; +$labels['vacationaddresses'] = 'Moje dodatne email adrese (odvojite zarezima):'; +$labels['vacationdays'] = 'Frekvencija slanja poruka (u danima):'; +$labels['vacationinterval'] = 'Frekvencija slanja poruka:'; +$labels['days'] = 'dana'; +$labels['seconds'] = 'sekundi'; +$labels['vacationreason'] = 'Tijelo poruke (razlog za odmor):'; +$labels['vacationsubject'] = 'Naslov poruke:'; +$labels['rulestop'] = 'Prestani procjenjivati pravila'; +$labels['enable'] = 'Omogući/Onemogući'; +$labels['filterset'] = 'Set filtera'; +$labels['filtersets'] = 'Setovi filtera'; +$labels['filtersetadd'] = 'Dodaj set filtera'; +$labels['filtersetdel'] = 'Obriši trenutni set filtera'; +$labels['filtersetact'] = 'Aktiviraj trenutni set filtera'; +$labels['filtersetdeact'] = 'Deaktiviraj trenutni set filtera'; +$labels['filterdef'] = 'Definicija filtera'; +$labels['filtersetname'] = 'Naziv seta filtera'; +$labels['newfilterset'] = 'Novi set filtera'; +$labels['active'] = 'aktivno'; +$labels['none'] = 'ništa'; +$labels['fromset'] = 'iz seta'; +$labels['fromfile'] = 'iz datoteke'; +$labels['filterdisabled'] = 'Filter je onemogućen'; +$labels['countisgreaterthan'] = 'brojač je veći od'; +$labels['countisgreaterthanequal'] = 'brojač je veći ili jednak'; +$labels['countislessthan'] = 'brojač je manji od'; +$labels['countislessthanequal'] = 'brojač je manji ili jednak'; +$labels['countequals'] = 'brojač je jednak'; +$labels['countnotequals'] = 'brojač nije jednak'; +$labels['valueisgreaterthan'] = 'vrijednost je veća od'; +$labels['valueisgreaterthanequal'] = 'vrijednost je veća ili jednaka'; +$labels['valueislessthan'] = 'vrijednost je manja od'; +$labels['valueislessthanequal'] = 'vrijednost je manja ili jednaka'; +$labels['valueequals'] = 'vrijednost je jednaka'; +$labels['valuenotequals'] = 'vrijednost nije jednaka'; +$labels['setflags'] = 'Postavi oznake za poruku'; +$labels['addflags'] = 'Dodaj oznake u poruku'; +$labels['removeflags'] = 'Ukloni oznake iz poruke'; +$labels['flagread'] = 'Pročitano'; +$labels['flagdeleted'] = 'Obrisano'; +$labels['flaganswered'] = 'Odgovoreno'; +$labels['flagflagged'] = 'Važno'; +$labels['flagdraft'] = 'Skica'; +$labels['setvariable'] = 'Postavi promjenjivu'; +$labels['setvarname'] = 'Naziv promjenjive:'; +$labels['setvarvalue'] = 'Vrijednost promjenjive:'; +$labels['setvarmodifiers'] = 'Parametri:'; +$labels['varlower'] = 'mala slova'; +$labels['varupper'] = 'velika slova'; +$labels['varlowerfirst'] = 'prvi znak malim slovom'; +$labels['varupperfirst'] = 'prvi znak velikim slovom'; +$labels['varquotewildcard'] = 'citiraj specijalne znakove'; +$labels['varlength'] = 'dužina'; +$labels['notify'] = 'Pošalji napomenu'; +$labels['notifyaddress'] = 'Na email adresu:'; +$labels['notifybody'] = 'Sadržaj napomene:'; +$labels['notifysubject'] = 'Naslov napomene:'; +$labels['notifyfrom'] = 'Pošiljalac napomene:'; +$labels['notifyimportance'] = 'Prioritet:'; +$labels['notifyimportancelow'] = 'mali'; +$labels['notifyimportancenormal'] = 'obični'; +$labels['notifyimportancehigh'] = 'veliki'; +$labels['filtercreate'] = 'Kreiraj filter'; +$labels['usedata'] = 'Koristite sljedeće podatke u filteru:'; +$labels['nextstep'] = 'Sljedeći korak'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Napredne opcije'; +$labels['body'] = 'Tijelo'; +$labels['address'] = 'adresa'; +$labels['envelope'] = 'koverta'; +$labels['modifier'] = 'prilagođavanje:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'nekodiran (obični)'; +$labels['contenttype'] = 'vrsta sadržaja'; +$labels['modtype'] = 'vrsta:'; +$labels['allparts'] = 'sve'; +$labels['domain'] = 'domena'; +$labels['localpart'] = 'lokalni dio'; +$labels['user'] = 'korisnik'; +$labels['detail'] = 'detalji'; +$labels['comparator'] = 'upoređivač:'; +$labels['default'] = 'početno'; +$labels['octet'] = 'striktno (oktet)'; +$labels['asciicasemap'] = 'osjetljivo na velika/mala slova (ascii-casemap)'; +$labels['asciinumeric'] = 'numerički (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Nepoznata serverska greška.'; +$messages['filterconnerror'] = 'Nije se moguće povezati na server.'; +$messages['filterdeleteerror'] = 'Nije moguće obrisati filter. Desila se serverska greška.'; +$messages['filterdeleted'] = 'Filter je uspješno obrisan.'; +$messages['filtersaved'] = 'Filter je uspješno sačuvan.'; +$messages['filtersaveerror'] = 'Nije moguće sačuvati filter. Desila se serverska greška.'; +$messages['filterdeleteconfirm'] = 'Da li zaista želite obrisati označeni filter?'; +$messages['ruledeleteconfirm'] = 'Jeste li sigurni da želite obrisati označeno pravilo?'; +$messages['actiondeleteconfirm'] = 'Jeste li sigurni da želite obrisati označenu akciju?'; +$messages['forbiddenchars'] = 'U polje su uneseni nedozvoljeni znakovi.'; +$messages['cannotbeempty'] = 'Polje ne može biti prazno.'; +$messages['ruleexist'] = 'Filter s tim imenom već postoji.'; +$messages['setactivateerror'] = 'Nije moguće aktivirati označeni set filtera. Desila se serverska greška.'; +$messages['setdeactivateerror'] = 'Nije moguće deaktivirati označeni set filtera. Desila se serverska greška.'; +$messages['setdeleteerror'] = 'Nije moguće obrisati označeni set filtera. Desila se serverska greška.'; +$messages['setactivated'] = 'Set filtera je uspješno aktiviran.'; +$messages['setdeactivated'] = 'Set filtera je uspješno deaktiviran.'; +$messages['setdeleted'] = 'Set filtera je uspješno obrisan.'; +$messages['setdeleteconfirm'] = 'Jeste li sigurni da želite obrisati označeni set filtera?'; +$messages['setcreateerror'] = 'Nije moguće kreirati se filtera. Desila se serverska greška.'; +$messages['setcreated'] = 'Set filtera je uspješno kreiran.'; +$messages['activateerror'] = 'Nije moguće omogućiti označene filtere. Desila se serverska greška.'; +$messages['deactivateerror'] = 'Nije moguće onemogućiti označene filtere. Desila se serverska greška.'; +$messages['deactivated'] = 'Filteri su uspješno omogućeni.'; +$messages['activated'] = 'Filteri su uspješno onemogućeni.'; +$messages['moved'] = 'Filteri su uspješno premješteni.'; +$messages['moveerror'] = 'Nije moguće premjestiti označeni filter. Desila se serverska greška.'; +$messages['nametoolong'] = 'Ime je predugo.'; +$messages['namereserved'] = 'Ime je rezervisano.'; +$messages['setexist'] = 'Set već postoji.'; +$messages['nodata'] = 'Morate označiti barem jednu poziciju!'; + +?> diff --git a/webmail/plugins/managesieve/localization/ca_ES.inc b/webmail/plugins/managesieve/localization/ca_ES.inc new file mode 100644 index 0000000..e721fcc --- /dev/null +++ b/webmail/plugins/managesieve/localization/ca_ES.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtres'; +$labels['managefilters'] = 'Gestiona els filtres dels missatges d\'entrada'; +$labels['filtername'] = 'Nom del filtre'; +$labels['newfilter'] = 'Filtre Nou'; +$labels['filteradd'] = 'Afegeix un filtre'; +$labels['filterdel'] = 'Suprimeix el filtre'; +$labels['moveup'] = 'Mou amunt'; +$labels['movedown'] = 'Mou avall'; +$labels['filterallof'] = 'que coincideixi amb totes les regles següents'; +$labels['filteranyof'] = 'que no coincideixi amb cap de les regles següents'; +$labels['filterany'] = 'tots els missatges'; +$labels['filtercontains'] = 'conté'; +$labels['filternotcontains'] = 'no conté'; +$labels['filteris'] = 'és igual a'; +$labels['filterisnot'] = 'és diferent de'; +$labels['filterexists'] = 'existeix'; +$labels['filternotexists'] = 'no existeix'; +$labels['filtermatches'] = 'coincideix amb l\'expressió'; +$labels['filternotmatches'] = 'no coincideix amb l\'expressió'; +$labels['filterregex'] = 'coincideix amb l\'expressió regular'; +$labels['filternotregex'] = 'no coincideix amb l\'expressió regular'; +$labels['filterunder'] = 'sota'; +$labels['filterover'] = 'sobre'; +$labels['addrule'] = 'Afegeix una regla'; +$labels['delrule'] = 'Suprimeix regla'; +$labels['messagemoveto'] = 'Mou el missatge a'; +$labels['messageredirect'] = 'Redirigeix el missatge cap a'; +$labels['messagecopyto'] = 'Copia el missatge a'; +$labels['messagesendcopy'] = 'Envia una còpia del missatge a'; +$labels['messagereply'] = 'Respon amb un missatge'; +$labels['messagedelete'] = 'Suprimeix missatge'; +$labels['messagediscard'] = 'Descarta amb un missatge'; +$labels['messagesrules'] = 'Pels missatges entrants:'; +$labels['messagesactions'] = '..executa les següents accions:'; +$labels['add'] = 'Afegeix'; +$labels['del'] = 'Suprimeix'; +$labels['sender'] = 'Remitent'; +$labels['recipient'] = 'Destinatari/a'; +$labels['vacationaddresses'] = 'Altres adreces electròniques meves (separades per coma)'; +$labels['vacationdays'] = 'Cada quan enviar un missatge (en dies):'; +$labels['vacationinterval'] = 'Amb quina freqüència enviar missatges:'; +$labels['days'] = 'dies'; +$labels['seconds'] = 'segons'; +$labels['vacationreason'] = 'Cos del missatge (raó de les vacances):'; +$labels['vacationsubject'] = 'Assumpte del missatge:'; +$labels['rulestop'] = 'Deixa d\'avaluar regles'; +$labels['enable'] = 'Habilita/deshabilita'; +$labels['filterset'] = 'Conjunt de filtres'; +$labels['filtersets'] = 'Conjunts de filtres'; +$labels['filtersetadd'] = 'Afegeix conjunts de filtres'; +$labels['filtersetdel'] = 'Suprimeix el conjunt de filtres actual'; +$labels['filtersetact'] = 'Activa el conjunt de filtres actual'; +$labels['filtersetdeact'] = 'Desactiva el conjunt de filtres actual'; +$labels['filterdef'] = 'Definició del filtre'; +$labels['filtersetname'] = 'Nom del conjunt de filtres'; +$labels['newfilterset'] = 'Nou conjunt de filtres'; +$labels['active'] = 'actiu'; +$labels['none'] = 'cap'; +$labels['fromset'] = 'des del conjunt'; +$labels['fromfile'] = 'des del fitxer'; +$labels['filterdisabled'] = 'Filtre deshabilitat'; +$labels['countisgreaterthan'] = 'el recompte és major que'; +$labels['countisgreaterthanequal'] = 'el recompte és major o igual que'; +$labels['countislessthan'] = 'el recompte és menor que'; +$labels['countislessthanequal'] = 'el recompte és menor o igual que'; +$labels['countequals'] = 'el recompte és igual que'; +$labels['countnotequals'] = 'el recompte és diferent de'; +$labels['valueisgreaterthan'] = 'el valor és major que'; +$labels['valueisgreaterthanequal'] = 'el valor és major o igual que'; +$labels['valueislessthan'] = 'el valor és menor que'; +$labels['valueislessthanequal'] = 'el valor és menor o igual que'; +$labels['valueequals'] = 'el valor és igual que'; +$labels['valuenotequals'] = 'el valor és diferent de'; +$labels['setflags'] = 'Posa indicadors al missatge'; +$labels['addflags'] = 'Afegeix indicadors al missatge'; +$labels['removeflags'] = 'Suprimeix indicadors del missatge'; +$labels['flagread'] = 'Llegit'; +$labels['flagdeleted'] = 'Suprimit'; +$labels['flaganswered'] = 'Respost'; +$labels['flagflagged'] = 'Marcat'; +$labels['flagdraft'] = 'Esborrany'; +$labels['setvariable'] = 'Ajusta la variable'; +$labels['setvarname'] = 'Nom de la variable:'; +$labels['setvarvalue'] = 'Valor de la variable:'; +$labels['setvarmodifiers'] = 'Modificadors:'; +$labels['varlower'] = 'minúscules'; +$labels['varupper'] = 'majúscules'; +$labels['varlowerfirst'] = 'el primer caràcter és minúscul'; +$labels['varupperfirst'] = 'el primer caràcter és majúscul'; +$labels['varquotewildcard'] = 'engloba els caràcters especials amb cometes'; +$labels['varlength'] = 'llargada'; +$labels['notify'] = 'Envia notificació'; +$labels['notifyaddress'] = 'Per a adreça de correu electrònic:'; +$labels['notifybody'] = 'Cos de la notificació'; +$labels['notifysubject'] = 'Tema de la notificació:'; +$labels['notifyfrom'] = 'Remitent de la notificació:'; +$labels['notifyimportance'] = 'Importànica:'; +$labels['notifyimportancelow'] = 'baixa'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'alta'; +$labels['filtercreate'] = 'Crea filtre'; +$labels['usedata'] = 'Fes servir les següents dades al filtre:'; +$labels['nextstep'] = 'Següent pas'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opcions avançades'; +$labels['body'] = 'Cos'; +$labels['address'] = 'adreça'; +$labels['envelope'] = 'sobre'; +$labels['modifier'] = 'modificador:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'descodificat (en brut)'; +$labels['contenttype'] = 'tipus de contigut'; +$labels['modtype'] = 'tipus:'; +$labels['allparts'] = 'tots'; +$labels['domain'] = 'domini'; +$labels['localpart'] = 'part local'; +$labels['user'] = 'usuari/a'; +$labels['detail'] = 'detall'; +$labels['comparator'] = 'comparador:'; +$labels['default'] = 'per omissió'; +$labels['octet'] = 'estricte (octet)'; +$labels['asciicasemap'] = 'No distingeix entre majúscules i minúscules (ascii-casemap)'; +$labels['asciinumeric'] = 'numèric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Error desconegut al servidor.'; +$messages['filterconnerror'] = 'No s\'ha pogut connectar al servidor.'; +$messages['filterdeleteerror'] = 'No s\'ha pogut suprimir el filtre. Hi ha hagut un error al servidor.'; +$messages['filterdeleted'] = 'El filtre s\'ha suprimit correctament.'; +$messages['filtersaved'] = 'Filtre desat correctament.'; +$messages['filtersaveerror'] = 'No s\'ha pogut desar el filtre. Hi ha hagut un error al servidor.'; +$messages['filterdeleteconfirm'] = 'Realment voleu suprimit el filtre seleccionat?'; +$messages['ruledeleteconfirm'] = 'Esteu segur que voleu suprimir la norma seleccionada?'; +$messages['actiondeleteconfirm'] = 'Esteu segur que voleu suprimir l\'acció seleccionada?'; +$messages['forbiddenchars'] = 'El camp conté caràcters prohibits.'; +$messages['cannotbeempty'] = 'El camp no pot estar buit.'; +$messages['ruleexist'] = 'Ja existeix un filtre amb aquest nom'; +$messages['setactivateerror'] = 'No s\'ha pogut activar el fitlre seleccionat. Hi ha hagut un error al servidor.'; +$messages['setdeactivateerror'] = 'No s\'ha pogut desactivar el fitlre seleccionat. Hi ha hagut un error al servidor.'; +$messages['setdeleteerror'] = 'No s\'ha pogut suprimir el conjunt de filtres seleccionats. Hi ha hagut un error al servidor.'; +$messages['setactivated'] = 'El conjunt de filtres s\'ha activat correctament.'; +$messages['setdeactivated'] = 'El conjunt de filtres s\'ha desactivat correctament.'; +$messages['setdeleted'] = 'El conjunt de filtres s\'ha suprimit correctament.'; +$messages['setdeleteconfirm'] = 'Esteu segurs que voleu suprimir el conjunt de filtres seleccionats?'; +$messages['setcreateerror'] = 'No s\'ha pogut crear el conjunt de filtres. Hi ha hagut un error al servidor.'; +$messages['setcreated'] = 'S\'ha creat correctament el conjunt de filtres.'; +$messages['activateerror'] = 'No s\'ha pogut habilitar el(s) filtre(s) seleccionat(s). Hi ha hagut un error al servidor.'; +$messages['deactivateerror'] = 'No s\'ha pogut deshabilitar el(s) filtre(s) seleccionat(s). Hi ha hagut un error al servidor.'; +$messages['deactivated'] = 'Filtre(s) habilitat(s) correctament.'; +$messages['activated'] = 'Filtre(s) deshabilitat(s) correctament.'; +$messages['moved'] = 'S\'ha mogut correctament el filtre.'; +$messages['moveerror'] = 'No s\'ha pogut moure el filtre seleccionat. Hi ha hagut un error al servidor.'; +$messages['nametoolong'] = 'El nom és massa llarg.'; +$messages['namereserved'] = 'Nom reservat.'; +$messages['setexist'] = 'El conjunt ja existeix.'; +$messages['nodata'] = 'S\'ha de seleccionar com a mínim una posició!'; + +?> diff --git a/webmail/plugins/managesieve/localization/cs_CZ.inc b/webmail/plugins/managesieve/localization/cs_CZ.inc new file mode 100644 index 0000000..26baeff --- /dev/null +++ b/webmail/plugins/managesieve/localization/cs_CZ.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtry'; +$labels['managefilters'] = 'Nastavení filtrů'; +$labels['filtername'] = 'Název filtru'; +$labels['newfilter'] = 'Nový filtr'; +$labels['filteradd'] = 'Přidej filtr'; +$labels['filterdel'] = 'Smaž filtr'; +$labels['moveup'] = 'Posunout nahoru'; +$labels['movedown'] = 'Posunout dolů'; +$labels['filterallof'] = 'Odpovídají všechny pravidla'; +$labels['filteranyof'] = 'Odpovídá kterékoliv pravidlo'; +$labels['filterany'] = 'Všechny zprávy'; +$labels['filtercontains'] = 'obsahuje'; +$labels['filternotcontains'] = 'neobsahuje'; +$labels['filteris'] = 'odpovídá'; +$labels['filterisnot'] = 'neodpovídá'; +$labels['filterexists'] = 'existuje'; +$labels['filternotexists'] = 'neexistuje'; +$labels['filtermatches'] = 'odpovídá výrazu'; +$labels['filternotmatches'] = 'neodpovídá výrazu'; +$labels['filterregex'] = 'odpovídá regulárnímu výrazu'; +$labels['filternotregex'] = 'neodpovídá regulárnímu výrazu'; +$labels['filterunder'] = 'pod'; +$labels['filterover'] = 'nad'; +$labels['addrule'] = 'Přidej pravidlo'; +$labels['delrule'] = 'Smaž pravidlo'; +$labels['messagemoveto'] = 'Přesuň zprávu do'; +$labels['messageredirect'] = 'Přeposlat zprávu na'; +$labels['messagecopyto'] = 'Zkopírovat zprávu do'; +$labels['messagesendcopy'] = 'Odeslat kopii zprávy na'; +$labels['messagereply'] = 'Odpovědět se zprávou'; +$labels['messagedelete'] = 'Smazat zprávu'; +$labels['messagediscard'] = 'Smazat se zprávou'; +$labels['messagesrules'] = 'Pravidla pro příchozí zprávu:'; +$labels['messagesactions'] = '...vykonej následující akce:'; +$labels['add'] = 'Přidej'; +$labels['del'] = 'Smaž'; +$labels['sender'] = 'Odesílatel'; +$labels['recipient'] = 'Příjemce'; +$labels['vacationaddresses'] = 'Moje další e-mailové adresy (aliasy) spojené s tímto účtem (oddělené čárkou):'; +$labels['vacationdays'] = 'Počet dnů mezi automatickými odpověďmi:'; +$labels['vacationinterval'] = 'Prodleva mezi automatickými odpověďmi:'; +$labels['days'] = 'dnů'; +$labels['seconds'] = 'sekund'; +$labels['vacationreason'] = 'Zpráva (Důvod nepřítomnosti):'; +$labels['vacationsubject'] = 'Předmět zprávy:'; +$labels['rulestop'] = 'Zastavit pravidla'; +$labels['enable'] = 'Zapnout/Vypnout'; +$labels['filterset'] = 'Sada filtrů'; +$labels['filtersets'] = 'Sady filtrů'; +$labels['filtersetadd'] = 'Přidat sadu filtrů'; +$labels['filtersetdel'] = 'Odebrat tuto sadu filtrů'; +$labels['filtersetact'] = 'Zapnout tuto sadu filtrů'; +$labels['filtersetdeact'] = 'Vypnout tuto sadu filtrů'; +$labels['filterdef'] = 'Definice filtru'; +$labels['filtersetname'] = 'Nastavit název sady filtrů'; +$labels['newfilterset'] = 'Nová sada filtrů'; +$labels['active'] = 'aktivní'; +$labels['none'] = 'nic'; +$labels['fromset'] = 'ze sady'; +$labels['fromfile'] = 'ze souboru'; +$labels['filterdisabled'] = 'Filtr neaktivní'; +$labels['countisgreaterthan'] = 'počet je větší než'; +$labels['countisgreaterthanequal'] = 'počet je větší nebo roven'; +$labels['countislessthan'] = 'počet je nižší než'; +$labels['countislessthanequal'] = 'počet je nižší nebo roven'; +$labels['countequals'] = 'počet je roven'; +$labels['countnotequals'] = 'počet není roven'; +$labels['valueisgreaterthan'] = 'hodnota je větší než'; +$labels['valueisgreaterthanequal'] = 'hodnota je větší nebo stejná jako'; +$labels['valueislessthan'] = 'hodnota je nižší než'; +$labels['valueislessthanequal'] = 'hodnota je nižší nebo stejná jako'; +$labels['valueequals'] = 'hodnota odpovídá'; +$labels['valuenotequals'] = 'hodnota neodpovídá'; +$labels['setflags'] = 'Nastavit vlajky u zprávy'; +$labels['addflags'] = 'Přidat vlajky ke zprávě'; +$labels['removeflags'] = 'Odstranit vlajky ze zprávy'; +$labels['flagread'] = 'Přečteno'; +$labels['flagdeleted'] = 'Smazáno'; +$labels['flaganswered'] = 'Odpovězené'; +$labels['flagflagged'] = 'Označeno'; +$labels['flagdraft'] = 'Koncept'; +$labels['setvariable'] = 'Nastavit proměnnou'; +$labels['setvarname'] = 'Název proměnné:'; +$labels['setvarvalue'] = 'Hodnota proměnné:'; +$labels['setvarmodifiers'] = 'Modifikátory:'; +$labels['varlower'] = 'malá písmena'; +$labels['varupper'] = 'velká písmena'; +$labels['varlowerfirst'] = 'první písmeno malé'; +$labels['varupperfirst'] = 'první písmeno velké'; +$labels['varquotewildcard'] = 'uvodit speciální znaky uvozovkama'; +$labels['varlength'] = 'délka'; +$labels['notify'] = 'Odeslat oznámení'; +$labels['notifyaddress'] = 'Na emailovou adresu:'; +$labels['notifybody'] = 'Zpráva oznámení:'; +$labels['notifysubject'] = 'Předmět oznámení:'; +$labels['notifyfrom'] = 'Odesílatel oznámení:'; +$labels['notifyimportance'] = 'Důležitost:'; +$labels['notifyimportancelow'] = 'nízká'; +$labels['notifyimportancenormal'] = 'normální'; +$labels['notifyimportancehigh'] = 'vysoká'; +$labels['filtercreate'] = 'Vytvořit filtr'; +$labels['usedata'] = 'Použít následující údaje ve filtru:'; +$labels['nextstep'] = 'Další krok'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Pokročilá nastavení'; +$labels['body'] = 'Tělo'; +$labels['address'] = 'adresa'; +$labels['envelope'] = 'obálka'; +$labels['modifier'] = 'měnič:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'nedekódované (surové)'; +$labels['contenttype'] = 'typ obsahu'; +$labels['modtype'] = 'typ:'; +$labels['allparts'] = 'vše'; +$labels['domain'] = 'doména'; +$labels['localpart'] = 'místní část'; +$labels['user'] = 'uživatel'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'porovnávač:'; +$labels['default'] = 'výchozí'; +$labels['octet'] = 'striktní (oktet)'; +$labels['asciicasemap'] = 'necitlivé na velikost písmen (ascii-casemap)'; +$labels['asciinumeric'] = 'číslené (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Neznámá chyba serveru'; +$messages['filterconnerror'] = 'Nebylo možné se připojit k sieve serveru'; +$messages['filterdeleteerror'] = 'Nebylo možné smazat filtr. Server nahlásil chybu'; +$messages['filterdeleted'] = 'Filtr byl smazán'; +$messages['filtersaved'] = 'Filtr byl uložen'; +$messages['filtersaveerror'] = 'Nebylo možné uložit filtr. Server nahlásil chybu.'; +$messages['filterdeleteconfirm'] = 'Opravdu chcete smazat vybraný filtr?'; +$messages['ruledeleteconfirm'] = 'Jste si jisti, že chcete smazat vybrané pravidlo?'; +$messages['actiondeleteconfirm'] = 'Jste si jisti, že chcete smazat vybranou akci?'; +$messages['forbiddenchars'] = 'Zakázané znaky v poli'; +$messages['cannotbeempty'] = 'Pole nemůže být prázdné'; +$messages['ruleexist'] = 'Filtr s uvedeným názvem již existuje.'; +$messages['setactivateerror'] = 'Nelze zapnout vybranou sadu filtrů. Došlo k chybě serveru.'; +$messages['setdeactivateerror'] = 'Nelze vypnout vybranou sadu filtrů. Došlo k chybě serveru.'; +$messages['setdeleteerror'] = 'Nelze odstranit vybranou sadu filtrů. Došlo k chybě serveru.'; +$messages['setactivated'] = 'Sada filtrů úspěšně zapnuta.'; +$messages['setdeactivated'] = 'Sada filtrů úspěšně vypnuta.'; +$messages['setdeleted'] = 'Sada filtrů úspěšně odstraněna.'; +$messages['setdeleteconfirm'] = 'Opravdu si přejete odebrat vybranou sadu filtrů.'; +$messages['setcreateerror'] = 'Nelze vytvořit sadu filtrů. Došlo k chybě serveru.'; +$messages['setcreated'] = 'Sada filtrů úspěšně vytvořena.'; +$messages['activateerror'] = 'Nelze zapnout vybrané filtr/y. Došlo k chybě serveru.'; +$messages['deactivateerror'] = 'Nelze vypnout vybrané filtr/y. Došlo k chybě serveru.'; +$messages['deactivated'] = 'Filtr/y úspěšně zapnuty.'; +$messages['activated'] = 'Filtr/y úspěšne vypnuty.'; +$messages['moved'] = 'Filtr byl úspěšně přesunut.'; +$messages['moveerror'] = 'Nelze přesunout vybraný filtr. Došlo k chybě na serveru.'; +$messages['nametoolong'] = 'Příliš dlouhý název.'; +$messages['namereserved'] = 'Vyhrazený název.'; +$messages['setexist'] = 'Sada již existuje.'; +$messages['nodata'] = 'Musí být vybrána minimálně jedna pozice!'; + +?> diff --git a/webmail/plugins/managesieve/localization/cy_GB.inc b/webmail/plugins/managesieve/localization/cy_GB.inc new file mode 100644 index 0000000..52fafe7 --- /dev/null +++ b/webmail/plugins/managesieve/localization/cy_GB.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Hidlyddion'; +$labels['managefilters'] = 'Rheoli hidlyddion ebost i fewn'; +$labels['filtername'] = 'Enw hidlydd'; +$labels['newfilter'] = 'Hidlydd newydd'; +$labels['filteradd'] = 'Ychwanegu hidlydd'; +$labels['filterdel'] = 'Dileu hidlydd'; +$labels['moveup'] = 'Symud i fyny'; +$labels['movedown'] = 'Symud i lawr'; +$labels['filterallof'] = 'sy\'n cyfateb i\'r holl reolau canlynol'; +$labels['filteranyof'] = 'sy\'n cyfateb i unrhyw un i\'r rheolau canlynol'; +$labels['filterany'] = 'pob neges'; +$labels['filtercontains'] = 'yn cynnwys'; +$labels['filternotcontains'] = 'ddim yn cynnwys'; +$labels['filteris'] = 'yn hafal i'; +$labels['filterisnot'] = 'ddim yn hafal i'; +$labels['filterexists'] = 'yn bodoli'; +$labels['filternotexists'] = 'ddim yn bodoli'; +$labels['filtermatches'] = 'yn cyfateb i\'r mynegiant'; +$labels['filternotmatches'] = 'ddim yn cyfateb i\'r mynegiant'; +$labels['filterregex'] = 'yn cyfateb i\'r mynegiant rheolaidd'; +$labels['filternotregex'] = 'ddim yn cyfateb i\'r mynegiant rheolaidd'; +$labels['filterunder'] = 'o dan'; +$labels['filterover'] = 'dros'; +$labels['addrule'] = 'Ychwanegu rheol'; +$labels['delrule'] = 'Dileu rheol'; +$labels['messagemoveto'] = 'Symud neges i'; +$labels['messageredirect'] = 'Ail-gyfeirio neges i'; +$labels['messagecopyto'] = 'Copio neges i'; +$labels['messagesendcopy'] = 'Danfon copi o\'r neges i'; +$labels['messagereply'] = 'Ymateb gyda\'r neges'; +$labels['messagedelete'] = 'Dileu neges'; +$labels['messagediscard'] = 'Gwaredu gyda neges'; +$labels['messagesrules'] = 'Ar gyfer ebost i fewn:'; +$labels['messagesactions'] = '...rhedeg y gweithredoedd canlynol:'; +$labels['add'] = 'Ychwanegu'; +$labels['del'] = 'Dileu'; +$labels['sender'] = 'Anfonwr'; +$labels['recipient'] = 'Derbynnwr'; +$labels['vacationaddresses'] = 'Fy chyfeiriadau ebost ychwanegol (gwahanir gyda coma):'; +$labels['vacationdays'] = 'Pa mor aml i ddanfon negeseuon (mewn dyddiau):'; +$labels['vacationinterval'] = 'Pa mor aml i ddanfon negeseuon:'; +$labels['days'] = 'dyddiau'; +$labels['seconds'] = 'eiliadau'; +$labels['vacationreason'] = 'Corff neges (rheswm ar wyliau):'; +$labels['vacationsubject'] = 'Pwnc neges:'; +$labels['rulestop'] = 'Stopio gwerthuso rheolau'; +$labels['enable'] = 'Galluogi/Analluogi'; +$labels['filterset'] = 'Set hidlyddion'; +$labels['filtersets'] = 'Setiau hidlyddion'; +$labels['filtersetadd'] = 'Ychwanegu set hidlyddion'; +$labels['filtersetdel'] = 'Dileu set hidlyddion cyfredol'; +$labels['filtersetact'] = 'Dileu set hidlyddion gweithredol'; +$labels['filtersetdeact'] = 'Analluogi set hidlyddion cyfredol'; +$labels['filterdef'] = 'Diffiniad hidlydd'; +$labels['filtersetname'] = 'Enw set hidlyddion'; +$labels['newfilterset'] = 'Set hidlyddion newydd'; +$labels['active'] = 'gweithredol'; +$labels['none'] = 'dim'; +$labels['fromset'] = 'o set'; +$labels['fromfile'] = 'o ffeil'; +$labels['filterdisabled'] = 'Analluogwyd hidlydd'; +$labels['countisgreaterthan'] = 'rhif yn fwy na'; +$labels['countisgreaterthanequal'] = 'rhif yn fwy na neu hafal i'; +$labels['countislessthan'] = 'rhif yn llai na'; +$labels['countislessthanequal'] = 'rhif yn llai na neu hafal i'; +$labels['countequals'] = 'rhif yn hafal i'; +$labels['countnotequals'] = 'rhif ddim yn hafal i'; +$labels['valueisgreaterthan'] = 'gwerth yn fwy na'; +$labels['valueisgreaterthanequal'] = 'gwerth yn fwy na neu hafal i'; +$labels['valueislessthan'] = 'gwerth yn llai na'; +$labels['valueislessthanequal'] = 'gwerth yn llai neu hafal i'; +$labels['valueequals'] = 'gwerth yn hafal i'; +$labels['valuenotequals'] = 'gwerth ddim yn hafal i'; +$labels['setflags'] = 'Rhoi fflag ar y neges'; +$labels['addflags'] = 'Ychwanegu fflag i\'r neges'; +$labels['removeflags'] = 'Dileu fflag o\'r neges'; +$labels['flagread'] = 'Darllen'; +$labels['flagdeleted'] = 'Dilewyd'; +$labels['flaganswered'] = 'Atebwyd'; +$labels['flagflagged'] = 'Nodwyd'; +$labels['flagdraft'] = 'Drafft'; +$labels['setvariable'] = 'Gosod newidyn'; +$labels['setvarname'] = 'Enw newidyn:'; +$labels['setvarvalue'] = 'Gwerth newidyn:'; +$labels['setvarmodifiers'] = 'Addasydd:'; +$labels['varlower'] = 'llythrennau bychain'; +$labels['varupper'] = 'priflythrennau'; +$labels['varlowerfirst'] = 'llythyren gyntaf yn fach'; +$labels['varupperfirst'] = 'llythyren gyntaf yn briflythyren'; +$labels['varquotewildcard'] = 'dyfynnu nodau arbennig'; +$labels['varlength'] = 'hyd'; +$labels['notify'] = 'Anfon hysbysiad'; +$labels['notifyaddress'] = 'I gyfeiriad ebost:'; +$labels['notifybody'] = 'Corff hysbysiad:'; +$labels['notifysubject'] = 'Pwnc hysbysiad:'; +$labels['notifyfrom'] = 'Anfonwr hysbysiad:'; +$labels['notifyimportance'] = 'Pwysigrwydd:'; +$labels['notifyimportancelow'] = 'isel'; +$labels['notifyimportancenormal'] = 'arferol'; +$labels['notifyimportancehigh'] = 'uchel'; +$labels['filtercreate'] = 'Creu hidlydd'; +$labels['usedata'] = 'Defnyddio\'r wybodaeth ganlynol yn yr hidlydd:'; +$labels['nextstep'] = 'Cam nesaf'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Dewisiadau uwch'; +$labels['body'] = 'Corff'; +$labels['address'] = 'cyfeiriad'; +$labels['envelope'] = 'amlen'; +$labels['modifier'] = 'newidydd:'; +$labels['text'] = 'testun'; +$labels['undecoded'] = 'heb ei ddatgodi (amrwd)'; +$labels['contenttype'] = 'math cynnwys'; +$labels['modtype'] = 'math:'; +$labels['allparts'] = 'popeth'; +$labels['domain'] = 'parth'; +$labels['localpart'] = 'darn lleol'; +$labels['user'] = 'defnyddiwr'; +$labels['detail'] = 'manylion'; +$labels['comparator'] = 'cymharydd'; +$labels['default'] = 'rhagosodiad'; +$labels['octet'] = 'llym (octet)'; +$labels['asciicasemap'] = 'maint llythrennau (ascii-casemap)'; +$labels['asciinumeric'] = 'rhifau (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Gwall gweinydd anhysbys.'; +$messages['filterconnerror'] = 'Methwyd cysylltu a\'r gweinydd.'; +$messages['filterdeleteerror'] = 'Methwyd dileu hidlydd. Cafwydd gwall gweinydd.'; +$messages['filterdeleted'] = 'Dilëuwyd hidlydd yn llwyddiannus.'; +$messages['filtersaved'] = 'Cadwyd hidlydd yn llwyddiannus.'; +$messages['filtersaveerror'] = 'Methwyd cadw hidlydd. Cafwyd gwall gweinydd.'; +$messages['filterdeleteconfirm'] = 'Ydych chi wir am ddileu yr hidlydd ddewiswyd?'; +$messages['ruledeleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu\'r rheol ddewiswyd?'; +$messages['actiondeleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu\'r weithred ddewiswyd?'; +$messages['forbiddenchars'] = 'Llythrennau gwaharddedig yn y maes.'; +$messages['cannotbeempty'] = 'Ni all y maes fod yn wag.'; +$messages['ruleexist'] = 'Mae hidlydd gyda\'r enw yma yn bodoli\'n barod.'; +$messages['setactivateerror'] = 'Methwyd bywiogi y set hidlydd dewiswyd. Cafwyd gwall gweinydd.'; +$messages['setdeactivateerror'] = 'Methwyd dadfywiogi y set hidlydd dewiswyd. Cafwyd gwall gweinydd.'; +$messages['setdeleteerror'] = 'Methwyd dileu y set hidlydd dewiswyd. Cafwyd gwall gweinydd.'; +$messages['setactivated'] = 'Bywiogwyd y set hidlydd yn llwyddiannus.'; +$messages['setdeactivated'] = 'Dadfywiogwyd y set hidlydd yn llwyddiannus.'; +$messages['setdeleted'] = 'Dilëuwyd y set hidlydd yn llwyddiannus.'; +$messages['setdeleteconfirm'] = 'Ydych chi\'n siwr eich bod am ddileu\'r set hidlydd ddewiswyd?'; +$messages['setcreateerror'] = 'Methwyd creu set hidlydd. Cafwyd gwall gweinydd.'; +$messages['setcreated'] = 'Crëuwyd y set hidlydd yn llwyddiannus.'; +$messages['activateerror'] = 'Methwyd galluogi y hidlydd(ion) dewiswyd. Cafwyd gwall gweinydd.'; +$messages['deactivateerror'] = 'Methwyd analluogi y hidlydd(ion) dewiswyd. Cafwyd gwall gweinydd.'; +$messages['deactivated'] = 'Galluogwyd y hidlydd(ion) yn llwyddiannus.'; +$messages['activated'] = 'Analluogwyd y hidlydd(ion) yn llwyddiannus.'; +$messages['moved'] = 'Symudwyd y hidlydd yn llwyddiannus.'; +$messages['moveerror'] = 'Methwyd symud y hidlydd dewiswyd. Cafwyd gwall gweinydd.'; +$messages['nametoolong'] = 'Enw yn rhy hir.'; +$messages['namereserved'] = 'Enw neilltuedig.'; +$messages['setexist'] = 'Mae\'r set yn bodoli\'n barod.'; +$messages['nodata'] = 'Rhaid dewis o leia un safle!'; + +?> diff --git a/webmail/plugins/managesieve/localization/da_DK.inc b/webmail/plugins/managesieve/localization/da_DK.inc new file mode 100644 index 0000000..cd3deaf --- /dev/null +++ b/webmail/plugins/managesieve/localization/da_DK.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtre'; +$labels['managefilters'] = 'Ændre indgående mail filtreing'; +$labels['filtername'] = 'Filter navn'; +$labels['newfilter'] = 'Nyt filter'; +$labels['filteradd'] = 'Tilføj filter'; +$labels['filterdel'] = 'Slet filter'; +$labels['moveup'] = 'Flyt op'; +$labels['movedown'] = 'Flyt ned'; +$labels['filterallof'] = 'matcher alle af de følgende regler'; +$labels['filteranyof'] = 'matcher en af følgende regler'; +$labels['filterany'] = 'alle meddelelser'; +$labels['filtercontains'] = 'indeholder'; +$labels['filternotcontains'] = 'indeholder ikke'; +$labels['filteris'] = 'er ens med'; +$labels['filterisnot'] = 'er ikke ens med'; +$labels['filterexists'] = 'findes'; +$labels['filternotexists'] = 'ikke eksisterer'; +$labels['filtermatches'] = 'matcher udtryk'; +$labels['filternotmatches'] = 'matcher ikke udtryk'; +$labels['filterregex'] = 'matcher regulært udtryk'; +$labels['filternotregex'] = 'matcher ikke regulært udtryk'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Tilføj regel'; +$labels['delrule'] = 'Slet regel'; +$labels['messagemoveto'] = 'Flyt besked til'; +$labels['messageredirect'] = 'Redirriger besked til'; +$labels['messagecopyto'] = 'Kopier besked til'; +$labels['messagesendcopy'] = 'Send kopi af besked til'; +$labels['messagereply'] = 'Svar med besked'; +$labels['messagedelete'] = 'Slet besked'; +$labels['messagediscard'] = 'Slet med besked'; +$labels['messagesrules'] = 'For indkomne besked:'; +$labels['messagesactions'] = '...udfør følgende aktioner:'; +$labels['add'] = 'Tilføje'; +$labels['del'] = 'Fjern'; +$labels['sender'] = 'Afsender'; +$labels['recipient'] = 'Modtager'; +$labels['vacationaddresses'] = 'Mine alternative e-mailadresser (kommasepareret):'; +$labels['vacationdays'] = 'Hvor tit skal besked sendes (i dage):'; +$labels['vacationinterval'] = 'Hvor tit skal besked sendes:'; +$labels['days'] = 'dage'; +$labels['seconds'] = 'sekunder'; +$labels['vacationreason'] = 'Besked (ved ferie):'; +$labels['vacationsubject'] = 'Besked emne:'; +$labels['rulestop'] = 'Stop behandling af regler'; +$labels['enable'] = 'Aktivér/Deaktivér'; +$labels['filterset'] = 'Filter sæt'; +$labels['filtersets'] = 'Filtre sæt'; +$labels['filtersetadd'] = 'Tilføj filter sæt'; +$labels['filtersetdel'] = 'Slet aktuel filter sæt'; +$labels['filtersetact'] = 'Aktiver nuværende filter sæt'; +$labels['filtersetdeact'] = 'Deaktiver nuværende filter sæt'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filter sæt navn'; +$labels['newfilterset'] = 'Nyt filter sæt'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'ingen'; +$labels['fromset'] = 'fra sæt'; +$labels['fromfile'] = 'fra fil'; +$labels['filterdisabled'] = 'Filter deaktiveret'; +$labels['countisgreaterthan'] = 'antal er større end'; +$labels['countisgreaterthanequal'] = 'antal er større end eller lig med'; +$labels['countislessthan'] = 'antal er mindre end'; +$labels['countislessthanequal'] = 'antal er mindre end eller lig med'; +$labels['countequals'] = 'antal er lig med'; +$labels['countnotequals'] = 'antal er ikke lig med'; +$labels['valueisgreaterthan'] = 'værdi er større end'; +$labels['valueisgreaterthanequal'] = 'værdi er større end eller lig med'; +$labels['valueislessthan'] = 'værdi er mindre end'; +$labels['valueislessthanequal'] = 'værdi er mindre end eller lig med'; +$labels['valueequals'] = 'værdi er lig med'; +$labels['valuenotequals'] = 'værdi er ikke lig med'; +$labels['setflags'] = 'Sæt flag i beskeden'; +$labels['addflags'] = 'Tilføj flag til beskeden'; +$labels['removeflags'] = 'Fjern flag fra beskeden'; +$labels['flagread'] = 'Læs'; +$labels['flagdeleted'] = 'Slettede'; +$labels['flaganswered'] = 'Besvaret'; +$labels['flagflagged'] = 'Markeret'; +$labels['flagdraft'] = 'Kladde'; +$labels['setvariable'] = 'Skriv variablen'; +$labels['setvarname'] = 'Variabel navn:'; +$labels['setvarvalue'] = 'Variabel værdi:'; +$labels['setvarmodifiers'] = 'Modifikator'; +$labels['varlower'] = 'små bogstaver'; +$labels['varupper'] = 'store bogstaver'; +$labels['varlowerfirst'] = 'første bogstav lille'; +$labels['varupperfirst'] = 'Første bogstav stort'; +$labels['varquotewildcard'] = 'Sæt specialle tegn i citationstegn '; +$labels['varlength'] = 'længde'; +$labels['notify'] = 'Send meddelelse'; +$labels['notifyaddress'] = 'Til e-mail adresse:'; +$labels['notifybody'] = 'meddelelses indhold:'; +$labels['notifysubject'] = 'Meddelelses emne:'; +$labels['notifyfrom'] = 'Meddelelses afsender:'; +$labels['notifyimportance'] = 'Vigtighed:'; +$labels['notifyimportancelow'] = 'lav'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'høj'; +$labels['filtercreate'] = 'Opret filter'; +$labels['usedata'] = 'Brug følgende data i filteret:'; +$labels['nextstep'] = 'Næste trin'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advancerede muligheder'; +$labels['body'] = 'Brødtekst'; +$labels['address'] = 'adresse'; +$labels['envelope'] = 'kuvert'; +$labels['modifier'] = 'modificerer:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'udekodet (råt):'; +$labels['contenttype'] = 'indholdstype'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'alle'; +$labels['domain'] = 'domæne'; +$labels['localpart'] = 'lokal del'; +$labels['user'] = 'bruger'; +$labels['detail'] = 'detalje'; +$labels['comparator'] = 'sammenligner:'; +$labels['default'] = 'standard'; +$labels['octet'] = 'præcis (oktet)'; +$labels['asciicasemap'] = 'store og små bogstaver (ascii-bogstaver)'; +$labels['asciinumeric'] = 'numerisk (ascii-numerisk)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Ukendt server fejl.'; +$messages['filterconnerror'] = 'Kan ikke forbinde til server.'; +$messages['filterdeleteerror'] = 'Kan ikke slette filter. Server fejl.'; +$messages['filterdeleted'] = 'Filter slettet.'; +$messages['filtersaved'] = 'Filter gemt.'; +$messages['filtersaveerror'] = 'Kan ikke gemme filter. Server fejl.'; +$messages['filterdeleteconfirm'] = 'Vil du slette det valgte filter?'; +$messages['ruledeleteconfirm'] = 'Er du sikker på at du vil slette den valgte regel?'; +$messages['actiondeleteconfirm'] = 'Er du sikker på du vil slette den valgte handling?'; +$messages['forbiddenchars'] = 'Ulovlige tegn i feltet'; +$messages['cannotbeempty'] = 'Feltet kan ikke være tomt.'; +$messages['ruleexist'] = 'Filter med dette navn eksisterer allerede.'; +$messages['setactivateerror'] = 'Kan ikke aktiverer valgt filter sæt. Server fejl.'; +$messages['setdeactivateerror'] = 'Kan ikke deaktivere valgt filter sæt. Server fejl.'; +$messages['setdeleteerror'] = 'Kan ikke slette valgt filter sæt. Server fejl.'; +$messages['setactivated'] = 'Filter sæt aktiveret.'; +$messages['setdeactivated'] = 'Filter sæt deaktiveret.'; +$messages['setdeleted'] = 'Filter sæt slettet.'; +$messages['setdeleteconfirm'] = 'Er du sikker på du vil slette valgt filter sæt?'; +$messages['setcreateerror'] = 'Kan ikke oprette filter sæt. Server fejl.'; +$messages['setcreated'] = 'Filter sæt oprettet.'; +$messages['activateerror'] = 'Kan ikek aktivere valgt filter sæt. Server fejl.'; +$messages['deactivateerror'] = 'Kan ikke deaktivere valgt filter sæt. Server fejl.'; +$messages['deactivated'] = 'Filter(filtre) aktiveret.'; +$messages['activated'] = 'Filter(filtre) deaktiveret.'; +$messages['moved'] = 'Filter flyttet.'; +$messages['moveerror'] = 'Kan ikke flytte valgt filter. Server fejl.'; +$messages['nametoolong'] = 'Navn er for langt.'; +$messages['namereserved'] = 'Reserveret navn.'; +$messages['setexist'] = 'Filterv sæt eksisterer allerede'; +$messages['nodata'] = 'Mindst en position skal vælges!'; + +?> diff --git a/webmail/plugins/managesieve/localization/de_CH.inc b/webmail/plugins/managesieve/localization/de_CH.inc new file mode 100644 index 0000000..b30625f --- /dev/null +++ b/webmail/plugins/managesieve/localization/de_CH.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filter'; +$labels['managefilters'] = 'Verwalte eingehende Nachrichtenfilter'; +$labels['filtername'] = 'Filtername'; +$labels['newfilter'] = 'Neuer Filter'; +$labels['filteradd'] = 'Filter hinzufügen'; +$labels['filterdel'] = 'Filter löschen'; +$labels['moveup'] = 'Nach oben'; +$labels['movedown'] = 'Nach unten'; +$labels['filterallof'] = 'UND (alle Regeln müssen zutreffen)'; +$labels['filteranyof'] = 'ODER (eine der Regeln muss zutreffen'; +$labels['filterany'] = 'Für alle Nachrichten'; +$labels['filtercontains'] = 'enthält'; +$labels['filternotcontains'] = 'enthält nicht'; +$labels['filteris'] = 'ist gleich'; +$labels['filterisnot'] = 'ist ungleich'; +$labels['filterexists'] = 'ist vorhanden'; +$labels['filternotexists'] = 'nicht vorhanden'; +$labels['filtermatches'] = 'entspricht Ausdruck'; +$labels['filternotmatches'] = 'entspricht nicht Ausdruck'; +$labels['filterregex'] = 'trifft regulären Ausdruck'; +$labels['filternotregex'] = 'entspricht regulärem Ausdruck'; +$labels['filterunder'] = 'unter'; +$labels['filterover'] = 'über'; +$labels['addrule'] = 'Regel hinzufügen'; +$labels['delrule'] = 'Regel löschen'; +$labels['messagemoveto'] = 'Verschiebe Nachricht nach'; +$labels['messageredirect'] = 'Leite Nachricht um nach'; +$labels['messagecopyto'] = 'Kopiere Nachricht nach'; +$labels['messagesendcopy'] = 'Sende Kopie an'; +$labels['messagereply'] = 'Antworte mit Nachricht'; +$labels['messagedelete'] = 'Nachricht löschen'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'Für eingehende Nachrichten:'; +$labels['messagesactions'] = 'Führe folgende Aktionen aus:'; +$labels['add'] = 'Hinzufügen'; +$labels['del'] = 'Löschen'; +$labels['sender'] = 'Absender'; +$labels['recipient'] = 'Empfänger'; +$labels['vacationaddresses'] = 'Zusätzliche Liste von Empfängern (Komma getrennt):'; +$labels['vacationdays'] = 'Antwort wird erneut gesendet nach (in Tagen):'; +$labels['vacationinterval'] = 'Wie oft senden:'; +$labels['days'] = 'Tage'; +$labels['seconds'] = 'Sekunden'; +$labels['vacationreason'] = 'Inhalt der Nachricht (Abwesenheitsgrund):'; +$labels['vacationsubject'] = 'Betreff'; +$labels['rulestop'] = 'Regelauswertung anhalten'; +$labels['enable'] = 'Aktivieren/Deaktivieren'; +$labels['filterset'] = 'Filtersätze'; +$labels['filtersets'] = 'Filtersätze'; +$labels['filtersetadd'] = 'Filtersatz anlegen'; +$labels['filtersetdel'] = 'Aktuellen Filtersatz löschen'; +$labels['filtersetact'] = 'Aktuellen Filtersatz aktivieren'; +$labels['filtersetdeact'] = 'Aktuellen Filtersatz deaktivieren'; +$labels['filterdef'] = 'Filterdefinition'; +$labels['filtersetname'] = 'Filtersatzname'; +$labels['newfilterset'] = 'Neuer Filtersatz'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'keine'; +$labels['fromset'] = 'aus Filtersatz'; +$labels['fromfile'] = 'aus Datei'; +$labels['filterdisabled'] = 'Filter deaktiviert'; +$labels['countisgreaterthan'] = 'Anzahl ist grösser als'; +$labels['countisgreaterthanequal'] = 'Anzahl ist gleich oder grösser als'; +$labels['countislessthan'] = 'Anzahl ist kleiner als'; +$labels['countislessthanequal'] = 'Anzahl ist gleich oder kleiner als'; +$labels['countequals'] = 'Anzahl ist gleich'; +$labels['countnotequals'] = 'Anzahl ist ungleich'; +$labels['valueisgreaterthan'] = 'Wert ist grösser als'; +$labels['valueisgreaterthanequal'] = 'Wert ist gleich oder grösser als'; +$labels['valueislessthan'] = 'Wert ist kleiner'; +$labels['valueislessthanequal'] = 'Wert ist gleich oder kleiner als'; +$labels['valueequals'] = 'Wert ist gleich'; +$labels['valuenotequals'] = 'Wert ist ungleich'; +$labels['setflags'] = 'Setze Markierungen'; +$labels['addflags'] = 'Füge Markierung hinzu'; +$labels['removeflags'] = 'Entferne Markierung'; +$labels['flagread'] = 'gelesen'; +$labels['flagdeleted'] = 'Gelöscht'; +$labels['flaganswered'] = 'Beantwortet'; +$labels['flagflagged'] = 'Markiert'; +$labels['flagdraft'] = 'Entwurf'; +$labels['setvariable'] = 'Setze Variable'; +$labels['setvarname'] = 'Variablenname:'; +$labels['setvarvalue'] = 'Variablenwert:'; +$labels['setvarmodifiers'] = 'Umwandler:'; +$labels['varlower'] = 'Kleinschreibung'; +$labels['varupper'] = 'Grossschreibung'; +$labels['varlowerfirst'] = 'Erster Buchstabe klein'; +$labels['varupperfirst'] = 'Erster Buchstabe gross'; +$labels['varquotewildcard'] = 'Sonderzeichen auszeichnen'; +$labels['varlength'] = 'Länge'; +$labels['notify'] = 'Mitteilung senden'; +$labels['notifyaddress'] = 'Empfängeradresse:'; +$labels['notifybody'] = 'Mitteilungstext:'; +$labels['notifysubject'] = 'Mitteilungsbetreff:'; +$labels['notifyfrom'] = 'Absender:'; +$labels['notifyimportance'] = 'Wichtigkeit:'; +$labels['notifyimportancelow'] = 'tief'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'hoch'; +$labels['filtercreate'] = 'Filter erstellen'; +$labels['usedata'] = 'Die folgenden Daten im Filter benutzen:'; +$labels['nextstep'] = 'Nächster Schritt'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Erweiterte Optionen'; +$labels['body'] = 'Inhalt'; +$labels['address'] = 'Adresse'; +$labels['envelope'] = 'Umschlag'; +$labels['modifier'] = 'Wandler'; +$labels['text'] = 'Text'; +$labels['undecoded'] = 'kodiert (roh)'; +$labels['contenttype'] = 'Inhaltstyp'; +$labels['modtype'] = 'Typ:'; +$labels['allparts'] = 'alle'; +$labels['domain'] = 'Domain'; +$labels['localpart'] = 'lokaler Teil'; +$labels['user'] = 'Benutzer'; +$labels['detail'] = 'Detail'; +$labels['comparator'] = 'Komparator'; +$labels['default'] = 'Vorgabewert'; +$labels['octet'] = 'strikt (Oktet)'; +$labels['asciicasemap'] = 'Gross-/Kleinschreibung ignorieren'; +$labels['asciinumeric'] = 'numerisch (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unbekannter Serverfehler'; +$messages['filterconnerror'] = 'Kann nicht zum Sieve-Server verbinden'; +$messages['filterdeleteerror'] = 'Fehler beim des löschen Filters. Serverfehler'; +$messages['filterdeleted'] = 'Filter erfolgreich gelöscht'; +$messages['filtersaved'] = 'Filter gespeichert'; +$messages['filtersaveerror'] = 'Serverfehler, konnte den Filter nicht speichern.'; +$messages['filterdeleteconfirm'] = 'Möchten Sie den Filter löschen ?'; +$messages['ruledeleteconfirm'] = 'Sicher, dass Sie die Regel löschen wollen?'; +$messages['actiondeleteconfirm'] = 'Sicher, dass Sie die ausgewaehlte Aktion löschen wollen?'; +$messages['forbiddenchars'] = 'Unerlaubte Zeichen im Feld'; +$messages['cannotbeempty'] = 'Feld darf nicht leer sein'; +$messages['ruleexist'] = 'Ein Filter mit dem angegebenen Namen existiert bereits.'; +$messages['setactivateerror'] = 'Filtersatz kann nicht aktiviert werden. Serverfehler.'; +$messages['setdeactivateerror'] = 'Filtersatz kann nicht deaktiviert werden. Serverfehler.'; +$messages['setdeleteerror'] = 'Filtersatz kann nicht gelöscht werden. Serverfehler.'; +$messages['setactivated'] = 'Filtersatz erfolgreich aktiviert.'; +$messages['setdeactivated'] = 'Filtersatz erfolgreich deaktiviert.'; +$messages['setdeleted'] = 'Filtersatz erfolgreich gelöscht.'; +$messages['setdeleteconfirm'] = 'Sind Sie sicher, dass Sie den ausgewählten Filtersatz löschen möchten?'; +$messages['setcreateerror'] = 'Filtersatz kann nicht erstellt werden. Serverfehler.'; +$messages['setcreated'] = 'Filter erfolgreich erstellt.'; +$messages['activateerror'] = 'Filter kann nicht aktiviert werden. Serverfehler.'; +$messages['deactivateerror'] = 'Filter kann nicht deaktiviert werden. Serverfehler.'; +$messages['deactivated'] = 'Filter erfolgreich aktiviert.'; +$messages['activated'] = 'Filter erfolgreich deaktiviert.'; +$messages['moved'] = 'Filter erfolgreich verschoben.'; +$messages['moveerror'] = 'Filter kann nicht verschoben werden. Serverfehler.'; +$messages['nametoolong'] = 'Filtersatz kann nicht erstellt werden. Name zu lang.'; +$messages['namereserved'] = 'Reservierter Name.'; +$messages['setexist'] = 'Filtersatz existiert bereits.'; +$messages['nodata'] = 'Mindestens eine Position muss ausgewählt werden!'; + +?> diff --git a/webmail/plugins/managesieve/localization/de_DE.inc b/webmail/plugins/managesieve/localization/de_DE.inc new file mode 100644 index 0000000..d0cba28 --- /dev/null +++ b/webmail/plugins/managesieve/localization/de_DE.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filter'; +$labels['managefilters'] = 'Filter für eingehende Nachrichten verwalten'; +$labels['filtername'] = 'Filtername'; +$labels['newfilter'] = 'Neuer Filter'; +$labels['filteradd'] = 'Filter hinzufügen'; +$labels['filterdel'] = 'Filter löschen'; +$labels['moveup'] = 'Nach oben'; +$labels['movedown'] = 'Nach unten'; +$labels['filterallof'] = 'trifft auf alle folgenden Regeln zu'; +$labels['filteranyof'] = 'trifft auf eine der folgenden Regeln zu'; +$labels['filterany'] = 'alle Nachrichten'; +$labels['filtercontains'] = 'enthält'; +$labels['filternotcontains'] = 'enthält nicht'; +$labels['filteris'] = 'ist gleich'; +$labels['filterisnot'] = 'ist ungleich'; +$labels['filterexists'] = 'existiert'; +$labels['filternotexists'] = 'existiert nicht'; +$labels['filtermatches'] = 'trifft auf Ausdruck zu'; +$labels['filternotmatches'] = 'trifft nicht auf Ausdruck zu'; +$labels['filterregex'] = 'trifft auf regulären Ausdruck zu'; +$labels['filternotregex'] = 'trifft nicht auf regulären Ausdruck zu'; +$labels['filterunder'] = 'unter'; +$labels['filterover'] = 'über'; +$labels['addrule'] = 'Regel hinzufügen'; +$labels['delrule'] = 'Regel löschen'; +$labels['messagemoveto'] = 'Nachricht verschieben nach'; +$labels['messageredirect'] = 'Nachricht umleiten an'; +$labels['messagecopyto'] = 'Nachricht kopieren nach'; +$labels['messagesendcopy'] = 'Kopie senden an'; +$labels['messagereply'] = 'Mit Nachricht antworten'; +$labels['messagedelete'] = 'Nachricht löschen'; +$labels['messagediscard'] = 'Abweisen mit Nachricht'; +$labels['messagesrules'] = 'Für eingehende Nachrichten:'; +$labels['messagesactions'] = '...führe folgende Aktionen aus:'; +$labels['add'] = 'Hinzufügen'; +$labels['del'] = 'Löschen'; +$labels['sender'] = 'Absender'; +$labels['recipient'] = 'Empfänger'; +$labels['vacationaddresses'] = 'Zusätzliche Liste von E-Mail Empfängern (Komma getrennt):'; +$labels['vacationdays'] = 'Wie oft sollen Nachrichten gesendet werden (in Tagen):'; +$labels['vacationinterval'] = 'Wie oft sollen Nachrichten gesendet werden:'; +$labels['days'] = 'Tage'; +$labels['seconds'] = 'Sekunden'; +$labels['vacationreason'] = 'Nachrichteninhalt (Abwesenheitsgrund):'; +$labels['vacationsubject'] = 'Nachrichtenbetreff'; +$labels['rulestop'] = 'Regelauswertung anhalten'; +$labels['enable'] = 'Aktivieren/Deaktivieren'; +$labels['filterset'] = 'Filtersätze'; +$labels['filtersets'] = 'Filtersätze'; +$labels['filtersetadd'] = 'Filtersatz anlegen'; +$labels['filtersetdel'] = 'Aktuellen Filtersatz löschen'; +$labels['filtersetact'] = 'Aktuellen Filtersatz aktivieren'; +$labels['filtersetdeact'] = 'Aktuellen Filtersatz deaktivieren'; +$labels['filterdef'] = 'Filterdefinition'; +$labels['filtersetname'] = 'Filtersatzname'; +$labels['newfilterset'] = 'Neuer Filtersatz'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'keine'; +$labels['fromset'] = 'aus Filtersatz'; +$labels['fromfile'] = 'aus Datei'; +$labels['filterdisabled'] = 'Filter deaktiviert'; +$labels['countisgreaterthan'] = 'Anzahl ist größer als'; +$labels['countisgreaterthanequal'] = 'Anzahl ist gleich oder größer als'; +$labels['countislessthan'] = 'Anzahl ist kleiner als'; +$labels['countislessthanequal'] = 'Anzahl ist gleich oder kleiner als'; +$labels['countequals'] = 'Anzahl ist gleich'; +$labels['countnotequals'] = 'Anzahl ist ungleich'; +$labels['valueisgreaterthan'] = 'Wert ist größer als'; +$labels['valueisgreaterthanequal'] = 'Wert ist gleich oder größer als'; +$labels['valueislessthan'] = 'Wert ist kleiner'; +$labels['valueislessthanequal'] = 'Wert ist gleich oder kleiner als'; +$labels['valueequals'] = 'Wert ist gleich'; +$labels['valuenotequals'] = 'Wert ist ungleich'; +$labels['setflags'] = 'Markierung an der Nachricht setzen'; +$labels['addflags'] = 'Markierung zur Nachricht hinzufügen'; +$labels['removeflags'] = 'Markierungen von der Nachricht entfernen'; +$labels['flagread'] = 'Gelesen'; +$labels['flagdeleted'] = 'Gelöscht'; +$labels['flaganswered'] = 'Beantwortet'; +$labels['flagflagged'] = 'Markiert'; +$labels['flagdraft'] = 'Entwurf'; +$labels['setvariable'] = 'Variable setzen'; +$labels['setvarname'] = 'Name der Variable:'; +$labels['setvarvalue'] = 'Wert der Variable:'; +$labels['setvarmodifiers'] = 'Modifikatoren:'; +$labels['varlower'] = 'Kleinschreibung'; +$labels['varupper'] = 'Großschreibung'; +$labels['varlowerfirst'] = 'Erster Buchstabe kleingeschrieben'; +$labels['varupperfirst'] = 'Erster Buchstabe großgeschrieben'; +$labels['varquotewildcard'] = 'maskiere Sonderzeichen'; +$labels['varlength'] = 'Länge'; +$labels['notify'] = 'Sende Benachrichtigung'; +$labels['notifyaddress'] = 'An Email Adresse:'; +$labels['notifybody'] = 'Benachrichtigungs-Text:'; +$labels['notifysubject'] = 'Benachrichtigungs-Betreff:'; +$labels['notifyfrom'] = 'Benachrichtigungs-Absender:'; +$labels['notifyimportance'] = 'Priorität:'; +$labels['notifyimportancelow'] = 'niedrig'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'hoch'; +$labels['filtercreate'] = 'Filter erstellen'; +$labels['usedata'] = 'Die folgenden Daten im Filter benutzen:'; +$labels['nextstep'] = 'Nächster Schritt'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Erweiterte Optionen'; +$labels['body'] = 'Textkörper'; +$labels['address'] = 'Adresse'; +$labels['envelope'] = 'Umschlag'; +$labels['modifier'] = 'Modifikator:'; +$labels['text'] = 'Text'; +$labels['undecoded'] = 'Nicht dekodiert'; +$labels['contenttype'] = 'Inhaltstyp'; +$labels['modtype'] = 'Typ:'; +$labels['allparts'] = 'Alle'; +$labels['domain'] = 'Domäne'; +$labels['localpart'] = 'lokaler Teil'; +$labels['user'] = 'Benutzer'; +$labels['detail'] = 'Detail'; +$labels['comparator'] = 'Komperator:'; +$labels['default'] = 'Vorgabewert'; +$labels['octet'] = 'strikt (Oktett)'; +$labels['asciicasemap'] = 'Groß-/Kleinschreibung ignorieren'; +$labels['asciinumeric'] = 'numerisch (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unbekannter Serverfehler'; +$messages['filterconnerror'] = 'Kann keine Verbindung mit Managesieve-Server herstellen'; +$messages['filterdeleteerror'] = 'Fehler beim Löschen des Filters. Serverfehler'; +$messages['filterdeleted'] = 'Filter erfolgreich gelöscht'; +$messages['filtersaved'] = 'Filter erfolgreich gespeichert'; +$messages['filtersaveerror'] = 'Fehler beim Speichern des Filters. Serverfehler'; +$messages['filterdeleteconfirm'] = 'Möchten Sie den ausgewählten Filter wirklich löschen?'; +$messages['ruledeleteconfirm'] = 'Sind Sie sicher, dass Sie die ausgewählte Regel löschen möchten?'; +$messages['actiondeleteconfirm'] = 'Sind Sie sicher, dass Sie die ausgewählte Aktion löschen möchten?'; +$messages['forbiddenchars'] = 'Unzulässige Zeichen im Eingabefeld'; +$messages['cannotbeempty'] = 'Eingabefeld darf nicht leer sein'; +$messages['ruleexist'] = 'Ein Filter mit dem angegebenen Namen existiert bereits.'; +$messages['setactivateerror'] = 'Kann ausgewählten Filtersatz nicht aktivieren. Serverfehler'; +$messages['setdeactivateerror'] = 'Kann ausgewählten Filtersatz nicht deaktivieren. Serverfehler'; +$messages['setdeleteerror'] = 'Kann ausgewählten Filtersatz nicht löschen. Serverfehler'; +$messages['setactivated'] = 'Filtersatz wurde erfolgreich aktiviert'; +$messages['setdeactivated'] = 'Filtersatz wurde erfolgreich deaktiviert'; +$messages['setdeleted'] = 'Filtersatz wurde erfolgreich gelöscht'; +$messages['setdeleteconfirm'] = 'Sind Sie sicher, dass Sie den ausgewählten Filtersatz löschen möchten?'; +$messages['setcreateerror'] = 'Erstellen von Filter Sätzen nicht möglich. Es ist ein Server Fehler aufgetreten.'; +$messages['setcreated'] = 'Filtersatz wurde erfolgreich erstellt'; +$messages['activateerror'] = 'Filter kann nicht aktiviert werden. Serverfehler.'; +$messages['deactivateerror'] = 'Filter kann nicht deaktiviert werden. Serverfehler.'; +$messages['deactivated'] = 'Filter erfolgreich deaktiviert.'; +$messages['activated'] = 'Filter erfolgreich aktiviert.'; +$messages['moved'] = 'Filter erfolgreich verschoben.'; +$messages['moveerror'] = 'Filter kann nicht verschoben werden. Serverfehler.'; +$messages['nametoolong'] = 'Kann Filtersatz nicht erstellen. Name zu lang'; +$messages['namereserved'] = 'Reservierter Name.'; +$messages['setexist'] = 'Filtersatz existiert bereits.'; +$messages['nodata'] = 'Mindestens eine Position muss ausgewählt werden!'; + +?> diff --git a/webmail/plugins/managesieve/localization/el_GR.inc b/webmail/plugins/managesieve/localization/el_GR.inc new file mode 100644 index 0000000..5ef9916 --- /dev/null +++ b/webmail/plugins/managesieve/localization/el_GR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Φίλτρα'; +$labels['managefilters'] = 'Διαχείριση φίλτρων εισερχόμενων'; +$labels['filtername'] = 'Ονομασία φίλτρου'; +$labels['newfilter'] = 'Δημιουργία φίλτρου'; +$labels['filteradd'] = 'Προσθήκη φίλτρου'; +$labels['filterdel'] = 'Διαγραφή φίλτρου'; +$labels['moveup'] = 'Μετακίνηση πάνω'; +$labels['movedown'] = 'Μετακίνηση κάτω'; +$labels['filterallof'] = 'ταιριάζουν με όλους τους παρακάτω κανόνες'; +$labels['filteranyof'] = 'ταιριάζουν με οποιονδήποτε από τους παρακάτω κανόνες'; +$labels['filterany'] = 'όλα τα μηνύματα'; +$labels['filtercontains'] = 'περιέχει'; +$labels['filternotcontains'] = 'δεν περιέχει'; +$labels['filteris'] = 'είναι ίσο με'; +$labels['filterisnot'] = 'δεν είναι ίσο με'; +$labels['filterexists'] = 'υπάρχει'; +$labels['filternotexists'] = 'δεν υπάρχει'; +$labels['filtermatches'] = 'ταιριάζει με την έκφραση '; +$labels['filternotmatches'] = 'Δεν ταιριάζει με την έκφραση'; +$labels['filterregex'] = 'ταιριάζει με κανονική έκφραση'; +$labels['filternotregex'] = 'δεν ταιριάζει με κανονική έκφραση'; +$labels['filterunder'] = 'κάτω'; +$labels['filterover'] = 'πάνω'; +$labels['addrule'] = 'Προσθήκη κανόνα'; +$labels['delrule'] = 'Διαγραφή κανόνα'; +$labels['messagemoveto'] = 'Μετακίνηση μηνύματος στο'; +$labels['messageredirect'] = 'Προώθηση μηνύματος στο'; +$labels['messagecopyto'] = 'Αντιγραφη μυνηματος σε'; +$labels['messagesendcopy'] = 'Αποστολη της αντιγραφης μυνηματος σε'; +$labels['messagereply'] = 'Απάντηση με μήνυμα'; +$labels['messagedelete'] = 'Διαγραφή μηνύματος'; +$labels['messagediscard'] = 'Απόρριψη με μήνυμα'; +$labels['messagesrules'] = 'Για εισερχόμενα μηνύματα που:'; +$labels['messagesactions'] = '...εκτέλεση των παρακάτω ενεργειών:'; +$labels['add'] = 'Προσθήκη'; +$labels['del'] = 'Διαγραφή'; +$labels['sender'] = 'Αποστολέας'; +$labels['recipient'] = 'Παραλήπτης'; +$labels['vacationaddresses'] = 'Πρόσθετη λίστα email παραληπτών (διαχωρισμένη με κόμματα):'; +$labels['vacationdays'] = 'Συχνότητα αποστολής μηνυμάτων (σε ημέρες):'; +$labels['vacationinterval'] = 'Συχνότητα αποστολής μηνυμάτων:'; +$labels['days'] = 'ημερες'; +$labels['seconds'] = 'δευτερόλεπτα'; +$labels['vacationreason'] = 'Σώμα μηνύματος (λόγος απουσίας):'; +$labels['vacationsubject'] = 'Θέμα μηνύματος: '; +$labels['rulestop'] = 'Παύση επαλήθευσης κανόνων'; +$labels['enable'] = 'Ενεργοποιηση/Απενεργοποιηση'; +$labels['filterset'] = 'Φίλτρα'; +$labels['filtersets'] = 'Φίλτρο'; +$labels['filtersetadd'] = 'Προσθήκη φίλτρων'; +$labels['filtersetdel'] = 'Διαγραφή φίλτρων'; +$labels['filtersetact'] = 'Ενεργοποιηση φιλτρων'; +$labels['filtersetdeact'] = 'Απενεργοποιηση φιλτρων'; +$labels['filterdef'] = 'Ορισμος φιλτρου'; +$labels['filtersetname'] = 'Ονομασία φίλτρων'; +$labels['newfilterset'] = 'Νεα φιλτρα'; +$labels['active'] = 'ενεργο'; +$labels['none'] = 'κανένα'; +$labels['fromset'] = 'από το σύνολο '; +$labels['fromfile'] = 'απο αρχειο'; +$labels['filterdisabled'] = 'Απενεργοποιημενο φιλτρο'; +$labels['countisgreaterthan'] = 'αρίθμηση είναι μεγαλύτερη από'; +$labels['countisgreaterthanequal'] = 'η μετρηση είναι μεγαλύτερη ή ίση προς'; +$labels['countislessthan'] = 'η μετρηση είναι μικρότερη απο'; +$labels['countislessthanequal'] = 'η μετρηση είναι μικρότερη ή ίση προς'; +$labels['countequals'] = 'η μέτρηση είναι ίση προς '; +$labels['countnotequals'] = 'η μέτρηση δεν είναι ίση προς '; +$labels['valueisgreaterthan'] = 'η τιμη είναι μεγαλύτερη από'; +$labels['valueisgreaterthanequal'] = 'η τιμη είναι μεγαλύτερη ή ίση προς'; +$labels['valueislessthan'] = 'η τιμη είναι μικρότερη απο'; +$labels['valueislessthanequal'] = 'η τιμη είναι μικρότερη ή ίση προς'; +$labels['valueequals'] = 'η τιμη είναι ίση με'; +$labels['valuenotequals'] = 'η τιμη δεν είναι ίση με'; +$labels['setflags'] = 'Ορισμός σημαίων στο μήνυμα'; +$labels['addflags'] = 'Προσθήκη σημαίων στο μήνυμα'; +$labels['removeflags'] = 'Αφαιρέση σημαίων από το μήνυμα'; +$labels['flagread'] = 'Αναγνωση'; +$labels['flagdeleted'] = 'Διεγραμμένο'; +$labels['flaganswered'] = 'Απαντήθηκε '; +$labels['flagflagged'] = 'Σημειωμένο'; +$labels['flagdraft'] = 'Πρόχειρα'; +$labels['setvariable'] = 'Ορισμός μεταβλητής'; +$labels['setvarname'] = 'Όνομα μεταβλητης:'; +$labels['setvarvalue'] = 'Τιμη μεταβλητης:'; +$labels['setvarmodifiers'] = 'Τροποποιητές: '; +$labels['varlower'] = 'Μικρογράμματη γραφή'; +$labels['varupper'] = 'κεφαλαία γράμματα '; +$labels['varlowerfirst'] = 'πρώτος χαρακτήρας πεζός '; +$labels['varupperfirst'] = 'πρώτος χαρακτήρας κεφαλαία γράμματα'; +$labels['varquotewildcard'] = 'παραθέση ειδικων χαρακτήρων'; +$labels['varlength'] = 'Μήκος'; +$labels['notify'] = 'Αποστολή ειδοποίησης '; +$labels['notifyaddress'] = 'Σε διεύθυνση email:'; +$labels['notifybody'] = 'Οργανισμός ειδοποιησης:'; +$labels['notifysubject'] = 'Θεμα ειδοποιησης:'; +$labels['notifyfrom'] = 'Αποστολεας ειδοποιησης:'; +$labels['notifyimportance'] = 'Σημασία: '; +$labels['notifyimportancelow'] = 'Χαμηλή'; +$labels['notifyimportancenormal'] = 'Κανονική'; +$labels['notifyimportancehigh'] = 'Υψηλή'; +$labels['filtercreate'] = 'Δημιουργία φίλτρου'; +$labels['usedata'] = 'Χρησιμοποιηση ακολουθων δεδομενων στο φιλτρο:'; +$labels['nextstep'] = 'Επομενο βημα'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Προχωρημένες ρυθμίσεις'; +$labels['body'] = 'Σώμα'; +$labels['address'] = 'Διεύθυνση'; +$labels['envelope'] = 'φάκελος'; +$labels['modifier'] = 'Τροποποιηση: '; +$labels['text'] = 'κειμενο'; +$labels['undecoded'] = 'αποκωδικοποιημένο (raw)'; +$labels['contenttype'] = 'Τύπος περιεχομένου '; +$labels['modtype'] = 'τυπος:'; +$labels['allparts'] = 'Όλα'; +$labels['domain'] = 'τομέας'; +$labels['localpart'] = 'τοπικό τμήμα '; +$labels['user'] = 'χρηστης'; +$labels['detail'] = 'λεπτομερειες'; +$labels['comparator'] = 'σύγκριση:'; +$labels['default'] = 'προεπιλογή'; +$labels['octet'] = 'αυστηρή (οκτάδα) '; +$labels['asciicasemap'] = 'πεζά ή κεφαλαία (ascii-casemap)'; +$labels['asciinumeric'] = 'αριθμητικό (ascii-αριθμητικο)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Άγνωστο σφάλμα διακομιστή'; +$messages['filterconnerror'] = 'Αδυναμία σύνδεσης στον διακομιστή managesieve'; +$messages['filterdeleteerror'] = 'Αδυναμία διαγραφής φίλτρου. Προέκυψε σφάλμα στον διακομιστή'; +$messages['filterdeleted'] = 'Το φίλτρο διαγράφηκε επιτυχώς'; +$messages['filtersaved'] = 'Το φίλτρο αποθηκεύτηκε επιτυχώς'; +$messages['filtersaveerror'] = 'Αδυναμία αποθήκευσης φίλτρου. Προέκυψε σφάλμα στον διακομιστή'; +$messages['filterdeleteconfirm'] = 'Είστε σίγουροι ότι θέλετε να διαγράψετε το επιλεγμένο φίλτρο? '; +$messages['ruledeleteconfirm'] = 'Θέλετε όντως να διαγράψετε τον επιλεγμένο κανόνα;'; +$messages['actiondeleteconfirm'] = 'Θέλετε όντως να διαγράψετε την επιλεγμένη ενέργεια;'; +$messages['forbiddenchars'] = 'Μη επιτρεπτοί χαρακτήρες στο πεδίο'; +$messages['cannotbeempty'] = 'Το πεδίο δεν μπορεί να είναι κενό'; +$messages['ruleexist'] = 'Φιλτρο με αυτο το όνομα υπάρχει ήδη. '; +$messages['setactivateerror'] = 'Αδυναμία ενεργοποιησης επιλεγμενων φιλτρων. Προέκυψε σφάλμα στον διακομιστή.'; +$messages['setdeactivateerror'] = 'Αδυναμία απενεργοποιησης επιλεγμενων φιλτρων. Προέκυψε σφάλμα στον διακομιστή.'; +$messages['setdeleteerror'] = 'Αδυναμία διαγραφής φίλτρων. Προέκυψε σφάλμα στον διακομιστή'; +$messages['setactivated'] = 'Φίλτρα ενεργοποιήθηκαν με επιτυχία.'; +$messages['setdeactivated'] = 'Φίλτρα απενεργοποιήθηκαν με επιτυχία.'; +$messages['setdeleted'] = 'Τα φίλτρα διαγράφηκαν επιτυχώς.'; +$messages['setdeleteconfirm'] = 'Θέλετε όντως να διαγράψετε τα επιλεγμένα φιλτρα?'; +$messages['setcreateerror'] = 'Αδυναμία δημιουργιας φιλτρων. Προέκυψε σφάλμα στον διακομιστή.'; +$messages['setcreated'] = 'Τα φιλτρα δημιουργηθηκαν επιτυχως.'; +$messages['activateerror'] = 'Αδυναμία ενεργοποιησης επιλεγμενου φίλτρου(ων). Προέκυψε σφάλμα στον διακομιστή.'; +$messages['deactivateerror'] = 'Αδυναμία απενεργοποιησης επιλεγμενου φίλτρου(ων). Προέκυψε σφάλμα στον διακομιστή.'; +$messages['deactivated'] = 'Το φιλτρο(α) απενεργοποιηθηκαν επιτυχως.'; +$messages['activated'] = 'Το φίλτρο(α) ενεργοποιηθηκαν επιτυχώς.'; +$messages['moved'] = 'Το φίλτρο μετακινηθηκε επιτυχώς.'; +$messages['moveerror'] = 'Αδυναμία μετακινησης επιλεγμενου φίλτρου. Προέκυψε σφάλμα στον διακομιστή.'; +$messages['nametoolong'] = 'Το όνομα είναι πολύ μεγάλο.'; +$messages['namereserved'] = 'Δεσμευμένο όνομα. '; +$messages['setexist'] = 'Set υπάρχει ήδη. '; +$messages['nodata'] = 'Τουλάχιστον μία θέση πρέπει να επιλεγεί!'; + +?> diff --git a/webmail/plugins/managesieve/localization/en_GB.inc b/webmail/plugins/managesieve/localization/en_GB.inc new file mode 100644 index 0000000..4dd4f7d --- /dev/null +++ b/webmail/plugins/managesieve/localization/en_GB.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filters'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Add filter'; +$labels['filterdel'] = 'Delete filter'; +$labels['moveup'] = 'Move up'; +$labels['movedown'] = 'Move down'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'all messages'; +$labels['filtercontains'] = 'contains'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'is equal to'; +$labels['filterisnot'] = 'is not equal to'; +$labels['filterexists'] = 'exists'; +$labels['filternotexists'] = 'not exists'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'Delete message'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Add'; +$labels['del'] = 'Delete'; +$labels['sender'] = 'Sender'; +$labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'Additional list of recipient e-mails (comma separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error'; +$messages['filterconnerror'] = 'Unable to connect to managesieve server'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured'; +$messages['filterdeleted'] = 'Filter deleted successfully'; +$messages['filtersaved'] = 'Filter saved successfully'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field'; +$messages['cannotbeempty'] = 'Field cannot be empty'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/en_US.inc b/webmail/plugins/managesieve/localization/en_US.inc new file mode 100644 index 0000000..eea764c --- /dev/null +++ b/webmail/plugins/managesieve/localization/en_US.inc @@ -0,0 +1,174 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 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. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filters'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Add filter'; +$labels['filterdel'] = 'Delete filter'; +$labels['moveup'] = 'Move up'; +$labels['movedown'] = 'Move down'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'all messages'; +$labels['filtercontains'] = 'contains'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'is equal to'; +$labels['filterisnot'] = 'is not equal to'; +$labels['filterexists'] = 'exists'; +$labels['filternotexists'] = 'not exists'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'Delete message'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Add'; +$labels['del'] = 'Delete'; +$labels['sender'] = 'Sender'; +$labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occurred.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occurred.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occurred.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occurred.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occurred.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occurred.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occurred.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occurred.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occurred.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/eo.inc b/webmail/plugins/managesieve/localization/eo.inc new file mode 100644 index 0000000..3ce49dd --- /dev/null +++ b/webmail/plugins/managesieve/localization/eo.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtriloj'; +$labels['managefilters'] = 'Mastrumi filtrilojn pri enirantaj mesaĝoj'; +$labels['filtername'] = 'Nomo de filtrilo'; +$labels['newfilter'] = 'Nova filtrilo'; +$labels['filteradd'] = 'Aldoni filtrilon'; +$labels['filterdel'] = 'Forigi filtrilon'; +$labels['moveup'] = 'Movi supren'; +$labels['movedown'] = 'Movi malsupren'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'ĉiuj mesaĝoj'; +$labels['filtercontains'] = 'enhavas'; +$labels['filternotcontains'] = 'ne enhavas'; +$labels['filteris'] = 'egalas al'; +$labels['filterisnot'] = 'ne egalas al'; +$labels['filterexists'] = 'ekzistas'; +$labels['filternotexists'] = 'ne ekzistas'; +$labels['filtermatches'] = 'kongruas esprimon'; +$labels['filternotmatches'] = 'ne kongruas esprimon'; +$labels['filterregex'] = 'kongruas regularan esprimon'; +$labels['filternotregex'] = 'ne kongruas regularan esprimon'; +$labels['filterunder'] = 'sub'; +$labels['filterover'] = 'preter'; +$labels['addrule'] = 'Aldoni regulon'; +$labels['delrule'] = 'Forigi regulon'; +$labels['messagemoveto'] = 'Movi mesaĝon al'; +$labels['messageredirect'] = 'Aidirekti mesaĝon al'; +$labels['messagecopyto'] = 'Kopii mesaĝo en'; +$labels['messagesendcopy'] = 'Sendi kopion de mesaĝo al'; +$labels['messagereply'] = 'Respondi per mesaĝo'; +$labels['messagedelete'] = 'Forigi mesaĝon'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Aldoni'; +$labels['del'] = 'Forigi'; +$labels['sender'] = 'Sendanto'; +$labels['recipient'] = 'Ricevanto'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/es_AR.inc b/webmail/plugins/managesieve/localization/es_AR.inc new file mode 100644 index 0000000..c9c6e70 --- /dev/null +++ b/webmail/plugins/managesieve/localization/es_AR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Administrar filtros de correo entrante'; +$labels['filtername'] = 'Nombre del filtro'; +$labels['newfilter'] = 'Nuevo filtro'; +$labels['filteradd'] = 'Agregar filtro'; +$labels['filterdel'] = 'Eliminar filtro'; +$labels['moveup'] = 'Mover arriba'; +$labels['movedown'] = 'Mover abajo'; +$labels['filterallof'] = 'coinidir con todas las reglas siguientes'; +$labels['filteranyof'] = 'coincidir con alguna de las reglas siguientes'; +$labels['filterany'] = 'todos los mensajes'; +$labels['filtercontains'] = 'contiene'; +$labels['filternotcontains'] = 'no contiene'; +$labels['filteris'] = 'es igual a'; +$labels['filterisnot'] = 'no es igual a'; +$labels['filterexists'] = 'existe'; +$labels['filternotexists'] = 'no existe'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'bajo'; +$labels['filterover'] = 'sobre'; +$labels['addrule'] = 'Agregar regla'; +$labels['delrule'] = 'Eliminar regla'; +$labels['messagemoveto'] = 'Mover mensaje a'; +$labels['messageredirect'] = 'Redirigir mensaje a'; +$labels['messagecopyto'] = 'Copiar mensaje a'; +$labels['messagesendcopy'] = 'Enviar copia del mensaje a'; +$labels['messagereply'] = 'Responder con un mensaje'; +$labels['messagedelete'] = 'Eliminar mensaje'; +$labels['messagediscard'] = 'Descartar con un mensaje'; +$labels['messagesrules'] = 'Para el correo entrante:'; +$labels['messagesactions'] = '... ejecutar las siguientes acciones:'; +$labels['add'] = 'Agregar'; +$labels['del'] = 'Eliminar'; +$labels['sender'] = 'Remitente'; +$labels['recipient'] = 'Destinatario'; +$labels['vacationaddresses'] = 'Lista de direcciones de correo de destinatarios adicionales (separados por comas):'; +$labels['vacationdays'] = 'Cada cuanto enviar mensajes (en días):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Cuerpo del mensaje (razón de vacaciones):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Parar de evaluar reglas'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Conjunto de filtros'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Agregar conjunto de filtros'; +$labels['filtersetdel'] = 'Eliminar conjunto de filtros'; +$labels['filtersetact'] = 'Activar conjunto de filtros'; +$labels['filtersetdeact'] = 'Deactivar conjunto de filtros'; +$labels['filterdef'] = 'Definicion del conjunto de filtros'; +$labels['filtersetname'] = 'Nombre del conjunto de filtros'; +$labels['newfilterset'] = 'Nuevo conjunto de filtros'; +$labels['active'] = 'Activar'; +$labels['none'] = 'none'; +$labels['fromset'] = 'desde conjunto'; +$labels['fromfile'] = 'desde archivo'; +$labels['filterdisabled'] = 'Filtro deshabilitado'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Error desconocido de servidor'; +$messages['filterconnerror'] = 'Imposible conectar con el servidor managesieve'; +$messages['filterdeleteerror'] = 'Imposible borrar filtro. Ha ocurrido un error en el servidor'; +$messages['filterdeleted'] = 'Filtro borrado satisfactoriamente'; +$messages['filtersaved'] = 'Filtro guardado satisfactoriamente'; +$messages['filtersaveerror'] = 'Imposible guardar ell filtro. Ha ocurrido un error en el servidor'; +$messages['filterdeleteconfirm'] = '¿Realmente desea borrar el filtro seleccionado?'; +$messages['ruledeleteconfirm'] = '¿Está seguro de que desea borrar la regla seleccionada?'; +$messages['actiondeleteconfirm'] = '¿Está seguro de que desea borrar la acción seleccionada?'; +$messages['forbiddenchars'] = 'Caracteres prohibidos en el campo'; +$messages['cannotbeempty'] = 'El campo no puede estar vacío'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Imposible activar el conjunto de filtros. Error en el servidor.'; +$messages['setdeactivateerror'] = 'Imposible desactivar el conjunto de filtros. Error en el servidor.'; +$messages['setdeleteerror'] = 'Imposible eliminar el conjunto de filtros. Error en el servidor.'; +$messages['setactivated'] = 'Conjunto de filtros activados correctamente'; +$messages['setdeactivated'] = 'Conjunto de filtros desactivados correctamente'; +$messages['setdeleted'] = 'Conjunto de filtros eliminados correctamente'; +$messages['setdeleteconfirm'] = '¿Esta seguro, que quiere eliminar el conjunto de filtros seleccionado?'; +$messages['setcreateerror'] = 'Imposible crear el conjunto de filtros. Error en el servidor.'; +$messages['setcreated'] = 'Conjunto de filtros creados correctamente'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Imposible crear el conjunto de filtros. Nombre del conjunto de filtros muy largo'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/es_ES.inc b/webmail/plugins/managesieve/localization/es_ES.inc new file mode 100644 index 0000000..69ad9ce --- /dev/null +++ b/webmail/plugins/managesieve/localization/es_ES.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Administrar filtros de correo entrante'; +$labels['filtername'] = 'Nombre del filtro'; +$labels['newfilter'] = 'Nuevo filtro'; +$labels['filteradd'] = 'Agregar filtro'; +$labels['filterdel'] = 'Eliminar filtro'; +$labels['moveup'] = 'Mover arriba'; +$labels['movedown'] = 'Mover abajo'; +$labels['filterallof'] = 'coincidir con todas las reglas siguientes'; +$labels['filteranyof'] = 'coincidir con alguna de las reglas siguientes'; +$labels['filterany'] = 'todos los mensajes'; +$labels['filtercontains'] = 'contiene'; +$labels['filternotcontains'] = 'no contiene'; +$labels['filteris'] = 'es igual a'; +$labels['filterisnot'] = 'no es igual a'; +$labels['filterexists'] = 'existe'; +$labels['filternotexists'] = 'no existe'; +$labels['filtermatches'] = 'coincide con la expresión'; +$labels['filternotmatches'] = 'no coincide con la expresión'; +$labels['filterregex'] = 'coincide con la expresión regular'; +$labels['filternotregex'] = 'no coincide con la expresión regular'; +$labels['filterunder'] = 'bajo'; +$labels['filterover'] = 'sobre'; +$labels['addrule'] = 'Agregar regla'; +$labels['delrule'] = 'Eliminar regla'; +$labels['messagemoveto'] = 'Mover mensaje a'; +$labels['messageredirect'] = 'Redirigir mensaje a'; +$labels['messagecopyto'] = 'Copiar mensaje a'; +$labels['messagesendcopy'] = 'Enviar copia del mensaje a'; +$labels['messagereply'] = 'Responder con un mensaje'; +$labels['messagedelete'] = 'Eliminar mensaje'; +$labels['messagediscard'] = 'Descartar con un mensaje'; +$labels['messagesrules'] = 'Para el correo entrante:'; +$labels['messagesactions'] = '... ejecutar las siguientes acciones:'; +$labels['add'] = 'Agregar'; +$labels['del'] = 'Eliminar'; +$labels['sender'] = 'Remitente'; +$labels['recipient'] = 'Destinatario'; +$labels['vacationaddresses'] = 'Lista de direcciones de correo de destinatarios adicionales (separados por comas):'; +$labels['vacationdays'] = 'Cada cuánto enviar mensajes (en días):'; +$labels['vacationinterval'] = 'Cada cuánto enviar mensajes:'; +$labels['days'] = 'días'; +$labels['seconds'] = 'segundos'; +$labels['vacationreason'] = 'Cuerpo del mensaje (razón de vacaciones):'; +$labels['vacationsubject'] = 'Asunto del Mensaje:'; +$labels['rulestop'] = 'Parar de evaluar reglas'; +$labels['enable'] = 'Habilitar/Deshabilitar'; +$labels['filterset'] = 'Conjunto de filtros'; +$labels['filtersets'] = 'Conjuntos de filtros'; +$labels['filtersetadd'] = 'Agregar conjunto de filtros'; +$labels['filtersetdel'] = 'Eliminar conjunto de filtros actual'; +$labels['filtersetact'] = 'Activar conjunto de filtros actual'; +$labels['filtersetdeact'] = 'Desactivar conjunto de filtros actual'; +$labels['filterdef'] = 'Definición de filtros'; +$labels['filtersetname'] = 'Nombre del conjunto de filtros'; +$labels['newfilterset'] = 'Nuevo conjunto de filtros'; +$labels['active'] = 'activo'; +$labels['none'] = 'ninguno'; +$labels['fromset'] = 'de conjunto'; +$labels['fromfile'] = 'de archivo'; +$labels['filterdisabled'] = 'Filtro desactivado'; +$labels['countisgreaterthan'] = 'contiene más que'; +$labels['countisgreaterthanequal'] = 'contiene más o igual que'; +$labels['countislessthan'] = 'contiene menos que'; +$labels['countislessthanequal'] = 'contiene menos o igual que'; +$labels['countequals'] = 'contiene igual que'; +$labels['countnotequals'] = 'contiene distinto que'; +$labels['valueisgreaterthan'] = 'el valor es mayor que'; +$labels['valueisgreaterthanequal'] = 'el valor es mayor o igual que'; +$labels['valueislessthan'] = 'el valor es menor que'; +$labels['valueislessthanequal'] = 'el valor es menor o igual que'; +$labels['valueequals'] = 'el valor es igual que'; +$labels['valuenotequals'] = 'el valor es distinto que'; +$labels['setflags'] = 'Etiquetar el mensaje'; +$labels['addflags'] = 'Agregar etiquetas al mensaje'; +$labels['removeflags'] = 'Eliminar etiquetas al mensaje'; +$labels['flagread'] = 'Leído'; +$labels['flagdeleted'] = 'Eliminado'; +$labels['flaganswered'] = 'Respondido'; +$labels['flagflagged'] = 'Marcado'; +$labels['flagdraft'] = 'Borrador'; +$labels['setvariable'] = 'Establecer variable'; +$labels['setvarname'] = 'Nombre de la variable:'; +$labels['setvarvalue'] = 'Valor de la variable:'; +$labels['setvarmodifiers'] = 'Modificadores'; +$labels['varlower'] = 'minúsculas'; +$labels['varupper'] = 'mayúsculas'; +$labels['varlowerfirst'] = 'inicial en minúsculas'; +$labels['varupperfirst'] = 'inicial en mayúsculas'; +$labels['varquotewildcard'] = 'entrecomillar caracteres especiales'; +$labels['varlength'] = 'longitud'; +$labels['notify'] = 'Enviar notificación'; +$labels['notifyaddress'] = 'A la dirección de correo:'; +$labels['notifybody'] = 'Cuerpo de la notificación:'; +$labels['notifysubject'] = 'Tema de la notificación:'; +$labels['notifyfrom'] = 'Remitente de la notificación:'; +$labels['notifyimportance'] = 'Importancia:'; +$labels['notifyimportancelow'] = 'baja'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'alta'; +$labels['filtercreate'] = 'Crear Filtro'; +$labels['usedata'] = 'Usar los siguientes datos en el filtro:'; +$labels['nextstep'] = 'Siguiente paso'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opciones avanzadas'; +$labels['body'] = 'Cuerpo del mensaje'; +$labels['address'] = 'dirección'; +$labels['envelope'] = 'envoltura'; +$labels['modifier'] = 'modificador:'; +$labels['text'] = 'texto'; +$labels['undecoded'] = 'decodificar (en bruto)'; +$labels['contenttype'] = 'tipo de contenido'; +$labels['modtype'] = 'tipo:'; +$labels['allparts'] = 'todo'; +$labels['domain'] = 'dominio'; +$labels['localpart'] = 'parte local'; +$labels['user'] = 'usuario'; +$labels['detail'] = 'detalle'; +$labels['comparator'] = 'comparador:'; +$labels['default'] = 'predeterminado'; +$labels['octet'] = 'estricto (octeto)'; +$labels['asciicasemap'] = 'no sensible a mayúsculas (ascii-casemap)'; +$labels['asciinumeric'] = 'numerico (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Error desconocido de servidor.'; +$messages['filterconnerror'] = 'Imposible conectar con el servidor managesieve.'; +$messages['filterdeleteerror'] = 'Imposible borrar filtro. Ha ocurrido un error en el servidor.'; +$messages['filterdeleted'] = 'Filtro borrado satisfactoriamente.'; +$messages['filtersaved'] = 'Filtro guardado satisfactoriamente.'; +$messages['filtersaveerror'] = 'Imposible guardar el filtro. Ha ocurrido un error en el servidor.'; +$messages['filterdeleteconfirm'] = '¿Realmente desea borrar el filtro seleccionado?'; +$messages['ruledeleteconfirm'] = '¿Está seguro de que desea borrar la regla seleccionada?'; +$messages['actiondeleteconfirm'] = '¿Está seguro de que desea borrar la acción seleccionada?'; +$messages['forbiddenchars'] = 'Caracteres prohibidos en el campo.'; +$messages['cannotbeempty'] = 'El campo no puede estar vacío.'; +$messages['ruleexist'] = 'Ya existe un filtro con el nombre especificado.'; +$messages['setactivateerror'] = 'Imposible activar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; +$messages['setdeactivateerror'] = 'Imposible desactivar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; +$messages['setdeleteerror'] = 'Imposible borrar el conjunto de filtros seleccionado. Ha ocurrido un error en el servidor.'; +$messages['setactivated'] = 'Conjunto de filtros activado satisfactoriamente.'; +$messages['setdeactivated'] = 'Conjunto de filtros desactivado satisfactoriamente.'; +$messages['setdeleted'] = 'Conjunto de filtros borrado satisfactoriamente.'; +$messages['setdeleteconfirm'] = '¿Está seguro de que desea borrar el conjunto de filtros seleccionado?'; +$messages['setcreateerror'] = 'Imposible crear el conjunto de filtros. Ha ocurrido un error en el servidor.'; +$messages['setcreated'] = 'Conjunto de filtros creado satisfactoriamente.'; +$messages['activateerror'] = 'No se ha podido habilitar el filtro(s) seleccionado. Se ha producido un error de servidor.'; +$messages['deactivateerror'] = 'No se ha podido deshabilitar el filtro(s) seleccionado. Se ha producido un error de servidor.'; +$messages['deactivated'] = 'Filtro(s) deshabilitado(s) correctamente.'; +$messages['activated'] = 'Filtro(s) habilitado(s) correctamente.'; +$messages['moved'] = 'Filtro movido correctamente.'; +$messages['moveerror'] = 'No se ha podido mover el filtro seleccionado. Ha ocurrido un error de servidor.'; +$messages['nametoolong'] = 'Imposible crear el conjunto de filtros. Nombre demasiado largo'; +$messages['namereserved'] = 'Nombre reservado.'; +$messages['setexist'] = 'El conjunto ya existe.'; +$messages['nodata'] = '¡Al menos una posición debe ser seleccionada!'; + +?> diff --git a/webmail/plugins/managesieve/localization/et_EE.inc b/webmail/plugins/managesieve/localization/et_EE.inc new file mode 100644 index 0000000..5688e08 --- /dev/null +++ b/webmail/plugins/managesieve/localization/et_EE.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtrid'; +$labels['managefilters'] = 'Halda sisenevate kirjade filtreid'; +$labels['filtername'] = 'Filtri nimi'; +$labels['newfilter'] = 'Uus filter'; +$labels['filteradd'] = 'Lisa filter'; +$labels['filterdel'] = 'Kustuta filter'; +$labels['moveup'] = 'Liiguta üles'; +$labels['movedown'] = 'Liiguta alla'; +$labels['filterallof'] = 'vastab kõikidele järgnevatele reeglitele'; +$labels['filteranyof'] = 'vastab mõnele järgnevatest reeglitest'; +$labels['filterany'] = 'kõik kirjad'; +$labels['filtercontains'] = 'sisaldab'; +$labels['filternotcontains'] = 'ei sisalda'; +$labels['filteris'] = 'on võrdne kui'; +$labels['filterisnot'] = 'ei ole võrdne kui'; +$labels['filterexists'] = 'on olemas'; +$labels['filternotexists'] = 'pole olemas'; +$labels['filtermatches'] = 'vastab avaldisele'; +$labels['filternotmatches'] = 'ei vasta avaldisele'; +$labels['filterregex'] = 'vastab regulaaravaldisele'; +$labels['filternotregex'] = 'ei vasta regulaaravaldisele'; +$labels['filterunder'] = 'alt'; +$labels['filterover'] = 'üle'; +$labels['addrule'] = 'Lisa reegel'; +$labels['delrule'] = 'Kustuta reegel'; +$labels['messagemoveto'] = 'Liiguta kiri'; +$labels['messageredirect'] = 'Suuna kiri ümber'; +$labels['messagecopyto'] = 'Kopeeri kiri'; +$labels['messagesendcopy'] = 'Saada kirja koopia'; +$labels['messagereply'] = 'Vasta kirjaga'; +$labels['messagedelete'] = 'Kustuta kiri'; +$labels['messagediscard'] = 'Viska ära teatega'; +$labels['messagesrules'] = 'Siseneva kirja puhul, mis:'; +$labels['messagesactions'] = '...käivita järgnevad tegevused:'; +$labels['add'] = 'Lisa'; +$labels['del'] = 'Kustuta'; +$labels['sender'] = 'Saatja'; +$labels['recipient'] = 'Saaja'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; +$labels['vacationdays'] = 'Kui tihti kirju saata (päevades):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Kirja sisu (puhkuse põhjus):'; +$labels['vacationsubject'] = 'Kirja teema:'; +$labels['rulestop'] = 'Peata reeglite otsimine'; +$labels['enable'] = 'Luba/keela'; +$labels['filterset'] = 'Filtrite kogum'; +$labels['filtersets'] = 'Filtri kogum'; +$labels['filtersetadd'] = 'Lisa filtrite kogum'; +$labels['filtersetdel'] = 'Kustuta praegune filtrite kogum'; +$labels['filtersetact'] = 'Aktiveeri praegune filtrite kogum'; +$labels['filtersetdeact'] = 'De-aktiveeri praegune filtrite kogum'; +$labels['filterdef'] = 'Filtri definitsioon'; +$labels['filtersetname'] = 'Filtrite kogumi nimi'; +$labels['newfilterset'] = 'Uus filtrite kogum'; +$labels['active'] = 'aktiivne'; +$labels['none'] = 'puudub'; +$labels['fromset'] = 'kogumist'; +$labels['fromfile'] = 'failist'; +$labels['filterdisabled'] = 'Filter keelatud'; +$labels['countisgreaterthan'] = 'koguarv on suurem kui'; +$labels['countisgreaterthanequal'] = 'koguarv on suurem kui või võrdne'; +$labels['countislessthan'] = 'koguarv on väiksem'; +$labels['countislessthanequal'] = 'koguarv on väiksem kui või võrdne'; +$labels['countequals'] = 'koguarv on võrdne'; +$labels['countnotequals'] = 'koguarv ei ole võrdne'; +$labels['valueisgreaterthan'] = 'väärtus on suurem kui'; +$labels['valueisgreaterthanequal'] = 'väärtus on suurem kui või võrdne'; +$labels['valueislessthan'] = 'väärtus on väiksem kui'; +$labels['valueislessthanequal'] = 'väärtus on väiksem kui või võrdne'; +$labels['valueequals'] = 'väärtus on võrdne'; +$labels['valuenotequals'] = 'väärtus ei ole võrdne'; +$labels['setflags'] = 'Sea kirjale lipik'; +$labels['addflags'] = 'Lisa kirjale lipikuid'; +$labels['removeflags'] = 'Eemalda kirjalt lipikud'; +$labels['flagread'] = 'Loetud'; +$labels['flagdeleted'] = 'Kustutatud'; +$labels['flaganswered'] = 'Vastatud'; +$labels['flagflagged'] = 'Märgistatud'; +$labels['flagdraft'] = 'Mustand'; +$labels['setvariable'] = 'Määra muutuja'; +$labels['setvarname'] = 'Muutuja nimi:'; +$labels['setvarvalue'] = 'Muutuja väärtus:'; +$labels['setvarmodifiers'] = 'Muutjad:'; +$labels['varlower'] = 'väiketähed'; +$labels['varupper'] = 'suurtähed'; +$labels['varlowerfirst'] = 'esimene märk on väiketäht'; +$labels['varupperfirst'] = 'esimene märk on suurtäht'; +$labels['varquotewildcard'] = 'tsiteeri erimärke'; +$labels['varlength'] = 'pikkus'; +$labels['notify'] = 'Saada teavitus'; +$labels['notifyaddress'] = 'Saaja e-posti aadress:'; +$labels['notifybody'] = 'Teavituse sisu:'; +$labels['notifysubject'] = 'Teavituse pealkiri:'; +$labels['notifyfrom'] = 'Teavituse saatja:'; +$labels['notifyimportance'] = 'Tähtsus:'; +$labels['notifyimportancelow'] = 'madal'; +$labels['notifyimportancenormal'] = 'tavaline'; +$labels['notifyimportancehigh'] = 'kõrge'; +$labels['filtercreate'] = 'Loo filter'; +$labels['usedata'] = 'Kasuta filtris järgmisi andmeid:'; +$labels['nextstep'] = 'Järgmine samm'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Lisaseadistused'; +$labels['body'] = 'Põhitekst'; +$labels['address'] = 'aadress'; +$labels['envelope'] = 'ümbrik'; +$labels['modifier'] = 'muutja:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'kodeerimata (toor)'; +$labels['contenttype'] = 'sisu tüüp'; +$labels['modtype'] = 'tüüp:'; +$labels['allparts'] = 'kõik'; +$labels['domain'] = 'domeen'; +$labels['localpart'] = 'kohalik osa'; +$labels['user'] = 'kasutaja'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'võrdleja:'; +$labels['default'] = 'vaikimisi'; +$labels['octet'] = 'range (octet)'; +$labels['asciicasemap'] = 'tõstutundetu (ascii-casemap)'; +$labels['asciinumeric'] = 'numbriline (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Tundmatu serveri tõrge'; +$messages['filterconnerror'] = 'Managesieve serveriga ühendumine nurjus'; +$messages['filterdeleteerror'] = 'Filtri kustutamine nurjus. Ilmnes serveri tõrge.'; +$messages['filterdeleted'] = 'Filter edukalt kustutatud'; +$messages['filtersaved'] = 'Filter edukalt salvestatud'; +$messages['filtersaveerror'] = 'Filtri salvestamine nurjus. Ilmnes serveri tõrge.'; +$messages['filterdeleteconfirm'] = 'Soovid valitud filtri kustutada?'; +$messages['ruledeleteconfirm'] = 'Soovid valitud reegli kustutada?'; +$messages['actiondeleteconfirm'] = 'Soovid valitud tegevuse kustutada?'; +$messages['forbiddenchars'] = 'Väljal on lubamatu märk'; +$messages['cannotbeempty'] = 'Väli ei või tühi olla'; +$messages['ruleexist'] = 'Määratud nimega filter on juba olemas'; +$messages['setactivateerror'] = 'Valitud filtrite kogumi aktiveerimine nurjus. Ilmnes serveri tõrge.'; +$messages['setdeactivateerror'] = 'Valitud filtrite kogumi deaktiveerimine nurjus. Ilmnes serveri tõrge.'; +$messages['setdeleteerror'] = 'Valitud filtrite kogumi kustutamine nurjus. Ilmnes serveri tõrge.'; +$messages['setactivated'] = 'Filtrite kogumi aktiveerimine õnnestus.'; +$messages['setdeactivated'] = 'Filtrite kogumi deaktiveerimine õnnestus.'; +$messages['setdeleted'] = 'Filtrite kogumi kustutamine õnnestus.'; +$messages['setdeleteconfirm'] = 'Oled kindel, et soovid valitud filtrite kogumi kustutada?'; +$messages['setcreateerror'] = 'Filtrite kogumi loomine nurjus. Ilmnes serveri tõrge.'; +$messages['setcreated'] = 'Filtrite kogumi loomine õnnestus.'; +$messages['activateerror'] = 'Valitud filtrite lubamine nurjus. Ilmnes serveri tõrge.'; +$messages['deactivateerror'] = 'Valitud filtrite keelamine nurjus. Ilmnes serveri tõrge.'; +$messages['deactivated'] = 'Filter edukalt lubatud.'; +$messages['activated'] = 'Filter edukalt keelatud.'; +$messages['moved'] = 'Filter edukalt liigutatud.'; +$messages['moveerror'] = 'Valitud filtri liigutamine nurjus. Ilmnes serveri tõrge.'; +$messages['nametoolong'] = 'Nimi on liiga pikk.'; +$messages['namereserved'] = 'Nimi on reserveeritud.'; +$messages['setexist'] = 'Kogum on juba olemas.'; +$messages['nodata'] = 'Valitud peab olema vähemalt üks asukoht!'; + +?> diff --git a/webmail/plugins/managesieve/localization/fa_IR.inc b/webmail/plugins/managesieve/localization/fa_IR.inc new file mode 100644 index 0000000..ebdc453 --- /dev/null +++ b/webmail/plugins/managesieve/localization/fa_IR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'صافیها'; +$labels['managefilters'] = 'مدیریت صافیهای نامه ورودی'; +$labels['filtername'] = 'نام صافی'; +$labels['newfilter'] = 'صافی جدید'; +$labels['filteradd'] = 'افزودن صافی'; +$labels['filterdel'] = 'حذف صافی'; +$labels['moveup'] = 'انتقال به بالا'; +$labels['movedown'] = 'انتقال به پایین'; +$labels['filterallof'] = 'مطابقت همه قوانین ذیل'; +$labels['filteranyof'] = 'مطابقت هر کدام از قوانین ذیل'; +$labels['filterany'] = 'همه پیغام ها'; +$labels['filtercontains'] = 'شامل'; +$labels['filternotcontains'] = 'بدون'; +$labels['filteris'] = 'برابر است با'; +$labels['filterisnot'] = 'برابر نیست با'; +$labels['filterexists'] = 'وجود دارد'; +$labels['filternotexists'] = 'وجود ندارد'; +$labels['filtermatches'] = 'با عبارت تطابق دارد'; +$labels['filternotmatches'] = 'با عبارت تطابق ندارد'; +$labels['filterregex'] = 'با عبارت عمومی تطابق دارد'; +$labels['filternotregex'] = 'با عبارت عمومی تطابق ندارد'; +$labels['filterunder'] = 'زیر'; +$labels['filterover'] = 'بالا'; +$labels['addrule'] = 'افزودن قانون'; +$labels['delrule'] = 'حذف قانون'; +$labels['messagemoveto'] = 'انتقال پیغام به'; +$labels['messageredirect'] = 'بازگردانی پیغام به'; +$labels['messagecopyto'] = 'رونوشت پیغام به'; +$labels['messagesendcopy'] = 'ارسال رونوشت پیغام به'; +$labels['messagereply'] = 'پاسخ همراه پیغام'; +$labels['messagedelete'] = 'حذف پیغام'; +$labels['messagediscard'] = 'دور ریختن با پیغام'; +$labels['messagesrules'] = 'برای صندوق ورودی:'; +$labels['messagesactions'] = '...انجام اعمال ذیل:'; +$labels['add'] = 'افزودن'; +$labels['del'] = 'حذف'; +$labels['sender'] = 'فرستنده'; +$labels['recipient'] = 'گیرنده'; +$labels['vacationaddresses'] = 'آدرسهای ایمیل دیگر من (جدا شده با ویرگول):'; +$labels['vacationdays'] = 'پیغام ها در چه مواقعی فرستاده شدند (در روزهای):'; +$labels['vacationinterval'] = 'مواقعی که پیغامها ارسال میشوند:'; +$labels['days'] = 'روزها'; +$labels['seconds'] = 'ثانیهها'; +$labels['vacationreason'] = 'بدنه پیغام (علت مسافرت):'; +$labels['vacationsubject'] = 'موضوع پیغام:'; +$labels['rulestop'] = 'توقف قوانین ارزیابی'; +$labels['enable'] = 'فعال/غیرفعالسازی'; +$labels['filterset'] = 'مجموعه صافیها'; +$labels['filtersets'] = 'مجموعههای صافیها'; +$labels['filtersetadd'] = 'افزودن مجموعه صافیها'; +$labels['filtersetdel'] = 'حذف مجموعه صافیهای جاری'; +$labels['filtersetact'] = 'فعال کردن مجموعه صافیهای جاری'; +$labels['filtersetdeact'] = 'غیرفعال کردن مجموعه صافیهای جاری'; +$labels['filterdef'] = 'تعریف صافی'; +$labels['filtersetname'] = 'نام مجموعه صافیها'; +$labels['newfilterset'] = 'مجموعه صافیهای جدید'; +$labels['active'] = 'فعال'; +$labels['none'] = 'هیچکدام'; +$labels['fromset'] = 'از مجموعه'; +$labels['fromfile'] = 'از پرونده'; +$labels['filterdisabled'] = 'صافی غیرفعال شد'; +$labels['countisgreaterthan'] = 'تعداد بیشتر است از'; +$labels['countisgreaterthanequal'] = 'تعداد بیشتر یا مساوی است با'; +$labels['countislessthan'] = 'تعداد کمتر است از'; +$labels['countislessthanequal'] = 'تعداد کمتر یا مساوی است با'; +$labels['countequals'] = 'تعداد مساوی است با'; +$labels['countnotequals'] = 'تعداد مساوی نیست با'; +$labels['valueisgreaterthan'] = 'مقدار بیشتر است از'; +$labels['valueisgreaterthanequal'] = 'مقدار بیشتر یا مساوی است با'; +$labels['valueislessthan'] = 'مقدار کمتر است از'; +$labels['valueislessthanequal'] = 'مقدار کمتر یا مساوی است با'; +$labels['valueequals'] = 'مقدار مساوی است با'; +$labels['valuenotequals'] = 'مقدار مساوی نیست با'; +$labels['setflags'] = 'انتخاب پرچمها برای پیغام'; +$labels['addflags'] = 'افزودن پرچمها برای پیغام'; +$labels['removeflags'] = 'حذف پرچمها از پیغام'; +$labels['flagread'] = 'خواندهشده'; +$labels['flagdeleted'] = 'حذف شده'; +$labels['flaganswered'] = 'جواب داده شده'; +$labels['flagflagged'] = 'پرچمدار'; +$labels['flagdraft'] = 'پیشنویس'; +$labels['setvariable'] = 'تنظیم متغیر'; +$labels['setvarname'] = 'نام متغییر'; +$labels['setvarvalue'] = 'مقدار متغیر:'; +$labels['setvarmodifiers'] = 'اصلاح:'; +$labels['varlower'] = 'حروف کوچک'; +$labels['varupper'] = 'حروف بزرگ'; +$labels['varlowerfirst'] = 'حرف اول کوچک'; +$labels['varupperfirst'] = 'حرف اول بزرگ'; +$labels['varquotewildcard'] = 'نقل قول کاراکترهای خاص'; +$labels['varlength'] = 'طول'; +$labels['notify'] = 'ارسال تذکر'; +$labels['notifyaddress'] = 'به آدرس پست الکترونیکی:'; +$labels['notifybody'] = 'بدنه تذکر:'; +$labels['notifysubject'] = 'موضوع تذکر:'; +$labels['notifyfrom'] = 'فرستنده تذکر:'; +$labels['notifyimportance'] = 'اهمیت:'; +$labels['notifyimportancelow'] = 'کم'; +$labels['notifyimportancenormal'] = 'معمولی'; +$labels['notifyimportancehigh'] = 'زیاد'; +$labels['filtercreate'] = 'ایجاد صافی'; +$labels['usedata'] = 'استفاده از داده ذیل در صافی:'; +$labels['nextstep'] = 'مرحله بعدی'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'گزینههای پیشرفته'; +$labels['body'] = 'بدنه'; +$labels['address'] = 'نشانی'; +$labels['envelope'] = 'پاکت'; +$labels['modifier'] = 'تغییر دهنده:'; +$labels['text'] = 'متن'; +$labels['undecoded'] = 'کد نشده (خام)'; +$labels['contenttype'] = 'نوع محتوا'; +$labels['modtype'] = 'نوع'; +$labels['allparts'] = 'همه'; +$labels['domain'] = 'دامنه'; +$labels['localpart'] = 'قسمت محلی'; +$labels['user'] = 'کاربر'; +$labels['detail'] = 'جزئیات'; +$labels['comparator'] = 'مقایسه:'; +$labels['default'] = 'پیشفرض'; +$labels['octet'] = 'سخت (octet)'; +$labels['asciicasemap'] = 'حساس به حروه کوچک و بزرگ (ascii-casemap)'; +$labels['asciinumeric'] = 'عددی (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'خطای سرور نامعلوم.'; +$messages['filterconnerror'] = 'ناتوانی در اتصال به سرور.'; +$messages['filterdeleteerror'] = 'ناتوانی در حذف صافی. خطای سرور رخ داد.'; +$messages['filterdeleted'] = 'صافی با موفقیت حذف شد.'; +$messages['filtersaved'] = 'صافی با موفقیت ذخیره شد.'; +$messages['filtersaveerror'] = 'ناتوانی در ذخیره فیلتر. خطای سرور رخ داد.'; +$messages['filterdeleteconfirm'] = 'آیا مطمئن به حذف صافی انتخاب شده هستید؟'; +$messages['ruledeleteconfirm'] = 'آیا مطمئن هستید که می خواهید قانون انتخاب شده را حذف کنید؟'; +$messages['actiondeleteconfirm'] = 'آیا مطمئن هستید که می خواهید عمل انتخاب شده را حذف کنید.'; +$messages['forbiddenchars'] = 'حروف ممنوعه در فیلد.'; +$messages['cannotbeempty'] = 'فیلد نمی تواند خالی باشد.'; +$messages['ruleexist'] = 'صافی با این نام مشخص وجود دارد.'; +$messages['setactivateerror'] = 'ناتوان در فعال کردن مجموعه صافیها انتخاب شده. خطای سرور رخ داد.'; +$messages['setdeactivateerror'] = 'ناتوان در غیرفعال کردن مجموعه صافیها انتخاب شده. خطای سرور رخ داد.'; +$messages['setdeleteerror'] = 'ناتوان در حذف مجموعه صافیها انتخاب شده. خطای سرور رخ داد.'; +$messages['setactivated'] = 'مجموعه صافیها با موفقیت فعال شد.'; +$messages['setdeactivated'] = 'مجموعه صافیها با موفقیت غیرفعال شد.'; +$messages['setdeleted'] = 'مجموعه صافیها با موفقیت حذف شد.'; +$messages['setdeleteconfirm'] = 'آیا مطمئن هستید که میخواهید مجموعه صافیها انتخاب شده را حذف کنید؟'; +$messages['setcreateerror'] = 'ناتوانی در ایجاد مجموعه صافیها. خطای سرور رخ داد.'; +$messages['setcreated'] = 'مجموعه صافیها با موفقیت ایجاد شد.'; +$messages['activateerror'] = 'ناتوانی در فعال کردن صافی(های) انتخاب شده. خطای سرور رخ داد.'; +$messages['deactivateerror'] = 'ناتوانی در غیرفعال کردن صافی(های) انتخاب شده. خطای سرور رخ داد.'; +$messages['deactivated'] = 'صافی(ها) با موفقیت فعال شدند.'; +$messages['activated'] = 'صافی(ها) با موفقیت غیرفعال شدند.'; +$messages['moved'] = 'صافی با موفقیت منتقل شد.'; +$messages['moveerror'] = 'ناتوانی در انتقال صافی انتخاب شده. خطای سرور رخ داد.'; +$messages['nametoolong'] = 'نام خیلی بلند.'; +$messages['namereserved'] = 'نام رزرو شده.'; +$messages['setexist'] = 'مجموعه در حال حاضر موجود است.'; +$messages['nodata'] = 'حداقل باید یک موقعیت باید انتخاب شود.'; + +?> diff --git a/webmail/plugins/managesieve/localization/fi_FI.inc b/webmail/plugins/managesieve/localization/fi_FI.inc new file mode 100644 index 0000000..f006f6d --- /dev/null +++ b/webmail/plugins/managesieve/localization/fi_FI.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Suodattimet'; +$labels['managefilters'] = 'Hallitse saapuvan sähköpostin suodattimia'; +$labels['filtername'] = 'Suodattimen nimi'; +$labels['newfilter'] = 'Uusi suodatin'; +$labels['filteradd'] = 'Lisää suodatin'; +$labels['filterdel'] = 'Poista suodatin'; +$labels['moveup'] = 'Siirrä ylös'; +$labels['movedown'] = 'Siirrä alas'; +$labels['filterallof'] = 'Täsmää kaikkiin seuraaviin sääntöihin'; +$labels['filteranyof'] = 'Täsmää mihin tahansa seuraavista säännöistä'; +$labels['filterany'] = 'Kaikki viestit'; +$labels['filtercontains'] = 'Sisältää'; +$labels['filternotcontains'] = 'Ei sisällä'; +$labels['filteris'] = 'on samanlainen kuin'; +$labels['filterisnot'] = 'ei ole samanlainen kuin'; +$labels['filterexists'] = 'on olemassa'; +$labels['filternotexists'] = 'ei ole olemassa'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Lisää sääntö'; +$labels['delrule'] = 'Poista sääntö'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'Delete message'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Lisää'; +$labels['del'] = 'Poista'; +$labels['sender'] = 'Lähettäjä'; +$labels['recipient'] = 'Vastaanottaja'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Viestin aihe:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Aseta liput viestiin'; +$labels['addflags'] = 'Lisää liput viestiin'; +$labels['removeflags'] = 'Poista liput viestistä'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Poistettu'; +$labels['flaganswered'] = 'Vastattu'; +$labels['flagflagged'] = 'Liputettu'; +$labels['flagdraft'] = 'Luonnos'; +$labels['setvariable'] = 'Aseta muuttuja'; +$labels['setvarname'] = 'Muuttujan nimi:'; +$labels['setvarvalue'] = 'Muuttujan arvo:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Tärkeysaste:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Luo suodatin'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Lisävalinnat'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'oletus'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Tuntematon palvelinvirhe.'; +$messages['filterconnerror'] = 'Yhteys palvelimeen epäonnistui.'; +$messages['filterdeleteerror'] = 'Suodattimen poisto epäonnistui palvelinvirheen vuoksi.'; +$messages['filterdeleted'] = 'Suodatin poistettu onnistuneesti.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Kenttä ei voi olla tyhjä.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Suodatin siirretty onnistuneesti.'; +$messages['moveerror'] = 'Suodattimen siirtäminen epäonnistui palvelinvirheen vuoksi.'; +$messages['nametoolong'] = 'Nimi on liian pitkä.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/fr_FR.inc b/webmail/plugins/managesieve/localization/fr_FR.inc new file mode 100644 index 0000000..b3f9ec9 --- /dev/null +++ b/webmail/plugins/managesieve/localization/fr_FR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtres'; +$labels['managefilters'] = 'Gérer les filtres sur les courriels entrants'; +$labels['filtername'] = 'Nom du filtre'; +$labels['newfilter'] = 'Nouveau filtre'; +$labels['filteradd'] = 'Ajouter un filtre'; +$labels['filterdel'] = 'Supprimer le filtre'; +$labels['moveup'] = 'Monter'; +$labels['movedown'] = 'Descendre'; +$labels['filterallof'] = 'valident toutes les conditions suivantes'; +$labels['filteranyof'] = 'valident au moins une des conditions suivantes'; +$labels['filterany'] = 'tous les messages'; +$labels['filtercontains'] = 'contient'; +$labels['filternotcontains'] = 'ne contient pas'; +$labels['filteris'] = 'est égal à'; +$labels['filterisnot'] = 'est différent de'; +$labels['filterexists'] = 'existe'; +$labels['filternotexists'] = 'n\'existe pas'; +$labels['filtermatches'] = 'concorde avec l\'expression'; +$labels['filternotmatches'] = 'ne concorde pas avec l\'expression'; +$labels['filterregex'] = 'concorde avec l\'expression régulière'; +$labels['filternotregex'] = 'ne concorde pas avec l\'expression régulière'; +$labels['filterunder'] = 'est plus petit que'; +$labels['filterover'] = 'est plus grand que'; +$labels['addrule'] = 'Ajouter une règle'; +$labels['delrule'] = 'Supprimer une règle'; +$labels['messagemoveto'] = 'Déplacer le message vers'; +$labels['messageredirect'] = 'Transférer le message à'; +$labels['messagecopyto'] = 'Copier le message vers'; +$labels['messagesendcopy'] = 'Envoyer une copie du message à'; +$labels['messagereply'] = 'Répondre avec le message'; +$labels['messagedelete'] = 'Supprimer le message'; +$labels['messagediscard'] = 'Rejeter avec le message'; +$labels['messagesrules'] = 'Pour les courriels entrants :'; +$labels['messagesactions'] = '...exécuter les actions suivantes:'; +$labels['add'] = 'Ajouter'; +$labels['del'] = 'Supprimer'; +$labels['sender'] = 'Expéditeur'; +$labels['recipient'] = 'Destinataire'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; +$labels['vacationdays'] = 'Ne pas renvoyer un message avant (jours) :'; +$labels['vacationinterval'] = 'Comment envoyer les messages :'; +$labels['days'] = 'jours'; +$labels['seconds'] = 'secondes'; +$labels['vacationreason'] = 'Corps du message (raison de l\'absence) :'; +$labels['vacationsubject'] = 'Sujet du message:'; +$labels['rulestop'] = 'Arrêter d\'évaluer les prochaines règles'; +$labels['enable'] = 'Activer/Désactiver'; +$labels['filterset'] = 'Groupe de filtres'; +$labels['filtersets'] = 'Groupes de filtres'; +$labels['filtersetadd'] = 'Ajouter un groupe de filtres'; +$labels['filtersetdel'] = 'Supprimer le groupe de filtres actuel'; +$labels['filtersetact'] = 'Activer le groupe de filtres actuel'; +$labels['filtersetdeact'] = 'Désactiver le groupe de filtres actuel'; +$labels['filterdef'] = 'Définition du filtre'; +$labels['filtersetname'] = 'Nom du groupe de filtres'; +$labels['newfilterset'] = 'Nouveau groupe de filtres'; +$labels['active'] = 'actif'; +$labels['none'] = 'aucun'; +$labels['fromset'] = 'à partir du filtre'; +$labels['fromfile'] = 'à partir du fichier'; +$labels['filterdisabled'] = 'Filtre désactivé'; +$labels['countisgreaterthan'] = 'total supérieur à'; +$labels['countisgreaterthanequal'] = 'total supérieur ou égal à'; +$labels['countislessthan'] = 'total inférieur à'; +$labels['countislessthanequal'] = 'total inférieur à'; +$labels['countequals'] = 'total égal à'; +$labels['countnotequals'] = 'total différent de'; +$labels['valueisgreaterthan'] = 'valeur supérieure à'; +$labels['valueisgreaterthanequal'] = 'valeur supérieure ou égale à'; +$labels['valueislessthan'] = 'valeur inférieure à'; +$labels['valueislessthanequal'] = 'valeur inférieure ou égale à'; +$labels['valueequals'] = 'valeur égale à'; +$labels['valuenotequals'] = 'valeur différente de'; +$labels['setflags'] = 'Mettre les marqueurs au message'; +$labels['addflags'] = 'Ajouter les marqueurs au message'; +$labels['removeflags'] = 'Supprimer les marqueurs du message'; +$labels['flagread'] = 'Lu'; +$labels['flagdeleted'] = 'Supprimé'; +$labels['flaganswered'] = 'Répondu'; +$labels['flagflagged'] = 'Marqué'; +$labels['flagdraft'] = 'Brouillon'; +$labels['setvariable'] = 'Définir une variable'; +$labels['setvarname'] = 'Nom de la variable :'; +$labels['setvarvalue'] = 'Valeur de la variable :'; +$labels['setvarmodifiers'] = 'Modifications :'; +$labels['varlower'] = 'minuscule'; +$labels['varupper'] = 'majuscule'; +$labels['varlowerfirst'] = 'premier caractère minuscule'; +$labels['varupperfirst'] = 'premier caractère majuscule'; +$labels['varquotewildcard'] = 'Échapper les caractères spéciaux'; +$labels['varlength'] = 'longueur'; +$labels['notify'] = 'Envoyer la notification'; +$labels['notifyaddress'] = 'A l\'adresse e-mail :'; +$labels['notifybody'] = 'Corps de la notification :'; +$labels['notifysubject'] = 'Objet de la notification :'; +$labels['notifyfrom'] = 'Expéditeur de la notification :'; +$labels['notifyimportance'] = 'Importance :'; +$labels['notifyimportancelow'] = 'faible'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'haute'; +$labels['filtercreate'] = 'Créer un filtre'; +$labels['usedata'] = 'Utiliser les informations suivantes dans le filtre'; +$labels['nextstep'] = 'Étape suivante'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Options avancées'; +$labels['body'] = 'Corps du message'; +$labels['address'] = 'adresse'; +$labels['envelope'] = 'enveloppe'; +$labels['modifier'] = 'modificateur:'; +$labels['text'] = 'texte'; +$labels['undecoded'] = 'non décodé (brut)'; +$labels['contenttype'] = 'type de contenu'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'tout'; +$labels['domain'] = 'domaine'; +$labels['localpart'] = 'partie locale'; +$labels['user'] = 'utilisateur'; +$labels['detail'] = 'détail'; +$labels['comparator'] = 'comparateur'; +$labels['default'] = 'par défaut'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'insensible à la casse (ascii-casemap)'; +$labels['asciinumeric'] = 'numérique (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Erreur du serveur inconnue'; +$messages['filterconnerror'] = 'Connexion au serveur Managesieve impossible'; +$messages['filterdeleteerror'] = 'Suppression du filtre impossible. Le serveur à produit une erreur'; +$messages['filterdeleted'] = 'Le filtre a bien été supprimé'; +$messages['filtersaved'] = 'Le filtre a bien été enregistré'; +$messages['filtersaveerror'] = 'Enregistrement du filtre impossibe. Le serveur à produit une erreur'; +$messages['filterdeleteconfirm'] = 'Voulez-vous vraiment supprimer le filtre sélectionné?'; +$messages['ruledeleteconfirm'] = 'Voulez-vous vraiment supprimer la règle sélectionnée?'; +$messages['actiondeleteconfirm'] = 'Voulez-vous vraiment supprimer l\'action sélectionnée?'; +$messages['forbiddenchars'] = 'Caractères interdits dans le champ'; +$messages['cannotbeempty'] = 'Le champ ne peut pas être vide'; +$messages['ruleexist'] = 'Un filtre existe déjà avec ce nom.'; +$messages['setactivateerror'] = 'Impossible d\'aactiver le groupe de filtres sélectionné. Le serveur a rencontré une erreur.'; +$messages['setdeactivateerror'] = 'Impossible de désactiver le groupe de filtres sélectionné. Le serveur a rencontré une erreur.'; +$messages['setdeleteerror'] = 'Impossible de supprimer le groupe de filtres sélectionné. Le serveur a rencontré une erreur.'; +$messages['setactivated'] = 'Le groupe de filtres a bien été activé.'; +$messages['setdeactivated'] = 'Le groupe de filtres a bien été désactivé.'; +$messages['setdeleted'] = 'Le groupe de filtres a bien été supprimé.'; +$messages['setdeleteconfirm'] = 'Voulez vous vraiment supprimer le groupe de filtres sélectionné ?'; +$messages['setcreateerror'] = 'Impossible de créer le groupe de filtres. Le serveur a rencontré une erreur.'; +$messages['setcreated'] = 'Le groupe de filtres a bien été créé.'; +$messages['activateerror'] = 'Impossible d\'activer le(s) filtre(s) sélectionné(s). Une erreur serveur s\'est produite.'; +$messages['deactivateerror'] = 'Impossible de désactiver le(s) filtre(s) sélectionné(s). Une erreur serveur s\'est produite.'; +$messages['deactivated'] = 'Filtre(s) désactivé(s) avec succès.'; +$messages['activated'] = 'Filtre(s) activé(s) avec succès.'; +$messages['moved'] = 'Filtre déplacé avec succès.'; +$messages['moveerror'] = 'Déplacement du filtre sélectionné impossible. Le serveur a renvoyé une erreur.'; +$messages['nametoolong'] = 'Nom trop long.'; +$messages['namereserved'] = 'Nom réservé.'; +$messages['setexist'] = 'Ce groupe existe déjà.'; +$messages['nodata'] = 'Au moins un élément doit être selectionné !'; + +?> diff --git a/webmail/plugins/managesieve/localization/gl_ES.inc b/webmail/plugins/managesieve/localization/gl_ES.inc new file mode 100644 index 0000000..fef5ed7 --- /dev/null +++ b/webmail/plugins/managesieve/localization/gl_ES.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Xestionar os filtros de correo entrante'; +$labels['filtername'] = 'Nome do filtro'; +$labels['newfilter'] = 'Novo filtro'; +$labels['filteradd'] = 'Engadir filtro'; +$labels['filterdel'] = 'Eliminar filtro'; +$labels['moveup'] = 'Mover arriba'; +$labels['movedown'] = 'Mover abaixo'; +$labels['filterallof'] = 'coincidir con tódalas regras siguientes'; +$labels['filteranyof'] = 'coincidir con algunha das regras seguintes'; +$labels['filterany'] = 'tódalas mensaxes'; +$labels['filtercontains'] = 'contén'; +$labels['filternotcontains'] = 'non contén'; +$labels['filteris'] = 'é igual a'; +$labels['filterisnot'] = 'non é igual a'; +$labels['filterexists'] = 'existe'; +$labels['filternotexists'] = 'non existe'; +$labels['filtermatches'] = 'casa coa expresión'; +$labels['filternotmatches'] = 'non casa coa expresión'; +$labels['filterregex'] = 'casa coa expresión regular'; +$labels['filternotregex'] = 'non casa coa expresión regular'; +$labels['filterunder'] = 'baixo'; +$labels['filterover'] = 'sobre'; +$labels['addrule'] = 'Engadir regra'; +$labels['delrule'] = 'Eliminar regra'; +$labels['messagemoveto'] = 'Mover a mensaxe a'; +$labels['messageredirect'] = 'Redirixir a mensaxe a'; +$labels['messagecopyto'] = 'Copiar a mensaxe a'; +$labels['messagesendcopy'] = 'Enviar copia da mensaxe a'; +$labels['messagereply'] = 'Respostar con unha mensaxe'; +$labels['messagedelete'] = 'Eliminar a mensaxe'; +$labels['messagediscard'] = 'Descartar con unha mensaxe'; +$labels['messagesrules'] = 'Para o correo entrante:'; +$labels['messagesactions'] = '... executar as seguintes accións:'; +$labels['add'] = 'Engadir'; +$labels['del'] = 'Eliminar'; +$labels['sender'] = 'Remitente'; +$labels['recipient'] = 'Destinatario'; +$labels['vacationaddresses'] = 'Lista de enderezos de correo de destinatarios adicionais (separados por comas):'; +$labels['vacationdays'] = 'Cada canto enviar mensaxes (en días):'; +$labels['vacationinterval'] = 'Con qué frecuencia vanse enviar mensaxes:'; +$labels['days'] = 'días'; +$labels['seconds'] = 'segundos'; +$labels['vacationreason'] = 'Corpo da mensaxe (razón de vacacións):'; +$labels['vacationsubject'] = 'Asunto da mensaxe:'; +$labels['rulestop'] = 'Parar de avaliar regras'; +$labels['enable'] = 'Activar/Desactivar'; +$labels['filterset'] = 'Conxunto de filtros'; +$labels['filtersets'] = 'Conxunto de filtros'; +$labels['filtersetadd'] = 'Engadir un conxunto de filtros'; +$labels['filtersetdel'] = 'Eliminar o conxunto de filtros actual'; +$labels['filtersetact'] = 'Activar o conxunto de filtros actual'; +$labels['filtersetdeact'] = 'Desactivar o conxunto de filtros actual'; +$labels['filterdef'] = 'Definición de filtros'; +$labels['filtersetname'] = 'Nome do conxunto de filtros'; +$labels['newfilterset'] = 'Novo conxunto de filtros'; +$labels['active'] = 'activo'; +$labels['none'] = 'ningún'; +$labels['fromset'] = 'de conxunto'; +$labels['fromfile'] = 'de arquivo'; +$labels['filterdisabled'] = 'Filtro desactivado'; +$labels['countisgreaterthan'] = 'a conta é meirande que'; +$labels['countisgreaterthanequal'] = 'a conta é meirande ou igual a'; +$labels['countislessthan'] = 'a conta é menor que'; +$labels['countislessthanequal'] = 'a conta é menor ou igual a'; +$labels['countequals'] = 'a conta é igual a'; +$labels['countnotequals'] = 'a conta non é igual a'; +$labels['valueisgreaterthan'] = 'o valor é meirande que '; +$labels['valueisgreaterthanequal'] = 'o valor é meirande ou igual a'; +$labels['valueislessthan'] = 'o valor é menor que'; +$labels['valueislessthanequal'] = 'o valor é menor ou igual a'; +$labels['valueequals'] = 'o valor é igual a'; +$labels['valuenotequals'] = 'o valor non é igual a'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Lidas'; +$labels['flagdeleted'] = 'Eliminadas'; +$labels['flaganswered'] = 'Respostadas'; +$labels['flagflagged'] = 'Marcadas'; +$labels['flagdraft'] = 'Borrador'; +$labels['setvariable'] = 'Establecer variable'; +$labels['setvarname'] = 'Nome da variable:'; +$labels['setvarvalue'] = 'Valor da variable:'; +$labels['setvarmodifiers'] = 'Modificadores:'; +$labels['varlower'] = 'minúscula'; +$labels['varupper'] = 'maiúscula'; +$labels['varlowerfirst'] = 'primeira letra minúscula'; +$labels['varupperfirst'] = 'primeira letra maiúscula'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'lonxitude'; +$labels['notify'] = 'Enviar notificación'; +$labels['notifyaddress'] = 'Destinatario:'; +$labels['notifybody'] = 'Corpo da notificación:'; +$labels['notifysubject'] = 'Asunto da notificación:'; +$labels['notifyfrom'] = 'Remitente da notificación:'; +$labels['notifyimportance'] = 'Importancia:'; +$labels['notifyimportancelow'] = 'baixa'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'alta'; +$labels['filtercreate'] = 'Crear filtro'; +$labels['usedata'] = 'Usar os seguintes datos no filtro:'; +$labels['nextstep'] = 'Seguinte paso'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opcións avanzadas'; +$labels['body'] = 'Corpo'; +$labels['address'] = 'enderezo'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modificador:'; +$labels['text'] = 'texto'; +$labels['undecoded'] = 'sen codificar (en bruto)'; +$labels['contenttype'] = 'tipo de contido'; +$labels['modtype'] = 'tipo:'; +$labels['allparts'] = 'todos'; +$labels['domain'] = 'dominio'; +$labels['localpart'] = 'parte local'; +$labels['user'] = 'usuario'; +$labels['detail'] = 'detalle'; +$labels['comparator'] = 'comparador'; +$labels['default'] = 'defecto'; +$labels['octet'] = 'estricto (octeto)'; +$labels['asciicasemap'] = 'non sensible a maiúsculas/minúsculas (ascii-casemap)'; +$labels['asciinumeric'] = 'numérico (ascii-numerico)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Erro descoñecido servidor'; +$messages['filterconnerror'] = 'Imposible conectar co servidor managesieve'; +$messages['filterdeleteerror'] = 'Imposible eliminar filtro. Ocurriu un erro no servidor'; +$messages['filterdeleted'] = 'Filtro borrado con éxito'; +$messages['filtersaved'] = 'Filtro gardado con éxito'; +$messages['filtersaveerror'] = 'Imposible gardar o filtro. Ocurriu un erro no servidor'; +$messages['filterdeleteconfirm'] = 'Realmente desexa eliminar o filtro seleccionado?'; +$messages['ruledeleteconfirm'] = 'Está seguro de que desexa eliminar a regra seleccionada?'; +$messages['actiondeleteconfirm'] = 'Está seguro de que desexa eliminar a acción seleccionada?'; +$messages['forbiddenchars'] = 'Caracteres non permitidos no campo'; +$messages['cannotbeempty'] = 'O campo non pode estar baleiro'; +$messages['ruleexist'] = 'Xa existe un filtro con nome especificado.'; +$messages['setactivateerror'] = 'Imposible activar o conxunto de filtros seleccionado. Ocurriu un erro no servidor'; +$messages['setdeactivateerror'] = 'Imposible desactivar o conxunto de filtros seleccionado. Ocurriu un error no servidor'; +$messages['setdeleteerror'] = 'Imposible eliminar o conxunto de filtros seleccionado. Ocurriu un error no servidor'; +$messages['setactivated'] = 'O conxunto de filtros activouse con éxito'; +$messages['setdeactivated'] = 'O conxunto de filtros desactivouse con éxito'; +$messages['setdeleted'] = 'O Conxunto de filtros borrouse con éxito'; +$messages['setdeleteconfirm'] = 'Está seguro de que desexa eliminar o conxunto de filtros seleccionado?'; +$messages['setcreateerror'] = 'Imposible crear o conxunto de filtros. Ocurriu un error no servidor'; +$messages['setcreated'] = 'Conxunto de filtros creado con éxito'; +$messages['activateerror'] = 'Non foi posible activar o(s) filtro(s) seleccionado(s). Ocurriu un erro no servidor.'; +$messages['deactivateerror'] = 'Non foi posible desactivar o(s) filtro(s) seleccionado(s). Ocurriu un erro no servidor.'; +$messages['deactivated'] = 'Desactiváronse os filtros correctamente.'; +$messages['activated'] = 'Activáronse os filtros correctamente'; +$messages['moved'] = 'Moveuse correctamente o filtro.'; +$messages['moveerror'] = 'Non foi posible mover o(s) filtro(s) seleccionado(s). Ocurriu un erro no servidor.'; +$messages['nametoolong'] = 'Imposible crear o conxunto de filtros. O nome é longo de máis'; +$messages['namereserved'] = 'Nome reservado'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'É preciso seleccionar polo menos unha posición!'; + +?> diff --git a/webmail/plugins/managesieve/localization/he_IL.inc b/webmail/plugins/managesieve/localization/he_IL.inc new file mode 100644 index 0000000..aa736ac --- /dev/null +++ b/webmail/plugins/managesieve/localization/he_IL.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'מסננים'; +$labels['managefilters'] = 'ניהול מסננים לדואר נכנס'; +$labels['filtername'] = 'שם המסנן'; +$labels['newfilter'] = 'מסנן חדש'; +$labels['filteradd'] = 'הוספת מסנן'; +$labels['filterdel'] = 'מחיקת מסנן'; +$labels['moveup'] = 'הזזה מעלה'; +$labels['movedown'] = 'הזזה מטה'; +$labels['filterallof'] = 'תאימות לכל הכללים שלהלן'; +$labels['filteranyof'] = 'תאימות לחלק מהכללים שלהלן'; +$labels['filterany'] = 'כל ההודעות'; +$labels['filtercontains'] = 'מכיל'; +$labels['filternotcontains'] = 'לא מכיל'; +$labels['filteris'] = 'שווה ערך ל-'; +$labels['filterisnot'] = 'אינו שווה ערך ל-'; +$labels['filterexists'] = 'קיים'; +$labels['filternotexists'] = 'לא קיים'; +$labels['filtermatches'] = 'תואם ביטוי'; +$labels['filternotmatches'] = 'לא תואם ביטוי'; +$labels['filterregex'] = 'תואם ביטוי מורכב'; +$labels['filternotregex'] = 'לא תואם ביטוי מורכב'; +$labels['filterunder'] = 'תחת'; +$labels['filterover'] = 'מעל'; +$labels['addrule'] = 'הוספת כלל'; +$labels['delrule'] = 'מחיקת כלל'; +$labels['messagemoveto'] = 'העברת הודעה אל'; +$labels['messageredirect'] = 'השמה חדשה של ההודעה אל'; +$labels['messagecopyto'] = 'העתקת ההודעה אל'; +$labels['messagesendcopy'] = 'משלוח העתק מההודעה אל'; +$labels['messagereply'] = 'מענה עם הודעה'; +$labels['messagedelete'] = 'מחיקת הודעה'; +$labels['messagediscard'] = 'ביטול ההודעה'; +$labels['messagesrules'] = 'עבור דואר נכנס:'; +$labels['messagesactions'] = '...מבצע הפעולות הבאות:'; +$labels['add'] = 'הוספה'; +$labels['del'] = 'מחיקה'; +$labels['sender'] = 'השולח'; +$labels['recipient'] = 'הנמען'; +$labels['vacationaddresses'] = 'כתובות דוא"ל נוספות שלי (מופרדות ע"י פסיקים)'; +$labels['vacationdays'] = 'באיזו תדירות ( בימים ) לשלוח הודעות:'; +$labels['vacationinterval'] = 'באיזו תדירות לשלוח ההודעה'; +$labels['days'] = 'ימים'; +$labels['seconds'] = 'שניות'; +$labels['vacationreason'] = 'גוף ההודעה (סיבת החופשה):'; +$labels['vacationsubject'] = 'נושא ההודעה:'; +$labels['rulestop'] = 'עצירה של בחינת הכללים'; +$labels['enable'] = 'אפשור/ניטרול'; +$labels['filterset'] = 'קבוצת מסננים'; +$labels['filtersets'] = 'קבוצות מסננים'; +$labels['filtersetadd'] = 'הוספה של קבוצת מסננים'; +$labels['filtersetdel'] = 'מחיקה של מסננים נוכחיים'; +$labels['filtersetact'] = 'הפעלה של מסננים נוכחיים'; +$labels['filtersetdeact'] = 'השבתה של מסננים נוכחיים'; +$labels['filterdef'] = 'הגדרת מסנן'; +$labels['filtersetname'] = 'שם של קבוצת מסננים'; +$labels['newfilterset'] = 'קבוצת מסננים חדשה'; +$labels['active'] = 'פעיל'; +$labels['none'] = 'אף אחד מאלה'; +$labels['fromset'] = 'מקבוצה'; +$labels['fromfile'] = 'מקובץ'; +$labels['filterdisabled'] = 'מסנן מושבת'; +$labels['countisgreaterthan'] = 'המספר גדול מ-'; +$labels['countisgreaterthanequal'] = 'המספר גדול או שווה ל-'; +$labels['countislessthan'] = 'המספר קטן מ-'; +$labels['countislessthanequal'] = 'המספר קטן או שווה ל-'; +$labels['countequals'] = 'המספר שווה ל-'; +$labels['countnotequals'] = 'המספר שונה מ-'; +$labels['valueisgreaterthan'] = 'הערך גדול מ-'; +$labels['valueisgreaterthanequal'] = 'הערך גדול או שווה ל-'; +$labels['valueislessthan'] = 'הערך קטן מ-'; +$labels['valueislessthanequal'] = 'הערך קטן או שווה ל-'; +$labels['valueequals'] = 'הערך שווה ל-'; +$labels['valuenotequals'] = 'הערך שונה מ-'; +$labels['setflags'] = 'סימון דגלים להודעה'; +$labels['addflags'] = 'הוספת דגלים להודעה'; +$labels['removeflags'] = 'הסרת דגלים מההודעה'; +$labels['flagread'] = 'נקרא'; +$labels['flagdeleted'] = 'נמחק'; +$labels['flaganswered'] = 'נענה'; +$labels['flagflagged'] = 'סומן בדגל'; +$labels['flagdraft'] = 'טיוטה'; +$labels['setvariable'] = 'הגדרת משתנה'; +$labels['setvarname'] = 'שם המשתנה:'; +$labels['setvarvalue'] = 'ערך המשתנה:'; +$labels['setvarmodifiers'] = 'גורם משנה:'; +$labels['varlower'] = 'אותיות קטנות'; +$labels['varupper'] = 'אותיות גדולות'; +$labels['varlowerfirst'] = 'התו הראשון אות קטנה'; +$labels['varupperfirst'] = 'התו הראשון אות גדולה'; +$labels['varquotewildcard'] = 'תו מיוחד יש לשים בין מרכאות'; +$labels['varlength'] = 'אורך'; +$labels['notify'] = 'משלוח התראה'; +$labels['notifyaddress'] = 'אל כתובת דו"אל:'; +$labels['notifybody'] = 'גוף ההתראה:'; +$labels['notifysubject'] = 'נושא ההתראה:'; +$labels['notifyfrom'] = 'שולח ההתראה:'; +$labels['notifyimportance'] = 'חשיובת:'; +$labels['notifyimportancelow'] = 'נמוכה'; +$labels['notifyimportancenormal'] = 'רגילה'; +$labels['notifyimportancehigh'] = 'גבוהה'; +$labels['filtercreate'] = 'יצירת מסנן'; +$labels['usedata'] = 'שימוש במידע שלהלן ליצירת המסנן:'; +$labels['nextstep'] = 'הצעד הבא'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'אפשרויות מתקדמות'; +$labels['body'] = 'גוף ההודעה'; +$labels['address'] = 'כתובת'; +$labels['envelope'] = 'מעטפה'; +$labels['modifier'] = 'גורם שינוי:'; +$labels['text'] = 'תמליל'; +$labels['undecoded'] = 'לא מקודד ( גולמי )'; +$labels['contenttype'] = 'סוג התוכן'; +$labels['modtype'] = 'סוג:'; +$labels['allparts'] = 'הכל'; +$labels['domain'] = 'מתחם'; +$labels['localpart'] = 'חלק מקומי'; +$labels['user'] = 'משתמש'; +$labels['detail'] = 'פרטים'; +$labels['comparator'] = 'משווה:'; +$labels['default'] = 'ברירת מחדל'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'שגיאת שרת בלתי מוכרת.'; +$messages['filterconnerror'] = 'לא ניתן להתחבר לשרת.'; +$messages['filterdeleteerror'] = 'לא ניתן למחוק את המסנן. אירעה שגיאה בצד השרת.'; +$messages['filterdeleted'] = 'המסנן נמחק בהצלחה.'; +$messages['filtersaved'] = 'המסנן נשמר בהצלחה.'; +$messages['filtersaveerror'] = 'לא ניתן לשמור את המסנן. אירעה שגיאה בצד השרת.'; +$messages['filterdeleteconfirm'] = 'האם אכן ברצונך למחוק את המסנן הנבחר?'; +$messages['ruledeleteconfirm'] = 'האם אכן ברצונך למחוק את הכלל הנבחר?'; +$messages['actiondeleteconfirm'] = 'האם אכן ברצונך למחוק את הפעולה הנבחרת?'; +$messages['forbiddenchars'] = 'תווים אסורים בשדה.'; +$messages['cannotbeempty'] = 'השדה לא יכול להישאר ריק.'; +$messages['ruleexist'] = 'כבר קיים מסנן בשם כזה.'; +$messages['setactivateerror'] = 'לא ניתן להפעיל את ערכת המסננים הנבחרת. אירעה שגיאה בצד השרת.'; +$messages['setdeactivateerror'] = 'לא ניתן לנטרל את ערכת המסננים הנבחרת. אירעה שגיאה בצד השרת.'; +$messages['setdeleteerror'] = 'לא ניתן למחוק את ערכת המסננים הנבחרת. אירעה שגיאה בצד השרת.'; +$messages['setactivated'] = 'ערכת המסננים הופעלה בהצלחה.'; +$messages['setdeactivated'] = 'ערכת המסננים נוטרלה בהצלחה.'; +$messages['setdeleted'] = 'ערכת המסננים נמחקה בהצלחה.'; +$messages['setdeleteconfirm'] = 'האם אכן ברצונך למחוק את ערכת המסננים הנבחרת?'; +$messages['setcreateerror'] = 'לא ניתן ליצור ערכת מסננים. אירעה שגיאה בצד השרת.'; +$messages['setcreated'] = 'ערכת המסננים נוצרה בהצלחה.'; +$messages['activateerror'] = 'לא ניתן להפעיל את המסננים הנבחרים. אירעה שגיאה בצד השרת.'; +$messages['deactivateerror'] = 'לא ניתן לנטרל את המסננים הנבחרים. אירעה שגיאה בצד השרת.'; +$messages['deactivated'] = 'המסננים הופעלו בהצלחה.'; +$messages['activated'] = 'המסננים נוטרלו בהצלחה.'; +$messages['moved'] = 'המסנן הועבר בהצלחה.'; +$messages['moveerror'] = 'לא ניתן להעביר את המסנן הנבחר. אירעה שגיאה בצד השרת.'; +$messages['nametoolong'] = 'השם ארוך מדי.'; +$messages['namereserved'] = 'השם הזה שמור.'; +$messages['setexist'] = 'הערכה כבר קיימת.'; +$messages['nodata'] = 'חובה לבחור במיקום אחד לפחות!'; + +?> diff --git a/webmail/plugins/managesieve/localization/hr_HR.inc b/webmail/plugins/managesieve/localization/hr_HR.inc new file mode 100644 index 0000000..64b9bef --- /dev/null +++ b/webmail/plugins/managesieve/localization/hr_HR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filteri'; +$labels['managefilters'] = 'Uredi filtere za pristiglu poštu'; +$labels['filtername'] = 'Naziv filtera'; +$labels['newfilter'] = 'Novi filter'; +$labels['filteradd'] = 'Dodaj filter'; +$labels['filterdel'] = 'Obriši filter'; +$labels['moveup'] = 'Pomakni gore'; +$labels['movedown'] = 'Pomakni dolje'; +$labels['filterallof'] = 'koje odgovaraju svim sljedećim pravilima'; +$labels['filteranyof'] = 'koje odgovaraju bilo kojem od sljedećih pravila'; +$labels['filterany'] = 'sve poruke'; +$labels['filtercontains'] = 'sadrži'; +$labels['filternotcontains'] = 'ne sadrži'; +$labels['filteris'] = 'jednako je'; +$labels['filterisnot'] = 'nije jednako'; +$labels['filterexists'] = 'postoji'; +$labels['filternotexists'] = 'ne postoji'; +$labels['filtermatches'] = 'odgovara izrazu'; +$labels['filternotmatches'] = 'ne odgovara izrazu'; +$labels['filterregex'] = 'odgovara regularnom izrazu'; +$labels['filternotregex'] = 'ne odgovara regularnom izrazu'; +$labels['filterunder'] = 'ispod'; +$labels['filterover'] = 'iznad'; +$labels['addrule'] = 'Dodaj pravilo'; +$labels['delrule'] = 'Obriši pravilo'; +$labels['messagemoveto'] = 'Premjesti poruku u'; +$labels['messageredirect'] = 'Preusmjeri poruku na'; +$labels['messagecopyto'] = 'Kopiraju poruku u'; +$labels['messagesendcopy'] = 'Pošalji kopiju poruke na'; +$labels['messagereply'] = 'Odgovori sa porukom'; +$labels['messagedelete'] = 'Obriši poruku'; +$labels['messagediscard'] = 'Otkaži sa porukom'; +$labels['messagesrules'] = 'Za pristigle poruke:'; +$labels['messagesactions'] = '...primijeni sljedeće akcije:'; +$labels['add'] = 'Dodaj'; +$labels['del'] = 'Obriši'; +$labels['sender'] = 'Pošiljatelj'; +$labels['recipient'] = 'Primatelj'; +$labels['vacationaddresses'] = 'Dodatna lista primatelja (odvojenih zarezom):'; +$labels['vacationdays'] = 'Koliko često slati poruku (u danima):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Tijelo poruke (razlog odmora):'; +$labels['vacationsubject'] = 'Naslov poruke:'; +$labels['rulestop'] = 'Prekini izvođenje filtera'; +$labels['enable'] = 'Omogući/Onemogući'; +$labels['filterset'] = 'Grupa filtera'; +$labels['filtersets'] = 'Filteri'; +$labels['filtersetadd'] = 'Dodaj grupu filtera'; +$labels['filtersetdel'] = 'Obriši odabranu grupu filtera'; +$labels['filtersetact'] = 'Aktiviraj odabranu grupu filtera'; +$labels['filtersetdeact'] = 'Deaktiviraj odabranu grupu filtera'; +$labels['filterdef'] = 'Definicije filtera'; +$labels['filtersetname'] = 'Naziv grupe filtera'; +$labels['newfilterset'] = 'Nova grupa filtera'; +$labels['active'] = 'aktivan'; +$labels['none'] = 'nijedan'; +$labels['fromset'] = 'iz grupe'; +$labels['fromfile'] = 'iz datoteke'; +$labels['filterdisabled'] = 'Deaktiviraj filter'; +$labels['countisgreaterthan'] = 'brojač je veći od'; +$labels['countisgreaterthanequal'] = 'brojač je veći ili jednak od'; +$labels['countislessthan'] = 'brojač je manji od'; +$labels['countislessthanequal'] = 'brojač je manji ili jednak od'; +$labels['countequals'] = 'brojač je jednak'; +$labels['countnotequals'] = 'brojač nije jednak'; +$labels['valueisgreaterthan'] = 'vrijednost je veća od'; +$labels['valueisgreaterthanequal'] = 'vrijednost je veća ili jednaka od'; +$labels['valueislessthan'] = 'vrijednost je manja od'; +$labels['valueislessthanequal'] = 'vrijednost je manja ili jednaka od'; +$labels['valueequals'] = 'vrijednost je jednaka'; +$labels['valuenotequals'] = 'vrijednost nije jednaka'; +$labels['setflags'] = 'Postavi oznake na poruku'; +$labels['addflags'] = 'Dodaj oznake na poruku'; +$labels['removeflags'] = 'Ukloni oznake sa poruke'; +$labels['flagread'] = 'Pročitana'; +$labels['flagdeleted'] = 'Obrisana'; +$labels['flaganswered'] = 'Odgovorena'; +$labels['flagflagged'] = 'Označena'; +$labels['flagdraft'] = 'Predložak'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Stvori filter'; +$labels['usedata'] = 'Koristi podatke za filter:'; +$labels['nextstep'] = 'Idući korak'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Napredne postavke'; +$labels['body'] = 'Tijelo poruke'; +$labels['address'] = 'adresa'; +$labels['envelope'] = 'omotnica'; +$labels['modifier'] = 'modificirao:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'nedekodirano (raw)'; +$labels['contenttype'] = 'tip sadržaja'; +$labels['modtype'] = 'tip:'; +$labels['allparts'] = 'sve'; +$labels['domain'] = 'domena'; +$labels['localpart'] = 'lokalni dio'; +$labels['user'] = 'korisnik'; +$labels['detail'] = 'detalj'; +$labels['comparator'] = 'usporedio:'; +$labels['default'] = 'preddefinirano'; +$labels['octet'] = 'strogo (oktet)'; +$labels['asciicasemap'] = 'neosjetljivo na veličinu slova (ascii-casemap)'; +$labels['asciinumeric'] = 'numerički (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Nepoznata greška na poslužitelju'; +$messages['filterconnerror'] = 'Nemoguće spajanje na poslužitelj (managesieve)'; +$messages['filterdeleteerror'] = 'Nemoguće brisanje filtera. Greška na poslužitelju'; +$messages['filterdeleted'] = 'Filter je uspješno obrisan'; +$messages['filtersaved'] = 'Filter je uspješno spremljen'; +$messages['filtersaveerror'] = 'Nemoguće spremiti filter. Greška na poslužitelju'; +$messages['filterdeleteconfirm'] = 'Sigurno želite obrisati odabrani filter?'; +$messages['ruledeleteconfirm'] = 'Jeste li sigurni da želite obrisati odabrana pravila?'; +$messages['actiondeleteconfirm'] = 'Jeste li sigurni da želite obrisati odabrane akcije?'; +$messages['forbiddenchars'] = 'Nedozvoljeni znakovi u polju'; +$messages['cannotbeempty'] = 'Polje nesmije biti prazno'; +$messages['ruleexist'] = 'Filter sa zadanim imenom već postoji.'; +$messages['setactivateerror'] = 'Nemoguće aktivirati odabranu grupu filtera. Greška na poslužitelju'; +$messages['setdeactivateerror'] = 'Nemoguće deaktivirati odabranu grupu filtera. Greška na poslužitelju'; +$messages['setdeleteerror'] = 'Nemoguće obrisati odabranu grupu filtera. Greška na poslužitelju'; +$messages['setactivated'] = 'Grupa filtera je uspješno aktivirana'; +$messages['setdeactivated'] = 'Grupa filtera je uspješno deaktivirana'; +$messages['setdeleted'] = 'Grupa filtera je uspješno obrisana'; +$messages['setdeleteconfirm'] = 'Jeste li sigurni da želite obrisati odabranu grupu filtera?'; +$messages['setcreateerror'] = 'Nemoguće stvoriti grupu filtera. Greška na poslužitelju'; +$messages['setcreated'] = 'Grupa filtera je uspješno stvorena'; +$messages['activateerror'] = 'Nije moguće omogućiti odabrani filter(e). Greška poslužitelja.'; +$messages['deactivateerror'] = 'Nije moguće onemogučiti odabrane filter(e). Greška poslužitelja.'; +$messages['deactivated'] = 'Filter(i) omogućen(i) uspješno.'; +$messages['activated'] = 'Filter(i) onemogućen(i) uspješno.'; +$messages['moved'] = 'Filter uspješno premješten.'; +$messages['moveerror'] = 'Nije moguće premjestiti odabrani filter. Greška poslužitelja.'; +$messages['nametoolong'] = 'Nemoguće napraviti grupu filtera. Naziv je predugačak'; +$messages['namereserved'] = 'Rezervirano ime.'; +$messages['setexist'] = 'Skup već postoji.'; +$messages['nodata'] = 'Barem jedan pozicija mora biti odabrana!'; + +?> diff --git a/webmail/plugins/managesieve/localization/hu_HU.inc b/webmail/plugins/managesieve/localization/hu_HU.inc new file mode 100644 index 0000000..9d39ffa --- /dev/null +++ b/webmail/plugins/managesieve/localization/hu_HU.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Üzenetszűrők'; +$labels['managefilters'] = 'Bejövő üzenetek szűrői'; +$labels['filtername'] = 'Szűrő neve'; +$labels['newfilter'] = 'Új szűrő'; +$labels['filteradd'] = 'Szűrő hozzáadása'; +$labels['filterdel'] = 'Szűrő törlése'; +$labels['moveup'] = 'Mozgatás felfelé'; +$labels['movedown'] = 'Mozgatás lefelé'; +$labels['filterallof'] = 'A következők szabályok mind illeszkedjenek'; +$labels['filteranyof'] = 'A következő szabályok bármelyike illeszkedjen'; +$labels['filterany'] = 'Minden üzenet illeszkedjen'; +$labels['filtercontains'] = 'tartalmazza'; +$labels['filternotcontains'] = 'nem tartalmazza'; +$labels['filteris'] = 'megegyezik'; +$labels['filterisnot'] = 'nem egyezik meg'; +$labels['filterexists'] = 'létezik'; +$labels['filternotexists'] = 'nem létezik'; +$labels['filtermatches'] = 'kifejezéssel egyezők'; +$labels['filternotmatches'] = 'kifejezéssel nem egyezők'; +$labels['filterregex'] = 'reguláris kifejezéssel egyezők'; +$labels['filternotregex'] = 'reguláris kifejezéssel nem egyezők'; +$labels['filterunder'] = 'alatta'; +$labels['filterover'] = 'felette'; +$labels['addrule'] = 'Szabály hozzáadása'; +$labels['delrule'] = 'Szabály törlése'; +$labels['messagemoveto'] = 'Üzenet áthelyezése ide:'; +$labels['messageredirect'] = 'Üzenet továbbítása ide:'; +$labels['messagecopyto'] = 'Üzenet másolása'; +$labels['messagesendcopy'] = 'Másolat kűldése az üzenetből'; +$labels['messagereply'] = 'Válaszüzenet küldése (autoreply)'; +$labels['messagedelete'] = 'Üzenet törlése'; +$labels['messagediscard'] = 'Válaszüzenet küldése, a levél törlése'; +$labels['messagesrules'] = 'Az adott tulajdonságú beérkezett üzenetekre:'; +$labels['messagesactions'] = '... a következő műveletek végrehajtása:'; +$labels['add'] = 'Hozzáadás'; +$labels['del'] = 'Törlés'; +$labels['sender'] = 'Feladó'; +$labels['recipient'] = 'Címzett'; +$labels['vacationaddresses'] = 'További címzettek (vesszővel elválasztva):'; +$labels['vacationdays'] = 'Válaszüzenet küldése ennyi naponként:'; +$labels['vacationinterval'] = 'Milyen gyakran küld üzeneteket:'; +$labels['days'] = 'napok'; +$labels['seconds'] = 'másodpercek'; +$labels['vacationreason'] = 'Levél szövege (automatikus válasz):'; +$labels['vacationsubject'] = 'Üzenet tárgya:'; +$labels['rulestop'] = 'Műveletek végrehajtásának befejezése'; +$labels['enable'] = 'Bekapcsol/Kikapcsol'; +$labels['filterset'] = 'Szűrök készlet'; +$labels['filtersets'] = 'Szűrő készletek'; +$labels['filtersetadd'] = 'Szűrő hozzáadása a készlethez'; +$labels['filtersetdel'] = 'Az aktuális szűrő készlet törlése'; +$labels['filtersetact'] = 'Az aktuális szűrő készlet engedélyezése'; +$labels['filtersetdeact'] = 'Az aktuális szűrő készlet tiltása'; +$labels['filterdef'] = 'Szűrő definíció'; +$labels['filtersetname'] = 'Szűrő készlet neve'; +$labels['newfilterset'] = 'Új szűrő készlet'; +$labels['active'] = 'aktív'; +$labels['none'] = 'nincs'; +$labels['fromset'] = 'készletből'; +$labels['fromfile'] = 'fájlból'; +$labels['filterdisabled'] = 'Szűrő kikapcsolása'; +$labels['countisgreaterthan'] = 'a számláló nagyobb mint'; +$labels['countisgreaterthanequal'] = 'a számláló nagyobb vagy egyenlő'; +$labels['countislessthan'] = 'a számláló kissebb mint'; +$labels['countislessthanequal'] = 'a számláló kissebb vagy egyenlő'; +$labels['countequals'] = 'a számláló egyenlő'; +$labels['countnotequals'] = 'a számláló nem egyenlő'; +$labels['valueisgreaterthan'] = 'az érték nagyobb mint'; +$labels['valueisgreaterthanequal'] = 'az érték nagyobb vagy egyenlő'; +$labels['valueislessthan'] = 'az érték kisebb mint'; +$labels['valueislessthanequal'] = 'az érték kisebb vagy egyenlő'; +$labels['valueequals'] = 'az érték megegyzik'; +$labels['valuenotequals'] = 'az érték nem egyzik meg'; +$labels['setflags'] = 'Jelzők beállítása az üzeneten'; +$labels['addflags'] = 'Jelző hozzáadása az üzenethez'; +$labels['removeflags'] = 'Jelzők eltávolítása az üzenetből'; +$labels['flagread'] = 'Olvasás'; +$labels['flagdeleted'] = 'Törölt'; +$labels['flaganswered'] = 'Megválaszolt'; +$labels['flagflagged'] = 'Megjelölt'; +$labels['flagdraft'] = 'Vázlat'; +$labels['setvariable'] = 'Változó beállítása'; +$labels['setvarname'] = 'Változó neve:'; +$labels['setvarvalue'] = 'Változó értéke:'; +$labels['setvarmodifiers'] = 'Módosítók'; +$labels['varlower'] = 'kisbetű'; +$labels['varupper'] = 'nagybetű'; +$labels['varlowerfirst'] = 'első karakter kisbetű'; +$labels['varupperfirst'] = 'első karakter nagybetű'; +$labels['varquotewildcard'] = 'speciális karakterek idézése'; +$labels['varlength'] = 'hossz'; +$labels['notify'] = 'Értesítés küldése'; +$labels['notifyaddress'] = 'Címzett e-mail címe:'; +$labels['notifybody'] = 'Értesítés levéltörzse:'; +$labels['notifysubject'] = 'Értesítés tárgya:'; +$labels['notifyfrom'] = 'Értesítés feladója:'; +$labels['notifyimportance'] = 'Fontosság:'; +$labels['notifyimportancelow'] = 'alacsony'; +$labels['notifyimportancenormal'] = 'normál'; +$labels['notifyimportancehigh'] = 'magas'; +$labels['filtercreate'] = 'Szűrő létrehozása'; +$labels['usedata'] = 'A következő adatok használata a szűrőben'; +$labels['nextstep'] = 'Következő lépés'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Haladó beállítások'; +$labels['body'] = 'Levéltörzs'; +$labels['address'] = 'cím'; +$labels['envelope'] = 'boriték'; +$labels['modifier'] = 'módosító:'; +$labels['text'] = 'szöveg'; +$labels['undecoded'] = 'kódolatlan(nyers)'; +$labels['contenttype'] = 'tartalom tipusa'; +$labels['modtype'] = 'típus:'; +$labels['allparts'] = 'összes'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'név rész'; +$labels['user'] = 'felhasználó'; +$labels['detail'] = 'részlet'; +$labels['comparator'] = 'összehasonlító'; +$labels['default'] = 'alapértelmezett'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'kis-nagybetüre nem érzékeny (ascii-casemap)'; +$labels['asciinumeric'] = 'számszerü (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Ismeretlen szerverhiba'; +$messages['filterconnerror'] = 'Nem tudok a szűrőszerverhez kapcsolódni'; +$messages['filterdeleteerror'] = 'A szűrőt nem lehet törölni, szerverhiba történt'; +$messages['filterdeleted'] = 'A szűrő törlése sikeres'; +$messages['filtersaved'] = 'A szűrő mentése sikeres'; +$messages['filtersaveerror'] = 'A szűrő mentése sikertelen, szerverhiba történt'; +$messages['filterdeleteconfirm'] = 'Biztosan törli ezt a szűrőt?'; +$messages['ruledeleteconfirm'] = 'Biztosan törli ezt a szabályt?'; +$messages['actiondeleteconfirm'] = 'Biztosan törli ezt a műveletet?'; +$messages['forbiddenchars'] = 'Érvénytelen karakter a mezőben'; +$messages['cannotbeempty'] = 'A mező nem lehet üres'; +$messages['ruleexist'] = 'Már van ilyen névvel elmentett szűrő.'; +$messages['setactivateerror'] = 'A kiválasztott szűrő készletet nem sikerült engedélyezni. Szerver hiba történt.'; +$messages['setdeactivateerror'] = 'A kiválasztott szűrő készletet nem sikerült tiltani. Szerver hiba történt.'; +$messages['setdeleteerror'] = 'Nem sikerült a kiválasztott szűrő készletet törölni. Szerver hiba történt.'; +$messages['setactivated'] = 'A filter készlet engedélyezése sikeresen végrehajtódott.'; +$messages['setdeactivated'] = 'A filter készlet tiltása sikeresen végrehajtódott.'; +$messages['setdeleted'] = 'A filter készlet törlése sikeresen végrehajtódott.'; +$messages['setdeleteconfirm'] = 'Biztosan törölni szeretnéd a kiválasztott szűrő készleteket?'; +$messages['setcreateerror'] = 'Nem sikerült létrehozni a szűrő készletet. Szerver hiba történt.'; +$messages['setcreated'] = 'A szűrő készlet sikeresen létrejött.'; +$messages['activateerror'] = 'Nem sikerült engedélyezni a kiválasztott szűrö(k)et. Szerver hiba történt.'; +$messages['deactivateerror'] = 'Nem sikerült kikapcsolni a kiválasztott szűrő(ke)t. Szerver hiba történt.'; +$messages['deactivated'] = 'Szűrő(k) sikeresen bekapcsolva.'; +$messages['activated'] = 'Szűrő(k) sikeresen kikapcsolva.'; +$messages['moved'] = 'A szűrő sikeresen áthelyezve.'; +$messages['moveerror'] = 'Az áthelyezés nem sikerült. Szerver hiba történt.'; +$messages['nametoolong'] = 'Túll hosszu név'; +$messages['namereserved'] = 'Nem használható (foglalt) név-'; +$messages['setexist'] = 'A készlet már létezik.'; +$messages['nodata'] = 'Legalább egyet ki kell választani.'; + +?> diff --git a/webmail/plugins/managesieve/localization/hy_AM.inc b/webmail/plugins/managesieve/localization/hy_AM.inc new file mode 100644 index 0000000..908175f --- /dev/null +++ b/webmail/plugins/managesieve/localization/hy_AM.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Զտիչներ'; +$labels['managefilters'] = 'Կառավարել ստացվող նամակների զտիչները'; +$labels['filtername'] = 'Զտիչի անուն'; +$labels['newfilter'] = 'Նոր զտիչ'; +$labels['filteradd'] = 'Ավելացնել զտիչ'; +$labels['filterdel'] = 'Ջնջել զտիչը'; +$labels['moveup'] = 'Բարձրացնել'; +$labels['movedown'] = 'Իջեցնել'; +$labels['filterallof'] = 'հետևյալ բոլոր պահանջներին համապատասխանող'; +$labels['filteranyof'] = 'հետևյալ պահանջներից ցանկացածին համապատասխանող'; +$labels['filterany'] = 'բոլոր հաղորդագրությունները'; +$labels['filtercontains'] = 'պարունակում է'; +$labels['filternotcontains'] = 'չի պարունակում'; +$labels['filteris'] = 'հավասար է'; +$labels['filterisnot'] = 'հավասար չէ'; +$labels['filterexists'] = 'գոյություն ունի'; +$labels['filternotexists'] = 'գոյություն չունի'; +$labels['filtermatches'] = 'բավարարում է արտահայտությանը'; +$labels['filternotmatches'] = 'չի բավարարում արտահայտությանը'; +$labels['filterregex'] = 'բավարարում է կանոնավոր արտահայտությանը'; +$labels['filternotregex'] = 'չի բավարարում կանոնավոր արտահայտությանը'; +$labels['filterunder'] = 'տակ'; +$labels['filterover'] = 'վրա'; +$labels['addrule'] = 'Ավելացնել պայմանը'; +$labels['delrule'] = 'Ջնջել պայմանը'; +$labels['messagemoveto'] = 'Տեղափոխել հաղորդագրությունը'; +$labels['messageredirect'] = 'Վերահասցեվորել հաղորդագրությունը'; +$labels['messagecopyto'] = 'Պատճենել հաղորդագրությունը'; +$labels['messagesendcopy'] = 'Ուղարկել հաղորդագրության պատճեն'; +$labels['messagereply'] = 'Պատասխանել հաղորդագրությամբ'; +$labels['messagedelete'] = 'Ջնջել հաղորդագրությունը'; +$labels['messagediscard'] = 'Հեռացնել, հաղորդագրությամբ'; +$labels['messagesrules'] = 'Ստացվող հաղորդագրությունների համար'; +$labels['messagesactions'] = '…կատարել հետևյալ գործողությունները.'; +$labels['add'] = 'Ավելացնել'; +$labels['del'] = 'Ջնջել'; +$labels['sender'] = 'Ուղարկող'; +$labels['recipient'] = 'Ստացող'; +$labels['vacationaddresses'] = 'Իմ հավելյալ էլփոստի հասցեներ (բաժանված ստորակետներով).'; +$labels['vacationdays'] = 'Ինչ հաճախությամբ ուղարկել հաղորդագրությունները (օրեր)`'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Հաղորդագրության բովանդակություն (արձակուրդի պատճառ)`'; +$labels['vacationsubject'] = 'Հաղորդագրության վերնագիր`'; +$labels['rulestop'] = 'Դադարել պայմանների ստուգումը'; +$labels['enable'] = 'Միացնել/Անջատել'; +$labels['filterset'] = 'Զտիչների համալիր'; +$labels['filtersets'] = 'Զտիչների համալիրներ'; +$labels['filtersetadd'] = 'Ավելացնել զտիչների համալիր'; +$labels['filtersetdel'] = 'Ջնջել առկա զտիչների համալիրը'; +$labels['filtersetact'] = 'Միացնել առկա զտիչների համալիրը'; +$labels['filtersetdeact'] = 'Անջատել առկա զտիչների համալիրը'; +$labels['filterdef'] = 'Զտիչի սահմանում'; +$labels['filtersetname'] = 'Զտիչների համալիրի անուն'; +$labels['newfilterset'] = 'Նոր զտիչների համալիր'; +$labels['active'] = 'ակտիվ'; +$labels['none'] = 'ոչ մեկը'; +$labels['fromset'] = 'համալիրից'; +$labels['fromfile'] = 'ֆայլից'; +$labels['filterdisabled'] = 'Զտիչը անջատված է'; +$labels['countisgreaterthan'] = 'քանակը գերազանցում է'; +$labels['countisgreaterthanequal'] = 'քանակը գերազանցում է կամ հավասար է'; +$labels['countislessthan'] = 'քանակը պակաս է'; +$labels['countislessthanequal'] = 'քանակը պակաս է կամ հավասար է'; +$labels['countequals'] = 'քանակը հավասար է'; +$labels['countnotequals'] = 'քանակը հավասար չէ'; +$labels['valueisgreaterthan'] = 'արժեքը գերազանցում է'; +$labels['valueisgreaterthanequal'] = 'արժեքը գերազանցում է կամ հավասար է'; +$labels['valueislessthan'] = 'արժեքը պակաս է'; +$labels['valueislessthanequal'] = 'արժեքը պակաս է կամ հավասար է'; +$labels['valueequals'] = 'արժեքը հավասար է'; +$labels['valuenotequals'] = 'արժեքը հավասար չէ'; +$labels['setflags'] = 'Հաղորդագրությունը նշել որպես'; +$labels['addflags'] = 'Ավելացնել նշաններ հաղորդագրությանը'; +$labels['removeflags'] = 'Հեռացնել նշաններ հաղորդագրությունից'; +$labels['flagread'] = 'Ընթերցված'; +$labels['flagdeleted'] = 'Ջնջված'; +$labels['flaganswered'] = 'Պատասխանված'; +$labels['flagflagged'] = 'Նշված'; +$labels['flagdraft'] = 'Սևագիր'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Ստեղծել զտիչ'; +$labels['usedata'] = 'Զտիչում օգտագործել հետևյալ տեղեկությունը.'; +$labels['nextstep'] = 'Հաջորդ քայլ'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Հավելյալ ընտրանքներ'; +$labels['body'] = 'Մարմին'; +$labels['address'] = 'հասցե'; +$labels['envelope'] = 'ծրար'; +$labels['modifier'] = 'փոփոխիչ`'; +$labels['text'] = 'տեքստ'; +$labels['undecoded'] = 'մաքուր'; +$labels['contenttype'] = 'բովանդակության տիպ'; +$labels['modtype'] = 'տիպ`'; +$labels['allparts'] = 'բոլորը'; +$labels['domain'] = 'տիրույթ'; +$labels['localpart'] = 'լոկալ մաս'; +$labels['user'] = 'օգտվող'; +$labels['detail'] = 'մաս'; +$labels['comparator'] = 'համեմատիչ`'; +$labels['default'] = 'լռակյաց'; +$labels['octet'] = 'անփոփոխ (օկտետ)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Սերվերի անհայտ սխալ'; +$messages['filterconnerror'] = 'Սերվերի հետ կապի խնդիր։'; +$messages['filterdeleteerror'] = 'Սերվերի սխալ, զտիչի ջնջումն ձախողվեց։'; +$messages['filterdeleted'] = 'Զտիչը ջնջվեց։'; +$messages['filtersaved'] = 'Զտիչը պահպանվեց։'; +$messages['filtersaveerror'] = 'Սերվերի սխալ, զտիչի պահպանման սխալ։'; +$messages['filterdeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված զտիչը։'; +$messages['ruledeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված պայմանը։'; +$messages['actiondeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված գործողությունը։'; +$messages['forbiddenchars'] = 'Դաշտում առկա են արգելված նիշեր։'; +$messages['cannotbeempty'] = 'Դաշտը դատարկ չի կարող լինել։'; +$messages['ruleexist'] = 'Տրված անունով զտիչ արդեն գոյություն ունի։'; +$messages['setactivateerror'] = 'Սերվերի սխալ։ Նշված զտիչների համալիրի միացման ձախողում։'; +$messages['setdeactivateerror'] = 'Սերվերի սխալ։ Նշված զտիչների համալիրի անջատման ձախողում։'; +$messages['setdeleteerror'] = 'Սերվերի սխալ։ Նշված զտիչների համալիրի ջնջման ձախողում։'; +$messages['setactivated'] = 'Զտիչների համալիրը միացված է։'; +$messages['setdeactivated'] = 'Զտիչների համալիրը անջատված է։'; +$messages['setdeleted'] = 'Զտիչների համալիրը ջնջված է։'; +$messages['setdeleteconfirm'] = 'Դուք իսկապե՞ս ցանկանում եք ջնջել նշված զտիչների համալիրը։'; +$messages['setcreateerror'] = 'Սերվերի սխալ։ Զտիչների համալիրի ստեղծումը ձախողվեց։'; +$messages['setcreated'] = 'Զտիչների համալիրը ստեղծված է։'; +$messages['activateerror'] = 'Սերվերի սխալ։ Նշված զտիչի միացման ձախողում։'; +$messages['deactivateerror'] = 'Սերվերի սխալ։ Նշված զտիչի անջատման ձախողում։'; +$messages['deactivated'] = 'Զտիչի միացված է։'; +$messages['activated'] = 'Զտիչի անջատված է։'; +$messages['moved'] = 'Զտիչի տեղափոխված է։'; +$messages['moveerror'] = 'Սերվերի սխալ։ Նշված զտիչի տեղափոխման ձախողում։'; +$messages['nametoolong'] = 'Անունը չափազանց երկար է։'; +$messages['namereserved'] = 'Անթույլատրելի անուն։'; +$messages['setexist'] = 'Համալիրը արդեն գոյություն ունի։'; +$messages['nodata'] = 'Պահանջվում է նշել գոնե մեկ դիրք։'; + +?> diff --git a/webmail/plugins/managesieve/localization/ia.inc b/webmail/plugins/managesieve/localization/ia.inc new file mode 100644 index 0000000..45f6e52 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ia.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Adder filtro'; +$labels['filterdel'] = 'Deler filtro'; +$labels['moveup'] = 'Move up'; +$labels['movedown'] = 'Move down'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'all messages'; +$labels['filtercontains'] = 'contains'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'is equal to'; +$labels['filterisnot'] = 'is not equal to'; +$labels['filterexists'] = 'exists'; +$labels['filternotexists'] = 'not exists'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'Delete message'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'Add'; +$labels['del'] = 'Delete'; +$labels['sender'] = 'Sender'; +$labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/ia_IA.inc b/webmail/plugins/managesieve/localization/ia_IA.inc new file mode 100644 index 0000000..7e74a53 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ia_IA.inc @@ -0,0 +1,21 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | localization/ia_IA/labels.inc | + | | + | Language file of the Roundcube Webmail client | + | Copyright (C) 2012, The Roundcube Dev Team | + | Licensed under the GNU General Public License | + | | + +-----------------------------------------------------------------------+ + | Author: Emilio Sepulveda <emilio@chilemoz.org> | + +-----------------------------------------------------------------------+ + @version $Id$ +*/ + +$labels = array(); +$labels['filters'] = 'Filtros'; +$labels['filteradd'] = 'Adder filtro'; +$labels['filterdel'] = 'Deler filtro'; + diff --git a/webmail/plugins/managesieve/localization/id_ID.inc b/webmail/plugins/managesieve/localization/id_ID.inc new file mode 100644 index 0000000..a30c2a0 --- /dev/null +++ b/webmail/plugins/managesieve/localization/id_ID.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filter'; +$labels['managefilters'] = 'Atur filter email masuk'; +$labels['filtername'] = 'Nama filter'; +$labels['newfilter'] = 'Filter baru'; +$labels['filteradd'] = 'Tambah filter'; +$labels['filterdel'] = 'Hapus filter'; +$labels['moveup'] = 'Pindah ke atas'; +$labels['movedown'] = 'Pindah ke bawah'; +$labels['filterallof'] = 'cocok dengan semua aturan berikut ini'; +$labels['filteranyof'] = 'cocok dengan aturan manapun'; +$labels['filterany'] = 'semua pesan'; +$labels['filtercontains'] = 'berisi'; +$labels['filternotcontains'] = 'tidak berisi'; +$labels['filteris'] = 'sama dengan'; +$labels['filterisnot'] = 'tidak sama dengan'; +$labels['filterexists'] = 'ada'; +$labels['filternotexists'] = 'tidak ada'; +$labels['filtermatches'] = 'ekspresi yg cocok'; +$labels['filternotmatches'] = 'ekspresi yg tidak cocok'; +$labels['filterregex'] = 'cocok dengan ekspresi reguler'; +$labels['filternotregex'] = 'tidak cocok dengan ekspresi reguler'; +$labels['filterunder'] = 'di bawah'; +$labels['filterover'] = 'di atas'; +$labels['addrule'] = 'Tambah aturan'; +$labels['delrule'] = 'Hapus aturan'; +$labels['messagemoveto'] = 'Pindah pesan ke'; +$labels['messageredirect'] = 'Alihkan pesan ke'; +$labels['messagecopyto'] = 'Salin pesan ke'; +$labels['messagesendcopy'] = 'Kirim salinan pesan ke'; +$labels['messagereply'] = 'balas dengan pesan'; +$labels['messagedelete'] = 'Hapus pesan'; +$labels['messagediscard'] = 'Buang dengan pesan'; +$labels['messagesrules'] = 'Untuk email masuk:'; +$labels['messagesactions'] = '...lakukan tindakan berikut'; +$labels['add'] = 'Tambah'; +$labels['del'] = 'Hapus'; +$labels['sender'] = 'Pengirim'; +$labels['recipient'] = 'Penerima'; +$labels['vacationaddresses'] = 'Alamat email tambahan saya (dipisahkan koma):'; +$labels['vacationdays'] = 'Seberapa sering mengirim pesan (dalam hari):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Isi pesan (alasan liburan):'; +$labels['vacationsubject'] = 'Judul pesan:'; +$labels['rulestop'] = 'Berhenti mengevaluasi aturan'; +$labels['enable'] = 'Aktifkan/Non-Aktifkan'; +$labels['filterset'] = 'Himpunan filter'; +$labels['filtersets'] = 'Himpunan banyak filter'; +$labels['filtersetadd'] = 'Tambahkan himpunan filter'; +$labels['filtersetdel'] = 'Hapus himpunan filter yang sekarang'; +$labels['filtersetact'] = 'Aktifkan himpunan filter ayng sekarang'; +$labels['filtersetdeact'] = 'Matikan himpunan filter ayng sekarang'; +$labels['filterdef'] = 'Definisi filter'; +$labels['filtersetname'] = 'Nama himpunan filter'; +$labels['newfilterset'] = 'Himpunan filter baru'; +$labels['active'] = 'aktif'; +$labels['none'] = 'nihil'; +$labels['fromset'] = 'dari himpunan'; +$labels['fromfile'] = 'dari berkas'; +$labels['filterdisabled'] = 'Filter dimatikan'; +$labels['countisgreaterthan'] = 'penghitungan lebih besar dari'; +$labels['countisgreaterthanequal'] = 'penghitungan lebih besa dari atau sama dengan'; +$labels['countislessthan'] = 'penghitungan lebih kecil dari'; +$labels['countislessthanequal'] = 'penghitungan lebih kecil dari atau sama dengan'; +$labels['countequals'] = 'penghitungan sama dengan'; +$labels['countnotequals'] = 'penghitungan tidak sama'; +$labels['valueisgreaterthan'] = 'nilai lebih besar dari'; +$labels['valueisgreaterthanequal'] = 'nilai lebih besar dari atau sama dengan'; +$labels['valueislessthan'] = 'nilai lebih kecil dari'; +$labels['valueislessthanequal'] = 'nilai lebih kecil dari atau sama dengan'; +$labels['valueequals'] = 'nilai sama dengan'; +$labels['valuenotequals'] = 'nilai tidak sama dengan'; +$labels['setflags'] = 'Atur tanda pada pesan'; +$labels['addflags'] = 'Berikan tanda pada pesan'; +$labels['removeflags'] = 'Cabut tanda dari pesan'; +$labels['flagread'] = 'Baca'; +$labels['flagdeleted'] = 'Terhapus'; +$labels['flaganswered'] = 'Terjawab'; +$labels['flagflagged'] = 'Ditandai'; +$labels['flagdraft'] = 'Konsep'; +$labels['setvariable'] = 'Set variabel'; +$labels['setvarname'] = 'Nama variabel:'; +$labels['setvarvalue'] = 'Nilai variabel'; +$labels['setvarmodifiers'] = 'Pengubah'; +$labels['varlower'] = 'huruf kecil'; +$labels['varupper'] = 'huruf besar'; +$labels['varlowerfirst'] = 'karakter pertama huruf kecil'; +$labels['varupperfirst'] = 'karakter pertama huruf besar'; +$labels['varquotewildcard'] = 'kutip karakter khusus'; +$labels['varlength'] = 'panjang'; +$labels['notify'] = 'Kirim pemberitahuan'; +$labels['notifyaddress'] = 'Ke alamat email:'; +$labels['notifybody'] = 'Isi pemberitahuan:'; +$labels['notifysubject'] = 'Judul pemberitahuan'; +$labels['notifyfrom'] = 'Pengirim pemberitahuan.'; +$labels['notifyimportance'] = 'Tingkat kepentingan:'; +$labels['notifyimportancelow'] = 'rendah'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'tinggi'; +$labels['filtercreate'] = 'Buat filter'; +$labels['usedata'] = 'Gunakan data berikut dalam filter:'; +$labels['nextstep'] = 'Langkah Selanjutnya'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Pilihan lanjutan'; +$labels['body'] = 'Isi'; +$labels['address'] = 'alamat'; +$labels['envelope'] = 'amplop'; +$labels['modifier'] = 'peubah:'; +$labels['text'] = 'teks'; +$labels['undecoded'] = 'praterjemahan (mentah)'; +$labels['contenttype'] = 'tipe isi'; +$labels['modtype'] = 'tipe:'; +$labels['allparts'] = 'semua'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'bagian lokal'; +$labels['user'] = 'pengguna'; +$labels['detail'] = 'rinci'; +$labels['comparator'] = 'pembanding:'; +$labels['default'] = 'standar'; +$labels['octet'] = 'ketat (oktet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Error pada server tak dikenali.'; +$messages['filterconnerror'] = 'Tidak dapat menyambung ke server.'; +$messages['filterdeleteerror'] = 'Tidak bisa menghapus penyaringan. Terjadi error pada server.'; +$messages['filterdeleted'] = 'Penyaringan berhasil dihapus.'; +$messages['filtersaved'] = 'Penyaringan berhasil disimpan.'; +$messages['filtersaveerror'] = 'Tidak bisa menyimpan penyaringan. Terjadi error pada server.'; +$messages['filterdeleteconfirm'] = 'Yakin untuk menghapus penyaringan terpilih?'; +$messages['ruledeleteconfirm'] = 'Yakin untuk menghapus aturan terpilih?'; +$messages['actiondeleteconfirm'] = 'Yakin untuk menghapus tindakan terpilih?'; +$messages['forbiddenchars'] = 'Karakter terlarang pada isian.'; +$messages['cannotbeempty'] = 'Isian tidak bisa kosong.'; +$messages['ruleexist'] = 'Penyaringan dengan nama tersebut sudah ada.'; +$messages['setactivateerror'] = 'Tidak bisa menghidupkan kumpulan penyaringan terpilih. Terjadi error pada server.'; +$messages['setdeactivateerror'] = 'Tidak bisa mematikan kumpulan penyaringan terpilih. Terjadi error pada server.'; +$messages['setdeleteerror'] = 'Tidak bisa menghapus kumpulan penyaringan terpilih. Terjadi error pada server.'; +$messages['setactivated'] = 'Kumpulan penyaringan berhasil dihidupkan.'; +$messages['setdeactivated'] = 'Kumpulan penyaringan berhasil dimatikan.'; +$messages['setdeleted'] = 'Kumpulan penyaringan berhasil dihapus.'; +$messages['setdeleteconfirm'] = 'Yakin ingin menghapus kumpulan penyaringan terpilih?'; +$messages['setcreateerror'] = 'Tidak bisa membuat kumpulan penyaringan. Terjadi galat pada server.'; +$messages['setcreated'] = 'Kumpulan penyaringan berhasul dibuat.'; +$messages['activateerror'] = 'Tidak bisa menghidupkan penyaringan terpilih. terjadi galat pada server.'; +$messages['deactivateerror'] = 'Tidak bisa mematikan penyaringan terpilih. Terjadi galat pada server.'; +$messages['deactivated'] = 'Berhasil menghidupkan penyaringan.'; +$messages['activated'] = 'Berhasil mematikan penyaringan.'; +$messages['moved'] = 'Berhasil memindahkan penyaringan.'; +$messages['moveerror'] = 'Tidak bisa memindahkan penyaringan terpilih. Terjadi error pada server.'; +$messages['nametoolong'] = 'Nama terlalu panjang.'; +$messages['namereserved'] = 'Nama sudah terpesan.'; +$messages['setexist'] = 'Kumpulan sudah ada.'; +$messages['nodata'] = 'Setidaknya satu posisi harus dipilih!'; + +?> diff --git a/webmail/plugins/managesieve/localization/it_IT.inc b/webmail/plugins/managesieve/localization/it_IT.inc new file mode 100644 index 0000000..0ac4f29 --- /dev/null +++ b/webmail/plugins/managesieve/localization/it_IT.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtri'; +$labels['managefilters'] = 'Gestione dei filtri per la posta in arrivo'; +$labels['filtername'] = 'Nome del filtro'; +$labels['newfilter'] = 'Nuovo filtro'; +$labels['filteradd'] = 'Aggiungi filtro'; +$labels['filterdel'] = 'Elimina filtro'; +$labels['moveup'] = 'Sposta sopra'; +$labels['movedown'] = 'Sposta sotto'; +$labels['filterallof'] = 'che soddisfa tutte le regole seguenti'; +$labels['filteranyof'] = 'che soddisfa una qualsiasi delle regole seguenti'; +$labels['filterany'] = 'tutti i messaggi'; +$labels['filtercontains'] = 'contiene'; +$labels['filternotcontains'] = 'non contiene'; +$labels['filteris'] = 'è uguale a'; +$labels['filterisnot'] = 'è diverso da'; +$labels['filterexists'] = 'esiste'; +$labels['filternotexists'] = 'non esiste'; +$labels['filtermatches'] = 'matcha l\'espressione'; +$labels['filternotmatches'] = 'non matcha l\'espressione'; +$labels['filterregex'] = 'matcha l\'espressione regolare'; +$labels['filternotregex'] = 'non matcha l\'espressione regolare'; +$labels['filterunder'] = 'sotto'; +$labels['filterover'] = 'sopra'; +$labels['addrule'] = 'Aggiungi regola'; +$labels['delrule'] = 'Elimina regola'; +$labels['messagemoveto'] = 'Sposta il messaggio in'; +$labels['messageredirect'] = 'Inoltra il messaggio a'; +$labels['messagecopyto'] = 'copia a'; +$labels['messagesendcopy'] = 'Invia copia a'; +$labels['messagereply'] = 'Rispondi con il messaggio'; +$labels['messagedelete'] = 'Elimina il messaggio'; +$labels['messagediscard'] = 'Rifiuta con messaggio'; +$labels['messagesrules'] = 'Per la posta in arrivo'; +$labels['messagesactions'] = '...esegui le seguenti azioni:'; +$labels['add'] = 'Aggiungi'; +$labels['del'] = 'Elimina'; +$labels['sender'] = 'Mittente'; +$labels['recipient'] = 'Destinatario'; +$labels['vacationaddresses'] = 'Lista di indirizzi e-mail di destinatari addizionali (separati da virgola):'; +$labels['vacationdays'] = 'Ogni quanti giorni ribadire il messaggio allo stesso mittente'; +$labels['vacationinterval'] = 'Ogni quanto tempo inviare i messaggi:'; +$labels['days'] = 'giorni'; +$labels['seconds'] = 'secondi'; +$labels['vacationreason'] = 'Corpo del messaggio (dettagli relativi all\'assenza):'; +$labels['vacationsubject'] = 'Oggetto del messaggio'; +$labels['rulestop'] = 'Non valutare le regole successive'; +$labels['enable'] = 'Abilita/disabilita'; +$labels['filterset'] = 'Gruppi di filtri'; +$labels['filtersets'] = 'gruppo di filtri'; +$labels['filtersetadd'] = 'Aggiungi gruppo'; +$labels['filtersetdel'] = 'Cancella gruppo selezionato'; +$labels['filtersetact'] = 'Attiva gruppo selezionato'; +$labels['filtersetdeact'] = 'Disattiva gruppo selezionato'; +$labels['filterdef'] = 'Definizione del filtro'; +$labels['filtersetname'] = 'Nome del Gruppo di filtri'; +$labels['newfilterset'] = 'Nuovo gruppo di filri'; +$labels['active'] = 'attivo'; +$labels['none'] = 'nessuno'; +$labels['fromset'] = 'dal set'; +$labels['fromfile'] = 'dal file'; +$labels['filterdisabled'] = 'Filtro disabilitato'; +$labels['countisgreaterthan'] = 'somma maggiore di'; +$labels['countisgreaterthanequal'] = 'somma maggiore uguale a'; +$labels['countislessthan'] = 'somma minore di'; +$labels['countislessthanequal'] = 'somma minore o uguale a'; +$labels['countequals'] = 'somma uguale a'; +$labels['countnotequals'] = 'somma diversa da'; +$labels['valueisgreaterthan'] = 'valore maggiore di'; +$labels['valueisgreaterthanequal'] = 'valore maggiore uguale a'; +$labels['valueislessthan'] = 'valore minore di'; +$labels['valueislessthanequal'] = 'valore minore uguale di'; +$labels['valueequals'] = 'valore uguale a'; +$labels['valuenotequals'] = 'valore diverso da'; +$labels['setflags'] = 'Contrassegna il messaggio'; +$labels['addflags'] = 'aggiungi flag al messaggio'; +$labels['removeflags'] = 'togli flag dal messaggio'; +$labels['flagread'] = 'Letto'; +$labels['flagdeleted'] = 'Cancellato'; +$labels['flaganswered'] = 'Risposto'; +$labels['flagflagged'] = 'Contrassegna'; +$labels['flagdraft'] = 'Bozza'; +$labels['setvariable'] = 'Imposta variabile'; +$labels['setvarname'] = 'Nome variabile:'; +$labels['setvarvalue'] = 'Valore variabile:'; +$labels['setvarmodifiers'] = 'Modificatori:'; +$labels['varlower'] = 'minuscole'; +$labels['varupper'] = 'maiuscole'; +$labels['varlowerfirst'] = 'primo carattere minuscolo'; +$labels['varupperfirst'] = 'primo carattere maiuscolo'; +$labels['varquotewildcard'] = 'caratteri speciali di quoting'; +$labels['varlength'] = 'lunghezza'; +$labels['notify'] = 'Invia notifica'; +$labels['notifyaddress'] = 'All\'indirizzo email:'; +$labels['notifybody'] = 'Corpo della notifica:'; +$labels['notifysubject'] = 'Oggetto della notifica:'; +$labels['notifyfrom'] = 'Mittente della notifica:'; +$labels['notifyimportance'] = 'Importanza:'; +$labels['notifyimportancelow'] = 'bassa'; +$labels['notifyimportancenormal'] = 'normale'; +$labels['notifyimportancehigh'] = 'alta'; +$labels['filtercreate'] = 'Crea filtro'; +$labels['usedata'] = 'utilizza i seguenti dati nel filtro'; +$labels['nextstep'] = 'passo successivo'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opzioni avanzate'; +$labels['body'] = 'Corpo'; +$labels['address'] = 'indirizzo'; +$labels['envelope'] = 'busta'; +$labels['modifier'] = 'modificatore:'; +$labels['text'] = 'testo'; +$labels['undecoded'] = 'non decodificato (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'tipo:'; +$labels['allparts'] = 'tutto'; +$labels['domain'] = 'dominio'; +$labels['localpart'] = 'parte locale'; +$labels['user'] = 'user'; +$labels['detail'] = 'dettaglio'; +$labels['comparator'] = 'comparatore'; +$labels['default'] = 'predefinito'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'non differenziare maiuscole/minuscole (ascii-casemap)'; +$labels['asciinumeric'] = 'numerico'; + +$messages = array(); +$messages['filterunknownerror'] = 'Errore sconosciuto del server'; +$messages['filterconnerror'] = 'Collegamento al server managesieve fallito'; +$messages['filterdeleteerror'] = 'Eliminazione del filtro fallita. Si è verificato un errore nel server'; +$messages['filterdeleted'] = 'Filtro eliminato con successo'; +$messages['filtersaved'] = 'Filtro salvato con successo'; +$messages['filtersaveerror'] = 'Salvataggio del filtro fallito. Si è verificato un errore nel server'; +$messages['filterdeleteconfirm'] = 'Vuoi veramente eliminare il filtro selezionato?'; +$messages['ruledeleteconfirm'] = 'Sei sicuro di voler eliminare la regola selezionata?'; +$messages['actiondeleteconfirm'] = 'Sei sicuro di voler eliminare l\'azione selezionata?'; +$messages['forbiddenchars'] = 'Caratteri non consentiti nel campo'; +$messages['cannotbeempty'] = 'Il campo non può essere vuoto'; +$messages['ruleexist'] = 'Esiste già un filtro con questo nome'; +$messages['setactivateerror'] = 'Impossibile attivare il filtro. Errore del server'; +$messages['setdeactivateerror'] = 'Impossibile disattivare il filtro. Errore del server'; +$messages['setdeleteerror'] = 'Impossibile cancellare il filtro. Errore del server'; +$messages['setactivated'] = 'Filtro attivato'; +$messages['setdeactivated'] = 'Filtro disattivato'; +$messages['setdeleted'] = 'Filtro cancellato'; +$messages['setdeleteconfirm'] = 'Sei sicuro di voler cancellare il gruppo di filtri'; +$messages['setcreateerror'] = 'Impossibile creare il gruppo. Errore del server'; +$messages['setcreated'] = 'Gruppo di filtri creato'; +$messages['activateerror'] = 'impossibile selezionare il filtro (server error)'; +$messages['deactivateerror'] = 'impossibile disabilitare il filtro (server error)'; +$messages['deactivated'] = 'filtro abilitato'; +$messages['activated'] = 'filtro disabilitato'; +$messages['moved'] = 'filtro spostato'; +$messages['moveerror'] = 'impossibile spostare il filtro (server error)'; +$messages['nametoolong'] = 'Impossibile creare il gruppo: Nome troppo lungo'; +$messages['namereserved'] = 'nome riservato'; +$messages['setexist'] = 'Il gruppo esiste già'; +$messages['nodata'] = 'selezionare almeno una posizione'; + +?> diff --git a/webmail/plugins/managesieve/localization/ja_JP.inc b/webmail/plugins/managesieve/localization/ja_JP.inc new file mode 100644 index 0000000..0cd4f44 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ja_JP.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'フィルター'; +$labels['managefilters'] = '受信メールのフィルターを管理'; +$labels['filtername'] = 'フィルター名'; +$labels['newfilter'] = '新しいフィルター'; +$labels['filteradd'] = 'フィルターを追加'; +$labels['filterdel'] = 'フィルターを削除'; +$labels['moveup'] = '上に移動'; +$labels['movedown'] = '下に移動'; +$labels['filterallof'] = '次のルールのすべてに一致'; +$labels['filteranyof'] = '次のルールのいずれかに一致'; +$labels['filterany'] = 'すべてのメッセージ'; +$labels['filtercontains'] = '含む'; +$labels['filternotcontains'] = '含まない'; +$labels['filteris'] = '次に等しい'; +$labels['filterisnot'] = '次に等しくない'; +$labels['filterexists'] = 'が存在'; +$labels['filternotexists'] = 'が存在しない'; +$labels['filtermatches'] = '次の式に一致'; +$labels['filternotmatches'] = '次の式に一致しない'; +$labels['filterregex'] = '次の正規表現に一致'; +$labels['filternotregex'] = '次の正規表現に一致しない'; +$labels['filterunder'] = 'より下'; +$labels['filterover'] = 'より上'; +$labels['addrule'] = 'ルールを追加'; +$labels['delrule'] = 'ルールを削除'; +$labels['messagemoveto'] = '次にメッセージを移動'; +$labels['messageredirect'] = '次のメールアドレスに転送'; +$labels['messagecopyto'] = '次にメッセージをコピー'; +$labels['messagesendcopy'] = '次にメッセージのコピーを送信'; +$labels['messagereply'] = 'メッセージを返信'; +$labels['messagedelete'] = 'メッセージを削除'; +$labels['messagediscard'] = 'メッセージを破棄'; +$labels['messagesrules'] = '受信したメールの処理:'; +$labels['messagesactions'] = '以下の操作を実行:'; +$labels['add'] = '追加'; +$labels['del'] = '削除'; +$labels['sender'] = '送信者'; +$labels['recipient'] = '宛先'; +$labels['vacationaddresses'] = '電子メールの宛先の(コンマ区切った)追加のリスト:'; +$labels['vacationdays'] = 'メッセージを(1日に)送信する頻度:'; +$labels['vacationinterval'] = 'メッセージを送信する頻度:'; +$labels['days'] = '日'; +$labels['seconds'] = '秒'; +$labels['vacationreason'] = 'メッセージ本体(休暇の理由):'; +$labels['vacationsubject'] = 'メッセージの件名:'; +$labels['rulestop'] = 'ルールの評価を停止'; +$labels['enable'] = '有効/無効'; +$labels['filterset'] = 'フィルターセット'; +$labels['filtersets'] = 'フィルターセット'; +$labels['filtersetadd'] = 'フィルターセットを追加'; +$labels['filtersetdel'] = '現在のフィルターセットを削除'; +$labels['filtersetact'] = '現在のフィルター セットを有効'; +$labels['filtersetdeact'] = '現在のフィルター セットを無効'; +$labels['filterdef'] = 'フィルターの定義'; +$labels['filtersetname'] = 'フィルターセットの名前'; +$labels['newfilterset'] = '新しいフィルターセット'; +$labels['active'] = '有効'; +$labels['none'] = 'なし'; +$labels['fromset'] = 'セットから'; +$labels['fromfile'] = 'ファイルから'; +$labels['filterdisabled'] = 'フィルターを無効にしました。'; +$labels['countisgreaterthan'] = 'より大きい回数'; +$labels['countisgreaterthanequal'] = '以上の回数'; +$labels['countislessthan'] = '未満の回数'; +$labels['countislessthanequal'] = '以下の回数'; +$labels['countequals'] = '次と等しい回数'; +$labels['countnotequals'] = '次と等しくない回数'; +$labels['valueisgreaterthan'] = 'より大きい値'; +$labels['valueisgreaterthanequal'] = '以上の値'; +$labels['valueislessthan'] = '未満の値'; +$labels['valueislessthanequal'] = '以下の値'; +$labels['valueequals'] = '次と等しい値'; +$labels['valuenotequals'] = '次と等しくない値'; +$labels['setflags'] = 'メッセージにフラグを設定'; +$labels['addflags'] = 'メッセージにフラグを追加'; +$labels['removeflags'] = 'メッセージからフラグを削除'; +$labels['flagread'] = '既読'; +$labels['flagdeleted'] = '削除済み'; +$labels['flaganswered'] = '返信済み'; +$labels['flagflagged'] = 'フラグ付き'; +$labels['flagdraft'] = '下書き'; +$labels['setvariable'] = '変数を設定'; +$labels['setvarname'] = '変数の名前:'; +$labels['setvarvalue'] = '変数の値:'; +$labels['setvarmodifiers'] = '修飾子:'; +$labels['varlower'] = '小文字'; +$labels['varupper'] = '大文字'; +$labels['varlowerfirst'] = '最初の文字を小文字'; +$labels['varupperfirst'] = '最初の文字を大文字'; +$labels['varquotewildcard'] = '特殊文字を引用処理'; +$labels['varlength'] = '長さ'; +$labels['notify'] = '通知を送信'; +$labels['notifyaddress'] = '送信先の電子メールアドレス:'; +$labels['notifybody'] = '通知の本文:'; +$labels['notifysubject'] = '通知の件名:'; +$labels['notifyfrom'] = '通知の送信者:'; +$labels['notifyimportance'] = '重要度:'; +$labels['notifyimportancelow'] = '低'; +$labels['notifyimportancenormal'] = '通常'; +$labels['notifyimportancehigh'] = '高'; +$labels['filtercreate'] = 'フィルターを作成'; +$labels['usedata'] = 'フィルターで次のデータを使用'; +$labels['nextstep'] = '次のステップ'; +$labels['...'] = '...'; +$labels['advancedopts'] = '高度なオプション'; +$labels['body'] = '本文'; +$labels['address'] = 'メールアドレス'; +$labels['envelope'] = 'エンベロープ'; +$labels['modifier'] = '修正:'; +$labels['text'] = 'テキスト'; +$labels['undecoded'] = '未デコード(そのまま)'; +$labels['contenttype'] = 'Content Type'; +$labels['modtype'] = '種類:'; +$labels['allparts'] = 'すべて'; +$labels['domain'] = 'ドメイン'; +$labels['localpart'] = 'ローカルパート'; +$labels['user'] = 'ユーザー'; +$labels['detail'] = '詳細'; +$labels['comparator'] = '比較器:'; +$labels['default'] = '初期値'; +$labels['octet'] = '厳密(オクテット)'; +$labels['asciicasemap'] = '大文字小文字を区別しない(ascii-casemap)'; +$labels['asciinumeric'] = '数値(ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = '不明なサーバーのエラーです。'; +$messages['filterconnerror'] = 'サーバに接続できません。'; +$messages['filterdeleteerror'] = 'フィルターを削除できませんでした。サーバーでエラーが発生しました。'; +$messages['filterdeleted'] = 'フィルターを削除しました。'; +$messages['filtersaved'] = 'フィルターを保存しました。'; +$messages['filtersaveerror'] = 'フィルターの保存できませんでした。サーバーでエラーが発生しました。'; +$messages['filterdeleteconfirm'] = '本当に選択したフィルターを削除しますか?'; +$messages['ruledeleteconfirm'] = '本当に選択したルールを削除しますか?'; +$messages['actiondeleteconfirm'] = '本当に選択した操作を削除しますか?'; +$messages['forbiddenchars'] = '項目に禁止している文字が含まれています。'; +$messages['cannotbeempty'] = '項目は空欄にできません。'; +$messages['ruleexist'] = '指定した名前のフィルターが既に存在します。'; +$messages['setactivateerror'] = '選択したフィルターセットを有効にできませんでした。サーバーでエラーが発生しました。'; +$messages['setdeactivateerror'] = '選択したフィルターセットを無効にできませんでした。サーバーでエラーが発生しました。'; +$messages['setdeleteerror'] = '選択したフィルターセットを削除できませんでした。サーバーでエラーが発生しました。'; +$messages['setactivated'] = 'フィルターセットを有効にしました。'; +$messages['setdeactivated'] = 'フィルターセットを無効にしました。'; +$messages['setdeleted'] = 'フィルターセットを削除しました。'; +$messages['setdeleteconfirm'] = '本当に選択したフィルターセットを削除しますか?'; +$messages['setcreateerror'] = 'フィルターセットを作成できませんでした。サーバーでエラーが発生しました。'; +$messages['setcreated'] = 'フィルターセットを作成しました。'; +$messages['activateerror'] = '選択したフィルターを有効にできませんでした。サーバーでエラーが発生しました。'; +$messages['deactivateerror'] = '選択したフィルターを無効にできませんでした。サーバーでエラーが発生しました。'; +$messages['deactivated'] = 'フィルターを有効にしました。'; +$messages['activated'] = 'フィルターを無効にしました。'; +$messages['moved'] = 'フィルターを移動しました。'; +$messages['moveerror'] = '選択したフィルターを移動できませんでした。サーバーでエラーが発生しました。'; +$messages['nametoolong'] = '名前が長すぎます。'; +$messages['namereserved'] = '予約されている名前です。'; +$messages['setexist'] = 'フィルターセットが既に存在します。'; +$messages['nodata'] = '少なくとも1つの場所を選択しなければなりません!'; + +?> diff --git a/webmail/plugins/managesieve/localization/ko_KR.inc b/webmail/plugins/managesieve/localization/ko_KR.inc new file mode 100644 index 0000000..5ab4fc2 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ko_KR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = '필터'; +$labels['managefilters'] = '수신 메일 필터 관리'; +$labels['filtername'] = '필터명'; +$labels['newfilter'] = '새 필터'; +$labels['filteradd'] = '필터 추가'; +$labels['filterdel'] = '필터 삭제'; +$labels['moveup'] = '위로 이동'; +$labels['movedown'] = '아래로 이동'; +$labels['filterallof'] = '다음의 모든 규칙과 일치함'; +$labels['filteranyof'] = '다음 규칙 중 하나라도 일치함'; +$labels['filterany'] = '모든 메시지'; +$labels['filtercontains'] = '다음을 포함함'; +$labels['filternotcontains'] = '다음을 포함하지 않음'; +$labels['filteris'] = '다음과 같음'; +$labels['filterisnot'] = '다음과 같지 않음'; +$labels['filterexists'] = '다음이 존재함'; +$labels['filternotexists'] = '다음이 존재하지 않음'; +$labels['filtermatches'] = '다음 표현식과 일치함'; +$labels['filternotmatches'] = '다음 표현식과 일치하지 않음'; +$labels['filterregex'] = '다음 정규 표현식과 일치함'; +$labels['filternotregex'] = '다음 정규 표현식과 일치하지 않음'; +$labels['filterunder'] = '다음보다 아래임'; +$labels['filterover'] = '다음보다 위임'; +$labels['addrule'] = '규칙 추가'; +$labels['delrule'] = '규칙 삭제'; +$labels['messagemoveto'] = '메시지를 다음 위치로 이동함'; +$labels['messageredirect'] = '메시지를 다음 주소로 전송함'; +$labels['messagecopyto'] = '메시지를 다음 위치로 복사함'; +$labels['messagesendcopy'] = '메시지의 사본을 다음 위치로 보냄'; +$labels['messagereply'] = '다음 메시지로 회신'; +$labels['messagedelete'] = '메시지를 삭제'; +$labels['messagediscard'] = '다음 메시지와 함께 폐기'; +$labels['messagesrules'] = '해당 받은 메일:'; +$labels['messagesactions'] = '...다음 동작을 실행:'; +$labels['add'] = '추가'; +$labels['del'] = '삭제'; +$labels['sender'] = '발신인'; +$labels['recipient'] = '수신인'; +$labels['vacationaddresses'] = '나의 추가 이메일 주소 (쉼표로 구분됨):'; +$labels['vacationdays'] = '메시지 발신 주기 (일):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = '메시지 본문 (휴가 사유):'; +$labels['vacationsubject'] = '메시지 제목:'; +$labels['rulestop'] = '규칙 평가를 중단'; +$labels['enable'] = '활성화/비활성화'; +$labels['filterset'] = '필터 세트'; +$labels['filtersets'] = '필터 세트'; +$labels['filtersetadd'] = '필터 세트 추가'; +$labels['filtersetdel'] = '현재 필터 세트를 삭제'; +$labels['filtersetact'] = '현재 필터 세트를 활성화'; +$labels['filtersetdeact'] = '현재 필터 세트를 비활성화'; +$labels['filterdef'] = '필터 정의'; +$labels['filtersetname'] = '필터 세트명'; +$labels['newfilterset'] = '새 필터 세트'; +$labels['active'] = '활성'; +$labels['none'] = '없음'; +$labels['fromset'] = '세트로부터'; +$labels['fromfile'] = '파일로부터'; +$labels['filterdisabled'] = '필터가 비활성화됨'; +$labels['countisgreaterthan'] = '개수가 다음보다 큼'; +$labels['countisgreaterthanequal'] = '개수가 다음보다 크거나 같음'; +$labels['countislessthan'] = '개수가 다음보다 작음'; +$labels['countislessthanequal'] = '개수가 작거나 같음'; +$labels['countequals'] = '개수가 다음과 같음'; +$labels['countnotequals'] = '개수가 다음과 같지 않음'; +$labels['valueisgreaterthan'] = '값이 다음보다 큼'; +$labels['valueisgreaterthanequal'] = '값이 다음보다 크거나 같음'; +$labels['valueislessthan'] = '값이 다음보다 작음'; +$labels['valueislessthanequal'] = '값이 다음보다 작거나 같음'; +$labels['valueequals'] = '값이 다음과 같음'; +$labels['valuenotequals'] = '값이 다음과 같지 않음'; +$labels['setflags'] = '메시지에 깃발을 설정'; +$labels['addflags'] = '메시지에 깃발을 추가'; +$labels['removeflags'] = '메시지에서 깃발을 제거'; +$labels['flagread'] = '읽음'; +$labels['flagdeleted'] = '삭제됨'; +$labels['flaganswered'] = '응답함'; +$labels['flagflagged'] = '깃발을 추가함'; +$labels['flagdraft'] = '임시 보관함'; +$labels['setvariable'] = '변수 설정'; +$labels['setvarname'] = '변수명:'; +$labels['setvarvalue'] = '변수 값:'; +$labels['setvarmodifiers'] = '수식자:'; +$labels['varlower'] = '소문자'; +$labels['varupper'] = '대문자'; +$labels['varlowerfirst'] = '첫 문자를 소문자로'; +$labels['varupperfirst'] = '첫 문자를 대문자로'; +$labels['varquotewildcard'] = '특수 기호를 인용'; +$labels['varlength'] = '길이'; +$labels['notify'] = '알림 메시지 보내기'; +$labels['notifyaddress'] = '대상 이메일 주소:'; +$labels['notifybody'] = '알림 메시지 본문:'; +$labels['notifysubject'] = '알림 메시지 제목:'; +$labels['notifyfrom'] = '알림 메시지 발신인:'; +$labels['notifyimportance'] = '중요도:'; +$labels['notifyimportancelow'] = '낮음'; +$labels['notifyimportancenormal'] = '보통'; +$labels['notifyimportancehigh'] = '높음'; +$labels['filtercreate'] = '필터 생성'; +$labels['usedata'] = '필터에서 다음 데이터를 사용:'; +$labels['nextstep'] = '다음 단계'; +$labels['...'] = '...'; +$labels['advancedopts'] = '고급 설정'; +$labels['body'] = '본문'; +$labels['address'] = '주소'; +$labels['envelope'] = '봉투'; +$labels['modifier'] = '수식자:'; +$labels['text'] = '텍스트'; +$labels['undecoded'] = '암호화되지 않음 (원상태)'; +$labels['contenttype'] = '내용 유형'; +$labels['modtype'] = '유형:'; +$labels['allparts'] = '모두'; +$labels['domain'] = '도메인'; +$labels['localpart'] = '로컬 부분'; +$labels['user'] = '사용자'; +$labels['detail'] = '세부사항'; +$labels['comparator'] = '비교기:'; +$labels['default'] = '기본'; +$labels['octet'] = '엄격 (8진수)'; +$labels['asciicasemap'] = '대/소문자 구분 (ascii-casemap)'; +$labels['asciinumeric'] = '숫자 (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = '알수 없는 서버 오류.'; +$messages['filterconnerror'] = '서버에 연결할 수 없음.'; +$messages['filterdeleteerror'] = '필터를 삭제할 수 없음. 서버 오류가 발생함.'; +$messages['filterdeleted'] = '필터가 성공적으로 삭제됨.'; +$messages['filtersaved'] = '필터가 성공적으로 저장됨.'; +$messages['filtersaveerror'] = '필터를 저장할 수 없음. 서버 오류가 발생함.'; +$messages['filterdeleteconfirm'] = '정말로 선택한 필터를 삭제하시겠습니까?'; +$messages['ruledeleteconfirm'] = '정말로 선택한 규칙을 삭제하시겠습니까?'; +$messages['actiondeleteconfirm'] = '정말로 선택한 동작을 삭제하시겠습니까?'; +$messages['forbiddenchars'] = '필드에 금지된 문자가 존재함.'; +$messages['cannotbeempty'] = '필드는 비워둘 수 없음.'; +$messages['ruleexist'] = '지정한 이름의 필터가 이미 존재함.'; +$messages['setactivateerror'] = '선택한 필터 세트를 활성화 할 수 없음. 서버 오류가 발생함.'; +$messages['setdeactivateerror'] = '선택한 필터 세트를 비활성화 할 수 없음. 서버 오류가 발생함.'; +$messages['setdeleteerror'] = '선택한 필터 세트를 삭제할 수 없음. 서버 오류가 발생함.'; +$messages['setactivated'] = '필터 세트가 성공적으로 활성화됨.'; +$messages['setdeactivated'] = '필터 세트가 성공적으로 비활성화됨.'; +$messages['setdeleted'] = '필터 세트가 성공적으로 삭제됨.'; +$messages['setdeleteconfirm'] = '정말로 선택한 필터 세트를 삭제하시겠습니까?'; +$messages['setcreateerror'] = '필터 세트를 생성할 수 없음. 서버 오류가 발생함.'; +$messages['setcreated'] = '필터 세트가 성공적으로 생성됨.'; +$messages['activateerror'] = '선택한 필터를 활성화할 수 없음. 서버 오류가 발생함.'; +$messages['deactivateerror'] = '선택한 필터를 비활성화할 수 없음. 서버 오류가 발생함.'; +$messages['deactivated'] = '필터가 성공적으로 비활성화됨.'; +$messages['activated'] = '필터가 성공적으로 활성화됨.'; +$messages['moved'] = '필터가 성공적으로 이동함.'; +$messages['moveerror'] = '선택한 필터를 이동할 수 없음. 서버 오류가 발생함.'; +$messages['nametoolong'] = '이름이 너무 김.'; +$messages['namereserved'] = '예약된 이름.'; +$messages['setexist'] = '세트가 이미 존재함.'; +$messages['nodata'] = '최소 하나의 위치가 선택되어야 합니다!'; + +?> diff --git a/webmail/plugins/managesieve/localization/lt_LT.inc b/webmail/plugins/managesieve/localization/lt_LT.inc new file mode 100644 index 0000000..8fafb6d --- /dev/null +++ b/webmail/plugins/managesieve/localization/lt_LT.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtrai'; +$labels['managefilters'] = 'Tvarkyti gaunamų laiškų filtrus'; +$labels['filtername'] = 'Filtro pavadinimas'; +$labels['newfilter'] = 'Naujas filtras'; +$labels['filteradd'] = 'Pridėti filtrą'; +$labels['filterdel'] = 'Pašalinti filtrą'; +$labels['moveup'] = 'Pakelti aukštyn'; +$labels['movedown'] = 'Nuleisti žemyn'; +$labels['filterallof'] = 'atitinka visas šias taisykles'; +$labels['filteranyof'] = 'atitinka bet kurią šių taisyklių'; +$labels['filterany'] = 'visi laiškai'; +$labels['filtercontains'] = 'savyje turi'; +$labels['filternotcontains'] = 'savyje neturi'; +$labels['filteris'] = 'yra lygus'; +$labels['filterisnot'] = 'nėra lygus'; +$labels['filterexists'] = 'egzistuoja'; +$labels['filternotexists'] = 'neegzistuoja'; +$labels['filtermatches'] = 'atitinka šabloną'; +$labels['filternotmatches'] = 'neatitinka šablono'; +$labels['filterregex'] = 'atitinka reguliarųjį reiškinį'; +$labels['filternotregex'] = 'neatitinka reguliariojo reiškinio'; +$labels['filterunder'] = 'nesiekia'; +$labels['filterover'] = 'viršija'; +$labels['addrule'] = 'Pridėti taisyklę'; +$labels['delrule'] = 'Pašalinti taisyklę'; +$labels['messagemoveto'] = 'Perkelti laišką į'; +$labels['messageredirect'] = 'Peradresuoti laišką'; +$labels['messagecopyto'] = 'Kopijuoti laišką į'; +$labels['messagesendcopy'] = 'Nusiųsti laiško kopiją'; +$labels['messagereply'] = 'Atsakyti laišku'; +$labels['messagedelete'] = 'Pašalinti laišką'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'Gaunamiems laiškams:'; +$labels['messagesactions'] = '…vykdyti šiuos veiksmus:'; +$labels['add'] = 'Pridėti'; +$labels['del'] = 'Pašalinti'; +$labels['sender'] = 'Siuntėjas'; +$labels['recipient'] = 'Gavėjas'; +$labels['vacationaddresses'] = 'Papildomas gavėjų adresų sąrašas (skirti kableliais):'; +$labels['vacationdays'] = 'Kaip dažnai išsiųsti laiškus (dienomis):'; +$labels['vacationinterval'] = 'Kaip dažnai siųsti laiškus:'; +$labels['days'] = 'd.'; +$labels['seconds'] = 'sek.'; +$labels['vacationreason'] = 'Laiško tekstas'; +$labels['vacationsubject'] = 'Laiško tema:'; +$labels['rulestop'] = 'Nutraukti taisyklių vykdymą'; +$labels['enable'] = 'Įjungti / išjungti'; +$labels['filterset'] = 'Filtrų rinkinys'; +$labels['filtersets'] = 'Filtrų rinkiniai'; +$labels['filtersetadd'] = 'Pridėti filtrų rinkinį'; +$labels['filtersetdel'] = 'Pašalinti šį filtrų rinkinį'; +$labels['filtersetact'] = 'Įgalinti šį filtrų rinkinį'; +$labels['filtersetdeact'] = 'Išjungti šį filtrų rinkinį'; +$labels['filterdef'] = 'Filtro aprašas'; +$labels['filtersetname'] = 'Filtrų rinkinio pavadinimas'; +$labels['newfilterset'] = 'Naujas filtrų rinkinys'; +$labels['active'] = 'aktyvus'; +$labels['none'] = 'joks'; +$labels['fromset'] = 'iš rinkinio'; +$labels['fromfile'] = 'iš failo'; +$labels['filterdisabled'] = 'Filtras išjungtas'; +$labels['countisgreaterthan'] = 'kiekis didesnis nei'; +$labels['countisgreaterthanequal'] = 'kiekis didesnis arba lygus'; +$labels['countislessthan'] = 'kiekis mažesnis nei'; +$labels['countislessthanequal'] = 'kiekis mažesnis arba lygus'; +$labels['countequals'] = 'kiekis lygus'; +$labels['countnotequals'] = 'kiekis nelygus'; +$labels['valueisgreaterthan'] = 'reikšmė didesnė nei'; +$labels['valueisgreaterthanequal'] = 'reikšmė didesnė arba lygi'; +$labels['valueislessthan'] = 'reikšmė mažesnė nei'; +$labels['valueislessthanequal'] = 'reikšmė mažesnė arba lygi'; +$labels['valueequals'] = 'reikšmė lygi'; +$labels['valuenotequals'] = 'reikšmė nelygi'; +$labels['setflags'] = 'Nustatyti laiško požymius'; +$labels['addflags'] = 'Pridėti laiško požymius'; +$labels['removeflags'] = 'Pašalinti laiško požymius'; +$labels['flagread'] = 'Skaitytas'; +$labels['flagdeleted'] = 'Pašalintas'; +$labels['flaganswered'] = 'Atsakytas'; +$labels['flagflagged'] = 'Pažymėtas gairele'; +$labels['flagdraft'] = 'Juodraštis'; +$labels['setvariable'] = 'Nustatyti kintamąjį'; +$labels['setvarname'] = 'Kintamojo vardas:'; +$labels['setvarvalue'] = 'Kintamojo vertė:'; +$labels['setvarmodifiers'] = 'Modifikatoriai:'; +$labels['varlower'] = 'mažosios raidės'; +$labels['varupper'] = 'didžiosios raidės'; +$labels['varlowerfirst'] = 'pirmoji raidė mažoji'; +$labels['varupperfirst'] = 'pirmoji raidė didžioji'; +$labels['varquotewildcard'] = 'cituoti specialius simbolius'; +$labels['varlength'] = 'ilgis'; +$labels['notify'] = 'Siųsti priminimą'; +$labels['notifyaddress'] = 'Kam, el. pašto adresas:'; +$labels['notifybody'] = 'Priminimo tekstas'; +$labels['notifysubject'] = 'Priminimo pavadinimas'; +$labels['notifyfrom'] = 'Priminimo siuntėjas'; +$labels['notifyimportance'] = 'Svarbumas'; +$labels['notifyimportancelow'] = 'žemas'; +$labels['notifyimportancenormal'] = 'normalus'; +$labels['notifyimportancehigh'] = 'aukštas'; +$labels['filtercreate'] = 'Kurti filtrą'; +$labels['usedata'] = 'Filtrui naudoti šiuos duomenis:'; +$labels['nextstep'] = 'Kitas žingsnis'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Papildomi nustatymai'; +$labels['body'] = 'Laiško tekstas'; +$labels['address'] = 'adresas'; +$labels['envelope'] = 'vokas'; +$labels['modifier'] = 'midifikatorius:'; +$labels['text'] = 'tekstas'; +$labels['undecoded'] = 'neiškoduotas (pirminis) tekstas'; +$labels['contenttype'] = 'turinio tipas'; +$labels['modtype'] = 'tipas:'; +$labels['allparts'] = 'visi'; +$labels['domain'] = 'sritis'; +$labels['localpart'] = 'vietinė adreso dalis'; +$labels['user'] = 'naudotojas'; +$labels['detail'] = 'detalė'; +$labels['comparator'] = 'palyginimo algoritmas:'; +$labels['default'] = 'numatytasis'; +$labels['octet'] = 'griežtas („octet“)'; +$labels['asciicasemap'] = 'nepaisantis raidžių registro („ascii-casemap“)'; +$labels['asciinumeric'] = 'skaitinis („ascii-numeric“)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Nežinoma serverio klaida.'; +$messages['filterconnerror'] = 'Neįmanoma užmegzti ryšio su serveriu.'; +$messages['filterdeleteerror'] = 'Filtro panaikinti neįmanoma. Įvyko serverio klaida.'; +$messages['filterdeleted'] = 'Filtras panaikintas sėkmingai.'; +$messages['filtersaved'] = 'Filtras sėkmingai išsaugotas'; +$messages['filtersaveerror'] = 'Filtro išsaugoti neįmanoma. Įvyko serverio klaida.'; +$messages['filterdeleteconfirm'] = 'Ar jūs esate įsitikinęs, jog norite panaikinti pasirinktus filtrus(-ą)?'; +$messages['ruledeleteconfirm'] = 'Ar jūs įsitikinęs, jog norite panaikinti pasirinktą taisyklę?'; +$messages['actiondeleteconfirm'] = 'Ar jūs įsitikinęs, jog norite panaikinti pasirinktą veiksmą?'; +$messages['forbiddenchars'] = 'Laukelyje yra draudžiamų simbolių.'; +$messages['cannotbeempty'] = 'Laukelis negali būti tuščias'; +$messages['ruleexist'] = 'Filtras tokiu vardu jau yra.'; +$messages['setactivateerror'] = 'Neįmanoma aktyvuoti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setdeactivateerror'] = 'Neįmanoma deaktyvuoti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setdeleteerror'] = 'Neįmanoma panaikinti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setactivated'] = 'Filtrų rinkinys sėkmingai aktyvuotas.'; +$messages['setdeactivated'] = 'Filtrų rinkinys sėkmingai deaktyvuotas.'; +$messages['setdeleted'] = 'Filtrų rinkinys sėkmingai panaikintas.'; +$messages['setdeleteconfirm'] = 'Ar jūs esate tikri, jog norite panaikinti pasirinktą filtrų rinkinį?'; +$messages['setcreateerror'] = 'Neįmanoma sukurti filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setcreated'] = 'Filtrų rinkinys sėkmingai sukurtas.'; +$messages['activateerror'] = 'Neįmanoma įjungti pasirinktų filtrų(-o). Įvyko serverio klaida.'; +$messages['deactivateerror'] = 'Neįmanoma išjungti pasirinktų filtrų(-o). Įvyko serverio klaida.'; +$messages['deactivated'] = 'Filtras(-as) sėkmingai išjungti.'; +$messages['activated'] = 'Filtras(-as) sėkmingai įjungti.'; +$messages['moved'] = 'Filtrai perkelti sėkmingai.'; +$messages['moveerror'] = 'Pasirinkto filtro perkelti neįmanoma. Įvyko serverio klaida.'; +$messages['nametoolong'] = 'Vardas per ilgas.'; +$messages['namereserved'] = 'Rezervuotas vardas.'; +$messages['setexist'] = 'Rinkinys jau yra sukurtas.'; +$messages['nodata'] = 'Būtina pasirinkti bent vieną poziciją!'; + +?> diff --git a/webmail/plugins/managesieve/localization/lv_LV.inc b/webmail/plugins/managesieve/localization/lv_LV.inc new file mode 100644 index 0000000..f1f85c2 --- /dev/null +++ b/webmail/plugins/managesieve/localization/lv_LV.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Vēstuļu filtri'; +$labels['managefilters'] = 'Pārvaldīt ienākošo vēstuļu filtrus'; +$labels['filtername'] = 'Filtra nosaukums'; +$labels['newfilter'] = 'Jauns filtrs'; +$labels['filteradd'] = 'Pievienot filtru'; +$labels['filterdel'] = 'Dzēst filtru'; +$labels['moveup'] = 'Pārvietot augšup'; +$labels['movedown'] = 'Pārvietot lejup'; +$labels['filterallof'] = 'jāatbilst visiem sekojošajiem nosacījumiem'; +$labels['filteranyof'] = 'jāatbilst jebkuram no sekojošajiem nosacījumiem'; +$labels['filterany'] = 'visām vēstulēm'; +$labels['filtercontains'] = 'satur'; +$labels['filternotcontains'] = 'nesatur'; +$labels['filteris'] = 'vienāds ar'; +$labels['filterisnot'] = 'nav vienāds ar'; +$labels['filterexists'] = 'eksistē'; +$labels['filternotexists'] = 'neeksistē'; +$labels['filtermatches'] = 'jāatbilst izteiksmei'; +$labels['filternotmatches'] = 'neatbilst izteiksmei'; +$labels['filterregex'] = 'jāatbilst regulārai izteiksmei'; +$labels['filternotregex'] = 'neatbilst regulārai izteiksmei'; +$labels['filterunder'] = 'zem'; +$labels['filterover'] = 'virs'; +$labels['addrule'] = 'Pievienot nosacījumu'; +$labels['delrule'] = 'Dzēst nosacījumu'; +$labels['messagemoveto'] = 'Pārvietot vēstuli uz'; +$labels['messageredirect'] = 'Pāradresēt vēstuli uz'; +$labels['messagecopyto'] = 'Kopēt vēstuli uz'; +$labels['messagesendcopy'] = 'Pārsūtīt vēstules kopiju uz'; +$labels['messagereply'] = 'Atbildēt ar'; +$labels['messagedelete'] = 'Dzēst vēstuli'; +$labels['messagediscard'] = 'Dzēst vēstuli un atbildēt'; +$labels['messagesrules'] = 'Ienākošajām vēstulēm:'; +$labels['messagesactions'] = 'Izpildīt sekojošās darbības:'; +$labels['add'] = 'Pievienot'; +$labels['del'] = 'Dzēst'; +$labels['sender'] = 'Sūtītājs'; +$labels['recipient'] = 'Saņēmējs'; +$labels['vacationaddresses'] = 'Ievadiet vienu vai vairākus e-pastu(s), atdalot tos komatu:'; +$labels['vacationdays'] = 'Cik dienu laikā vienam un tam pašam sūtītājam neatbildēt atkārtoti (piem., 7):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Atvaļinājuma paziņojuma teksts:'; +$labels['vacationsubject'] = 'Vēstules tēma:'; +$labels['rulestop'] = 'Apturēt nosacījumu pārbaudi'; +$labels['enable'] = 'Ieslēgt/Izslēgt'; +$labels['filterset'] = 'Filtru kopa'; +$labels['filtersets'] = 'Filtru kopas'; +$labels['filtersetadd'] = 'Pievienot filtru kopu'; +$labels['filtersetdel'] = 'Dzēst pašreizējo filtru kopu'; +$labels['filtersetact'] = 'Aktivizēt pašreizējo filtru kopu'; +$labels['filtersetdeact'] = 'Deaktivizēt pašreizējo filtru kopu'; +$labels['filterdef'] = 'Filtra apraksts'; +$labels['filtersetname'] = 'Filtru kopas nosaukums'; +$labels['newfilterset'] = 'Jauna filtru kopa'; +$labels['active'] = 'aktīvs'; +$labels['none'] = 'nav'; +$labels['fromset'] = 'no kopas'; +$labels['fromfile'] = 'no faila'; +$labels['filterdisabled'] = 'Filtrs atslēgts'; +$labels['countisgreaterthan'] = 'skaits ir lielāks nekā'; +$labels['countisgreaterthanequal'] = 'skaits ir vienāds vai lielāks nekā'; +$labels['countislessthan'] = 'skaits ir mazāks nekā'; +$labels['countislessthanequal'] = 'skaits ir vienāds vai mazāks nekā'; +$labels['countequals'] = 'skaits ir vienāds ar'; +$labels['countnotequals'] = 'skaits nav vienāds ar'; +$labels['valueisgreaterthan'] = 'vērtība ir lielāka nekā'; +$labels['valueisgreaterthanequal'] = 'vērtība ir vienāda vai lielāka nekā'; +$labels['valueislessthan'] = 'vērtība ir mazāka nekā'; +$labels['valueislessthanequal'] = 'vērtība ir vienāda vai mazāka nekā'; +$labels['valueequals'] = 'vērtība ir vienāda ar'; +$labels['valuenotequals'] = 'vērtība nav vienāda ar'; +$labels['setflags'] = 'Marķēt vēstuli'; +$labels['addflags'] = 'Pievienot vēstulei marķierus'; +$labels['removeflags'] = 'Noņemt vēstulei marķierus'; +$labels['flagread'] = 'Lasītas'; +$labels['flagdeleted'] = 'Dzēstas'; +$labels['flaganswered'] = 'Atbildētas'; +$labels['flagflagged'] = 'Iezīmētās'; +$labels['flagdraft'] = 'Melnraksts'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Izveidot filtru'; +$labels['usedata'] = 'Filtrā izmantot sekojošus datus'; +$labels['nextstep'] = 'Nākamais solis'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Paplašināti iestatījumi'; +$labels['body'] = 'Pamatteksts'; +$labels['address'] = 'adresāts'; +$labels['envelope'] = 'aploksne'; +$labels['modifier'] = 'modifikators:'; +$labels['text'] = 'teksts'; +$labels['undecoded'] = 'neatkodēts (jēldati)'; +$labels['contenttype'] = 'satura tips'; +$labels['modtype'] = 'tips:'; +$labels['allparts'] = 'viss'; +$labels['domain'] = 'domēns'; +$labels['localpart'] = 'vietējā daļa'; +$labels['user'] = 'lietotājs'; +$labels['detail'] = 'detaļas'; +$labels['comparator'] = 'komparators'; +$labels['default'] = 'noklusējums'; +$labels['octet'] = 'strikti (oktets)'; +$labels['asciicasemap'] = 'reģistrnejutīgs (ascii tabula)'; +$labels['asciinumeric'] = 'skaitļu (ascii skaitļu)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Nezināma servera kļūda'; +$messages['filterconnerror'] = 'Neizdevās pieslēgties ManageSieve serverim'; +$messages['filterdeleteerror'] = 'Neizdevās dzēst filtru. Servera iekšējā kļūda'; +$messages['filterdeleted'] = 'Filtrs veiksmīgi izdzēsts'; +$messages['filtersaved'] = 'Filtrs veiksmīgi saglabāts'; +$messages['filtersaveerror'] = 'Neizdevās saglabāt filtru. Servera iekšējā kļūda'; +$messages['filterdeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto filtru?'; +$messages['ruledeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto nosacījumu?'; +$messages['actiondeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto darbību?'; +$messages['forbiddenchars'] = 'Lauks satur aizliegtus simbolus'; +$messages['cannotbeempty'] = 'Lauks nedrīkst būt tukšs'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Neizdevās aktivizēt atzīmēto filtru kopu. Servera iekšējā kļūda'; +$messages['setdeactivateerror'] = 'Neizdevās deaktivizēt atzīmēto filtru kopu. Servera iekšējā kļūda'; +$messages['setdeleteerror'] = 'Neizdevās izdzēst atzīmēto filtru kopu. Servera iekšējā kļūda'; +$messages['setactivated'] = 'Filtru kopa veiksmīgi aktivizēta'; +$messages['setdeactivated'] = 'Filtru kopa veiksmīgi deaktivizēta'; +$messages['setdeleted'] = 'Filtru kopa veiksmīgi izdzēsta'; +$messages['setdeleteconfirm'] = 'Vai tiešām vēlaties dzēst atzīmēto filtru kopu?'; +$messages['setcreateerror'] = 'Neizdevās izveidot filtru kopu. Servera iekšējā kļūda'; +$messages['setcreated'] = 'Filtru kopa veiksmīgi izveidota'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Neizdevās izveidot filtru kopu. Pārāk garš kopas nosaukums'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/ml_IN.inc b/webmail/plugins/managesieve/localization/ml_IN.inc new file mode 100644 index 0000000..67cd682 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ml_IN.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'അരിപ്പകള്'; +$labels['managefilters'] = 'അകത്തോട്ടുള്ള ഇമെയില് അരിപ്പകള് ക്രമീകരിക്കുക'; +$labels['filtername'] = 'അരിപ്പയുടെ പേര്'; +$labels['newfilter'] = 'പുതിയ അരിപ്പ'; +$labels['filteradd'] = 'അരിപ്പ ചേര്ക്കുക'; +$labels['filterdel'] = 'അരിപ്പ നീക്കംചെയ്യുക'; +$labels['moveup'] = 'മുകളിലേക്ക് നീക്കുക'; +$labels['movedown'] = 'താഴേക്ക് നീക്കുക'; +$labels['filterallof'] = 'കീഴ്പറഞ്ഞ എല്ലാ നിയമങ്ങളും പാലിക്കുന്നവ'; +$labels['filteranyof'] = 'കീഴ്പറഞ്ഞ ഏതെങ്കിലും നിയമം പാലിക്കുന്നവ'; +$labels['filterany'] = 'എല്ലാ സന്ദേശങ്ങളും'; +$labels['filtercontains'] = 'അടങ്ങുന്നത്'; +$labels['filternotcontains'] = 'ല് അടങ്ങുന്നില്ല'; +$labels['filteris'] = 'ന് തുല്യം'; +$labels['filterisnot'] = 'ന് തുല്യമല്ല'; +$labels['filterexists'] = 'നിലവിലുണ്ട്'; +$labels['filternotexists'] = 'നിലവിലില്ല'; +$labels['filtermatches'] = 'എക്സ്പ്രഷന് ചേരുന്നുണ്ട്'; +$labels['filternotmatches'] = 'എക്സ്പ്രഷന് ചേരുന്നില്ല'; +$labels['filterregex'] = 'റെഗുലര് എക്സ്പ്രഷന് ചേരുന്നുണ്ട്'; +$labels['filternotregex'] = 'റെഗുലര് എക്സ്പ്രഷന് ചേരുന്നില്ല'; +$labels['filterunder'] = 'കീഴില്'; +$labels['filterover'] = 'മുകളില്'; +$labels['addrule'] = 'നിയമം ചേര്ക്കുക'; +$labels['delrule'] = 'നിയമം നീക്കം ചെയ്യുക'; +$labels['messagemoveto'] = 'സന്ദേശം നിക്കു :'; +$labels['messageredirect'] = 'സന്ദേശം മാറ്റിവിടു :'; +$labels['messagecopyto'] = 'സന്ദേശം പകര്ത്തു :'; +$labels['messagesendcopy'] = 'സന്ദേശത്തിന്റെ പകര്പ്പ് അയക്കു :'; +$labels['messagereply'] = 'സന്ദേശം വെച്ച് മറുപടി അയക്കു'; +$labels['messagedelete'] = 'സന്ദേശം മായ്ക്കു'; +$labels['messagediscard'] = 'സന്ദേശത്തോടെ നിരാകരിക്കുക'; +$labels['messagesrules'] = 'ആഗമന സന്ദേശങ്ങള്ക്ക്:'; +$labels['messagesactions'] = '...ഈ പ്രവര്ത്തനങ്ങള് ചെയ്യുക:'; +$labels['add'] = 'ചേര്ക്കു'; +$labels['del'] = 'നീക്കം ചെയ്യുക'; +$labels['sender'] = 'അയചയാള്'; +$labels['recipient'] = 'സ്വീകര്ത്താവ്'; +$labels['vacationaddresses'] = 'സ്വീകര്ത്താവിന്റെ ഇമെയില് വിലാസങ്ങളുടെ അധികമുള്ള പട്ടിക (കോമയിട്ട് തിരിച്ച)'; +$labels['vacationdays'] = 'എത്ര ഭിവസം കൂടുമ്പോള് സന്ദേശം അയക്കണം:'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'സന്ദേശത്തിന്റെ ഉള്ളടക്കം (അവധിയുടെ കാരണം):'; +$labels['vacationsubject'] = 'സന്ദേശത്തിന്റെ വിഷയം:'; +$labels['rulestop'] = 'നിയമങ്ങള് വിലയിരുത്തുന്നത് നിര്ത്തുക'; +$labels['enable'] = 'പ്രവര്ത്തനസജ്ജം/രഹിതം'; +$labels['filterset'] = 'അരിപ്പകളുടെ കൂട്ടം'; +$labels['filtersets'] = 'അരിപ്പകളുടെ കൂട്ടങ്ങള്'; +$labels['filtersetadd'] = 'അരിപ്പകളുടെ കൂട്ടം ചേര്ക്കുക'; +$labels['filtersetdel'] = 'ഇപ്പോഴത്തെ അരിപ്പകളുടെ കൂട്ടം മായ്ക്കുക'; +$labels['filtersetact'] = 'ഇപ്പോഴത്തെ അരിപ്പകളുടെ കൂട്ടം പ്രവര്ത്തിപ്പിക്കുക'; +$labels['filtersetdeact'] = 'ഇപ്പോഴത്തെ അരിപ്പകളുടെ കൂട്ടം പ്രവര്ത്തനം അവസാനിപ്പിക്കുക'; +$labels['filterdef'] = 'അരിപ്പയുടെ നിര്വ്വചനം'; +$labels['filtersetname'] = 'അരിപ്പകളുടെ കൂട്ടത്തിന്റെ പേര്'; +$labels['newfilterset'] = 'പുതിയ അരിപ്പയുട കൂട്ടം'; +$labels['active'] = 'സജീവം'; +$labels['none'] = 'ഒന്നുമില്ല'; +$labels['fromset'] = 'സെറ്റില് നിന്ന്'; +$labels['fromfile'] = 'ഫയലില് നിന്ന്'; +$labels['filterdisabled'] = 'അരിപ്പ പ്രവര്ത്തനരഹിതമാക്കി'; +$labels['countisgreaterthan'] = 'എണ്ണം ഇതിനെക്കാള് കുടുതല്'; +$labels['countisgreaterthanequal'] = 'എണ്ണം ഇതിനെക്കാള് കൂടുതല് ഇല്ലെങ്കില് സമം'; +$labels['countislessthan'] = 'എണ്ണം ഇതിനെക്കാള് കുറവ്'; +$labels['countislessthanequal'] = 'എണ്ണം ഇതിനെക്കാള് കൂറവ് ഇല്ലെങ്കില് സമം'; +$labels['countequals'] = 'എണ്ണം ഇതിനോട് സമം'; +$labels['countnotequals'] = 'എണ്ണം ഇതിനോട് സമമല്ല'; +$labels['valueisgreaterthan'] = 'മൂല്യം ഇതിനെക്കാള് കുടുതല്'; +$labels['valueisgreaterthanequal'] = 'മുല്യം ഇതിനെക്കാള് കൂടുതല് ഇല്ലെങ്കില് സമം'; +$labels['valueislessthan'] = 'മൂല്യം ഇതിനെക്കാള് കുറവ്'; +$labels['valueislessthanequal'] = 'മൂല്യം ഇതിനെക്കാള് കൂറവ് ഇല്ലെങ്കില് തുല്യം'; +$labels['valueequals'] = 'മൂല്യം ഇതിനോട് സമം'; +$labels['valuenotequals'] = 'മൂല്യം ഇതിനോട് സമമല്ല'; +$labels['setflags'] = 'സന്ദേശത്തില് അടയാളമിടുക'; +$labels['addflags'] = 'സന്ദേശത്തില് അടയാളം ചേര്ക്കുക'; +$labels['removeflags'] = 'സന്ദേശത്തില് നിന്നും അടയാളം മാറ്റുക'; +$labels['flagread'] = 'വായിച്ചവ'; +$labels['flagdeleted'] = 'നീക്കം ചെയ്തവ'; +$labels['flaganswered'] = 'മറുപടി നല്കിയവ'; +$labels['flagflagged'] = 'അടയാളപ്പെടുത്തിയവ'; +$labels['flagdraft'] = 'കരട്'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'അരിപ്പ ഉണ്ടാക്കുക'; +$labels['usedata'] = 'ഈ വിവരങ്ങള് അരിപ്പയില് ഉപയോഗിക്കുക:'; +$labels['nextstep'] = 'അടുത്ത പടി'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'വിപുലീക്രിതമായ ക്രമീകരണങ്ങള്'; +$labels['body'] = 'ഉള്ളടക്കം'; +$labels['address'] = 'മേല്വിലാസം'; +$labels['envelope'] = 'എന്വലപ്പ്'; +$labels['modifier'] = 'മോഡിഫയര്:'; +$labels['text'] = 'വാചകം'; +$labels['undecoded'] = 'ഡീക്കോഡ് ചെയ്യാത്തത് (റോ)'; +$labels['contenttype'] = 'ഉള്ളടക്കത്തിന്റെ തരം'; +$labels['modtype'] = 'തരം:'; +$labels['allparts'] = 'എല്ലാം'; +$labels['domain'] = 'ഡൊമൈന്'; +$labels['localpart'] = 'പ്രാദേശിക ഭാഗം'; +$labels['user'] = 'ഉപയോക്താവു്'; +$labels['detail'] = 'വിശദാംശം'; +$labels['comparator'] = 'താരതമ്യകന്:'; +$labels['default'] = 'സഹജമായ'; +$labels['octet'] = 'കര്ശനം (octet)'; +$labels['asciicasemap'] = 'വലിയ-ചെറിയക്ഷരങ്ങള് തമ്മില് വ്യത്യാസമില്ലാത്ത (ascii-casemap)'; +$labels['asciinumeric'] = 'സംഖ്യകള് (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'അജ്ഞാതമായ സെര്വ്വര് പിശക്.'; +$messages['filterconnerror'] = 'സെര്വ്വറുമായി ബന്ധപ്പെടാന് സാധിക്കുന്നില്ല.'; +$messages['filterdeleteerror'] = 'അരിപ്പ മായ്ക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['filterdeleted'] = 'അരിപ്പ വിജകരമായി മായ്ച്ചു.'; +$messages['filtersaved'] = 'അരിപ്പ വിജകരമായി സൂക്ഷിച്ചു.'; +$messages['filtersaveerror'] = 'അരിപ്പ സൂക്ഷിക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['filterdeleteconfirm'] = 'തെരഞ്ഞെടുത്ത അരിപ്പ നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$messages['ruledeleteconfirm'] = 'തെരഞ്ഞെടുത്ത നിയമം നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$messages['actiondeleteconfirm'] = 'തെരഞ്ഞെടുത്ത പ്രവര്ത്തി നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$messages['forbiddenchars'] = 'ഫില്ഡില് സാധുവല്ലാത്ത അക്ഷരങ്ങള്.'; +$messages['cannotbeempty'] = 'ഫീല്ഡ് ശൂന്യമാകാന് പാടില്ല.'; +$messages['ruleexist'] = 'ഈ പേരിലുള്ള അരിപ്പ ഇപ്പോള് തന്നെ ഉണ്ട്.'; +$messages['setactivateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ പ്രവര്ത്തനസജ്ജമാക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['setdeactivateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ പ്രവര്ത്തനരഹിതമാക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['setdeleteerror'] = 'തെരഞ്ഞെടുത്ത അരിപ്പയുടെ കൂട്ടത്തെ മായ്ക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['setactivated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി പ്രവര്ത്തനസജ്ജമാക്കി.'; +$messages['setdeactivated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി പ്രവര്ത്തനരഹിതമാക്കി.'; +$messages['setdeleted'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി മായ്ച്ചു.'; +$messages['setdeleteconfirm'] = 'തെരഞ്ഞെടുത്ത അരിപ്പകളുടെ കൂട്ടത്തെ നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$messages['setcreateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ നിര്മ്മിക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['setcreated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി നിര്മ്മിച്ചു.'; +$messages['activateerror'] = 'അരിപ്പ (കള്) പ്രവര്ത്തനസജ്ജം ആക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം!'; +$messages['deactivateerror'] = 'അരിപ്പ (കള്) നിര്വീര്യം ആക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം!'; +$messages['deactivated'] = 'അരിപ്പ വിജകരമായി പ്രവര്ത്തനസജ്ജമാക്കി.'; +$messages['activated'] = 'അരിപ്പകള് നിര്വീര്യം ആക്കപ്പെട്ടിരിക്കുന്നു'; +$messages['moved'] = 'അരിപ്പ വിജകരമായി മാറ്റി.'; +$messages['moveerror'] = 'തെരഞ്ഞെടുത്ത അരിപ്പ മാറ്റാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$messages['nametoolong'] = 'പേരിന് നീളം കൂടുതല്.'; +$messages['namereserved'] = 'നീക്കിവെച്ച വാക്ക്.'; +$messages['setexist'] = 'കൂട്ടം നേരത്തെ തന്നെ ഉണ്ട്.'; +$messages['nodata'] = 'ഒരു സ്ഥാനമെങ്കിലും തെരഞ്ഞെടുക്കണം!'; + +?> diff --git a/webmail/plugins/managesieve/localization/ml_ML.inc b/webmail/plugins/managesieve/localization/ml_ML.inc new file mode 100644 index 0000000..b968f9e --- /dev/null +++ b/webmail/plugins/managesieve/localization/ml_ML.inc @@ -0,0 +1,150 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | localization/ml_ML/labels.inc | + | | + | Language file of the Roundcube Webmail client | + | Copyright (C) 2012, The Roundcube Dev Team | + | Licensed under the GNU General Public License | + | | + +-----------------------------------------------------------------------+ + | Author: Anish A <aneesh.nl@gmail.com> | + +-----------------------------------------------------------------------+ + @version $Id$ +*/ + +$labels = array(); +$labels['filters'] = 'അരിപ്പകള്'; +$labels['managefilters'] = 'അകത്തോട്ടുള്ള ഇമെയില് അരിപ്പകള് ക്രമീകരിക്കുക'; +$labels['filtername'] = 'അരിപ്പയുടെ പേര്'; +$labels['newfilter'] = 'പുതിയ അരിപ്പ'; +$labels['filteradd'] = 'അരിപ്പ ചേര്ക്കുക'; +$labels['filterdel'] = 'അരിപ്പ നീക്കംചെയ്യുക'; +$labels['moveup'] = 'മുകളിലേക്ക് നീക്കുക'; +$labels['movedown'] = 'താഴേക്ക് നീക്കുക'; +$labels['filterallof'] = 'കീഴ്പറഞ്ഞ എല്ലാ നിയമങ്ങളും പാലിക്കുന്നവ'; +$labels['filteranyof'] = 'കീഴ്പറഞ്ഞ ഏതെങ്കിലും നിയമം പാലിക്കുന്നവ'; +$labels['filterany'] = 'എല്ലാ സന്ദേശങ്ങളും'; +$labels['filtercontains'] = 'അടങ്ങുന്നത്'; +$labels['filternotcontains'] = 'ല് അടങ്ങുന്നില്ല'; +$labels['filteris'] = 'ന് തുല്യം'; +$labels['filterisnot'] = 'ന് തുല്യമല്ല'; +$labels['filterexists'] = 'നിലവിലുണ്ട്'; +$labels['filternotexists'] = 'നിലവിലില്ല'; +$labels['filtermatches'] = 'എക്സ്പ്രഷന് ചേരുന്നുണ്ട്'; +$labels['filternotmatches'] = 'എക്സ്പ്രഷന് ചേരുന്നില്ല'; +$labels['filterregex'] = 'റെഗുലര് എക്സ്പ്രഷന് ചേരുന്നുണ്ട്'; +$labels['filternotregex'] = 'റെഗുലര് എക്സ്പ്രഷന് ചേരുന്നില്ല'; +$labels['filterunder'] = 'കീഴില്'; +$labels['filterover'] = 'മുകളില്'; +$labels['addrule'] = 'നിയമം ചേര്ക്കുക'; +$labels['delrule'] = 'നിയമം നീക്കം ചെയ്യുക'; +$labels['messagemoveto'] = 'സന്ദേശം നിക്കു :'; +$labels['messageredirect'] = 'സന്ദേശം മാറ്റിവിടു :'; +$labels['messagecopyto'] = 'സന്ദേശം പകര്ത്തു :'; +$labels['messagesendcopy'] = 'സന്ദേശത്തിന്റെ പകര്പ്പ് അയക്കു :'; +$labels['messagereply'] = 'സന്ദേശം വെച്ച് മറുപടി അയക്കു'; +$labels['messagedelete'] = 'സന്ദേശം മായ്ക്കു'; +$labels['messagediscard'] = 'സന്ദേശത്തോടെ നിരാകരിക്കുക'; +$labels['messagesrules'] = 'ആഗമന സന്ദേശങ്ങള്ക്ക്:'; +$labels['messagesactions'] = '...ഈ പ്രവര്ത്തനങ്ങള് ചെയ്യുക:'; +$labels['add'] = 'ചേര്ക്കു'; +$labels['del'] = 'നീക്കം ചെയ്യുക'; +$labels['sender'] = 'അയചയാള്'; +$labels['recipient'] = 'സ്വീകര്ത്താവ്'; +$labels['vacationaddresses'] = 'സ്വീകര്ത്താവിന്റെ ഇമെയില് വിലാസങ്ങളുടെ അധികമുള്ള പട്ടിക (കോമയിട്ട് തിരിച്ച)'; +$labels['vacationdays'] = 'എത്ര ഭിവസം കൂടുമ്പോള് സന്ദേശം അയക്കണം:'; +$labels['vacationreason'] = 'സന്ദേശത്തിന്റെ ഉള്ളടക്കം (അവധിയുടെ കാരണം):'; +$labels['vacationsubject'] = 'സന്ദേശത്തിന്റെ വിഷയം:'; +$labels['rulestop'] = 'നിയമങ്ങള് വിലയിരുത്തുന്നത് നിര്ത്തുക'; +$labels['enable'] = 'പ്രവര്ത്തനസജ്ജം/രഹിതം'; +$labels['filterset'] = 'അരിപ്പകളുടെ കൂട്ടം'; +$labels['filtersets'] = 'അരിപ്പകളുടെ കൂട്ടങ്ങള്'; +$labels['filtersetadd'] = 'അരിപ്പകളുടെ കൂട്ടം ചേര്ക്കുക'; +$labels['filtersetdel'] = 'ഇപ്പോഴത്തെ അരിപ്പകളുടെ കൂട്ടം മായ്ക്കുക'; +$labels['filtersetact'] = 'ഇപ്പോഴത്തെ അരിപ്പകളുടെ കൂട്ടം പ്രവര്ത്തിപ്പിക്കുക'; +$labels['filtersetdeact'] = 'ഇപ്പോഴത്തെ അരിപ്പകളുടെ കൂട്ടം പ്രവര്ത്തനം അവസാനിപ്പിക്കുക'; +$labels['filterdef'] = 'അരിപ്പയുടെ നിര്വ്വചനം'; +$labels['filtersetname'] = 'അരിപ്പകളുടെ കൂട്ടത്തിന്റെ പേര്'; +$labels['newfilterset'] = 'പുതിയ അരിപ്പയുട കൂട്ടം'; +$labels['active'] = 'സജീവം'; +$labels['none'] = 'ഒന്നുമില്ല'; +$labels['fromset'] = 'സെറ്റില് നിന്ന്'; +$labels['fromfile'] = 'ഫയലില് നിന്ന്'; +$labels['filterdisabled'] = 'അരിപ്പ പ്രവര്ത്തനരഹിതമാക്കി'; +$labels['countisgreaterthan'] = 'എണ്ണം ഇതിനെക്കാള് കുടുതല്'; +$labels['countisgreaterthanequal'] = 'എണ്ണം ഇതിനെക്കാള് കൂടുതല് ഇല്ലെങ്കില് സമം'; +$labels['countislessthan'] = 'എണ്ണം ഇതിനെക്കാള് കുറവ്'; +$labels['countislessthanequal'] = 'എണ്ണം ഇതിനെക്കാള് കൂറവ് ഇല്ലെങ്കില് സമം'; +$labels['countequals'] = 'എണ്ണം ഇതിനോട് സമം'; +$labels['countnotequals'] = 'എണ്ണം ഇതിനോട് സമമല്ല'; +$labels['valueisgreaterthan'] = 'മൂല്യം ഇതിനെക്കാള് കുടുതല്'; +$labels['valueisgreaterthanequal'] = 'മുല്യം ഇതിനെക്കാള് കൂടുതല് ഇല്ലെങ്കില് സമം'; +$labels['valueislessthan'] = 'മൂല്യം ഇതിനെക്കാള് കുറവ്'; +$labels['valueislessthanequal'] = 'മൂല്യം ഇതിനെക്കാള് കൂറവ് ഇല്ലെങ്കില് തുല്യം'; +$labels['valueequals'] = 'മൂല്യം ഇതിനോട് സമം'; +$labels['valuenotequals'] = 'മൂല്യം ഇതിനോട് സമമല്ല'; +$labels['setflags'] = 'സന്ദേശത്തില് അടയാളമിടുക'; +$labels['addflags'] = 'സന്ദേശത്തില് അടയാളം ചേര്ക്കുക'; +$labels['removeflags'] = 'സന്ദേശത്തില് നിന്നും അടയാളം മാറ്റുക'; +$labels['flagread'] = 'വായിച്ചവ'; +$labels['flagdeleted'] = 'നീക്കം ചെയ്തവ'; +$labels['flaganswered'] = 'മറുപടി നല്കിയവ'; +$labels['flagflagged'] = 'അടയാളപ്പെടുത്തിയവ'; +$labels['flagdraft'] = 'കരട്'; +$labels['filtercreate'] = 'അരിപ്പ ഉണ്ടാക്കുക'; +$labels['usedata'] = 'ഈ വിവരങ്ങള് അരിപ്പയില് ഉപയോഗിക്കുക:'; +$labels['nextstep'] = 'അടുത്ത പടി'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'വിപുലീക്രിതമായ ക്രമീകരണങ്ങള്'; +$labels['body'] = 'ഉള്ളടക്കം'; +$labels['address'] = 'മേല്വിലാസം'; +$labels['envelope'] = 'എന്വലപ്പ്'; +$labels['modifier'] = 'മോഡിഫയര്:'; +$labels['text'] = 'വാചകം'; +$labels['undecoded'] = 'ഡീക്കോഡ് ചെയ്യാത്തത് (റോ)'; +$labels['contenttype'] = 'ഉള്ളടക്കത്തിന്റെ തരം'; +$labels['modtype'] = 'തരം:'; +$labels['allparts'] = 'എല്ലാം'; +$labels['domain'] = 'ഡൊമൈന്'; +$labels['localpart'] = 'പ്രാദേശിക ഭാഗം'; +$labels['user'] = 'ഉപയോക്താവു്'; +$labels['detail'] = 'വിശദാംശം'; +$labels['comparator'] = 'താരതമ്യകന്:'; +$labels['default'] = 'സഹജമായ'; +$labels['octet'] = 'കര്ശനം (octet)'; +$labels['asciicasemap'] = 'വലിയ-ചെറിയക്ഷരങ്ങള് തമ്മില് വ്യത്യാസമില്ലാത്ത (ascii-casemap)'; +$labels['asciinumeric'] = 'സംഖ്യകള് (ascii-numeric)'; +$labels['filterunknownerror'] = 'അജ്ഞാതമായ സെര്വ്വര് പിശക്.'; +$labels['filterconnerror'] = 'സെര്വ്വറുമായി ബന്ധപ്പെടാന് സാധിക്കുന്നില്ല.'; +$labels['filterdeleteerror'] = 'അരിപ്പ മായ്ക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['filterdeleted'] = 'അരിപ്പ വിജകരമായി മായ്ച്ചു.'; +$labels['filtersaved'] = 'അരിപ്പ വിജകരമായി സൂക്ഷിച്ചു.'; +$labels['filtersaveerror'] = 'അരിപ്പ സൂക്ഷിക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['filterdeleteconfirm'] = 'തെരഞ്ഞെടുത്ത അരിപ്പ നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$labels['ruledeleteconfirm'] = 'തെരഞ്ഞെടുത്ത നിയമം നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$labels['actiondeleteconfirm'] = 'തെരഞ്ഞെടുത്ത പ്രവര്ത്തി നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$labels['forbiddenchars'] = 'ഫില്ഡില് സാധുവല്ലാത്ത അക്ഷരങ്ങള്.'; +$labels['cannotbeempty'] = 'ഫീല്ഡ് ശൂന്യമാകാന് പാടില്ല.'; +$labels['ruleexist'] = 'ഈ പേരിലുള്ള അരിപ്പ ഇപ്പോള് തന്നെ ഉണ്ട്.'; +$labels['setactivateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ പ്രവര്ത്തനസജ്ജമാക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['setdeactivateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ പ്രവര്ത്തനരഹിതമാക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['setdeleteerror'] = 'തെരഞ്ഞെടുത്ത അരിപ്പയുടെ കൂട്ടത്തെ മായ്ക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['setactivated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി പ്രവര്ത്തനസജ്ജമാക്കി.'; +$labels['setdeactivated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി പ്രവര്ത്തനരഹിതമാക്കി.'; +$labels['setdeleted'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി മായ്ച്ചു.'; +$labels['setdeleteconfirm'] = 'തെരഞ്ഞെടുത്ത അരിപ്പകളുടെ കൂട്ടത്തെ നീക്കം ചെയ്യണമെന്ന് ഉറപ്പാണോ?'; +$labels['setcreateerror'] = 'അരിപ്പയുടെ കൂട്ടത്തെ നിര്മ്മിക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['setcreated'] = 'അരിപ്പകളുടെ കൂട്ടത്തെ വിജയകരമായി നിര്മ്മിച്ചു.'; +$labels['activateerror'] = 'അരിപ്പ (കള്) പ്രവര്ത്തനസജ്ജം ആക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം!'; +$labels['deactivateerror'] = 'അരിപ്പ (കള്) നിര്വീര്യം ആക്കാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം!'; +$labels['activated'] = 'അരിപ്പകള് നിര്വീര്യം ആക്കപ്പെട്ടിരിക്കുന്നു'; +$labels['deactivated'] = 'അരിപ്പ വിജകരമായി പ്രവര്ത്തനസജ്ജമാക്കി.'; +$labels['moved'] = 'അരിപ്പ വിജകരമായി മാറ്റി.'; +$labels['moveerror'] = 'തെരഞ്ഞെടുത്ത അരിപ്പ മാറ്റാന് സാധിച്ചില്ല. സേവകനില് കുഴപ്പം.'; +$labels['nametoolong'] = 'പേരിന് നീളം കൂടുതല്.'; +$labels['namereserved'] = 'നീക്കിവെച്ച വാക്ക്.'; +$labels['setexist'] = 'കൂട്ടം നേരത്തെ തന്നെ ഉണ്ട്.'; +$labels['nodata'] = 'ഒരു സ്ഥാനമെങ്കിലും തെരഞ്ഞെടുക്കണം!'; + diff --git a/webmail/plugins/managesieve/localization/mr_IN.inc b/webmail/plugins/managesieve/localization/mr_IN.inc new file mode 100644 index 0000000..3339737 --- /dev/null +++ b/webmail/plugins/managesieve/localization/mr_IN.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'चाळण्या'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Add filter'; +$labels['filterdel'] = 'Delete filter'; +$labels['moveup'] = 'वर हलवा'; +$labels['movedown'] = 'खाली हलवा'; +$labels['filterallof'] = 'खालील सर्व नियम जुळत आहेत'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'सर्व संदेश'; +$labels['filtercontains'] = 'contains'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'च्या बरोबर आहे'; +$labels['filterisnot'] = 'च्या बरोबर नाही'; +$labels['filterexists'] = 'अस्तित्वात आहे'; +$labels['filternotexists'] = 'अस्तित्वात नाही'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'खाली'; +$labels['filterover'] = 'वरती'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'संदेश काढून टाका'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = 'खालील कृती आमलात आणा :'; +$labels['add'] = 'समावेश करा'; +$labels['del'] = 'नष्ट करा'; +$labels['sender'] = 'प्रेषक'; +$labels['recipient'] = 'Recipient'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'active'; +$labels['none'] = 'none'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Name too long.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/nb_NO.inc b/webmail/plugins/managesieve/localization/nb_NO.inc new file mode 100644 index 0000000..c2c17b2 --- /dev/null +++ b/webmail/plugins/managesieve/localization/nb_NO.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtre'; +$labels['managefilters'] = 'Rediger filter for innkommende e-post'; +$labels['filtername'] = 'Filternavn'; +$labels['newfilter'] = 'Nytt filter'; +$labels['filteradd'] = 'Legg til filter'; +$labels['filterdel'] = 'Slett filter'; +$labels['moveup'] = 'Flytt opp'; +$labels['movedown'] = 'Flytt ned'; +$labels['filterallof'] = 'som treffer alle følgende regler'; +$labels['filteranyof'] = 'som treffer en av følgende regler'; +$labels['filterany'] = 'alle meldinger'; +$labels['filtercontains'] = 'inneholder'; +$labels['filternotcontains'] = 'ikke inneholder'; +$labels['filteris'] = 'er lik'; +$labels['filterisnot'] = 'er ulik'; +$labels['filterexists'] = 'eksisterer'; +$labels['filternotexists'] = 'ikke eksisterer'; +$labels['filtermatches'] = 'treffer uttrykk'; +$labels['filternotmatches'] = 'ikke treffer uttrykk'; +$labels['filterregex'] = 'treffer regulært uttrykk'; +$labels['filternotregex'] = 'ikke treffer regulært uttrykk'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Legg til regel'; +$labels['delrule'] = 'Slett regel'; +$labels['messagemoveto'] = 'Flytt meldingen til'; +$labels['messageredirect'] = 'Videresend meldingen til'; +$labels['messagecopyto'] = 'Kopier meldingen til'; +$labels['messagesendcopy'] = 'Send en kopi av meldingen til'; +$labels['messagereply'] = 'Svar med melding'; +$labels['messagedelete'] = 'Slett melding'; +$labels['messagediscard'] = 'Avvis med melding'; +$labels['messagesrules'] = 'For innkommende e-post'; +$labels['messagesactions'] = '... gjør følgende:'; +$labels['add'] = 'Legg til'; +$labels['del'] = 'Slett'; +$labels['sender'] = 'Avsender'; +$labels['recipient'] = 'Mottaker'; +$labels['vacationaddresses'] = 'Liste med mottakeradresser (adskilt med komma):'; +$labels['vacationdays'] = 'Periode mellom meldinger (i dager):'; +$labels['vacationinterval'] = 'Periode mellom meldinger:'; +$labels['days'] = 'dager'; +$labels['seconds'] = 'sekunder'; +$labels['vacationreason'] = 'Innhold (begrunnelse for fravær)'; +$labels['vacationsubject'] = 'Meldingsemne:'; +$labels['rulestop'] = 'Stopp evaluering av regler'; +$labels['enable'] = 'Aktiver/Deaktiver'; +$labels['filterset'] = 'Filtersett'; +$labels['filtersets'] = 'Filtersett'; +$labels['filtersetadd'] = 'Nytt filtersett'; +$labels['filtersetdel'] = 'Slett gjeldende filtersett'; +$labels['filtersetact'] = 'Aktiver gjeldende filtersett'; +$labels['filtersetdeact'] = 'Deaktiver gjeldende filtersett'; +$labels['filterdef'] = 'Filterdefinisjon'; +$labels['filtersetname'] = 'Navn på filtersett'; +$labels['newfilterset'] = 'Nytt filtersett'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'ingen'; +$labels['fromset'] = 'fra sett'; +$labels['fromfile'] = 'fra fil'; +$labels['filterdisabled'] = 'Filter deaktivert'; +$labels['countisgreaterthan'] = 'antall er flere enn'; +$labels['countisgreaterthanequal'] = 'antall er flere enn eller lik'; +$labels['countislessthan'] = 'antall er færre enn'; +$labels['countislessthanequal'] = 'antall er færre enn eller lik'; +$labels['countequals'] = 'antall er lik'; +$labels['countnotequals'] = 'antall er ulik'; +$labels['valueisgreaterthan'] = 'verdien er høyrere enn'; +$labels['valueisgreaterthanequal'] = 'verdien er høyere eller lik'; +$labels['valueislessthan'] = 'verdien er lavere enn'; +$labels['valueislessthanequal'] = 'verdien er lavere eller lik'; +$labels['valueequals'] = 'verdien er lik'; +$labels['valuenotequals'] = 'verdien er ulik'; +$labels['setflags'] = 'Sett meldingsflagg'; +$labels['addflags'] = 'Legg til flagg på meldingen'; +$labels['removeflags'] = 'Fjern flagg fra meldingen'; +$labels['flagread'] = 'Lese'; +$labels['flagdeleted'] = 'Slettet'; +$labels['flaganswered'] = 'Besvart'; +$labels['flagflagged'] = 'Flagget'; +$labels['flagdraft'] = 'Utkast'; +$labels['setvariable'] = 'Set variabel'; +$labels['setvarname'] = 'Variabelnavn:'; +$labels['setvarvalue'] = 'Variabel verdi:'; +$labels['setvarmodifiers'] = 'Modifikator:'; +$labels['varlower'] = 'med små bokstaver'; +$labels['varupper'] = 'med store bokstaver'; +$labels['varlowerfirst'] = 'første tegn liten bokstav'; +$labels['varupperfirst'] = 'første tegn stor bokstav'; +$labels['varquotewildcard'] = 'sitér spesialtegn'; +$labels['varlength'] = 'lengde'; +$labels['notify'] = 'Send melding'; +$labels['notifyaddress'] = 'Til e-postadresse:'; +$labels['notifybody'] = 'Varseltekst:'; +$labels['notifysubject'] = 'Varselemne:'; +$labels['notifyfrom'] = 'Varselavsender:'; +$labels['notifyimportance'] = 'Viktighet:'; +$labels['notifyimportancelow'] = 'lav'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'høy'; +$labels['filtercreate'] = 'Opprett filter'; +$labels['usedata'] = 'Bruk følgende data i filteret:'; +$labels['nextstep'] = 'Neste steg'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Avanserte alternativer'; +$labels['body'] = 'Meldingstekst'; +$labels['address'] = 'adresse'; +$labels['envelope'] = 'konvolutt'; +$labels['modifier'] = 'modifikator:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'ikke dekodet (rå)'; +$labels['contenttype'] = 'innholdstype'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'alle'; +$labels['domain'] = 'domene'; +$labels['localpart'] = 'lokal del (local part)'; +$labels['user'] = 'bruker'; +$labels['detail'] = 'detalj'; +$labels['comparator'] = 'sammenligning:'; +$labels['default'] = 'standard'; +$labels['octet'] = 'streng (oktett)'; +$labels['asciicasemap'] = 'ikke skill store og små bokstaver (ascii-casemap)'; +$labels['asciinumeric'] = 'numerisk (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Ukjent problem med tjener.'; +$messages['filterconnerror'] = 'Kunne ikke koble til tjeneren.'; +$messages['filterdeleteerror'] = 'Kunne ikke slette filter. Det dukket opp en feil på tjeneren.'; +$messages['filterdeleted'] = 'Filteret er blitt slettet.'; +$messages['filtersaved'] = 'Filteret er blitt lagret.'; +$messages['filtersaveerror'] = 'Kunne ikke lagre filteret. Det dukket opp en feil på tjeneren.'; +$messages['filterdeleteconfirm'] = 'Vil du virkelig slette det valgte filteret?'; +$messages['ruledeleteconfirm'] = 'Er du sikker på at du vil slette valgte regel?'; +$messages['actiondeleteconfirm'] = 'Er du sikker på at du vil slette valgte hendelse?'; +$messages['forbiddenchars'] = 'Ugyldige tegn i felt.'; +$messages['cannotbeempty'] = 'Feltet kan ikke stå tomt.'; +$messages['ruleexist'] = 'Det finnes allerede et filter med dette navnet.'; +$messages['setactivateerror'] = 'Kunne ikke aktivere det valgte filtersettet. Det oppsto en tjenerfeil.'; +$messages['setdeactivateerror'] = 'Kunne ikke deaktivere det valgte filtersettet. Det oppsto en tjenerfeil.'; +$messages['setdeleteerror'] = 'Kunne ikke slette det valgte filtersettet. Det oppsto en tjenerfeil.'; +$messages['setactivated'] = 'Filtersett aktivert.'; +$messages['setdeactivated'] = 'Filtersett deaktivert.'; +$messages['setdeleted'] = 'Filtersett slettet.'; +$messages['setdeleteconfirm'] = 'Er du sikker på at du vil slette det valgte filtersettet?'; +$messages['setcreateerror'] = 'Kunne ikke opprette filtersettet. Det oppsto en tjenerfeil.'; +$messages['setcreated'] = 'Filtersett opprettet.'; +$messages['activateerror'] = 'Kunne ikke skru på valgte filter. Det oppsto en tjenerfeil.'; +$messages['deactivateerror'] = 'Kunne ikke skru av valgte filter. Det oppsto en tjenerfeil.'; +$messages['deactivated'] = 'Filter skrudd på.'; +$messages['activated'] = 'Filter skrudd av.'; +$messages['moved'] = 'Filter ble flyttet.'; +$messages['moveerror'] = 'Kunne ikke flytte valgte filter. Det oppsto en tjenerfeil.'; +$messages['nametoolong'] = 'Navnet er for langt.'; +$messages['namereserved'] = 'Navnet er reservert.'; +$messages['setexist'] = 'Settet eksisterer allerede.'; +$messages['nodata'] = 'Du må velge minst én posisjon!'; + +?> diff --git a/webmail/plugins/managesieve/localization/nl_NL.inc b/webmail/plugins/managesieve/localization/nl_NL.inc new file mode 100644 index 0000000..1fd6eee --- /dev/null +++ b/webmail/plugins/managesieve/localization/nl_NL.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filters'; +$labels['managefilters'] = 'Beheer filters voor inkomende e-mail'; +$labels['filtername'] = 'Filternaam'; +$labels['newfilter'] = 'Nieuw filter'; +$labels['filteradd'] = 'Filter toevoegen'; +$labels['filterdel'] = 'Verwijder filter'; +$labels['moveup'] = 'Verplaats omhoog'; +$labels['movedown'] = 'Verplaats omlaag'; +$labels['filterallof'] = 'die voldoet aan alle volgende regels'; +$labels['filteranyof'] = 'die voldoet aan één van de volgende regels'; +$labels['filterany'] = 'alle berichten'; +$labels['filtercontains'] = 'bevat'; +$labels['filternotcontains'] = 'bevat niet'; +$labels['filteris'] = 'is gelijk aan'; +$labels['filterisnot'] = 'is niet gelijk aan'; +$labels['filterexists'] = 'bestaat'; +$labels['filternotexists'] = 'bestaat niet'; +$labels['filtermatches'] = 'komt overeen met expressie'; +$labels['filternotmatches'] = 'komt niet overeen met expressie'; +$labels['filterregex'] = 'komt overeen met de reguliere expressie'; +$labels['filternotregex'] = 'komt niet overeen met de reguliere expressie'; +$labels['filterunder'] = 'onder'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Regel toevoegen'; +$labels['delrule'] = 'Regel verwijderen'; +$labels['messagemoveto'] = 'Verplaats bericht naar'; +$labels['messageredirect'] = 'Bericht doorsturen naar'; +$labels['messagecopyto'] = 'Kopieer bericht naar'; +$labels['messagesendcopy'] = 'Verstuur een kopie naar'; +$labels['messagereply'] = 'Beantwoord met bericht'; +$labels['messagedelete'] = 'Verwijder bericht'; +$labels['messagediscard'] = 'Met bericht negeren'; +$labels['messagesrules'] = 'Voor binnenkomende e-mail:'; +$labels['messagesactions'] = '...voer de volgende acties uit'; +$labels['add'] = 'Toevoegen'; +$labels['del'] = 'Verwijderen'; +$labels['sender'] = 'Afzender'; +$labels['recipient'] = 'Ontvanger'; +$labels['vacationaddresses'] = 'Aanvullende lijst van geadresseerden (gescheiden met komma\'s):'; +$labels['vacationdays'] = 'Hoe vaak moet een bericht verstuurd worden (in dagen):'; +$labels['vacationinterval'] = 'Hoe vaak moet een bericht verstuurd worden:'; +$labels['days'] = 'dagen'; +$labels['seconds'] = 'seconden'; +$labels['vacationreason'] = 'Bericht (vakantiereden):'; +$labels['vacationsubject'] = 'Onderwerp:'; +$labels['rulestop'] = 'Stop met regels uitvoeren'; +$labels['enable'] = 'In-/uitschakelen'; +$labels['filterset'] = 'Filterverzameling'; +$labels['filtersets'] = 'Filterverzamelingen'; +$labels['filtersetadd'] = 'Nieuwe filterverzameling'; +$labels['filtersetdel'] = 'Verwijder filterverzameling'; +$labels['filtersetact'] = 'Huidige filterverzameling activeren'; +$labels['filtersetdeact'] = 'Huidige filterverzameling uitschakelen'; +$labels['filterdef'] = 'Filterdefinitie'; +$labels['filtersetname'] = 'Filterverzamelingnaam'; +$labels['newfilterset'] = 'Nieuwe filterverzameling'; +$labels['active'] = 'actief'; +$labels['none'] = 'geen'; +$labels['fromset'] = 'van verzameling'; +$labels['fromfile'] = 'van bestand'; +$labels['filterdisabled'] = 'Filter uitgeschakeld'; +$labels['countisgreaterthan'] = 'aantal is groter dan'; +$labels['countisgreaterthanequal'] = 'aantal is groter dan of gelijk aan'; +$labels['countislessthan'] = 'aantal is kleiner dan'; +$labels['countislessthanequal'] = 'aantal is kleiner dan of gelijk aan'; +$labels['countequals'] = 'aantal is gelijk aan'; +$labels['countnotequals'] = 'aantal is niet gelijk aan'; +$labels['valueisgreaterthan'] = 'waarde is groter dan'; +$labels['valueisgreaterthanequal'] = 'waarde is groter dan of gelijk aan'; +$labels['valueislessthan'] = 'waarde is minder dan'; +$labels['valueislessthanequal'] = 'waarde is minder dan of gelijk aan'; +$labels['valueequals'] = 'waarde is gelijk aan'; +$labels['valuenotequals'] = 'waarde is niet gelijk aan'; +$labels['setflags'] = 'Stel markeringen in op bericht'; +$labels['addflags'] = 'Voeg markeringen toe aan bericht'; +$labels['removeflags'] = 'Verwijder markeringen van bericht'; +$labels['flagread'] = 'Lezen'; +$labels['flagdeleted'] = 'Verwijderd'; +$labels['flaganswered'] = 'Beantwoord'; +$labels['flagflagged'] = 'Gemarkeerd'; +$labels['flagdraft'] = 'Concept'; +$labels['setvariable'] = 'Variabele instellen'; +$labels['setvarname'] = 'Naam variabele:'; +$labels['setvarvalue'] = 'Waarde:'; +$labels['setvarmodifiers'] = 'Waarde wijzigen:'; +$labels['varlower'] = 'kleine letters'; +$labels['varupper'] = 'hoofdletters'; +$labels['varlowerfirst'] = 'eerste karakter als kleine letter'; +$labels['varupperfirst'] = 'eerste karakter als hoofdletter'; +$labels['varquotewildcard'] = 'speciale karakters quoten'; +$labels['varlength'] = 'lengte'; +$labels['notify'] = 'Stuur melding'; +$labels['notifyaddress'] = 'Naar e-mailadres:'; +$labels['notifybody'] = 'Meldingsbericht:'; +$labels['notifysubject'] = 'Onderwerp van melding:'; +$labels['notifyfrom'] = 'Afzender:'; +$labels['notifyimportance'] = 'Prioriteit:'; +$labels['notifyimportancelow'] = 'laag'; +$labels['notifyimportancenormal'] = 'normaal'; +$labels['notifyimportancehigh'] = 'hoog'; +$labels['filtercreate'] = 'Filter aanmaken'; +$labels['usedata'] = 'Gebruik de volgende gegevens in het filter:'; +$labels['nextstep'] = 'Volgende stap'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Geavanceerde opties'; +$labels['body'] = 'Inhoud'; +$labels['address'] = 'adres'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'toets op:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'Alle'; +$labels['domain'] = 'domein'; +$labels['localpart'] = 'lokaal gedeelte'; +$labels['user'] = 'gebruiker'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'vergelijkingswijze:'; +$labels['default'] = 'standaard'; +$labels['octet'] = 'strikt (octet)'; +$labels['asciicasemap'] = 'hoofdletterongevoelig (ascii-casemap)'; +$labels['asciinumeric'] = 'numeriek (ascii-numeriek)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Onbekende fout'; +$messages['filterconnerror'] = 'Kan geen verbinding maken met de managesieve server'; +$messages['filterdeleteerror'] = 'Kan filter niet verwijderen. Er is een fout opgetreden'; +$messages['filterdeleted'] = 'Filter succesvol verwijderd'; +$messages['filtersaved'] = 'Filter succesvol opgeslagen'; +$messages['filtersaveerror'] = 'Kan filter niet opslaan. Er is een fout opgetreden.'; +$messages['filterdeleteconfirm'] = 'Weet je zeker dat je het geselecteerde filter wilt verwijderen?'; +$messages['ruledeleteconfirm'] = 'Weet je zeker dat je de geselecteerde regel wilt verwijderen?'; +$messages['actiondeleteconfirm'] = 'Weet je zeker dat je de geselecteerde actie wilt verwijderen?'; +$messages['forbiddenchars'] = 'Verboden karakters in het veld'; +$messages['cannotbeempty'] = 'Veld mag niet leeg zijn'; +$messages['ruleexist'] = 'Er bestaat al een filter met deze naam.'; +$messages['setactivateerror'] = 'Filterverzameling kon niet geactiveerd worden. Er trad een serverfout op.'; +$messages['setdeactivateerror'] = 'Filterverzameling kon niet gedeactiveerd worden. Er trad een serverfout op.'; +$messages['setdeleteerror'] = 'Filterverzameling kon niet verwijderd worden. Er trad een serverfout op.'; +$messages['setactivated'] = 'Filterset succesvol geactiveerd.'; +$messages['setdeactivated'] = 'Filterverzameling succesvol gedeactiveerd.'; +$messages['setdeleted'] = 'Filterverzameling succesvol verwijderd.'; +$messages['setdeleteconfirm'] = 'Weet u zeker dat u de geselecteerde filterset wilt verwijderen?'; +$messages['setcreateerror'] = 'Filterverzameling kon niet aangemaakt worden. Er trad een serverfout op.'; +$messages['setcreated'] = 'Filterverzameling succesvol aangemaakt.'; +$messages['activateerror'] = 'Geselecteerde filter(s) konden niet ingeschakeld worden. Er trad een serverfout op.'; +$messages['deactivateerror'] = 'Geselecteerde filter(s) konden niet uitgeschakeld worden. Er trad een serverfout op.'; +$messages['deactivated'] = 'Filter(s) succesvol ingeschakeld.'; +$messages['activated'] = 'Filter(s) succesvol uitgeschakeld.'; +$messages['moved'] = 'Filter succesvol verplaatst.'; +$messages['moveerror'] = 'Geselecteerde filter(s) konden niet verplaatst worden. Er trad een serverfout op.'; +$messages['nametoolong'] = 'Naam is te lang.'; +$messages['namereserved'] = 'Gereserveerde naam.'; +$messages['setexist'] = 'Set bestaat al.'; +$messages['nodata'] = 'Tenminste één positie moet geselecteerd worden!'; + +?> diff --git a/webmail/plugins/managesieve/localization/nn_NO.inc b/webmail/plugins/managesieve/localization/nn_NO.inc new file mode 100644 index 0000000..18bf8b9 --- /dev/null +++ b/webmail/plugins/managesieve/localization/nn_NO.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filter'; +$labels['managefilters'] = 'Rediger filter for innkommande e-post'; +$labels['filtername'] = 'Filternamn'; +$labels['newfilter'] = 'Nytt filter'; +$labels['filteradd'] = 'Legg til filter'; +$labels['filterdel'] = 'Slett filter'; +$labels['moveup'] = 'Flytt opp'; +$labels['movedown'] = 'Flytt ned'; +$labels['filterallof'] = 'som treffer alle følgjande regler'; +$labels['filteranyof'] = 'som treffer ein av følgjande regler'; +$labels['filterany'] = 'alle meldingar'; +$labels['filtercontains'] = 'inneheld'; +$labels['filternotcontains'] = 'ikkje inneheld'; +$labels['filteris'] = 'er lik'; +$labels['filterisnot'] = 'er ikkje lik'; +$labels['filterexists'] = 'eksisterer'; +$labels['filternotexists'] = 'ikkje eksisterer'; +$labels['filtermatches'] = 'treffer uttrykk'; +$labels['filternotmatches'] = 'ikkje treffer uttrykk'; +$labels['filterregex'] = 'treffer regulært uttrykk'; +$labels['filternotregex'] = 'ikkje treffer regulært uttrykk'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Legg til regel'; +$labels['delrule'] = 'Slett regel'; +$labels['messagemoveto'] = 'Flytt meldinga til'; +$labels['messageredirect'] = 'Vidaresend meldinga til'; +$labels['messagecopyto'] = 'Kopier meldinga til'; +$labels['messagesendcopy'] = 'Send ein kopi av meldinga til'; +$labels['messagereply'] = 'Svar med melding'; +$labels['messagedelete'] = 'Slett melding'; +$labels['messagediscard'] = 'Avvis med melding'; +$labels['messagesrules'] = 'For innkommande e-post'; +$labels['messagesactions'] = '…gjer følgjande:'; +$labels['add'] = 'Legg til'; +$labels['del'] = 'Slett'; +$labels['sender'] = 'Avsendar'; +$labels['recipient'] = 'Mottakar'; +$labels['vacationaddresses'] = 'Liste med mottakaradresser (komma-separert):'; +$labels['vacationdays'] = 'Periode mellom meldingar (i dagar):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Innhald (grunngjeving for fråvær)'; +$labels['vacationsubject'] = 'Meldingsemne:'; +$labels['rulestop'] = 'Stopp evaluering av regler'; +$labels['enable'] = 'Aktiver/Deaktiver'; +$labels['filterset'] = 'Filtersett'; +$labels['filtersets'] = 'Filtersett'; +$labels['filtersetadd'] = 'Nytt filtersett'; +$labels['filtersetdel'] = 'Slett gjeldande filtersett'; +$labels['filtersetact'] = 'Aktiver gjeldande filtersett'; +$labels['filtersetdeact'] = 'Deaktiver gjeldande filtersett'; +$labels['filterdef'] = 'Filterdefinisjon'; +$labels['filtersetname'] = 'Namn på filtersett'; +$labels['newfilterset'] = 'Nytt filtersett'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'ingen'; +$labels['fromset'] = 'frå sett'; +$labels['fromfile'] = 'frå fil'; +$labels['filterdisabled'] = 'Filter deaktivert'; +$labels['countisgreaterthan'] = 'mengd er fleire enn'; +$labels['countisgreaterthanequal'] = 'mengd er fleire enn eller lik'; +$labels['countislessthan'] = 'mengd er færre enn'; +$labels['countislessthanequal'] = 'mengd er færre enn eller lik'; +$labels['countequals'] = 'mengd er lik'; +$labels['countnotequals'] = 'mengd er ulik'; +$labels['valueisgreaterthan'] = 'verdien er høgare enn'; +$labels['valueisgreaterthanequal'] = 'verdien er høgare eller lik'; +$labels['valueislessthan'] = 'verdien er lågare enn'; +$labels['valueislessthanequal'] = 'verdien er lågare eller lik'; +$labels['valueequals'] = 'verdien er lik'; +$labels['valuenotequals'] = 'verdien er ulik'; +$labels['setflags'] = 'Sett meldingsflagg'; +$labels['addflags'] = 'Legg til flagg på meldinga'; +$labels['removeflags'] = 'Fjern flagg fra meldinga'; +$labels['flagread'] = 'Lese'; +$labels['flagdeleted'] = 'Sletta'; +$labels['flaganswered'] = 'Svart på'; +$labels['flagflagged'] = 'Flagga'; +$labels['flagdraft'] = 'Skisse'; +$labels['setvariable'] = 'Sett variabel:'; +$labels['setvarname'] = 'Variabelnamn:'; +$labels['setvarvalue'] = 'Variabelverdi:'; +$labels['setvarmodifiers'] = 'Modifikator:'; +$labels['varlower'] = 'med små bokstavar'; +$labels['varupper'] = 'med store bokstavar'; +$labels['varlowerfirst'] = 'med liten forbokstav'; +$labels['varupperfirst'] = 'med stor forbokstav'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'lengde'; +$labels['notify'] = 'Send varsel'; +$labels['notifyaddress'] = 'Til e-postadresse:'; +$labels['notifybody'] = 'Varseltekst:'; +$labels['notifysubject'] = 'Varselemne:'; +$labels['notifyfrom'] = 'Varselavsendar:'; +$labels['notifyimportance'] = 'Betyding:'; +$labels['notifyimportancelow'] = 'låg'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'høg'; +$labels['filtercreate'] = 'Opprett filter'; +$labels['usedata'] = 'Bruk følgande data i filteret:'; +$labels['nextstep'] = 'Neste steg'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Avanserte val'; +$labels['body'] = 'Meldingstekst'; +$labels['address'] = 'adresse'; +$labels['envelope'] = 'konvolutt'; +$labels['modifier'] = 'modifikator:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'ikkje dekoda (rå)'; +$labels['contenttype'] = 'innhaldstype'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'alle'; +$labels['domain'] = 'domene'; +$labels['localpart'] = 'lokal del (local part)'; +$labels['user'] = 'brukar'; +$labels['detail'] = 'detalj'; +$labels['comparator'] = 'samanlikning:'; +$labels['default'] = 'standard'; +$labels['octet'] = 'streng (oktett)'; +$labels['asciicasemap'] = 'ikkje skil mellom store og små bokstavar (ascii-casemap)'; +$labels['asciinumeric'] = 'numerisk (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Ukjent problem med tenar.'; +$messages['filterconnerror'] = 'Kunne ikkje kople til tenaren.'; +$messages['filterdeleteerror'] = 'Kunne ikkje slette filter. Det oppstod ein feil på tenaren.'; +$messages['filterdeleted'] = 'Filteret er blitt sletta.'; +$messages['filtersaved'] = 'Filteret er blitt lagra.'; +$messages['filtersaveerror'] = 'Kunne ikkje lagre filteret. Det oppstod ein feil på tenaren.'; +$messages['filterdeleteconfirm'] = 'Vil du verkeleg slette det valde filteret?'; +$messages['ruledeleteconfirm'] = 'Er du sikker på at du vil slette vald regel?'; +$messages['actiondeleteconfirm'] = 'Er du sikker på at du vil slette vald hending?'; +$messages['forbiddenchars'] = 'Ugyldige teikn i felt.'; +$messages['cannotbeempty'] = 'Feltet kan ikkje stå tomt.'; +$messages['ruleexist'] = 'Det finst alt eit filter med dette namnet.'; +$messages['setactivateerror'] = 'Kunne ikkje aktivere det valde filtersettet. Det oppsto ein tenarfeil.'; +$messages['setdeactivateerror'] = 'Kunne ikkje deaktivere det valde filtersettet. Det oppsto ein tenarfeil.'; +$messages['setdeleteerror'] = 'Kunne ikkje slette det valde filtersettet. Det oppsto ein tenarfeil.'; +$messages['setactivated'] = 'Filtersett aktivert.'; +$messages['setdeactivated'] = 'Filtersett deaktivert.'; +$messages['setdeleted'] = 'Filtersett sletta.'; +$messages['setdeleteconfirm'] = 'Er du sikker på at du vil slette det valde filtersettet?'; +$messages['setcreateerror'] = 'Kunne ikkje opprette filtersettet. Det oppstod ein tenarfeil.'; +$messages['setcreated'] = 'Filtersett oppretta.'; +$messages['activateerror'] = 'Kunne ikkje skru på valde filter. Det oppstod ein tenarfeil.'; +$messages['deactivateerror'] = 'Kunne ikkje skru av valde filter. Det oppstod ein tenarfeil.'; +$messages['deactivated'] = 'Filter skrudd på.'; +$messages['activated'] = 'Filter skrudd av.'; +$messages['moved'] = 'Filter vart flytta.'; +$messages['moveerror'] = 'Kunne ikkje flytte valde filter. Det oppstod ein tenarfeil.'; +$messages['nametoolong'] = 'Namnet er for langt.'; +$messages['namereserved'] = 'Namnet er reservert.'; +$messages['setexist'] = 'Settet eksisterer alt.'; +$messages['nodata'] = 'Du må velje minst éin posisjon!'; + +?> diff --git a/webmail/plugins/managesieve/localization/pl_PL.inc b/webmail/plugins/managesieve/localization/pl_PL.inc new file mode 100644 index 0000000..9a6b70d --- /dev/null +++ b/webmail/plugins/managesieve/localization/pl_PL.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtry'; +$labels['managefilters'] = 'Zarządzaj filtrami wiadomości przychodzących'; +$labels['filtername'] = 'Nazwa filtru'; +$labels['newfilter'] = 'Nowy filtr'; +$labels['filteradd'] = 'Dodaj filtr'; +$labels['filterdel'] = 'Usuń filtr'; +$labels['moveup'] = 'W górę'; +$labels['movedown'] = 'W dół'; +$labels['filterallof'] = 'spełniających wszystkie poniższe kryteria'; +$labels['filteranyof'] = 'spełniających dowolne z poniższych kryteriów'; +$labels['filterany'] = 'wszystkich'; +$labels['filtercontains'] = 'zawiera'; +$labels['filternotcontains'] = 'nie zawiera'; +$labels['filteris'] = 'jest równe'; +$labels['filterisnot'] = 'nie jest równe'; +$labels['filterexists'] = 'istnieje'; +$labels['filternotexists'] = 'nie istnieje'; +$labels['filtermatches'] = 'pasuje do wyrażenia'; +$labels['filternotmatches'] = 'nie pasuje do wyrażenia'; +$labels['filterregex'] = 'pasuje do wyrażenia regularnego'; +$labels['filternotregex'] = 'nie pasuje do wyrażenia regularnego'; +$labels['filterunder'] = 'poniżej'; +$labels['filterover'] = 'ponad'; +$labels['addrule'] = 'Dodaj regułę'; +$labels['delrule'] = 'Usuń regułę'; +$labels['messagemoveto'] = 'Przenieś wiadomość do'; +$labels['messageredirect'] = 'Przekaż wiadomość na konto'; +$labels['messagecopyto'] = 'Skopiuj wiadomość do'; +$labels['messagesendcopy'] = 'Wyślij kopię do'; +$labels['messagereply'] = 'Odpowiedz wiadomością o treści'; +$labels['messagedelete'] = 'Usuń wiadomość'; +$labels['messagediscard'] = 'Odrzuć z komunikatem'; +$labels['messagesrules'] = 'W stosunku do przychodzących wiadomości:'; +$labels['messagesactions'] = '...wykonaj następujące czynności:'; +$labels['add'] = 'Dodaj'; +$labels['del'] = 'Usuń'; +$labels['sender'] = 'Nadawca'; +$labels['recipient'] = 'Odbiorca'; +$labels['vacationaddresses'] = 'Lista dodatkowych adresów odbiorców (oddzielonych przecinkami):'; +$labels['vacationdays'] = 'Częstotliwość wysyłania wiadomości (w dniach):'; +$labels['vacationinterval'] = 'Jak często wysyłać wiadomości:'; +$labels['days'] = 'dni'; +$labels['seconds'] = 'sekundy'; +$labels['vacationreason'] = 'Treść (przyczyna nieobecności):'; +$labels['vacationsubject'] = 'Temat wiadomości:'; +$labels['rulestop'] = 'Przerwij przetwarzanie reguł'; +$labels['enable'] = 'Włącz/Wyłącz'; +$labels['filterset'] = 'Zbiór filtrów'; +$labels['filtersets'] = 'Zbiory fitrów'; +$labels['filtersetadd'] = 'Dodaj zbiór filtrów'; +$labels['filtersetdel'] = 'Usuń bieżący zbiór filtrów'; +$labels['filtersetact'] = 'Aktywuj bieżący zbiór filtrów'; +$labels['filtersetdeact'] = 'Deaktywuj bieżący zbiór filtrów'; +$labels['filterdef'] = 'Definicja filtra'; +$labels['filtersetname'] = 'Nazwa zbioru'; +$labels['newfilterset'] = 'Nowy zbiór filtrów'; +$labels['active'] = 'aktywny'; +$labels['none'] = 'brak'; +$labels['fromset'] = 'ze zbioru'; +$labels['fromfile'] = 'z pliku'; +$labels['filterdisabled'] = 'Filtr wyłączony'; +$labels['countisgreaterthan'] = 'ilość jest większa od'; +$labels['countisgreaterthanequal'] = 'ilość jest równa lub większa od'; +$labels['countislessthan'] = 'ilość jest mniejsza od'; +$labels['countislessthanequal'] = 'ilość jest równa lub mniejsza od'; +$labels['countequals'] = 'ilość jest równa'; +$labels['countnotequals'] = 'ilość jest różna od'; +$labels['valueisgreaterthan'] = 'wartość jest większa od'; +$labels['valueisgreaterthanequal'] = 'wartość jest równa lub większa od'; +$labels['valueislessthan'] = 'wartość jest mniejsza od'; +$labels['valueislessthanequal'] = 'wartość jest równa lub mniejsza od'; +$labels['valueequals'] = 'wartość jest równa'; +$labels['valuenotequals'] = 'wartość jest różna od'; +$labels['setflags'] = 'Ustaw flagi wiadomości'; +$labels['addflags'] = 'Dodaj flagi do wiadomości'; +$labels['removeflags'] = 'Usuń flagi wiadomości'; +$labels['flagread'] = 'Przeczytana'; +$labels['flagdeleted'] = 'Usunięta'; +$labels['flaganswered'] = 'Z odpowiedzią'; +$labels['flagflagged'] = 'Oflagowana'; +$labels['flagdraft'] = 'Szkic'; +$labels['setvariable'] = 'Ustaw zmienną'; +$labels['setvarname'] = 'Nazwa zmiennej:'; +$labels['setvarvalue'] = 'Wartość zmiennej:'; +$labels['setvarmodifiers'] = 'Modyfikatory:'; +$labels['varlower'] = 'małe litery'; +$labels['varupper'] = 'wielkie litery'; +$labels['varlowerfirst'] = 'pierwsza mała litera'; +$labels['varupperfirst'] = 'pierwsza wielka litera'; +$labels['varquotewildcard'] = 'zamień znaki specjalne'; +$labels['varlength'] = 'długość'; +$labels['notify'] = 'Wyślij powiadomienie'; +$labels['notifyaddress'] = 'Na adres e-mail:'; +$labels['notifybody'] = 'Treść powiadomienia:'; +$labels['notifysubject'] = 'Tytuł powiadomienia:'; +$labels['notifyfrom'] = 'Nadawca powiadomienia:'; +$labels['notifyimportance'] = 'Priorytet:'; +$labels['notifyimportancelow'] = 'niski'; +$labels['notifyimportancenormal'] = 'ormalny'; +$labels['notifyimportancehigh'] = 'wysoki'; +$labels['filtercreate'] = 'Utwórz filtr'; +$labels['usedata'] = 'Użyj następujących danych do utworzenia filtra:'; +$labels['nextstep'] = 'Następny krok'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Zaawansowane opcje'; +$labels['body'] = 'Treść'; +$labels['address'] = 'adres'; +$labels['envelope'] = 'koperta (envelope)'; +$labels['modifier'] = 'modyfikator:'; +$labels['text'] = 'tekst'; +$labels['undecoded'] = 'nie (raw)'; +$labels['contenttype'] = 'typ części (content type)'; +$labels['modtype'] = 'typ:'; +$labels['allparts'] = 'wszystkie'; +$labels['domain'] = 'domena'; +$labels['localpart'] = 'część lokalna'; +$labels['user'] = 'użytkownik'; +$labels['detail'] = 'detal'; +$labels['comparator'] = 'komparator:'; +$labels['default'] = 'domyślny'; +$labels['octet'] = 'dokładny (octet)'; +$labels['asciicasemap'] = 'nierozróżniający wielkości liter (ascii-casemap)'; +$labels['asciinumeric'] = 'numeryczny (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Nieznany błąd serwera.'; +$messages['filterconnerror'] = 'Nie można nawiązać połączenia z serwerem.'; +$messages['filterdeleteerror'] = 'Nie można usunąć filtra. Błąd serwera.'; +$messages['filterdeleted'] = 'Filtr został usunięty pomyślnie.'; +$messages['filtersaved'] = 'Filtr został zapisany pomyślnie.'; +$messages['filtersaveerror'] = 'Nie można zapisać filtra. Wystąpił błąd serwera.'; +$messages['filterdeleteconfirm'] = 'Czy na pewno chcesz usunąć wybrany filtr?'; +$messages['ruledeleteconfirm'] = 'Czy na pewno chcesz usunąć wybraną regułę?'; +$messages['actiondeleteconfirm'] = 'Czy na pewno usunąć wybraną akcję?'; +$messages['forbiddenchars'] = 'Pole zawiera niedozwolone znaki.'; +$messages['cannotbeempty'] = 'Pole nie może być puste.'; +$messages['ruleexist'] = 'Filtr o podanej nazwie już istnieje.'; +$messages['setactivateerror'] = 'Nie można aktywować wybranego zbioru filtrów. Błąd serwera.'; +$messages['setdeactivateerror'] = 'Nie można deaktywować wybranego zbioru filtrów. Błąd serwera.'; +$messages['setdeleteerror'] = 'Nie można usunąć wybranego zbioru filtrów. Błąd serwera.'; +$messages['setactivated'] = 'Zbiór filtrów został aktywowany pomyślnie.'; +$messages['setdeactivated'] = 'Zbiór filtrów został deaktywowany pomyślnie.'; +$messages['setdeleted'] = 'Zbiór filtrów został usunięty pomyślnie.'; +$messages['setdeleteconfirm'] = 'Czy na pewno chcesz usunąć wybrany zbiór filtrów?'; +$messages['setcreateerror'] = 'Nie można utworzyć zbioru filtrów. Błąd serwera.'; +$messages['setcreated'] = 'Zbiór filtrów został utworzony pomyślnie.'; +$messages['activateerror'] = 'Nie można włączyć wybranych filtrów. Błąd serwera.'; +$messages['deactivateerror'] = 'Nie można wyłączyć wybranych filtrów. Błąd serwera.'; +$messages['deactivated'] = 'Filtr(y) włączono pomyślnie.'; +$messages['activated'] = 'Filtr(y) wyłączono pomyślnie.'; +$messages['moved'] = 'Filter został przeniesiony pomyślnie.'; +$messages['moveerror'] = 'Nie można przenieść wybranego filtra. Błąd serwera.'; +$messages['nametoolong'] = 'Zbyt długa nazwa.'; +$messages['namereserved'] = 'Nazwa zarezerwowana.'; +$messages['setexist'] = 'Zbiór już istnieje.'; +$messages['nodata'] = 'Należy wybrać co najmniej jedną pozycję!'; + +?> diff --git a/webmail/plugins/managesieve/localization/pt_BR.inc b/webmail/plugins/managesieve/localization/pt_BR.inc new file mode 100644 index 0000000..9411193 --- /dev/null +++ b/webmail/plugins/managesieve/localization/pt_BR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Gerenciar filtros de entrada de e-mail'; +$labels['filtername'] = 'Nome do filtro'; +$labels['newfilter'] = 'Novo filtro'; +$labels['filteradd'] = 'Adicionar filtro'; +$labels['filterdel'] = 'Excluir filtro'; +$labels['moveup'] = 'Mover para cima'; +$labels['movedown'] = 'Mover para baixo'; +$labels['filterallof'] = 'casando todas as seguintes regras'; +$labels['filteranyof'] = 'casando qualquer das seguintes regras'; +$labels['filterany'] = 'todas as mensagens'; +$labels['filtercontains'] = 'contem'; +$labels['filternotcontains'] = 'não contem'; +$labels['filteris'] = 'é igual a'; +$labels['filterisnot'] = 'não é igual a'; +$labels['filterexists'] = 'existe'; +$labels['filternotexists'] = 'não existe'; +$labels['filtermatches'] = 'expressão combina'; +$labels['filternotmatches'] = 'expressão não combina'; +$labels['filterregex'] = 'combina com expressão regular'; +$labels['filternotregex'] = 'não combina com a expressão regular'; +$labels['filterunder'] = 'inferior a'; +$labels['filterover'] = 'superior a'; +$labels['addrule'] = 'Adicionar regra'; +$labels['delrule'] = 'Excluir regra'; +$labels['messagemoveto'] = 'Mover mensagem para'; +$labels['messageredirect'] = 'Redirecionar mensagem para'; +$labels['messagecopyto'] = 'Copiar mensagem para'; +$labels['messagesendcopy'] = 'Enviar cópia da mensagem para'; +$labels['messagereply'] = 'Responder com mensagem'; +$labels['messagedelete'] = 'Excluir mensagem'; +$labels['messagediscard'] = 'Descartar com mensagem'; +$labels['messagesrules'] = 'Para e-mails recebidos:'; +$labels['messagesactions'] = '...execute as seguintes ações:'; +$labels['add'] = 'Adicionar'; +$labels['del'] = 'Excluir'; +$labels['sender'] = 'Remetente'; +$labels['recipient'] = 'Destinatário'; +$labels['vacationaddresses'] = 'Lista adicional de e-mails destinatários (separado por vírgula):'; +$labels['vacationdays'] = 'Enviar mensagens com que frequência (em dias):'; +$labels['vacationinterval'] = 'Como geralmente enviam mensagens:'; +$labels['days'] = 'dias'; +$labels['seconds'] = 'segundos'; +$labels['vacationreason'] = 'Corpo da mensagem (motivo de férias):'; +$labels['vacationsubject'] = 'Título da mensagem:'; +$labels['rulestop'] = 'Parar de avaliar regras'; +$labels['enable'] = 'Habilitar/Desabilitar'; +$labels['filterset'] = 'Conjunto de filtros'; +$labels['filtersets'] = 'Conjuntos de filtro'; +$labels['filtersetadd'] = 'Adicionar conjunto de filtros'; +$labels['filtersetdel'] = 'Excluir conjunto de filtros atual'; +$labels['filtersetact'] = 'Ativar conjunto de filtros atual'; +$labels['filtersetdeact'] = 'Desativar conjunto de filtros atual'; +$labels['filterdef'] = 'Definição de filtro'; +$labels['filtersetname'] = 'Nome do conjunto de filtros'; +$labels['newfilterset'] = 'Novo conjunto de filtros'; +$labels['active'] = 'ativo'; +$labels['none'] = 'nenhum'; +$labels['fromset'] = 'Do conjunto'; +$labels['fromfile'] = 'Do arquivo'; +$labels['filterdisabled'] = 'Filtro desativado'; +$labels['countisgreaterthan'] = 'contagem é maior que'; +$labels['countisgreaterthanequal'] = 'contagem é maior ou igual a'; +$labels['countislessthan'] = 'contagem é menor que'; +$labels['countislessthanequal'] = 'contagem é menor ou igual a'; +$labels['countequals'] = 'contagem é igual a'; +$labels['countnotequals'] = 'contagem não é igual a'; +$labels['valueisgreaterthan'] = 'valor é maior que'; +$labels['valueisgreaterthanequal'] = 'valor é maior ou igual a'; +$labels['valueislessthan'] = 'valor é menor que'; +$labels['valueislessthanequal'] = 'valor é menor ou igual a'; +$labels['valueequals'] = 'valor é igual a'; +$labels['valuenotequals'] = 'valor não é igual a'; +$labels['setflags'] = 'Definir marcadores à mensagem'; +$labels['addflags'] = 'Adicionar marcadores à mensagem'; +$labels['removeflags'] = 'Remover marcadores da mensagem'; +$labels['flagread'] = 'Lida'; +$labels['flagdeleted'] = 'Excluída'; +$labels['flaganswered'] = 'Respondida'; +$labels['flagflagged'] = 'Marcada'; +$labels['flagdraft'] = 'Rascunho'; +$labels['setvariable'] = 'Definir variável'; +$labels['setvarname'] = 'Nome da variável:'; +$labels['setvarvalue'] = 'Valor da variável:'; +$labels['setvarmodifiers'] = 'Modificadores:'; +$labels['varlower'] = 'minúsculas'; +$labels['varupper'] = 'maiúsculas'; +$labels['varlowerfirst'] = 'primeiro caractere minúsculo'; +$labels['varupperfirst'] = 'primeiro caractere maiúsculo'; +$labels['varquotewildcard'] = 'caracteres especiais de citação'; +$labels['varlength'] = 'tamanho'; +$labels['notify'] = 'Enviar notificação'; +$labels['notifyaddress'] = 'Para endereço de e-mail:'; +$labels['notifybody'] = 'Corpo da notificação:'; +$labels['notifysubject'] = 'Título da notificação:'; +$labels['notifyfrom'] = 'Remetente da notificação:'; +$labels['notifyimportance'] = 'Importância'; +$labels['notifyimportancelow'] = 'baixa'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'alta'; +$labels['filtercreate'] = 'Criar filtro'; +$labels['usedata'] = 'Usar os seguintes dados no filtro:'; +$labels['nextstep'] = 'Próximo Passo'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opções avançadas'; +$labels['body'] = 'Corpo'; +$labels['address'] = 'endereço'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modificador:'; +$labels['text'] = 'texto'; +$labels['undecoded'] = 'decodificado (bruto)'; +$labels['contenttype'] = 'tipo de conteúdo'; +$labels['modtype'] = 'tipo:'; +$labels['allparts'] = 'todas'; +$labels['domain'] = 'domínio'; +$labels['localpart'] = 'parte local'; +$labels['user'] = 'usuário'; +$labels['detail'] = 'detalhes'; +$labels['comparator'] = 'comparador:'; +$labels['default'] = 'padrão'; +$labels['octet'] = 'estrito (octeto)'; +$labels['asciicasemap'] = 'caso insensível (mapa de caracteres ascii)'; +$labels['asciinumeric'] = 'numérico (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Erro desconhecido de servidor'; +$messages['filterconnerror'] = 'Não foi possível conectar ao servidor managesieve'; +$messages['filterdeleteerror'] = 'Não foi possível excluir filtro. Occorreu um erro de servidor'; +$messages['filterdeleted'] = 'Filtro excluído com sucesso'; +$messages['filtersaved'] = 'Filtro gravado com sucesso'; +$messages['filtersaveerror'] = 'Não foi possível gravar filtro. Occoreu um erro de servidor.'; +$messages['filterdeleteconfirm'] = 'Deseja realmente excluir o filtro selecionado?'; +$messages['ruledeleteconfirm'] = 'Deseja realmente excluir a regra selecionada?'; +$messages['actiondeleteconfirm'] = 'Deseja realmente excluir a ação selecionada?'; +$messages['forbiddenchars'] = 'Caracteres não permitidos no campo'; +$messages['cannotbeempty'] = 'Campo não pode ficar em branco'; +$messages['ruleexist'] = 'O filtro com o nome especificado já existe.'; +$messages['setactivateerror'] = 'Não foi possível ativar o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setdeactivateerror'] = 'Não foi possível desativar o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setdeleteerror'] = 'Não foi possível excluir o conjunto de filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setactivated'] = 'Conjunto de filtros ativados com sucesso.'; +$messages['setdeactivated'] = 'Conjunto de filtros desativados com sucesso.'; +$messages['setdeleted'] = 'Conjunto de filtros excluídos com sucesso.'; +$messages['setdeleteconfirm'] = 'Você está certo que deseja excluir o conjunto de filtros selecionados?'; +$messages['setcreateerror'] = 'Não foi possível criar o conjunto de filtros. Ocorreu um erro no servidor.'; +$messages['setcreated'] = 'Conjunto de filtros criado com sucesso.'; +$messages['activateerror'] = 'Não foi possível habilitar o(s) filtro(s) selecionado(s). Ocorreu um erro no servidor.'; +$messages['deactivateerror'] = 'Não foi possível desabilitar o(s) filtro(s) selecionado(s). Ocorreu um erro no servidor.'; +$messages['deactivated'] = 'Filtro(s) habilitado(s) com sucesso.'; +$messages['activated'] = 'Filtro(s) desabilitado(s) com sucesso.'; +$messages['moved'] = 'Filtro movido com sucesso.'; +$messages['moveerror'] = 'Não foi possível mover o filtro selecionado. Ocorreu um erro no servidor.'; +$messages['nametoolong'] = 'Nome muito longo.'; +$messages['namereserved'] = 'Nome reservado.'; +$messages['setexist'] = 'Conjunto já existe.'; +$messages['nodata'] = 'Pelo menos uma posição precisa ser selecionada!'; + +?> diff --git a/webmail/plugins/managesieve/localization/pt_PT.inc b/webmail/plugins/managesieve/localization/pt_PT.inc new file mode 100644 index 0000000..bfb3f29 --- /dev/null +++ b/webmail/plugins/managesieve/localization/pt_PT.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtros'; +$labels['managefilters'] = 'Gerir filtros'; +$labels['filtername'] = 'Nome do filtro'; +$labels['newfilter'] = 'Novo filtro'; +$labels['filteradd'] = 'Adicionar filtro'; +$labels['filterdel'] = 'Eliminar filtro'; +$labels['moveup'] = 'Mover para cima'; +$labels['movedown'] = 'Mover para baixo'; +$labels['filterallof'] = 'corresponde a todas as seguintes regras'; +$labels['filteranyof'] = 'corresponde a uma das seguintes regras'; +$labels['filterany'] = 'todas as mensagens'; +$labels['filtercontains'] = 'contém'; +$labels['filternotcontains'] = 'não contém'; +$labels['filteris'] = 'é igual a'; +$labels['filterisnot'] = 'é diferente de'; +$labels['filterexists'] = 'existe'; +$labels['filternotexists'] = 'não existe'; +$labels['filtermatches'] = 'expressão corresponde'; +$labels['filternotmatches'] = 'expressão não corresponde'; +$labels['filterregex'] = 'corresponde à expressão'; +$labels['filternotregex'] = 'não corresponde à expressão'; +$labels['filterunder'] = 'é inferior a'; +$labels['filterover'] = 'é superior a'; +$labels['addrule'] = 'Adicionar regra'; +$labels['delrule'] = 'Eliminar regra'; +$labels['messagemoveto'] = 'Mover mensagem para'; +$labels['messageredirect'] = 'Redirecionar mensagem para'; +$labels['messagecopyto'] = 'Copiar mensagem para'; +$labels['messagesendcopy'] = 'Enviar cópia da mensagem para'; +$labels['messagereply'] = 'Responder com a mensagem'; +$labels['messagedelete'] = 'Eliminar mensagem'; +$labels['messagediscard'] = 'Rejeitar mensagem'; +$labels['messagesrules'] = 'Regras para Filtros'; +$labels['messagesactions'] = 'Acções para Filtros'; +$labels['add'] = 'Adicionar'; +$labels['del'] = 'Eliminar'; +$labels['sender'] = 'Remetente'; +$labels['recipient'] = 'Destinatário'; +$labels['vacationaddresses'] = 'Lista adicional de destinatários de e-mails (separados por vírgula):'; +$labels['vacationdays'] = 'Enviar mensagens com que frequência (em dias):'; +$labels['vacationinterval'] = 'Com que frequência envia mensagens:'; +$labels['days'] = 'dias'; +$labels['seconds'] = 'segundos'; +$labels['vacationreason'] = 'Conteúdo da mensagem (motivo da ausência):'; +$labels['vacationsubject'] = 'Assunto da mensagem:'; +$labels['rulestop'] = 'Parar de avaliar regras'; +$labels['enable'] = 'Activar/Desactivar'; +$labels['filterset'] = 'Filtros definidos'; +$labels['filtersets'] = 'Filtros definidos'; +$labels['filtersetadd'] = 'Adicionar definição de filtros'; +$labels['filtersetdel'] = 'Eliminar definição de filtros actuais'; +$labels['filtersetact'] = 'Activar definição de filtros actuais'; +$labels['filtersetdeact'] = 'Desactivar definição de filtros actuais'; +$labels['filterdef'] = 'Definição de filtros'; +$labels['filtersetname'] = 'Nome da definição de filtros'; +$labels['newfilterset'] = 'Nova definição de filtros'; +$labels['active'] = 'activo'; +$labels['none'] = 'nehnum'; +$labels['fromset'] = 'definição de'; +$labels['fromfile'] = 'a partir do ficheiro'; +$labels['filterdisabled'] = 'Filtro desactivado'; +$labels['countisgreaterthan'] = 'contagem é maior que'; +$labels['countisgreaterthanequal'] = 'contagem é maior ou igual a'; +$labels['countislessthan'] = 'contagem é menor que'; +$labels['countislessthanequal'] = 'contagem é menor ou igual a'; +$labels['countequals'] = 'contagem é igual a'; +$labels['countnotequals'] = 'contagem é diferente de'; +$labels['valueisgreaterthan'] = 'valor é maior que'; +$labels['valueisgreaterthanequal'] = 'valor é maior ou igual a'; +$labels['valueislessthan'] = 'valor é menor que'; +$labels['valueislessthanequal'] = 'valor é menor ou igual a'; +$labels['valueequals'] = 'valor é igual a'; +$labels['valuenotequals'] = 'valor diferente de'; +$labels['setflags'] = 'Definir indicadores para a mensagem'; +$labels['addflags'] = 'Adicionar indicadores para a mensagem'; +$labels['removeflags'] = 'Eliminar indicadores da mensagem'; +$labels['flagread'] = 'Lida'; +$labels['flagdeleted'] = 'Eliminada'; +$labels['flaganswered'] = 'Respondida'; +$labels['flagflagged'] = 'Marcada'; +$labels['flagdraft'] = 'Rascunho'; +$labels['setvariable'] = 'Definir variável'; +$labels['setvarname'] = 'Nome da Variável:'; +$labels['setvarvalue'] = 'Valor da Variável:'; +$labels['setvarmodifiers'] = 'Modificadores:'; +$labels['varlower'] = 'minúscula'; +$labels['varupper'] = 'maiúscula'; +$labels['varlowerfirst'] = 'primeira letra em minúscula'; +$labels['varupperfirst'] = 'primeira letra em maiúscula'; +$labels['varquotewildcard'] = 'citar caracteres especiais'; +$labels['varlength'] = 'tamanho'; +$labels['notify'] = 'Enviar notificação'; +$labels['notifyaddress'] = 'Endereço de E-mail to:'; +$labels['notifybody'] = 'Corpo de Notificação:'; +$labels['notifysubject'] = 'Assunto Notificação:'; +$labels['notifyfrom'] = 'Remetente Notificação:'; +$labels['notifyimportance'] = 'Importância:'; +$labels['notifyimportancelow'] = 'baixa'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'alta'; +$labels['filtercreate'] = 'Criar filtro'; +$labels['usedata'] = 'Usar os seguintes dados no filtro:'; +$labels['nextstep'] = 'Próximo passo'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opções avançadas'; +$labels['body'] = 'Corpo'; +$labels['address'] = 'endereço'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modificador:'; +$labels['text'] = 'Texto'; +$labels['undecoded'] = 'não descodificado (raw)'; +$labels['contenttype'] = 'tipo de conteúdo'; +$labels['modtype'] = 'tipo:'; +$labels['allparts'] = 'todos'; +$labels['domain'] = 'domínio'; +$labels['localpart'] = 'parte local'; +$labels['user'] = 'utilizador'; +$labels['detail'] = 'detalhe'; +$labels['comparator'] = 'Comparador'; +$labels['default'] = 'predefinido'; +$labels['octet'] = 'estrito (octeto)'; +$labels['asciicasemap'] = 'não sensível a maiúsculas/minúsculas (caracteres ascii)'; +$labels['asciinumeric'] = 'numérico (numérico ascii)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Erro de servidor desconhecido'; +$messages['filterconnerror'] = 'Não é possível ligar ao servidor Sieve'; +$messages['filterdeleteerror'] = 'Não foi possível eliminar o filtro. Erro no servidor'; +$messages['filterdeleted'] = 'Filtro eliminado com sucesso'; +$messages['filtersaved'] = 'Filtro guardado com sucesso'; +$messages['filtersaveerror'] = 'Não foi possível guardar o filtro. Erro no servidor'; +$messages['filterdeleteconfirm'] = 'Tem a certeza que pretende eliminar este filtro?'; +$messages['ruledeleteconfirm'] = 'Tem a certeza que pretende eliminar esta regra?'; +$messages['actiondeleteconfirm'] = 'Tem a certeza que pretende eliminar esta acção?'; +$messages['forbiddenchars'] = 'Caracteres inválidos no campo.'; +$messages['cannotbeempty'] = 'Este campo não pode estar vazio.'; +$messages['ruleexist'] = 'Já existe um Filtro com o nome especificado.'; +$messages['setactivateerror'] = 'Não foi possível ativar os filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setdeactivateerror'] = 'Não foi possível desativar os filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setdeleteerror'] = 'Não foi possível eliminar os filtros selecionados. Ocorreu um erro no servidor.'; +$messages['setactivated'] = 'Filtros ativados com sucesso.'; +$messages['setdeactivated'] = 'Filtros desativados com sucesso.'; +$messages['setdeleted'] = 'Filtros eliminados com sucesso.'; +$messages['setdeleteconfirm'] = 'Tem a certeza que pretende eliminar os filtros selecionados?'; +$messages['setcreateerror'] = 'Não foi possível criar o conjunto de filtros. Ocorreu um erro no servidor.'; +$messages['setcreated'] = 'Conjunto de filtros criado com sucesso.'; +$messages['activateerror'] = 'Não foi possível ativar os filtros selecionados. Ocorreu um erro no servidor.'; +$messages['deactivateerror'] = 'Não foi possível desativar os filtros selecionados. Ocorreu um erro no servidor.'; +$messages['deactivated'] = 'Filtro(s) ativado(s) com sucesso.'; +$messages['activated'] = 'Filtro(s) desativado(s) com sucesso.'; +$messages['moved'] = 'Filtro movido com sucesso.'; +$messages['moveerror'] = 'Não foi possível mover o filtro selecionado. Ocorreu um erro no servidor.'; +$messages['nametoolong'] = 'Nome demasiado longo.'; +$messages['namereserved'] = 'Nome invertido.'; +$messages['setexist'] = 'O conjunto já existe.'; +$messages['nodata'] = 'Deve selecionar pelo menos uma posição.'; + +?> diff --git a/webmail/plugins/managesieve/localization/ro_RO.inc b/webmail/plugins/managesieve/localization/ro_RO.inc new file mode 100644 index 0000000..5eb7186 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ro_RO.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtre'; +$labels['managefilters'] = 'Administrează filtrele pentru mesaje primite.'; +$labels['filtername'] = 'Nume filtru'; +$labels['newfilter'] = 'Filtru nou.'; +$labels['filteradd'] = 'Adaugă un filtru'; +$labels['filterdel'] = 'Şterge filtru.'; +$labels['moveup'] = 'Mută mai sus'; +$labels['movedown'] = 'Mută mai jos'; +$labels['filterallof'] = 'se potriveşte cu toate din regulile următoare'; +$labels['filteranyof'] = 'se potriveşte cu oricare din regulile următoare'; +$labels['filterany'] = 'toate mesajele'; +$labels['filtercontains'] = 'conține'; +$labels['filternotcontains'] = 'nu conţine'; +$labels['filteris'] = 'este egal cu'; +$labels['filterisnot'] = 'este diferit de'; +$labels['filterexists'] = 'există'; +$labels['filternotexists'] = 'nu există'; +$labels['filtermatches'] = 'se potriveşte cu expresia'; +$labels['filternotmatches'] = 'nu se potriveşte cu expresia'; +$labels['filterregex'] = 'se potriveşte cu expresia regulată'; +$labels['filternotregex'] = 'nu se potriveşte cu expresia regulată'; +$labels['filterunder'] = 'sub'; +$labels['filterover'] = 'peste'; +$labels['addrule'] = 'Adaugă regula'; +$labels['delrule'] = 'Şterge regula'; +$labels['messagemoveto'] = 'Mută mesajul în'; +$labels['messageredirect'] = 'Redirecţionează mesajul către'; +$labels['messagecopyto'] = 'Copiază mesajul în'; +$labels['messagesendcopy'] = 'Trimite o copie a mesajului către'; +$labels['messagereply'] = 'Răspunde cu mesajul'; +$labels['messagedelete'] = 'Şterge mesajul'; +$labels['messagediscard'] = 'Respinge cu mesajul'; +$labels['messagesrules'] = 'Pentru e-mail primit:'; +$labels['messagesactions'] = '...execută următoarele acţiuni:'; +$labels['add'] = 'Adaugă'; +$labels['del'] = 'Șterge'; +$labels['sender'] = 'Expeditor'; +$labels['recipient'] = 'Destinatar'; +$labels['vacationaddr'] = 'My additional e-mail addresse(s):'; +$labels['vacationdays'] = 'Cât de des să trimit mesajele (în zile):'; +$labels['vacationinterval'] = 'Cât de des să trimit mesaje:'; +$labels['days'] = 'zile'; +$labels['seconds'] = 'secunde'; +$labels['vacationreason'] = 'Corpul mesajului (motivul vacanţei):'; +$labels['vacationsubject'] = 'Subiectul mesajului:'; +$labels['rulestop'] = 'Nu mai evalua reguli'; +$labels['enable'] = 'Activează/Dezactivează'; +$labels['filterset'] = 'Filtre setate'; +$labels['filtersets'] = 'Filtrul setează'; +$labels['filtersetadd'] = 'Adaugă set de filtre'; +$labels['filtersetdel'] = 'Şterge setul curent de filtre'; +$labels['filtersetact'] = 'Activează setul curent de filtre'; +$labels['filtersetdeact'] = 'Dezactivează setul curent de filtre'; +$labels['filterdef'] = 'Definiţie filtru'; +$labels['filtersetname'] = 'Nume set filtre'; +$labels['newfilterset'] = 'Set filtre nou'; +$labels['active'] = 'activ'; +$labels['none'] = 'niciunul'; +$labels['fromset'] = 'din setul'; +$labels['fromfile'] = 'din fişier'; +$labels['filterdisabled'] = 'Filtru dezactivat'; +$labels['countisgreaterthan'] = 'numărul este mai mare ca'; +$labels['countisgreaterthanequal'] = 'numărul este mai mare sau egal cu'; +$labels['countislessthan'] = 'numărul este mai mic decât'; +$labels['countislessthanequal'] = 'numărul este mai mic sau egal cu'; +$labels['countequals'] = 'numărul este egal cu'; +$labels['countnotequals'] = 'numărul nu este egal cu'; +$labels['valueisgreaterthan'] = 'valoarea este egală cu'; +$labels['valueisgreaterthanequal'] = 'valoarea este mai mare sau egală cu'; +$labels['valueislessthan'] = 'valoarea este mai mică decât'; +$labels['valueislessthanequal'] = 'valoarea este mai mică sau egală cu'; +$labels['valueequals'] = 'valoarea este egală cu'; +$labels['valuenotequals'] = 'valoarea nu este egală cu'; +$labels['setflags'] = 'Pune marcaje mesajului'; +$labels['addflags'] = 'Adaugă marcaje mesajului'; +$labels['removeflags'] = 'Şterge marcajele mesajului'; +$labels['flagread'] = 'Citit'; +$labels['flagdeleted'] = 'Șters'; +$labels['flaganswered'] = 'Răspuns'; +$labels['flagflagged'] = 'Marcat'; +$labels['flagdraft'] = 'Schiță'; +$labels['setvariable'] = 'Setare variabilă'; +$labels['setvarname'] = 'Nume variabilă:'; +$labels['setvarvalue'] = 'Valoare variabilă:'; +$labels['setvarmodifiers'] = 'Modificatori:'; +$labels['varlower'] = 'cu litere mici'; +$labels['varupper'] = 'cu litere mari'; +$labels['varlowerfirst'] = 'primul caracter cu litre mici'; +$labels['varupperfirst'] = 'primul caracter cu litre mari'; +$labels['varquotewildcard'] = 'caracterele speciale în citat'; +$labels['varlength'] = 'lungime'; +$labels['notify'] = 'Notificare trimitere'; +$labels['notifyaddress'] = 'La adresa de e-mail'; +$labels['notifybody'] = 'Mesajul de notificare:'; +$labels['notifysubject'] = 'Subiectul notificării:'; +$labels['notifyfrom'] = 'Expeditorul notificării:'; +$labels['notifyimportance'] = 'Importanța:'; +$labels['notifyimportancelow'] = 'mică'; +$labels['notifyimportancenormal'] = 'normală'; +$labels['notifyimportancehigh'] = 'mare'; +$labels['filtercreate'] = 'Crează filtru'; +$labels['usedata'] = 'Foloseşte următoarele date în filtru:'; +$labels['nextstep'] = 'Următorul Pas'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Opţiuni avansate'; +$labels['body'] = 'Corp'; +$labels['address'] = 'adresă'; +$labels['envelope'] = 'plic'; +$labels['modifier'] = 'modificator:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'nedecodat (brut)'; +$labels['contenttype'] = 'tip conţinut'; +$labels['modtype'] = 'tip:'; +$labels['allparts'] = 'toate'; +$labels['domain'] = 'domeniu'; +$labels['localpart'] = 'partea locală'; +$labels['user'] = 'utilizator'; +$labels['detail'] = 'detaliu'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'implicit'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'ignoră majusculele (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Eroare necunoscută la server:'; +$messages['filterconnerror'] = 'Nu mă pot conecta la server.'; +$messages['filterdeleteerror'] = 'Nu pot şterge filtrul. S-a produs o eroare la server.'; +$messages['filterdeleted'] = 'Filtrul a fost şters cu succes.'; +$messages['filtersaved'] = 'Filtrul a fost salvat cu succes.'; +$messages['filtersaveerror'] = 'Nu am putut salva filtrul. S-a produs o eroare la server.'; +$messages['filterdeleteconfirm'] = 'Chiar vrei să ştergi filtrul selectat?'; +$messages['ruledeleteconfirm'] = 'Eşti sigur că vrei să ştergi regula selectată?'; +$messages['actiondeleteconfirm'] = 'Eşti sigur că vrei să ştergi acţiunea selectată?'; +$messages['forbiddenchars'] = 'Caractere nepermise în câmp.'; +$messages['cannotbeempty'] = 'Câmpul nu poate fi gol.'; +$messages['ruleexist'] = 'Filtrul cu numele specificat există deja.'; +$messages['setactivateerror'] = 'Nu pot activa setul de filtre selectat. S-a produs o eroare la server.'; +$messages['setdeactivateerror'] = 'Nu pot dezactiva setul de filtre selectat. S-a produs o eroare la server.'; +$messages['setdeleteerror'] = 'Nu pot şterge setul de filtre selectat. S-a produs o eroare la server.'; +$messages['setactivated'] = 'Setul de filtre activat cu succes.'; +$messages['setdeactivated'] = 'Setul de filtre dezactivat cu succes.'; +$messages['setdeleted'] = 'Setul de filtre şters cu succes.'; +$messages['setdeleteconfirm'] = 'Eşti sigur(ă) că vrei să ştergi setul de filtre selectat?'; +$messages['setcreateerror'] = 'Nu am putut crea setul de filtre. S-a produs o eroare la server.'; +$messages['setcreated'] = 'Setul de filtre creat cu succes.'; +$messages['activateerror'] = 'Nu am putut activa filtrele selectate. S-a produs o eroare la server.'; +$messages['deactivateerror'] = 'Nu am putut dezactiva filtrele selectate. S-a produs o eroare la server.'; +$messages['deactivated'] = 'Filtrele au fost activate cu succes.'; +$messages['activated'] = 'Filtrele au fost dezactivate cu succes.'; +$messages['moved'] = 'Filtrele au fost mutate cu succes.'; +$messages['moveerror'] = 'Nu am putut muta filtreele selectate. S-a produs o eroare la server.'; +$messages['nametoolong'] = 'Numele este prea lung.'; +$messages['namereserved'] = 'Nume rezervat.'; +$messages['setexist'] = 'Setul există deja.'; +$messages['nodata'] = 'Trebuie selectată cel putin o poziţie!'; + +?> diff --git a/webmail/plugins/managesieve/localization/ru_RU.inc b/webmail/plugins/managesieve/localization/ru_RU.inc new file mode 100644 index 0000000..fb3f113 --- /dev/null +++ b/webmail/plugins/managesieve/localization/ru_RU.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Фильтры'; +$labels['managefilters'] = 'Управление фильтрами для входящей почты'; +$labels['filtername'] = 'Название фильтра'; +$labels['newfilter'] = 'Новый фильтр'; +$labels['filteradd'] = 'Добавить фильтр'; +$labels['filterdel'] = 'Удалить фильтр'; +$labels['moveup'] = 'Сдвинуть вверх'; +$labels['movedown'] = 'Сдвинуть вниз'; +$labels['filterallof'] = 'соответствует всем указанным правилам'; +$labels['filteranyof'] = 'соответствует любому из указанных правил'; +$labels['filterany'] = 'все сообщения'; +$labels['filtercontains'] = 'содержит'; +$labels['filternotcontains'] = 'не содержит'; +$labels['filteris'] = 'соответствует'; +$labels['filterisnot'] = 'не соответствует'; +$labels['filterexists'] = 'существует'; +$labels['filternotexists'] = 'не существует'; +$labels['filtermatches'] = 'совпадает с выражением'; +$labels['filternotmatches'] = 'не совпадает с выражением'; +$labels['filterregex'] = 'совпадает с регулярным выражением'; +$labels['filternotregex'] = 'не совпадает с регулярным выражением'; +$labels['filterunder'] = 'меньше'; +$labels['filterover'] = 'больше'; +$labels['addrule'] = 'Добавить правило'; +$labels['delrule'] = 'Удалить правило'; +$labels['messagemoveto'] = 'Переместить сообщение в'; +$labels['messageredirect'] = 'Перенаправить сообщение на'; +$labels['messagecopyto'] = 'Скопировать сообщение в'; +$labels['messagesendcopy'] = 'Отправить копию сообщения на'; +$labels['messagereply'] = 'Ответить с сообщением'; +$labels['messagedelete'] = 'Удалить сообщение'; +$labels['messagediscard'] = 'Отбросить с сообщением'; +$labels['messagesrules'] = 'Для входящей почты:'; +$labels['messagesactions'] = '...выполнить следующие действия:'; +$labels['add'] = 'Добавить'; +$labels['del'] = 'Удалить'; +$labels['sender'] = 'Отправитель'; +$labels['recipient'] = 'Получатель'; +$labels['vacationaddresses'] = 'Список моих дополнительных адресов (разделённых запятыми):'; +$labels['vacationdays'] = 'Как часто отправлять сообщения (в днях):'; +$labels['vacationinterval'] = 'Как часто отправлять сообщения:'; +$labels['days'] = 'дней'; +$labels['seconds'] = 'секунд'; +$labels['vacationreason'] = 'Текст сообщения (причина отсутствия):'; +$labels['vacationsubject'] = 'Тема сообщения:'; +$labels['rulestop'] = 'Закончить выполнение'; +$labels['enable'] = 'Включить/Выключить'; +$labels['filterset'] = 'Набор фильтров'; +$labels['filtersets'] = 'Наборы фильтров'; +$labels['filtersetadd'] = 'Добавить набор фильтров'; +$labels['filtersetdel'] = 'Удалить текущий набор фильтров'; +$labels['filtersetact'] = 'Включить текущий набор фильтров'; +$labels['filtersetdeact'] = 'Отключить текущий набор фильтров'; +$labels['filterdef'] = 'Описание фильтра'; +$labels['filtersetname'] = 'Название набора фильтров'; +$labels['newfilterset'] = 'Новый набор фильтров'; +$labels['active'] = 'используется'; +$labels['none'] = 'нет'; +$labels['fromset'] = 'из набора'; +$labels['fromfile'] = 'из файла'; +$labels['filterdisabled'] = 'Отключить фильтр'; +$labels['countisgreaterthan'] = 'количество больше, чем'; +$labels['countisgreaterthanequal'] = 'количество больше или равно'; +$labels['countislessthan'] = 'количество меньше, чем'; +$labels['countislessthanequal'] = 'количество меньше или равно'; +$labels['countequals'] = 'количество равно'; +$labels['countnotequals'] = 'количество не равно'; +$labels['valueisgreaterthan'] = 'значение больше, чем'; +$labels['valueisgreaterthanequal'] = 'значение больше или равно'; +$labels['valueislessthan'] = 'значение меньше, чем'; +$labels['valueislessthanequal'] = 'значение меньше или равно'; +$labels['valueequals'] = 'значение равно'; +$labels['valuenotequals'] = 'значение не равно'; +$labels['setflags'] = 'Установить флаги на сообщение'; +$labels['addflags'] = 'Добавить флаги к сообщению'; +$labels['removeflags'] = 'Убрать флаги из сообщения'; +$labels['flagread'] = 'Прочитано'; +$labels['flagdeleted'] = 'Удалено'; +$labels['flaganswered'] = 'Отвечено'; +$labels['flagflagged'] = 'Помечено'; +$labels['flagdraft'] = 'Черновик'; +$labels['setvariable'] = 'Задать переменную'; +$labels['setvarname'] = 'Имя переменной:'; +$labels['setvarvalue'] = 'Значение переменной:'; +$labels['setvarmodifiers'] = 'Модификаторы:'; +$labels['varlower'] = 'нижний регистр'; +$labels['varupper'] = 'верхний регистр'; +$labels['varlowerfirst'] = 'первый символ в нижнем регистре'; +$labels['varupperfirst'] = 'первый символ в верхнем регистре'; +$labels['varquotewildcard'] = 'символ кавычек'; +$labels['varlength'] = 'длина'; +$labels['notify'] = 'Отправить уведомление'; +$labels['notifyaddress'] = 'На адрес электронной почты:'; +$labels['notifybody'] = 'Текст уведомления:'; +$labels['notifysubject'] = 'Тема уведомления:'; +$labels['notifyfrom'] = 'Отправитель уведомления:'; +$labels['notifyimportance'] = 'Важность:'; +$labels['notifyimportancelow'] = 'низкая'; +$labels['notifyimportancenormal'] = 'нормальная'; +$labels['notifyimportancehigh'] = 'высокая'; +$labels['filtercreate'] = 'Создать фильтр'; +$labels['usedata'] = 'Использовать следующие данные в фильтре:'; +$labels['nextstep'] = 'Далее'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Дополнительные параметры'; +$labels['body'] = 'Тело письма'; +$labels['address'] = 'адрес'; +$labels['envelope'] = 'конверт'; +$labels['modifier'] = 'модификатор области поиска:'; +$labels['text'] = 'текст'; +$labels['undecoded'] = 'необработанный (сырой)'; +$labels['contenttype'] = 'тип содержимого'; +$labels['modtype'] = 'поиск в адресах:'; +$labels['allparts'] = 'везде'; +$labels['domain'] = 'в имени домена'; +$labels['localpart'] = 'только в имени пользователя, без домена'; +$labels['user'] = 'в полном имени пользователя'; +$labels['detail'] = 'в дополнительных сведениях'; +$labels['comparator'] = 'способ сравнения:'; +$labels['default'] = 'по умолчанию'; +$labels['octet'] = 'Строгий (octet)'; +$labels['asciicasemap'] = 'Регистронезависимый (ascii-casemap)'; +$labels['asciinumeric'] = 'Числовой (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Неизвестная ошибка сервера'; +$messages['filterconnerror'] = 'Невозможно подсоединится к серверу фильтров'; +$messages['filterdeleteerror'] = 'Невозможно удалить фильтр. Ошибка сервера.'; +$messages['filterdeleted'] = 'Фильтр успешно удалён.'; +$messages['filtersaved'] = 'Фильтр успешно сохранён.'; +$messages['filtersaveerror'] = 'Невозможно сохранить фильтр. Ошибка сервера.'; +$messages['filterdeleteconfirm'] = 'Вы действительно хотите удалить фильтр?'; +$messages['ruledeleteconfirm'] = 'Вы уверенны, что хотите удалить это правило?'; +$messages['actiondeleteconfirm'] = 'Вы уверенны, что хотите удалить это действие?'; +$messages['forbiddenchars'] = 'Недопустимые символы в поле.'; +$messages['cannotbeempty'] = 'Поле не может быть пустым.'; +$messages['ruleexist'] = 'Фильтр с таким именем уже существует.'; +$messages['setactivateerror'] = 'Невозможно включить выбранный набор фильтров. Ошибка сервера.'; +$messages['setdeactivateerror'] = 'Невозможно отключить выбранный набор фильтров. Ошибка сервера.'; +$messages['setdeleteerror'] = 'Невозможно удалить выбранный набор фильтров. Ошибка сервера.'; +$messages['setactivated'] = 'Набор фильтров успешно включён.'; +$messages['setdeactivated'] = 'Набор фильтров успешно отключён.'; +$messages['setdeleted'] = 'Набор фильтров успешно удалён.'; +$messages['setdeleteconfirm'] = 'Вы уверены в том, что хотите удалить выбранный набор фильтров?'; +$messages['setcreateerror'] = 'Невозможно создать набор фильтров. Ошибка сервера.'; +$messages['setcreated'] = 'Набор фильтров успешно создан.'; +$messages['activateerror'] = 'Невозможно включить выбранный(е) фильтр(ы). Ошибка сервера.'; +$messages['deactivateerror'] = 'Невозможно выключить выбранный(е) фильтр(ы). Ошибка сервера.'; +$messages['deactivated'] = 'Фильтр(ы) успешно включен(ы).'; +$messages['activated'] = 'Фильтр(ы) успешно отключен(ы).'; +$messages['moved'] = 'Фильтр успешно перемещён.'; +$messages['moveerror'] = 'Невозможно переместить фильтр. Ошибка сервера.'; +$messages['nametoolong'] = 'Невозможно создать набор фильтров. Название слишком длинное.'; +$messages['namereserved'] = 'Зарезервированное имя.'; +$messages['setexist'] = 'Набор уже существует.'; +$messages['nodata'] = 'Нужно выбрать хотя бы одну позицию!'; + +?> diff --git a/webmail/plugins/managesieve/localization/si_LK.inc b/webmail/plugins/managesieve/localization/si_LK.inc new file mode 100644 index 0000000..afc2e38 --- /dev/null +++ b/webmail/plugins/managesieve/localization/si_LK.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'පෙරහණ'; +$labels['managefilters'] = 'Manage incoming mail filters'; +$labels['filtername'] = 'Filter name'; +$labels['newfilter'] = 'New filter'; +$labels['filteradd'] = 'Add filter'; +$labels['filterdel'] = 'Delete filter'; +$labels['moveup'] = 'ඉහළට ගෙනයන්න'; +$labels['movedown'] = 'පහළට ගෙනයන්න'; +$labels['filterallof'] = 'matching all of the following rules'; +$labels['filteranyof'] = 'matching any of the following rules'; +$labels['filterany'] = 'සියලු පණිවිඩ'; +$labels['filtercontains'] = 'අඩංගු'; +$labels['filternotcontains'] = 'not contains'; +$labels['filteris'] = 'is equal to'; +$labels['filterisnot'] = 'is not equal to'; +$labels['filterexists'] = 'exists'; +$labels['filternotexists'] = 'not exists'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'over'; +$labels['addrule'] = 'Add rule'; +$labels['delrule'] = 'Delete rule'; +$labels['messagemoveto'] = 'Move message to'; +$labels['messageredirect'] = 'Redirect message to'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Reply with message'; +$labels['messagedelete'] = 'පණිවිඩය මකන්න'; +$labels['messagediscard'] = 'Discard with message'; +$labels['messagesrules'] = 'For incoming mail:'; +$labels['messagesactions'] = '...execute the following actions:'; +$labels['add'] = 'එක් කරන්න'; +$labels['del'] = 'මකන්න'; +$labels['sender'] = 'යවන්නා'; +$labels['recipient'] = 'ලබන්නා'; +$labels['vacationaddresses'] = 'My additional e-mail addresse(s) (comma-separated):'; +$labels['vacationdays'] = 'How often send messages (in days):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Message body (vacation reason):'; +$labels['vacationsubject'] = 'පණිවිඩයේ මාතෘකාව:'; +$labels['rulestop'] = 'Stop evaluating rules'; +$labels['enable'] = 'සක්රීය කරන්න/අක්රීය කරන්න'; +$labels['filterset'] = 'Filters set'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Add filters set'; +$labels['filtersetdel'] = 'Delete current filters set'; +$labels['filtersetact'] = 'Activate current filters set'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Filter definition'; +$labels['filtersetname'] = 'Filters set name'; +$labels['newfilterset'] = 'New filters set'; +$labels['active'] = 'සක්රීය'; +$labels['none'] = 'කිසිවක් නැත'; +$labels['fromset'] = 'from set'; +$labels['fromfile'] = 'from file'; +$labels['filterdisabled'] = 'Filter disabled'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'කියවන්න'; +$labels['flagdeleted'] = 'මකන ලදී'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'කටු සටහන'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'මීලග පියවර'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'ලිපිනය'; +$labels['envelope'] = 'ලියුම් කවරය'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'වර්ගය:'; +$labels['allparts'] = 'සියල්ල'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Unknown server error.'; +$messages['filterconnerror'] = 'Unable to connect to server.'; +$messages['filterdeleteerror'] = 'Unable to delete filter. Server error occured.'; +$messages['filterdeleted'] = 'Filter deleted successfully.'; +$messages['filtersaved'] = 'Filter saved successfully.'; +$messages['filtersaveerror'] = 'Unable to save filter. Server error occured.'; +$messages['filterdeleteconfirm'] = 'Do you really want to delete selected filter?'; +$messages['ruledeleteconfirm'] = 'Are you sure, you want to delete selected rule?'; +$messages['actiondeleteconfirm'] = 'Are you sure, you want to delete selected action?'; +$messages['forbiddenchars'] = 'Forbidden characters in field.'; +$messages['cannotbeempty'] = 'Field cannot be empty.'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Unable to activate selected filters set. Server error occured.'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Unable to delete selected filters set. Server error occured.'; +$messages['setactivated'] = 'Filters set activated successfully.'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Filters set deleted successfully.'; +$messages['setdeleteconfirm'] = 'Are you sure, you want to delete selected filters set?'; +$messages['setcreateerror'] = 'Unable to create filters set. Server error occured.'; +$messages['setcreated'] = 'Filters set created successfully.'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'නම දිග වැඩිය.'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/sk_SK.inc b/webmail/plugins/managesieve/localization/sk_SK.inc new file mode 100644 index 0000000..f336cf2 --- /dev/null +++ b/webmail/plugins/managesieve/localization/sk_SK.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtre'; +$labels['managefilters'] = 'Správa filtrov príchádzajúcej pošty'; +$labels['filtername'] = 'Názov filtra'; +$labels['newfilter'] = 'Nový filter'; +$labels['filteradd'] = 'Pridaj filter'; +$labels['filterdel'] = 'Zmaž filter'; +$labels['moveup'] = 'Presuň vyššie'; +$labels['movedown'] = 'Presuň nižšie'; +$labels['filterallof'] = 'vyhovujúca všetkým z nasledujúcich pravidiel'; +$labels['filteranyof'] = 'vyhovujúca ľubovoľnému z nasledujúcich pravidiel'; +$labels['filterany'] = 'všetky správy'; +$labels['filtercontains'] = 'obsahuje'; +$labels['filternotcontains'] = 'neobsahuje'; +$labels['filteris'] = 'rovná sa'; +$labels['filterisnot'] = 'nerovná sa'; +$labels['filterexists'] = 'existuje'; +$labels['filternotexists'] = 'neexistuje'; +$labels['filtermatches'] = 'vyhovuje výrazu'; +$labels['filternotmatches'] = 'nevyhovuje výrazu'; +$labels['filterregex'] = 'vyhovuje regulárnemu výrazu'; +$labels['filternotregex'] = 'nevyhovuje regulárnemu výrazu'; +$labels['filterunder'] = 'pod'; +$labels['filterover'] = 'nad'; +$labels['addrule'] = 'Pridaj pravidlo'; +$labels['delrule'] = 'Zmaž pravidlo'; +$labels['messagemoveto'] = 'Presuň správu do'; +$labels['messageredirect'] = 'Presmeruj správu na'; +$labels['messagecopyto'] = 'Kopírovať správu do'; +$labels['messagesendcopy'] = 'Poslať kópiu správy'; +$labels['messagereply'] = 'Pošli automatickú odpoveď'; +$labels['messagedelete'] = 'Zmaž správu'; +$labels['messagediscard'] = 'Zmaž a pošli správu na'; +$labels['messagesrules'] = 'Pre prichádzajúcu poštu'; +$labels['messagesactions'] = 'vykonaj nasledovné akcie'; +$labels['add'] = 'Pridaj'; +$labels['del'] = 'Zmaž'; +$labels['sender'] = 'Odosielateľ'; +$labels['recipient'] = 'Adresát'; +$labels['vacationaddresses'] = 'Dodatoční príjemcovia správy (oddelení čiarkami):'; +$labels['vacationdays'] = 'Počet dní medzi odoslaním správy:'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Dôvod neprítomnosti:'; +$labels['vacationsubject'] = 'Predmet správy:'; +$labels['rulestop'] = 'Koniec pravidiel'; +$labels['enable'] = 'Povoliť/Zakázať'; +$labels['filterset'] = 'Sada filtrov'; +$labels['filtersets'] = 'Množiny filtrov'; +$labels['filtersetadd'] = 'Pridaj sadu filtrov'; +$labels['filtersetdel'] = 'Zmaž túto sadu filtrov'; +$labels['filtersetact'] = 'Aktivuj túto sadu filtrov'; +$labels['filtersetdeact'] = 'Deaktivuj túto sadu filtrov'; +$labels['filterdef'] = 'Definícia filtra'; +$labels['filtersetname'] = 'Názov sady filtrov'; +$labels['newfilterset'] = 'Nová sada filtrov'; +$labels['active'] = 'aktívna'; +$labels['none'] = 'žiadne'; +$labels['fromset'] = 'zo sady'; +$labels['fromfile'] = 'zo súboru'; +$labels['filterdisabled'] = 'Filter zakázaný'; +$labels['countisgreaterthan'] = 'počet je väčší ako'; +$labels['countisgreaterthanequal'] = 'počet je väčší alebo rovný ako'; +$labels['countislessthan'] = 'počet je menší ako'; +$labels['countislessthanequal'] = 'počet je menší alebo rovný ako'; +$labels['countequals'] = 'počet je rovný'; +$labels['countnotequals'] = 'počet sa nerovná'; +$labels['valueisgreaterthan'] = 'hodnota je väčšia ako'; +$labels['valueisgreaterthanequal'] = 'hodnota je väčšia alebo rovná ako'; +$labels['valueislessthan'] = 'hodnota je menšia ako'; +$labels['valueislessthanequal'] = 'hodnota je menšia alebo rovná'; +$labels['valueequals'] = 'hodnota je rovná'; +$labels['valuenotequals'] = 'hodnota je rôzna od'; +$labels['setflags'] = 'Nastaviť príznaky správy'; +$labels['addflags'] = 'Pridať príznak správy'; +$labels['removeflags'] = 'odstrániť príznaky zo správy'; +$labels['flagread'] = 'Prečítaný'; +$labels['flagdeleted'] = 'Zmazané'; +$labels['flaganswered'] = 'Odpovedané'; +$labels['flagflagged'] = 'Označené'; +$labels['flagdraft'] = 'Koncept'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Vytvoriť filter'; +$labels['usedata'] = 'Použiť tieto údaje vo filtri:'; +$labels['nextstep'] = 'Ďalší krok'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Rozšírené nastavenia'; +$labels['body'] = 'Telo'; +$labels['address'] = 'adresa'; +$labels['envelope'] = 'obálka'; +$labels['modifier'] = 'modifikátor:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'nedekódované (raw)'; +$labels['contenttype'] = 'typ obsahu'; +$labels['modtype'] = 'typ:'; +$labels['allparts'] = 'všetko'; +$labels['domain'] = 'doména'; +$labels['localpart'] = 'lokálna časť'; +$labels['user'] = 'užívateľ'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'porovnávač:'; +$labels['default'] = 'predvolené'; +$labels['octet'] = 'striktný (osmičkovo)'; +$labels['asciicasemap'] = 'nerozlišuje veľké a malé písmená (ascii tabuľka znakov)'; +$labels['asciinumeric'] = 'numerické (ascii čísla)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Neznáma chyba serveru'; +$messages['filterconnerror'] = 'Nepodarilo sa pripojiť k managesieve serveru'; +$messages['filterdeleteerror'] = 'Nepodarilo sa zmazať filter, server ohlásil chybu'; +$messages['filterdeleted'] = 'Filter bol zmazaný'; +$messages['filtersaved'] = 'Filter bol uložený'; +$messages['filtersaveerror'] = 'Nepodarilo sa uložiť filter, server ohlásil chybu'; +$messages['filterdeleteconfirm'] = 'Naozaj si prajete zmazať tento filter?'; +$messages['ruledeleteconfirm'] = 'Naozaj si prajete zamzať toto pravidlo?'; +$messages['actiondeleteconfirm'] = 'Naozaj si prajete zmazať túto akciu?'; +$messages['forbiddenchars'] = 'Pole obsahuje nepovolené znaky'; +$messages['cannotbeempty'] = 'Pole nemôže byť prázdne'; +$messages['ruleexist'] = 'Filter so zadaným menom už existuje.'; +$messages['setactivateerror'] = 'Nepodarilo sa aktivovať zvolenú sadu filtrov, server ohlásil chybu'; +$messages['setdeactivateerror'] = 'Nepodarilo sa deaktivovať zvolenú sadu filtrov, server ohlásil chybu'; +$messages['setdeleteerror'] = 'Nepodarilo sa zmazať zvolenú sadu filtrov, server ohlásil chybu'; +$messages['setactivated'] = 'Sada filtrov bola aktivovaná'; +$messages['setdeactivated'] = 'Sada filtrov bola deaktivovaná'; +$messages['setdeleted'] = 'Sada filtrov bola zmazaná'; +$messages['setdeleteconfirm'] = 'Naozaj si prajete zmazať túto sadu filtrov?'; +$messages['setcreateerror'] = 'Nepodarilo sa vytvoriť sadu filtrov, server ohlásil chybu'; +$messages['setcreated'] = 'Sada filtrov bola vytvorená'; +$messages['activateerror'] = 'Nepodarilo sa povoliť vybraný filter(e). Chyba servera.'; +$messages['deactivateerror'] = 'Nepodarilo sa vypnúť vybraný filter(e). Chyba servera.'; +$messages['deactivated'] = 'Filter(e) povolený.'; +$messages['activated'] = 'Filter(e) úspešne vypnutý.'; +$messages['moved'] = 'Filter presunutý.'; +$messages['moveerror'] = 'Nemôžem presunúť zvolený filter. Chyba servera.'; +$messages['nametoolong'] = 'Názov sady filtrov je príliš dlhý'; +$messages['namereserved'] = 'Rezervovaný názov.'; +$messages['setexist'] = 'Množina už existuje.'; +$messages['nodata'] = 'Aspoň jedna pozícia musí byť zvolená.'; + +?> diff --git a/webmail/plugins/managesieve/localization/sl_SI.inc b/webmail/plugins/managesieve/localization/sl_SI.inc new file mode 100644 index 0000000..d9da8ab --- /dev/null +++ b/webmail/plugins/managesieve/localization/sl_SI.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtri'; +$labels['managefilters'] = 'Uredi filtre za dohodno pošto'; +$labels['filtername'] = 'Ime filtra'; +$labels['newfilter'] = 'Nov filter'; +$labels['filteradd'] = 'Dodaj filter'; +$labels['filterdel'] = 'Izbriši filter'; +$labels['moveup'] = 'Pomakni se navzgor'; +$labels['movedown'] = 'Pomakni se navzdol'; +$labels['filterallof'] = 'izpolnjeni morajo biti vsi pogoji'; +$labels['filteranyof'] = 'izpolnjen mora biti vsaj eden od navedenih pogojev'; +$labels['filterany'] = 'pogoj velja za vsa sporočila'; +$labels['filtercontains'] = 'vsebuje'; +$labels['filternotcontains'] = 'ne vsebuje'; +$labels['filteris'] = 'je enak/a'; +$labels['filterisnot'] = 'ni enak/a'; +$labels['filterexists'] = 'obstaja'; +$labels['filternotexists'] = 'ne obstaja'; +$labels['filtermatches'] = 'ustreza izrazu'; +$labels['filternotmatches'] = 'ne ustreza izrazu'; +$labels['filterregex'] = 'ustreza regularnemu izrazu'; +$labels['filternotregex'] = 'ne ustreza regularnemu izrazu'; +$labels['filterunder'] = 'pod'; +$labels['filterover'] = 'nad'; +$labels['addrule'] = 'Dodaj pravilo'; +$labels['delrule'] = 'Izbriši pravilo'; +$labels['messagemoveto'] = 'Premakni sporočilo v'; +$labels['messageredirect'] = 'Preusmeri sporočilo v'; +$labels['messagecopyto'] = 'Kopiraj sporočila na'; +$labels['messagesendcopy'] = 'Pošlji kopijo sporočila na'; +$labels['messagereply'] = 'Odgovori s sporočilom'; +$labels['messagedelete'] = 'Izbriši sporočilo'; +$labels['messagediscard'] = 'Zavrži s sporočilom'; +$labels['messagesrules'] = 'Določi pravila za dohodno pošto:'; +$labels['messagesactions'] = '...izvrši naslednja dejanja:'; +$labels['add'] = 'Dodaj'; +$labels['del'] = 'Izbriši'; +$labels['sender'] = 'Pošiljatelj'; +$labels['recipient'] = 'Prejemnik'; +$labels['vacationaddresses'] = 'Dodaten seznam naslovov prejemnikov (ločenih z vejico):'; +$labels['vacationdays'] = 'Kako pogosto naj bodo sporočila poslana (v dnevih):'; +$labels['vacationinterval'] = 'Sporočila pošlji na:'; +$labels['days'] = 'dni'; +$labels['seconds'] = 'sekund'; +$labels['vacationreason'] = 'Vsebina sporočila (vzrok za odsotnost):'; +$labels['vacationsubject'] = 'Zadeva sporočila'; +$labels['rulestop'] = 'Prekini z izvajanjem pravil'; +$labels['enable'] = 'Omogoči/Onemogoči'; +$labels['filterset'] = 'Nastavitev filtrov'; +$labels['filtersets'] = 'Nastavitve filtrov'; +$labels['filtersetadd'] = 'Dodaj nastavitev filtrov'; +$labels['filtersetdel'] = 'Izbriši trenutne nastavitve filtriranja'; +$labels['filtersetact'] = 'Vključi trenutno nastavitev filtriranja'; +$labels['filtersetdeact'] = 'Onemogoči trenutno nastavitev filtriranja'; +$labels['filterdef'] = 'Opis filtra'; +$labels['filtersetname'] = 'Ime filtra'; +$labels['newfilterset'] = 'Nov filter'; +$labels['active'] = 'aktiven'; +$labels['none'] = 'brez'; +$labels['fromset'] = 'iz nastavitve'; +$labels['fromfile'] = 'iz dokumenta'; +$labels['filterdisabled'] = 'Filter onemogočen'; +$labels['countisgreaterthan'] = 'seštevek je večji od'; +$labels['countisgreaterthanequal'] = 'seštevek je večji ali enak'; +$labels['countislessthan'] = 'seštevek je manjši od'; +$labels['countislessthanequal'] = 'seštevel je manjši ali enak'; +$labels['countequals'] = 'seštevek je enak'; +$labels['countnotequals'] = 'seštevek ni enak'; +$labels['valueisgreaterthan'] = 'vrednost je večja od'; +$labels['valueisgreaterthanequal'] = 'vrednost je večja ali enaka'; +$labels['valueislessthan'] = 'vrednost je manjša od'; +$labels['valueislessthanequal'] = 'vrednost je manjša ali enaka'; +$labels['valueequals'] = 'vrednost je enaka'; +$labels['valuenotequals'] = 'vrednost je neenaka'; +$labels['setflags'] = 'Označi sporočilo'; +$labels['addflags'] = 'Označi sporočilo'; +$labels['removeflags'] = 'Odstrani zaznamke s sporočil'; +$labels['flagread'] = 'Prebrano'; +$labels['flagdeleted'] = 'Izbrisano'; +$labels['flaganswered'] = 'Odgovorjeno'; +$labels['flagflagged'] = 'Označeno'; +$labels['flagdraft'] = 'Osnutek'; +$labels['setvariable'] = 'Nastavi spremenljivko'; +$labels['setvarname'] = 'Ime spremenljivke:'; +$labels['setvarvalue'] = 'Vrednost spremenljivke:'; +$labels['setvarmodifiers'] = 'Modifikator:'; +$labels['varlower'] = 'majhne črke'; +$labels['varupper'] = 'velike črke'; +$labels['varlowerfirst'] = 'prvi znak velika začetnica'; +$labels['varupperfirst'] = 'prvi znak velika začetnica'; +$labels['varquotewildcard'] = 'citiraj posebne znake'; +$labels['varlength'] = 'dolžina'; +$labels['notify'] = 'Poštlji obvestilo'; +$labels['notifyaddress'] = 'Na elektronski naslov:'; +$labels['notifybody'] = 'Telo obvestila:'; +$labels['notifysubject'] = 'Zadeva obvestila:'; +$labels['notifyfrom'] = 'Pošiljatelj obvestila:'; +$labels['notifyimportance'] = 'Pomembnost:'; +$labels['notifyimportancelow'] = 'nizko'; +$labels['notifyimportancenormal'] = 'običajno'; +$labels['notifyimportancehigh'] = 'visoko'; +$labels['filtercreate'] = 'Ustvari filter'; +$labels['usedata'] = 'Pri stvarjanju filtra uporabi naslednje podatke'; +$labels['nextstep'] = 'Naslednji korak'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Dodatne možnosti'; +$labels['body'] = 'Vsebina'; +$labels['address'] = 'naslov'; +$labels['envelope'] = 'ovojnica'; +$labels['modifier'] = 'modifikator'; +$labels['text'] = 'besedilo'; +$labels['undecoded'] = 'neobdelano'; +$labels['contenttype'] = 'tip vsebine'; +$labels['modtype'] = 'tip'; +$labels['allparts'] = 'vse'; +$labels['domain'] = 'domena'; +$labels['localpart'] = 'lokalni del'; +$labels['user'] = 'uporabnik'; +$labels['detail'] = 'podrobnosti'; +$labels['comparator'] = 'primerjalnik'; +$labels['default'] = 'privzeto'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'ni občutljiv na velike/male črke (ascii-casemap)'; +$labels['asciinumeric'] = 'numerično (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Prišlo je do neznane napake.'; +$messages['filterconnerror'] = 'Povezave s strežnikom (managesieve) ni bilo mogoče vzpostaviti'; +$messages['filterdeleteerror'] = 'Pravila ni bilo mogoče izbrisati. Prišlo je do napake.'; +$messages['filterdeleted'] = 'Pravilo je bilo uspešno izbrisano.'; +$messages['filtersaved'] = 'Pravilo je bilo uspešno shranjeno'; +$messages['filtersaveerror'] = 'Pravilo ni bilo shranjeno. Prišlo je do napake.'; +$messages['filterdeleteconfirm'] = 'Ste prepričani, da želite izbrisati izbrano pravilo?'; +$messages['ruledeleteconfirm'] = 'Ste prepričani, da želite izbrisati izbrano pravilo?'; +$messages['actiondeleteconfirm'] = 'Ste prepričani, da želite izbrisati izbrano dejanje?'; +$messages['forbiddenchars'] = 'V polju so neveljavni znaki'; +$messages['cannotbeempty'] = 'Polje ne sme biti prazno'; +$messages['ruleexist'] = 'Filer s tem imenom že obstaja'; +$messages['setactivateerror'] = 'Izbranega filtra ni bilo mogoče vključiti. Prišlo je do napake na strežniku.'; +$messages['setdeactivateerror'] = 'Izbranega filtra ni bilo mogoče izključiti. Prišlo je do napake na strežniku.'; +$messages['setdeleteerror'] = 'Izbranega filtra ni bilo mogoče izbrisati. Prišlo je do napake na strežniku.'; +$messages['setactivated'] = 'Filter je bil uspešno vključen.'; +$messages['setdeactivated'] = 'Filter je bil uspešno onemogočen.'; +$messages['setdeleted'] = 'Filter je bil uspešno izbrisan.'; +$messages['setdeleteconfirm'] = 'Ste prepričani, da želite izbrisati ta filter?'; +$messages['setcreateerror'] = 'Filtra ni bilo mogoče ustvariti. Prišlo je do napake na strežniku.'; +$messages['setcreated'] = 'Filter je bil uspešno ustvarjen.'; +$messages['activateerror'] = 'Izbranega/ih filtra/ov ni bilo mogoče vključiti. Prišlo je do napake na strežniku.'; +$messages['deactivateerror'] = 'Izbranega/ih fitra/ov ni bilo mogoče izključiti. Prišlo je do napake na strežniku.'; +$messages['deactivated'] = 'Filtri so bili uspešno omogočeni.'; +$messages['activated'] = 'Filtri so bili uspešno onemogočeni.'; +$messages['moved'] = 'Filter je bil uspešno premaknjen.'; +$messages['moveerror'] = 'Izbranega filtra ni bilo mogoče premakniti. Prišlo je do napake na strežniku.'; +$messages['nametoolong'] = 'Ime je predolgo.'; +$messages['namereserved'] = 'Rezervirano ime.'; +$messages['setexist'] = 'Nastavitev filtra že obstaja.'; +$messages['nodata'] = 'Izbrana mora biti vsaj ena nastavitev!'; + +?> diff --git a/webmail/plugins/managesieve/localization/sv_SE.inc b/webmail/plugins/managesieve/localization/sv_SE.inc new file mode 100644 index 0000000..49d5b12 --- /dev/null +++ b/webmail/plugins/managesieve/localization/sv_SE.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filter'; +$labels['managefilters'] = 'Administrera filter'; +$labels['filtername'] = 'Filternamn'; +$labels['newfilter'] = 'Nytt filter'; +$labels['filteradd'] = 'Lägg till filter'; +$labels['filterdel'] = 'Ta bort filter'; +$labels['moveup'] = 'Flytta upp filter'; +$labels['movedown'] = 'Flytta ner filter'; +$labels['filterallof'] = 'Filtrera på alla följande regler'; +$labels['filteranyof'] = 'Filtrera på någon av följande regler'; +$labels['filterany'] = 'Filtrera alla meddelanden'; +$labels['filtercontains'] = 'innehåller'; +$labels['filternotcontains'] = 'inte innehåller'; +$labels['filteris'] = 'är lika med'; +$labels['filterisnot'] = 'är inte lika med'; +$labels['filterexists'] = 'finns'; +$labels['filternotexists'] = 'inte finns'; +$labels['filtermatches'] = 'matchar uttryck'; +$labels['filternotmatches'] = 'inte matchar uttryck'; +$labels['filterregex'] = 'matchar reguljärt uttryck'; +$labels['filternotregex'] = 'inte matchar reguljärt uttryck'; +$labels['filterunder'] = 'under'; +$labels['filterover'] = 'över'; +$labels['addrule'] = 'Lägg till regel'; +$labels['delrule'] = 'Ta bort regel'; +$labels['messagemoveto'] = 'Flytta meddelande till'; +$labels['messageredirect'] = 'Ändra mottagare till'; +$labels['messagecopyto'] = 'Kopiera meddelande till'; +$labels['messagesendcopy'] = 'Skicka kopia av meddelande till'; +$labels['messagereply'] = 'Besvara meddelande'; +$labels['messagedelete'] = 'Ta bort meddelande'; +$labels['messagediscard'] = 'Avböj med felmeddelande'; +$labels['messagesrules'] = 'För inkommande meddelande'; +$labels['messagesactions'] = 'Utför följande åtgärd'; +$labels['add'] = 'Lägg till'; +$labels['del'] = 'Ta bort'; +$labels['sender'] = 'Avsändare'; +$labels['recipient'] = 'Mottagare'; +$labels['vacationaddresses'] = 'Ytterligare mottagaradresser (avdelade med kommatecken)'; +$labels['vacationdays'] = 'Antal dagar mellan auto-svar:'; +$labels['vacationinterval'] = 'Tid mellan auto-svar:'; +$labels['days'] = 'Dagar'; +$labels['seconds'] = 'Sekunder'; +$labels['vacationreason'] = 'Meddelande i auto-svar:'; +$labels['vacationsubject'] = 'Meddelandeämne:'; +$labels['rulestop'] = 'Avsluta filtrering'; +$labels['enable'] = 'Aktivera/deaktivera'; +$labels['filterset'] = 'Filtergrupp'; +$labels['filtersets'] = 'Filtergrupper'; +$labels['filtersetadd'] = 'Lägg till filtergrupp'; +$labels['filtersetdel'] = 'Ta bort filtergrupp'; +$labels['filtersetact'] = 'Aktivera filtergrupp'; +$labels['filtersetdeact'] = 'Deaktivera filtergrupp'; +$labels['filterdef'] = 'Filterdefinition'; +$labels['filtersetname'] = 'Filtergruppsnamn'; +$labels['newfilterset'] = 'Ny filtergrupp'; +$labels['active'] = 'aktiv'; +$labels['none'] = 'ingen'; +$labels['fromset'] = 'från grupp'; +$labels['fromfile'] = 'från fil'; +$labels['filterdisabled'] = 'Filter deaktiverat'; +$labels['countisgreaterthan'] = 'antal är större än'; +$labels['countisgreaterthanequal'] = 'antal är större än eller lika med'; +$labels['countislessthan'] = 'antal är mindre än'; +$labels['countislessthanequal'] = 'antal är mindre än eller lika med'; +$labels['countequals'] = 'antal är lika med'; +$labels['countnotequals'] = 'antal är inte lika med'; +$labels['valueisgreaterthan'] = 'värde är större än'; +$labels['valueisgreaterthanequal'] = 'värde är större än eller lika med'; +$labels['valueislessthan'] = 'värde är mindre än'; +$labels['valueislessthanequal'] = 'värde är mindre än eller lika med'; +$labels['valueequals'] = 'värde är lika med'; +$labels['valuenotequals'] = 'värde är inte lika med'; +$labels['setflags'] = 'Flagga meddelande'; +$labels['addflags'] = 'Lägg till meddelandeflaggor'; +$labels['removeflags'] = 'Ta bort meddelandeflaggor'; +$labels['flagread'] = 'Läst'; +$labels['flagdeleted'] = 'Borttaget'; +$labels['flaganswered'] = 'Besvarat'; +$labels['flagflagged'] = 'Flaggat'; +$labels['flagdraft'] = 'Utkast'; +$labels['setvariable'] = 'Sätt variabel'; +$labels['setvarname'] = 'Variabelnamn:'; +$labels['setvarvalue'] = 'Variabelvärde:'; +$labels['setvarmodifiers'] = 'Modifierare:'; +$labels['varlower'] = 'Gemener'; +$labels['varupper'] = 'Versaler'; +$labels['varlowerfirst'] = 'Första tecken gement'; +$labels['varupperfirst'] = 'Första tecken versalt'; +$labels['varquotewildcard'] = 'Koda specialtecken'; +$labels['varlength'] = 'Längd'; +$labels['notify'] = 'Skicka avisering'; +$labels['notifyaddress'] = 'Mottagaradress:'; +$labels['notifybody'] = 'Aviseringsmeddelande:'; +$labels['notifysubject'] = 'Aviseringsämne:'; +$labels['notifyfrom'] = 'Aviseringsavsändare:'; +$labels['notifyimportance'] = 'Prioritet:'; +$labels['notifyimportancelow'] = 'Låg'; +$labels['notifyimportancenormal'] = 'Normal'; +$labels['notifyimportancehigh'] = 'Hög'; +$labels['filtercreate'] = 'Skapa filter'; +$labels['usedata'] = 'Använd följande information i filtret:'; +$labels['nextstep'] = 'Nästa steg'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Avancerade inställningar'; +$labels['body'] = 'Meddelandeinnehåll'; +$labels['address'] = 'adress'; +$labels['envelope'] = 'kuvert'; +$labels['modifier'] = 'modifierare:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'obearbetat (rå)'; +$labels['contenttype'] = 'innehållstyp'; +$labels['modtype'] = 'typ:'; +$labels['allparts'] = 'allt'; +$labels['domain'] = 'domän'; +$labels['localpart'] = 'lokal del'; +$labels['user'] = 'användare'; +$labels['detail'] = 'detalj'; +$labels['comparator'] = 'jämförelse:'; +$labels['default'] = 'standard'; +$labels['octet'] = 'strikt (oktalt)'; +$labels['asciicasemap'] = 'teckenlägesokänslig (ascii-casemap)'; +$labels['asciinumeric'] = 'numerisk (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Okänt serverfel'; +$messages['filterconnerror'] = 'Anslutning till serverns filtertjänst misslyckades'; +$messages['filterdeleteerror'] = 'Filtret kunde inte tas bort på grund av serverfel'; +$messages['filterdeleted'] = 'Filtret är borttaget'; +$messages['filtersaved'] = 'Filtret har sparats'; +$messages['filtersaveerror'] = 'Filtret kunde inte sparas på grund av serverfel'; +$messages['filterdeleteconfirm'] = 'Vill du ta bort det markerade filtret?'; +$messages['ruledeleteconfirm'] = 'Vill du ta bort filterregeln?'; +$messages['actiondeleteconfirm'] = 'Vill du ta bort filteråtgärden?'; +$messages['forbiddenchars'] = 'Otillåtet tecken i fältet'; +$messages['cannotbeempty'] = 'Fältet kan inte lämnas tomt'; +$messages['ruleexist'] = 'Ett filter med angivet namn finns redan.'; +$messages['setactivateerror'] = 'Filtergruppen kunde inte aktiveras på grund av serverfel'; +$messages['setdeactivateerror'] = 'Filtergruppen kunde inte deaktiveras på grund av serverfel'; +$messages['setdeleteerror'] = 'Filtergruppen kunde inte tas bort på grund av serverfel'; +$messages['setactivated'] = 'Filtergruppen är aktiverad'; +$messages['setdeactivated'] = 'Filtergruppen är deaktiverad'; +$messages['setdeleted'] = 'Filtergruppen är borttagen'; +$messages['setdeleteconfirm'] = 'Vill du ta bort filtergruppen?'; +$messages['setcreateerror'] = 'Filtergruppen kunde inte läggas till på grund av serverfel'; +$messages['setcreated'] = 'Filtergruppen har lagts till'; +$messages['activateerror'] = 'Kunde inte aktivera filter på grund av serverfel.'; +$messages['deactivateerror'] = 'Kunde inte deaktivera filter på grund av serverfel.'; +$messages['deactivated'] = 'Filter aktiverat.'; +$messages['activated'] = 'Filter deaktiverat.'; +$messages['moved'] = 'Filter flyttat.'; +$messages['moveerror'] = 'Kunde inte flytta filter på grund av serverfel.'; +$messages['nametoolong'] = 'Filtergruppen kan inte läggas till med för långt namn'; +$messages['namereserved'] = 'Reserverat namn.'; +$messages['setexist'] = 'Filtergrupp finns redan.'; +$messages['nodata'] = 'Minst en position måste väljas!'; + +?> diff --git a/webmail/plugins/managesieve/localization/tr_TR.inc b/webmail/plugins/managesieve/localization/tr_TR.inc new file mode 100644 index 0000000..c36869d --- /dev/null +++ b/webmail/plugins/managesieve/localization/tr_TR.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Filtreler'; +$labels['managefilters'] = 'Gelen e-posta filtrelerini yönet'; +$labels['filtername'] = 'Filtre adı'; +$labels['newfilter'] = 'Yeni filtre'; +$labels['filteradd'] = 'Filtre ekle'; +$labels['filterdel'] = 'Filtre Sil'; +$labels['moveup'] = 'Yukarı taşı'; +$labels['movedown'] = 'Aşağı taşı'; +$labels['filterallof'] = 'Aşağıdaki kuralların hepsine uyan'; +$labels['filteranyof'] = 'Aşağıdaki kuralların herhangi birine uyan'; +$labels['filterany'] = 'Tüm mesajlar'; +$labels['filtercontains'] = 'içeren'; +$labels['filternotcontains'] = 'içermeyen'; +$labels['filteris'] = 'eşittir'; +$labels['filterisnot'] = 'eşit değildir'; +$labels['filterexists'] = 'mevcut'; +$labels['filternotexists'] = 'mevcut değil'; +$labels['filtermatches'] = 'ifadeye uyan'; +$labels['filternotmatches'] = 'ifadeye uymayan'; +$labels['filterregex'] = 'düzenli ifadeye uyan'; +$labels['filternotregex'] = 'düzenli ifadeye uymayan'; +$labels['filterunder'] = 'altında'; +$labels['filterover'] = 'üzerinde'; +$labels['addrule'] = 'Kural ekle'; +$labels['delrule'] = 'Kuralı sil'; +$labels['messagemoveto'] = 'mesajı taşı'; +$labels['messageredirect'] = 'mesajı yönlendir'; +$labels['messagecopyto'] = 'Mesajı kopyala'; +$labels['messagesendcopy'] = 'mesajın kopyasını gönder'; +$labels['messagereply'] = 'mesajla birlikte cevap ver'; +$labels['messagedelete'] = 'Mesajı sil'; +$labels['messagediscard'] = 'mesajı yok say'; +$labels['messagesrules'] = 'Gelen e-postalar için:'; +$labels['messagesactions'] = '... aşağıdaki aksiyonları çalıştır:'; +$labels['add'] = 'Ekle'; +$labels['del'] = 'Sil'; +$labels['sender'] = 'Gönderici'; +$labels['recipient'] = 'Alıcı'; +$labels['vacationaddresses'] = 'İlave e-posta adreslerim(virgül ile ayrılmış)'; +$labels['vacationdays'] = 'Ne sıklıkla mesajlar gönderilir(gün)'; +$labels['vacationinterval'] = 'Ne kadar sıklıkla mesaj gönderirsiniz:'; +$labels['days'] = 'günler'; +$labels['seconds'] = 'saniyeler'; +$labels['vacationreason'] = 'Mesaj gövdesi(tatil sebebi):'; +$labels['vacationsubject'] = 'Mesaj konusu:'; +$labels['rulestop'] = 'Kuralları değerlendirmeyi bitir'; +$labels['enable'] = 'Etkinleştir/Etkisiz Kıl'; +$labels['filterset'] = 'Filtre seti'; +$labels['filtersets'] = 'Filtre setleri'; +$labels['filtersetadd'] = 'Filtre seti ekle'; +$labels['filtersetdel'] = 'Mevcut filtre setini sil'; +$labels['filtersetact'] = 'Mevcut filtre setini etkinleştir'; +$labels['filtersetdeact'] = 'Mevcut filtre setini etkinsizleştir'; +$labels['filterdef'] = 'Filtre tanımı'; +$labels['filtersetname'] = 'Filtre seti adı'; +$labels['newfilterset'] = 'Yeni filtre seti'; +$labels['active'] = 'etkin'; +$labels['none'] = 'hiçbiri'; +$labels['fromset'] = 'gönderici seti'; +$labels['fromfile'] = 'gönderici dosya'; +$labels['filterdisabled'] = 'Filtre iptal edildi'; +$labels['countisgreaterthan'] = 'toplamı büyük'; +$labels['countisgreaterthanequal'] = 'toplamı büyük veya eşit'; +$labels['countislessthan'] = 'toplamı az'; +$labels['countislessthanequal'] = 'toplamı daha az veya eşit'; +$labels['countequals'] = 'toplamı eşit'; +$labels['countnotequals'] = 'toplamı eşit degil'; +$labels['valueisgreaterthan'] = 'değeri büyük'; +$labels['valueisgreaterthanequal'] = 'değeri büyük veya eşit'; +$labels['valueislessthan'] = 'değer az'; +$labels['valueislessthanequal'] = 'değer daha az veya eşit'; +$labels['valueequals'] = 'değer eşit'; +$labels['valuenotequals'] = 'değer eşit değil'; +$labels['setflags'] = 'bayrakları mesaja set et'; +$labels['addflags'] = 'Bayrakları mesaja ekle'; +$labels['removeflags'] = 'Bayrakları mesajdan sil'; +$labels['flagread'] = 'Oku'; +$labels['flagdeleted'] = 'Silindi'; +$labels['flaganswered'] = 'Cevaplanmış'; +$labels['flagflagged'] = 'İşaretli'; +$labels['flagdraft'] = 'Taslak'; +$labels['setvariable'] = 'Değişken tanımla'; +$labels['setvarname'] = 'Değişken adı'; +$labels['setvarvalue'] = 'Değişken değeri:'; +$labels['setvarmodifiers'] = 'Değiştiriciler:'; +$labels['varlower'] = 'küçük harf'; +$labels['varupper'] = 'büyük harf'; +$labels['varlowerfirst'] = 'İlk karakter küçük harf'; +$labels['varupperfirst'] = 'İlk karakter büyük harf'; +$labels['varquotewildcard'] = 'özel karakterleri tırnak içine al'; +$labels['varlength'] = 'uzunluk'; +$labels['notify'] = 'Bildirim gönder'; +$labels['notifyaddress'] = 'Alıcı e-posta adresi'; +$labels['notifybody'] = 'Bildirim gövdesi:'; +$labels['notifysubject'] = 'Bildirim konusu:'; +$labels['notifyfrom'] = 'Bildirim göndericisi:'; +$labels['notifyimportance'] = 'Önem derecesi'; +$labels['notifyimportancelow'] = 'düşük'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'yüksek'; +$labels['filtercreate'] = 'Süzgeç oluştur'; +$labels['usedata'] = 'Aşağıdaki verileri süzgeçte kullan'; +$labels['nextstep'] = 'Sonraki adım'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Gelişmiş seçenekler'; +$labels['body'] = 'Gövde'; +$labels['address'] = 'adres'; +$labels['envelope'] = 'zarf'; +$labels['modifier'] = 'değiştirici'; +$labels['text'] = 'metin'; +$labels['undecoded'] = 'çözülmemiş(ham)'; +$labels['contenttype'] = 'içerik türü'; +$labels['modtype'] = 'tip:'; +$labels['allparts'] = 'hepsi'; +$labels['domain'] = 'alan adı'; +$labels['localpart'] = 'yerel parça'; +$labels['user'] = 'kullanıcı'; +$labels['detail'] = 'detay'; +$labels['comparator'] = 'karşılaştırıcı'; +$labels['default'] = 'öntanımlı'; +$labels['octet'] = 'sıkı(oktet)'; +$labels['asciicasemap'] = 'büyük küçük harf duyarsız(ascii-casemap)'; +$labels['asciinumeric'] = 'sayı (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Bilinmeyen sunucu hatası.'; +$messages['filterconnerror'] = 'Sunucuya bağlanamıyor.'; +$messages['filterdeleteerror'] = 'Filtre silinemedi. Sunucuda hata oluştu.'; +$messages['filterdeleted'] = 'Filtre başarıyla silindi.'; +$messages['filtersaved'] = 'Filter başarıyla kaydedildi.'; +$messages['filtersaveerror'] = 'Filtre kaydedilemedi. Sunucuda hata oluştu.'; +$messages['filterdeleteconfirm'] = 'Seçilen filtreleri gerçekten silmek istiyor musun?'; +$messages['ruledeleteconfirm'] = 'Seçili kuralları silmek istediğinizden emin misiniz?'; +$messages['actiondeleteconfirm'] = 'Seçili aksiyonları silmek istediğinizden emin misiniz?'; +$messages['forbiddenchars'] = 'Alanda izin verilmeyen karakterler var.'; +$messages['cannotbeempty'] = 'Alan boş olmaz'; +$messages['ruleexist'] = 'Belirtilen isimde bir filtre zaten var.'; +$messages['setactivateerror'] = 'Seçilen filtreler etkinleştirilemedi. Sunucuda hata oluştu.'; +$messages['setdeactivateerror'] = 'Seçilen filtreler pasifleştirilemedi. Sunucuda hata oluştu.'; +$messages['setdeleteerror'] = 'Seçilen filtreler silinemedi. Sunucuda hata oluştu.'; +$messages['setactivated'] = 'Filtreler başarıyla etkinleştirilemedi.'; +$messages['setdeactivated'] = 'Filtreler başarıyla pasifleştirildi.'; +$messages['setdeleted'] = 'Filtre seti başarıyla silindi.'; +$messages['setdeleteconfirm'] = 'Seçilen filtre setlerini silmek istediğinizden emin misiniz?'; +$messages['setcreateerror'] = 'Filtre setleri oluşturulamadı. Sunucuda hata oluştu.'; +$messages['setcreated'] = 'Filtre setleri başarıyla oluşturuldu.'; +$messages['activateerror'] = 'Seçilen filtre(ler) etkinleştirilemedi. Sunucuda hata oluştu.'; +$messages['deactivateerror'] = 'Seçilen filtre(ler) pasifleştirilemedi. Sunucuda hata oluştu.'; +$messages['deactivated'] = 'Filtre(ler) başarıyla etkinleştirildi.'; +$messages['activated'] = 'Filtre(ler) başarıyla iptal edildi.'; +$messages['moved'] = 'Filtre başarıyla taşındı.'; +$messages['moveerror'] = 'Seçilen filtre(ler) taşınamadı. Sunucuda hata oluştu.'; +$messages['nametoolong'] = 'İsim çok uzun.'; +$messages['namereserved'] = 'rezerve edilmiş isim.'; +$messages['setexist'] = 'Set zaten var.'; +$messages['nodata'] = 'En az bir pozisyon seçilmelidir.'; + +?> diff --git a/webmail/plugins/managesieve/localization/uk_UA.inc b/webmail/plugins/managesieve/localization/uk_UA.inc new file mode 100644 index 0000000..41623df --- /dev/null +++ b/webmail/plugins/managesieve/localization/uk_UA.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Фільтри'; +$labels['managefilters'] = 'Керування фільтрами вхідної пошти'; +$labels['filtername'] = 'Назва фільтру'; +$labels['newfilter'] = 'Новий фільтр'; +$labels['filteradd'] = 'Додати фільтр'; +$labels['filterdel'] = 'Видалити фільтр'; +$labels['moveup'] = 'Пересунути вгору'; +$labels['movedown'] = 'Пересунути вниз'; +$labels['filterallof'] = 'задовольняє усім наступним умовам'; +$labels['filteranyof'] = 'задовольняє будь-якій з умов'; +$labels['filterany'] = 'всі повідомлення'; +$labels['filtercontains'] = 'містить'; +$labels['filternotcontains'] = 'не містить'; +$labels['filteris'] = 'ідентичний до'; +$labels['filterisnot'] = 'не ідентичний до'; +$labels['filterexists'] = 'існує'; +$labels['filternotexists'] = 'не існує'; +$labels['filtermatches'] = 'matches expression'; +$labels['filternotmatches'] = 'not matches expression'; +$labels['filterregex'] = 'matches regular expression'; +$labels['filternotregex'] = 'not matches regular expression'; +$labels['filterunder'] = 'менше, ніж'; +$labels['filterover'] = 'більше, ніж'; +$labels['addrule'] = 'Додати правило'; +$labels['delrule'] = 'Видалити правило'; +$labels['messagemoveto'] = 'Пересунути повідомлення до'; +$labels['messageredirect'] = 'Перенаправити повідомлення до'; +$labels['messagecopyto'] = 'Copy message to'; +$labels['messagesendcopy'] = 'Send message copy to'; +$labels['messagereply'] = 'Автовідповідач'; +$labels['messagedelete'] = 'Видалити повідомлення'; +$labels['messagediscard'] = 'Відхилити з повідомленням'; +$labels['messagesrules'] = 'Для вхідної пошти'; +$labels['messagesactions'] = '... виконати дію:'; +$labels['add'] = 'Додати'; +$labels['del'] = 'Видалити'; +$labels['sender'] = 'Відправник'; +$labels['recipient'] = 'Отримувач'; +$labels['vacationaddresses'] = 'Додатковий список адрес отримувачів (розділених комою)'; +$labels['vacationdays'] = 'Як часто повторювати (у днях):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Текст повідомлення:'; +$labels['vacationsubject'] = 'Message subject:'; +$labels['rulestop'] = 'Зупинити перевірку правил'; +$labels['enable'] = 'Enable/Disable'; +$labels['filterset'] = 'Набір фільтрів'; +$labels['filtersets'] = 'Filter sets'; +$labels['filtersetadd'] = 'Додати набір фільтрів'; +$labels['filtersetdel'] = 'Видалити поточний набір'; +$labels['filtersetact'] = 'Активувати поточний набір'; +$labels['filtersetdeact'] = 'Deactivate current filters set'; +$labels['filterdef'] = 'Параметри фільтру'; +$labels['filtersetname'] = 'Назва набору фільтрів'; +$labels['newfilterset'] = 'Новий набір фільтрів'; +$labels['active'] = 'активний'; +$labels['none'] = 'нічого'; +$labels['fromset'] = 'з набору'; +$labels['fromfile'] = 'з файлу'; +$labels['filterdisabled'] = 'Фільтр вимкнено'; +$labels['countisgreaterthan'] = 'count is greater than'; +$labels['countisgreaterthanequal'] = 'count is greater than or equal to'; +$labels['countislessthan'] = 'count is less than'; +$labels['countislessthanequal'] = 'count is less than or equal to'; +$labels['countequals'] = 'count is equal to'; +$labels['countnotequals'] = 'count does not equal'; +$labels['valueisgreaterthan'] = 'value is greater than'; +$labels['valueisgreaterthanequal'] = 'value is greater than or equal to'; +$labels['valueislessthan'] = 'value is less than'; +$labels['valueislessthanequal'] = 'value is less than or equal to'; +$labels['valueequals'] = 'value is equal to'; +$labels['valuenotequals'] = 'value does not equal'; +$labels['setflags'] = 'Set flags to the message'; +$labels['addflags'] = 'Add flags to the message'; +$labels['removeflags'] = 'Remove flags from the message'; +$labels['flagread'] = 'Read'; +$labels['flagdeleted'] = 'Deleted'; +$labels['flaganswered'] = 'Answered'; +$labels['flagflagged'] = 'Flagged'; +$labels['flagdraft'] = 'Draft'; +$labels['setvariable'] = 'Set variable'; +$labels['setvarname'] = 'Variable name:'; +$labels['setvarvalue'] = 'Variable value:'; +$labels['setvarmodifiers'] = 'Modifiers:'; +$labels['varlower'] = 'lower-case'; +$labels['varupper'] = 'upper-case'; +$labels['varlowerfirst'] = 'first character lower-case'; +$labels['varupperfirst'] = 'first character upper-case'; +$labels['varquotewildcard'] = 'quote special characters'; +$labels['varlength'] = 'length'; +$labels['notify'] = 'Send notification'; +$labels['notifyaddress'] = 'To e-mail address:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Importance:'; +$labels['notifyimportancelow'] = 'low'; +$labels['notifyimportancenormal'] = 'normal'; +$labels['notifyimportancehigh'] = 'high'; +$labels['filtercreate'] = 'Create filter'; +$labels['usedata'] = 'Use following data in the filter:'; +$labels['nextstep'] = 'Next Step'; +$labels['...'] = '...'; +$labels['advancedopts'] = 'Advanced options'; +$labels['body'] = 'Body'; +$labels['address'] = 'address'; +$labels['envelope'] = 'envelope'; +$labels['modifier'] = 'modifier:'; +$labels['text'] = 'text'; +$labels['undecoded'] = 'undecoded (raw)'; +$labels['contenttype'] = 'content type'; +$labels['modtype'] = 'type:'; +$labels['allparts'] = 'all'; +$labels['domain'] = 'domain'; +$labels['localpart'] = 'local part'; +$labels['user'] = 'user'; +$labels['detail'] = 'detail'; +$labels['comparator'] = 'comparator:'; +$labels['default'] = 'default'; +$labels['octet'] = 'strict (octet)'; +$labels['asciicasemap'] = 'case insensitive (ascii-casemap)'; +$labels['asciinumeric'] = 'numeric (ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = 'Невідома помилка сервера'; +$messages['filterconnerror'] = 'Неможливо з\'єднатися з сервером'; +$messages['filterdeleteerror'] = 'Неможливо видалити фільтр. Помилка сервера'; +$messages['filterdeleted'] = 'Фільтр успішно видалено'; +$messages['filtersaved'] = 'Фільтр успішно збережено'; +$messages['filtersaveerror'] = 'Неможливо зберегти фільтр. Помилка сервера'; +$messages['filterdeleteconfirm'] = 'Ви дійсно хочете видалити обраний фільтр?'; +$messages['ruledeleteconfirm'] = 'Ви дійсно хочете видалити обране правило?'; +$messages['actiondeleteconfirm'] = 'Ви дійсно хочете видалити обрану дію?'; +$messages['forbiddenchars'] = 'Введено заборонений символ'; +$messages['cannotbeempty'] = 'Поле не може бути пустим'; +$messages['ruleexist'] = 'Filter with specified name already exists.'; +$messages['setactivateerror'] = 'Неможливо активувати обраний набір. Помилка сервера'; +$messages['setdeactivateerror'] = 'Unable to deactivate selected filters set. Server error occured.'; +$messages['setdeleteerror'] = 'Неможливо видалити обраний набір. Помилка сервера'; +$messages['setactivated'] = 'Набір фільтрів активовано успішно'; +$messages['setdeactivated'] = 'Filters set deactivated successfully.'; +$messages['setdeleted'] = 'Набір фільтрів видалено успішно'; +$messages['setdeleteconfirm'] = 'Ви впевнені, що хочете видалити обраний набір?'; +$messages['setcreateerror'] = 'Не вдалося створити набір. Помилка сервера'; +$messages['setcreated'] = 'Набір фільтрів створено успішно'; +$messages['activateerror'] = 'Unable to enable selected filter(s). Server error occured.'; +$messages['deactivateerror'] = 'Unable to disable selected filter(s). Server error occured.'; +$messages['deactivated'] = 'Filter(s) disabled successfully.'; +$messages['activated'] = 'Filter(s) enabled successfully.'; +$messages['moved'] = 'Filter moved successfully.'; +$messages['moveerror'] = 'Unable to move selected filter. Server error occured.'; +$messages['nametoolong'] = 'Не вдалося створити набір. Занадто довга назва'; +$messages['namereserved'] = 'Reserved name.'; +$messages['setexist'] = 'Set already exists.'; +$messages['nodata'] = 'At least one position must be selected!'; + +?> diff --git a/webmail/plugins/managesieve/localization/vi_VN.inc b/webmail/plugins/managesieve/localization/vi_VN.inc new file mode 100644 index 0000000..0a4ce6e --- /dev/null +++ b/webmail/plugins/managesieve/localization/vi_VN.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = 'Bộ lọc'; +$labels['managefilters'] = 'Quản lý bộ lọc thư đến'; +$labels['filtername'] = 'Lọc tên'; +$labels['newfilter'] = 'Bộ lọc mới'; +$labels['filteradd'] = 'Thêm bộ lọc'; +$labels['filterdel'] = 'Xóa bộ lọc'; +$labels['moveup'] = 'Chuyển lên'; +$labels['movedown'] = 'Chuyển xuống'; +$labels['filterallof'] = 'Phù hợp với tất cả các qui luật sau đây'; +$labels['filteranyof'] = 'Phù hợp với bất kỳ qui luật nào sau đây'; +$labels['filterany'] = 'Tất cả tin nhắn'; +$labels['filtercontains'] = 'Bao gồm'; +$labels['filternotcontains'] = 'Không bao gồm'; +$labels['filteris'] = 'Bằng với'; +$labels['filterisnot'] = 'Không bằng với'; +$labels['filterexists'] = 'Tồn tại'; +$labels['filternotexists'] = 'Không tồn tại'; +$labels['filtermatches'] = 'Tương ứng với cách diễn đạt'; +$labels['filternotmatches'] = 'Không tương ứng với cách diễn đạt'; +$labels['filterregex'] = 'Tương ứng với cách diễn đạt thông thường'; +$labels['filternotregex'] = 'Không phù hợp với cách diễn đạt thông thường'; +$labels['filterunder'] = 'Dưới'; +$labels['filterover'] = 'Hơn'; +$labels['addrule'] = 'Thêm qui luật'; +$labels['delrule'] = 'Xóa qui luật'; +$labels['messagemoveto'] = 'Chuyển tin nhắn tới'; +$labels['messageredirect'] = 'Gửi lại tin nhắn tới'; +$labels['messagecopyto'] = 'Sao chép tin nhắn tới'; +$labels['messagesendcopy'] = 'Gửi bản sao chép tin nhắn tới'; +$labels['messagereply'] = 'Trả lời tin nhắn'; +$labels['messagedelete'] = 'Xóa thư'; +$labels['messagediscard'] = 'Loại bỏ với tin nhắn'; +$labels['messagesrules'] = 'Với thư đến'; +$labels['messagesactions'] = 'Thực hiện các hành động sau:'; +$labels['add'] = 'Thêm'; +$labels['del'] = 'Xoá'; +$labels['sender'] = 'Người gửi'; +$labels['recipient'] = 'Người nhận'; +$labels['vacationaddresses'] = 'Địa chỉ email bổ sung của tôi ( phân cách bằng dấu phẩy)'; +$labels['vacationdays'] = 'Số lần gửi thư (trong ngày)'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = 'Nội dung chính'; +$labels['vacationsubject'] = 'Tiêu đề thư'; +$labels['rulestop'] = 'Ngừng đánh giá qui luật'; +$labels['enable'] = 'Kích hoạt/Không kích hoạt'; +$labels['filterset'] = 'Đặt các bộ lọc'; +$labels['filtersets'] = 'Thiết lập bộ lọc'; +$labels['filtersetadd'] = 'Thêm bộ lọc'; +$labels['filtersetdel'] = 'Xóa bộ lọc hiện tại'; +$labels['filtersetact'] = 'Kích hoạt bộ lọc hiện tại'; +$labels['filtersetdeact'] = 'Ngừng kích hoạt bộ lọc hiện tai'; +$labels['filterdef'] = 'Định nghĩa bộ lọc'; +$labels['filtersetname'] = 'Tên bộ lọc'; +$labels['newfilterset'] = 'Thiết lập bộ lọc mới'; +$labels['active'] = 'Kích hoạt'; +$labels['none'] = 'Không có'; +$labels['fromset'] = 'Từ thiết lập'; +$labels['fromfile'] = 'Từ hồ sơ'; +$labels['filterdisabled'] = 'Bộ lọc được ngừng hoạt động'; +$labels['countisgreaterthan'] = 'Đếm lớn hơn'; +$labels['countisgreaterthanequal'] = 'Đếm lớn hơn hoặc bằng'; +$labels['countislessthan'] = 'Đếm ít hơn'; +$labels['countislessthanequal'] = 'Đếm ít hơn hoặc bằng'; +$labels['countequals'] = 'Đếm bằng'; +$labels['countnotequals'] = 'Đếm không bằng'; +$labels['valueisgreaterthan'] = 'Giá trị lớn hơn'; +$labels['valueisgreaterthanequal'] = 'Giá trị lớn hơn hoặc bằng'; +$labels['valueislessthan'] = 'Giá trị nhỏ hơn'; +$labels['valueislessthanequal'] = 'Giá trị nhỏ hơn hoặc bằng'; +$labels['valueequals'] = 'Giá trị bằng'; +$labels['valuenotequals'] = 'Giá trị không bằng'; +$labels['setflags'] = 'Thiết lập đánh dấu cho thư'; +$labels['addflags'] = 'Thêm đánh dấu cho thư'; +$labels['removeflags'] = 'Bỏ đánh dấu khỏi thư'; +$labels['flagread'] = 'Đọc'; +$labels['flagdeleted'] = 'Đã được xóa'; +$labels['flaganswered'] = 'Đã trả lời'; +$labels['flagflagged'] = 'Đã đánh dấu'; +$labels['flagdraft'] = 'Nháp'; +$labels['setvariable'] = 'Đặt biến'; +$labels['setvarname'] = 'Tên biến:'; +$labels['setvarvalue'] = 'Giá trị biến:'; +$labels['setvarmodifiers'] = 'Bộ chia:'; +$labels['varlower'] = 'viết thường'; +$labels['varupper'] = 'viết hoa'; +$labels['varlowerfirst'] = 'chữ cái đầu viết thường'; +$labels['varupperfirst'] = 'chữ cái đầu viết hoa'; +$labels['varquotewildcard'] = 'trích dẫn ký tự đặc biệt'; +$labels['varlength'] = 'độ dài'; +$labels['notify'] = 'Gửi thông báo'; +$labels['notifyaddress'] = 'Gửi đến địa chỉ email:'; +$labels['notifybody'] = 'Notification body:'; +$labels['notifysubject'] = 'Notification subject:'; +$labels['notifyfrom'] = 'Notification sender:'; +$labels['notifyimportance'] = 'Mức độ quan trọng:'; +$labels['notifyimportancelow'] = 'thấp'; +$labels['notifyimportancenormal'] = 'vừa phải'; +$labels['notifyimportancehigh'] = 'cao'; +$labels['filtercreate'] = 'Tạo bộ lọc'; +$labels['usedata'] = 'Dùng dữ liệu trong bộ lọc sau:'; +$labels['nextstep'] = 'Bước tiếp theo'; +$labels['...'] = '…'; +$labels['advancedopts'] = 'Tùy chọn tính năng cao hơn'; +$labels['body'] = 'Nội dung'; +$labels['address'] = 'Địa chỉ'; +$labels['envelope'] = 'Phong bì'; +$labels['modifier'] = 'Bổ nghĩa'; +$labels['text'] = 'Văn bản'; +$labels['undecoded'] = 'Chưa được giải mã (nguyên bản)'; +$labels['contenttype'] = 'Kiểu mẫu nội dung'; +$labels['modtype'] = 'Kiểu:'; +$labels['allparts'] = 'Tất cả'; +$labels['domain'] = 'Phạm vi'; +$labels['localpart'] = 'Phần nội bộ'; +$labels['user'] = 'Người dùng'; +$labels['detail'] = 'Chi tiết'; +$labels['comparator'] = 'Vật so sánh'; +$labels['default'] = 'Mặc định'; +$labels['octet'] = 'Khắt khe'; +$labels['asciicasemap'] = 'Không phân biệt chữ hoa chữ thường'; +$labels['asciinumeric'] = 'Bảng mã ASCII'; + +$messages = array(); +$messages['filterunknownerror'] = 'Không tìm được lỗi máy chủ'; +$messages['filterconnerror'] = 'Không kết nối được với máy chủ.'; +$messages['filterdeleteerror'] = 'Không thể xóa bộ lọc. Xuất hiện lỗi ở máy chủ'; +$messages['filterdeleted'] = 'Xóa bộ lọc thành công'; +$messages['filtersaved'] = 'Lưu bộ lọc thành công'; +$messages['filtersaveerror'] = 'Không thể lưu bộ lọc. Xuất hiện lỗi ở máy chủ'; +$messages['filterdeleteconfirm'] = 'Bạn có thực sự muốn xóa bộ lọc được chọn?'; +$messages['ruledeleteconfirm'] = 'Bạn có chắc chắn muốn xóa qui luật được chọn?'; +$messages['actiondeleteconfirm'] = 'Bạn có chắc chắn muốn xóa hành động được chọn?'; +$messages['forbiddenchars'] = 'Ký tự bị cấm trong ô'; +$messages['cannotbeempty'] = 'Ô không thể bị bỏ trống'; +$messages['ruleexist'] = 'Đã tồn tại bộ lọc với tên cụ thế'; +$messages['setactivateerror'] = 'Không thể kích hoạt bộ lọc được lựa chọn. Xuất hiện lỗi ở máy chủ'; +$messages['setdeactivateerror'] = 'Không thể không kích hoạt bộ lọc được lựa chọn. Xuất hiện lỗi ở máy chủ'; +$messages['setdeleteerror'] = 'Không thể xóa bộ lọc được lựa chọn. Forbidden characters in field.'; +$messages['setactivated'] = 'Bộ lọc được khởi động thành công'; +$messages['setdeactivated'] = 'Ngừng kích hoạt bộ lọc thành công'; +$messages['setdeleted'] = 'Xóa bộ lọc thành công'; +$messages['setdeleteconfirm'] = 'Bạn có chắc bạn muốn xóa thiết lập bộ lọc được chọn?'; +$messages['setcreateerror'] = 'Không thể tạo thiết lập bộ lọc. Có lỗi xuất hiện ở máy chủ'; +$messages['setcreated'] = 'Thiết lập bộ lọc được tạo thành công'; +$messages['activateerror'] = 'Không thể khởi động bộ lọc được chọn. Có lỗi xuất hiện ở máy chủ'; +$messages['deactivateerror'] = 'Không thể tắt bộ lọc đã chọn. Có lỗi xuất hiện ở máy chủ'; +$messages['deactivated'] = 'Bộ lọc được khởi động thành công'; +$messages['activated'] = 'Bộ lọc được tắt thành công'; +$messages['moved'] = 'Bộ lọc được chuyển đi thành công'; +$messages['moveerror'] = 'Không thể chuyển bộc lọc đã chọn. Có lỗi xuất hiện ở máy chủ'; +$messages['nametoolong'] = 'Tên quá dài'; +$messages['namereserved'] = 'Tên đã được bảo vệ'; +$messages['setexist'] = 'Thiết lập đã tồn tại'; +$messages['nodata'] = 'Ít nhất một vị trí phải được chọn'; + +?> diff --git a/webmail/plugins/managesieve/localization/zh_CN.inc b/webmail/plugins/managesieve/localization/zh_CN.inc new file mode 100644 index 0000000..79b705c --- /dev/null +++ b/webmail/plugins/managesieve/localization/zh_CN.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = '过滤器'; +$labels['managefilters'] = '管理邮件过滤规则'; +$labels['filtername'] = '过滤规则名称'; +$labels['newfilter'] = '新建过滤规则'; +$labels['filteradd'] = '添加过滤规则'; +$labels['filterdel'] = '删除过滤规则'; +$labels['moveup'] = '上移'; +$labels['movedown'] = '下移'; +$labels['filterallof'] = '匹配所有规则'; +$labels['filteranyof'] = '匹配任意一条规则'; +$labels['filterany'] = '所有邮件'; +$labels['filtercontains'] = '包含'; +$labels['filternotcontains'] = '不包含'; +$labels['filteris'] = '等于'; +$labels['filterisnot'] = '不等于'; +$labels['filterexists'] = '存在'; +$labels['filternotexists'] = '不存在'; +$labels['filtermatches'] = '匹配表达式'; +$labels['filternotmatches'] = '不匹配表达式'; +$labels['filterregex'] = '匹配正则表达式'; +$labels['filternotregex'] = '不匹配正则表达式'; +$labels['filterunder'] = '小于'; +$labels['filterover'] = '大于'; +$labels['addrule'] = '新建规则'; +$labels['delrule'] = '删除规则'; +$labels['messagemoveto'] = '将邮件移至'; +$labels['messageredirect'] = '将邮件转发至'; +$labels['messagecopyto'] = '复制邮件至'; +$labels['messagesendcopy'] = '发送复制邮件至'; +$labels['messagereply'] = '回复以下内容'; +$labels['messagedelete'] = '删除邮件'; +$labels['messagediscard'] = '舍弃邮件并回复以下内容'; +$labels['messagesrules'] = '对新收取的邮件应用规则:'; +$labels['messagesactions'] = '执行以下操作:'; +$labels['add'] = '添加'; +$labels['del'] = '删除'; +$labels['sender'] = '发件人'; +$labels['recipient'] = '收件人'; +$labels['vacationaddresses'] = '收件人地址的附加名单(以半角逗号分隔)'; +$labels['vacationdays'] = '发送邮件频率(单位:天):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = '邮件正文(假期原因)'; +$labels['vacationsubject'] = '邮件主题'; +$labels['rulestop'] = '停止评价规则'; +$labels['enable'] = '启用/禁用'; +$labels['filterset'] = '过滤器设置'; +$labels['filtersets'] = '过滤器设置集'; +$labels['filtersetadd'] = '增加过滤器设置集'; +$labels['filtersetdel'] = '删除当前的过滤器设置集'; +$labels['filtersetact'] = '激活当前的过滤器设置集'; +$labels['filtersetdeact'] = '停用当前的过滤器设置集'; +$labels['filterdef'] = '过滤器定义'; +$labels['filtersetname'] = '过滤器集的名称'; +$labels['newfilterset'] = '新的过滤器集'; +$labels['active'] = '启用'; +$labels['none'] = '无'; +$labels['fromset'] = '从设置集'; +$labels['fromfile'] = '从文件'; +$labels['filterdisabled'] = '过滤器已禁用'; +$labels['countisgreaterthan'] = '计数大于'; +$labels['countisgreaterthanequal'] = '计数大于或等于'; +$labels['countislessthan'] = '计数小于'; +$labels['countislessthanequal'] = '计数小于或等于'; +$labels['countequals'] = '计数等于'; +$labels['countnotequals'] = '计数不等于'; +$labels['valueisgreaterthan'] = '值大于'; +$labels['valueisgreaterthanequal'] = '值大于或等于'; +$labels['valueislessthan'] = '值小于'; +$labels['valueislessthanequal'] = '值小于或等于'; +$labels['valueequals'] = '值等于'; +$labels['valuenotequals'] = '值不等于'; +$labels['setflags'] = '设定邮件的标识'; +$labels['addflags'] = '增加邮件的标识'; +$labels['removeflags'] = '删除邮件的标识'; +$labels['flagread'] = '读取'; +$labels['flagdeleted'] = '删除'; +$labels['flaganswered'] = '已答复'; +$labels['flagflagged'] = '已标记'; +$labels['flagdraft'] = '草稿'; +$labels['setvariable'] = '设置变量'; +$labels['setvarname'] = '变量名:'; +$labels['setvarvalue'] = '值:'; +$labels['setvarmodifiers'] = '修改:'; +$labels['varlower'] = '小写'; +$labels['varupper'] = '大写'; +$labels['varlowerfirst'] = '首字母小写'; +$labels['varupperfirst'] = '首字母大写'; +$labels['varquotewildcard'] = '引用特殊字符'; +$labels['varlength'] = '长度'; +$labels['notify'] = '发送通知'; +$labels['notifyaddress'] = '收件地址:'; +$labels['notifybody'] = '通知正文:'; +$labels['notifysubject'] = '通知主题'; +$labels['notifyfrom'] = '通知的发送人:'; +$labels['notifyimportance'] = '优先级:'; +$labels['notifyimportancelow'] = '低'; +$labels['notifyimportancenormal'] = '中'; +$labels['notifyimportancehigh'] = '高'; +$labels['filtercreate'] = '创建过滤规则'; +$labels['usedata'] = '在过滤器中使用下列数据'; +$labels['nextstep'] = '下一步'; +$labels['...'] = '...'; +$labels['advancedopts'] = '高级选项'; +$labels['body'] = '正文'; +$labels['address'] = '地址'; +$labels['envelope'] = '信封'; +$labels['modifier'] = '修饰符:'; +$labels['text'] = '文本'; +$labels['undecoded'] = '未解码(RAW)'; +$labels['contenttype'] = '内容类型'; +$labels['modtype'] = '类型:'; +$labels['allparts'] = '全部'; +$labels['domain'] = '域'; +$labels['localpart'] = '本地部份'; +$labels['user'] = '用户'; +$labels['detail'] = '细节'; +$labels['comparator'] = '比较:'; +$labels['default'] = '默认'; +$labels['octet'] = '严格模式(字节)'; +$labels['asciicasemap'] = '不区分大小写(ascii 字符)'; +$labels['asciinumeric'] = '数字类型(ascii 数字)'; + +$messages = array(); +$messages['filterunknownerror'] = '未知的服务器错误'; +$messages['filterconnerror'] = '无法连接至服务器'; +$messages['filterdeleteerror'] = '无法删除过滤器。服务器发生错误'; +$messages['filterdeleted'] = '过滤器已成功删除'; +$messages['filtersaved'] = '过滤器已成功保存。'; +$messages['filtersaveerror'] = '无法保存过滤器。服务器发生错误'; +$messages['filterdeleteconfirm'] = '您确定要删除所选择的过滤器吗?'; +$messages['ruledeleteconfirm'] = '您确定要删除所选择的规则吗?'; +$messages['actiondeleteconfirm'] = '您确定要删除所选择的操作吗?'; +$messages['forbiddenchars'] = '内容包含禁用字符'; +$messages['cannotbeempty'] = '内容不能为空'; +$messages['ruleexist'] = '指定过滤器名称已存在。'; +$messages['setactivateerror'] = '无法启用指定过滤器,服务器发生错误。'; +$messages['setdeactivateerror'] = '无法停用指定过滤器,服务器发生错误。'; +$messages['setdeleteerror'] = '无法删除指定过滤器,服务器发生错误。'; +$messages['setactivated'] = '启用过滤器集成功。'; +$messages['setdeactivated'] = '禁用过滤器集成功。'; +$messages['setdeleted'] = '删除过滤器成功。'; +$messages['setdeleteconfirm'] = '您确定要删除指定的过滤器吗?'; +$messages['setcreateerror'] = '无法创建过滤器,服务器发生错误。'; +$messages['setcreated'] = '过滤器成功创建。'; +$messages['activateerror'] = '无法启用选中的过滤器,服务器发生错误。'; +$messages['deactivateerror'] = '无法禁用选中的过滤器,服务器发生错误。'; +$messages['deactivated'] = '启用过滤器成功。'; +$messages['activated'] = '禁用过滤器成功。'; +$messages['moved'] = '移动过滤器成功。'; +$messages['moveerror'] = '无法移动选中的过滤器,服务器发生错误。'; +$messages['nametoolong'] = '无法创建过滤器集,名称太长。'; +$messages['namereserved'] = '保留名称。'; +$messages['setexist'] = '设置已存在。'; +$messages['nodata'] = '至少选择一个位置!'; + +?> diff --git a/webmail/plugins/managesieve/localization/zh_TW.inc b/webmail/plugins/managesieve/localization/zh_TW.inc new file mode 100644 index 0000000..3f3fc13 --- /dev/null +++ b/webmail/plugins/managesieve/localization/zh_TW.inc @@ -0,0 +1,177 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | plugins/managesieve/localization/<lang>.inc | + | | + | Localization file of the Roundcube Webmail Managesieve plugin | + | Copyright (C) 2012-2013, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + | | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-managesieve/ +*/ + + +$labels['filters'] = '篩選器'; +$labels['managefilters'] = '設定篩選器'; +$labels['filtername'] = '篩選器名稱'; +$labels['newfilter'] = '建立新篩選器'; +$labels['filteradd'] = '增加篩選器'; +$labels['filterdel'] = '刪除篩選器'; +$labels['moveup'] = '上移'; +$labels['movedown'] = '下移'; +$labels['filterallof'] = '符合所有規則'; +$labels['filteranyof'] = '符合任一條規則'; +$labels['filterany'] = '所有信件'; +$labels['filtercontains'] = '包含'; +$labels['filternotcontains'] = '不包含'; +$labels['filteris'] = '等於'; +$labels['filterisnot'] = '不等於'; +$labels['filterexists'] = '存在'; +$labels['filternotexists'] = '不存在'; +$labels['filtermatches'] = '符合表達式'; +$labels['filternotmatches'] = '不符合表達式'; +$labels['filterregex'] = '符合正規表達式'; +$labels['filternotregex'] = '不符合正規表達式'; +$labels['filterunder'] = '小於'; +$labels['filterover'] = '大於'; +$labels['addrule'] = '新增規則'; +$labels['delrule'] = '刪除規則'; +$labels['messagemoveto'] = '將信件移至'; +$labels['messageredirect'] = '將信件轉寄至'; +$labels['messagecopyto'] = '複製訊息至'; +$labels['messagesendcopy'] = '寄送訊息複本至'; +$labels['messagereply'] = '以下列內容回覆'; +$labels['messagedelete'] = '刪除信件'; +$labels['messagediscard'] = '刪除信件並以下列內容回覆'; +$labels['messagesrules'] = '對新收到的信件:'; +$labels['messagesactions'] = '執行下列動作:'; +$labels['add'] = '新增'; +$labels['del'] = '刪除'; +$labels['sender'] = '寄件者'; +$labels['recipient'] = '收件者'; +$labels['vacationaddresses'] = '其他收件者(用半形逗號隔開):'; +$labels['vacationdays'] = '多久回覆一次(單位:天):'; +$labels['vacationinterval'] = 'How often send messages:'; +$labels['days'] = 'days'; +$labels['seconds'] = 'seconds'; +$labels['vacationreason'] = '信件內容(休假原因):'; +$labels['vacationsubject'] = '訊息主旨:'; +$labels['rulestop'] = '停止評估規則'; +$labels['enable'] = '啟用/停用'; +$labels['filterset'] = '篩選器集合'; +$labels['filtersets'] = '篩選器集合'; +$labels['filtersetadd'] = '加入篩選器集合'; +$labels['filtersetdel'] = '刪除目前的篩選器集合'; +$labels['filtersetact'] = '啟用目前的篩選器集合'; +$labels['filtersetdeact'] = '停用目前的篩選器集合'; +$labels['filterdef'] = '篩選器定義'; +$labels['filtersetname'] = '篩選器集合名稱'; +$labels['newfilterset'] = '建立篩選器集合'; +$labels['active'] = '啟用'; +$labels['none'] = '無'; +$labels['fromset'] = '從集合'; +$labels['fromfile'] = '重檔案'; +$labels['filterdisabled'] = '篩選器已停用'; +$labels['countisgreaterthan'] = '計數大於'; +$labels['countisgreaterthanequal'] = '計數大於或等於'; +$labels['countislessthan'] = '計數小於'; +$labels['countislessthanequal'] = '數量小於或等於'; +$labels['countequals'] = '數量等於'; +$labels['countnotequals'] = '數量不等於'; +$labels['valueisgreaterthan'] = '值大於'; +$labels['valueisgreaterthanequal'] = '值大於等於'; +$labels['valueislessthan'] = '值小於'; +$labels['valueislessthanequal'] = '值小於或等於'; +$labels['valueequals'] = '值等於'; +$labels['valuenotequals'] = '值不等於'; +$labels['setflags'] = '設定標幟'; +$labels['addflags'] = '新增標記到訊息'; +$labels['removeflags'] = '移除訊息標記'; +$labels['flagread'] = '讀取'; +$labels['flagdeleted'] = '刪除'; +$labels['flaganswered'] = '已經回覆'; +$labels['flagflagged'] = '已加標記的郵件'; +$labels['flagdraft'] = '草稿'; +$labels['setvariable'] = '設定變數'; +$labels['setvarname'] = '變數名稱:'; +$labels['setvarvalue'] = '變數值:'; +$labels['setvarmodifiers'] = '修改:'; +$labels['varlower'] = '低於'; +$labels['varupper'] = '高於'; +$labels['varlowerfirst'] = '第一個字低於'; +$labels['varupperfirst'] = '第一個字高於'; +$labels['varquotewildcard'] = '跳脫字元'; +$labels['varlength'] = '長度'; +$labels['notify'] = '寄送通知'; +$labels['notifyaddress'] = '寄到電子郵件位址:'; +$labels['notifybody'] = '通知內容:'; +$labels['notifysubject'] = '通知主旨:'; +$labels['notifyfrom'] = '通知寄件者:'; +$labels['notifyimportance'] = '重要性:'; +$labels['notifyimportancelow'] = '低'; +$labels['notifyimportancenormal'] = '一般'; +$labels['notifyimportancehigh'] = '高'; +$labels['filtercreate'] = '建立郵件規則'; +$labels['usedata'] = '於規則中使用轉寄時間'; +$labels['nextstep'] = '下一步'; +$labels['...'] = '…'; +$labels['advancedopts'] = '進階選項'; +$labels['body'] = '內文'; +$labels['address'] = '郵件位址'; +$labels['envelope'] = '信封'; +$labels['modifier'] = '修改:'; +$labels['text'] = '文字'; +$labels['undecoded'] = '未解碼(raw)'; +$labels['contenttype'] = '內容類型'; +$labels['modtype'] = '型態:'; +$labels['allparts'] = '全部'; +$labels['domain'] = '網域'; +$labels['localpart'] = '本機連接埠'; +$labels['user'] = '使用者'; +$labels['detail'] = '細節'; +$labels['comparator'] = '比較:'; +$labels['default'] = '預設'; +$labels['octet'] = '嚴謹模式(八位元組)'; +$labels['asciicasemap'] = '不區分大小寫(採用ASCII-Casemap)'; +$labels['asciinumeric'] = '數字類型(ascii-numeric)'; + +$messages = array(); +$messages['filterunknownerror'] = '未知的伺服器錯誤'; +$messages['filterconnerror'] = '無法與伺服器連線'; +$messages['filterdeleteerror'] = '無法刪除篩選器。發生伺服器錯誤'; +$messages['filterdeleted'] = '成功刪除篩選器'; +$messages['filtersaved'] = '成功儲存篩選器。'; +$messages['filtersaveerror'] = '無法儲存篩選器。發生伺服器錯誤'; +$messages['filterdeleteconfirm'] = '您確定要刪除選擇的郵件規則嗎?'; +$messages['ruledeleteconfirm'] = '您確定要刪除選的規則嗎?'; +$messages['actiondeleteconfirm'] = '您確定要刪除選擇的動作嗎?'; +$messages['forbiddenchars'] = '內容包含禁用字元'; +$messages['cannotbeempty'] = '內容不能為空白'; +$messages['ruleexist'] = '規則名稱重複'; +$messages['setactivateerror'] = '無法啟用選擇的篩選器集合。 伺服器發生錯誤'; +$messages['setdeactivateerror'] = '無法停用選擇的篩選器集合。 伺服器發生錯誤'; +$messages['setdeleteerror'] = '無法刪除選擇的篩選器集合。 伺服器發生錯誤'; +$messages['setactivated'] = '篩選器集合成功啟用'; +$messages['setdeactivated'] = '篩選器集合成功停用'; +$messages['setdeleted'] = '篩選器集合成功刪除'; +$messages['setdeleteconfirm'] = '你確定要刪除選擇的篩選器集合嗎?'; +$messages['setcreateerror'] = '無法建立篩選器集合。 伺服器發生錯誤'; +$messages['setcreated'] = '篩選器集合成功建立'; +$messages['activateerror'] = '無法啟用選擇的篩選器。伺服器錯誤'; +$messages['deactivateerror'] = '無法停用選擇的篩選器。伺服器錯誤'; +$messages['deactivated'] = '篩選器已啟用'; +$messages['activated'] = '篩選器已停用'; +$messages['moved'] = '篩選器已移動'; +$messages['moveerror'] = '無法移動選擇的篩選器。伺服器錯誤'; +$messages['nametoolong'] = '無法建立篩選器集合。 名稱太長'; +$messages['namereserved'] = '保留名稱.'; +$messages['setexist'] = '設定已存在'; +$messages['nodata'] = '至少要選擇一個位置'; + +?> diff --git a/webmail/plugins/managesieve/managesieve.js b/webmail/plugins/managesieve/managesieve.js new file mode 100644 index 0000000..035ed7b --- /dev/null +++ b/webmail/plugins/managesieve/managesieve.js @@ -0,0 +1,803 @@ +/* (Manage)Sieve Filters */ + +if (window.rcmail) { + rcmail.addEventListener('init', function(evt) { + // add managesieve-create command to message_commands array, + // so it's state will be updated on message selection/unselection + if (rcmail.env.task == 'mail') { + if (rcmail.env.action != 'show') + rcmail.env.message_commands.push('managesieve-create'); + else + rcmail.enable_command('managesieve-create', true); + } + else { + var tab = $('<span>').attr('id', 'settingstabpluginmanagesieve').addClass('tablink filter'), + button = $('<a>').attr('href', rcmail.env.comm_path+'&_action=plugin.managesieve') + .attr('title', rcmail.gettext('managesieve.managefilters')) + .html(rcmail.gettext('managesieve.filters')) + .appendTo(tab); + + // add tab + rcmail.add_element(tab, 'tabs'); + } + + if (rcmail.env.task == 'mail' || rcmail.env.action.indexOf('plugin.managesieve') != -1) { + // Create layer for form tips + if (!rcmail.env.framed) { + rcmail.env.ms_tip_layer = $('<div id="managesieve-tip" class="popupmenu"></div>'); + rcmail.env.ms_tip_layer.appendTo(document.body); + } + } + + // register commands + rcmail.register_command('plugin.managesieve-save', function() { rcmail.managesieve_save() }); + rcmail.register_command('plugin.managesieve-act', function() { rcmail.managesieve_act() }); + rcmail.register_command('plugin.managesieve-add', function() { rcmail.managesieve_add() }); + rcmail.register_command('plugin.managesieve-del', function() { rcmail.managesieve_del() }); + rcmail.register_command('plugin.managesieve-move', function() { rcmail.managesieve_move() }); + rcmail.register_command('plugin.managesieve-setadd', function() { rcmail.managesieve_setadd() }); + rcmail.register_command('plugin.managesieve-setdel', function() { rcmail.managesieve_setdel() }); + rcmail.register_command('plugin.managesieve-setact', function() { rcmail.managesieve_setact() }); + rcmail.register_command('plugin.managesieve-setget', function() { rcmail.managesieve_setget() }); + + if (rcmail.env.action == 'plugin.managesieve' || rcmail.env.action == 'plugin.managesieve-save') { + if (rcmail.gui_objects.sieveform) { + rcmail.enable_command('plugin.managesieve-save', true); + + // small resize for header element + $('select[name="_header[]"]', rcmail.gui_objects.sieveform).each(function() { + if (this.value == '...') this.style.width = '40px'; + }); + + // resize dialog window + if (rcmail.env.action == 'plugin.managesieve' && rcmail.env.task == 'mail') { + parent.rcmail.managesieve_dialog_resize(rcmail.gui_objects.sieveform); + } + + $('input[type="text"]:first', rcmail.gui_objects.sieveform).focus(); + } + else { + rcmail.enable_command('plugin.managesieve-add', 'plugin.managesieve-setadd', !rcmail.env.sieveconnerror); + } + + var i, p = rcmail, setcnt, set = rcmail.env.currentset; + + if (rcmail.gui_objects.filterslist) { + rcmail.filters_list = new rcube_list_widget(rcmail.gui_objects.filterslist, + {multiselect:false, draggable:true, keyboard:false}); + rcmail.filters_list.addEventListener('select', function(e) { p.managesieve_select(e); }); + rcmail.filters_list.addEventListener('dragstart', function(e) { p.managesieve_dragstart(e); }); + rcmail.filters_list.addEventListener('dragend', function(e) { p.managesieve_dragend(e); }); + rcmail.filters_list.row_init = function (row) { + row.obj.onmouseover = function() { p.managesieve_focus_filter(row); }; + row.obj.onmouseout = function() { p.managesieve_unfocus_filter(row); }; + }; + rcmail.filters_list.init(); + rcmail.filters_list.focus(); + } + + if (rcmail.gui_objects.filtersetslist) { + rcmail.filtersets_list = new rcube_list_widget(rcmail.gui_objects.filtersetslist, {multiselect:false, draggable:false, keyboard:false}); + rcmail.filtersets_list.addEventListener('select', function(e) { p.managesieve_setselect(e); }); + rcmail.filtersets_list.init(); + rcmail.filtersets_list.focus(); + + if (set != null) { + set = rcmail.managesieve_setid(set); + rcmail.filtersets_list.shift_start = set; + rcmail.filtersets_list.highlight_row(set, false); + } + + setcnt = rcmail.filtersets_list.rowcount; + rcmail.enable_command('plugin.managesieve-set', true); + rcmail.enable_command('plugin.managesieve-setact', 'plugin.managesieve-setget', setcnt); + rcmail.enable_command('plugin.managesieve-setdel', setcnt > 1); + + // Fix dragging filters over sets list + $('tr', rcmail.gui_objects.filtersetslist).each(function (i, e) { p.managesieve_fixdragend(e); }); + } + } + if (rcmail.gui_objects.sieveform && rcmail.env.rule_disabled) + $('#disabled').attr('checked', true); + }); +}; + +/*********************************************************/ +/********* Managesieve UI methods *********/ +/*********************************************************/ + +rcube_webmail.prototype.managesieve_add = function() +{ + this.load_managesieveframe(); + this.filters_list.clear_selection(); +}; + +rcube_webmail.prototype.managesieve_del = function() +{ + var id = this.filters_list.get_single_selection(); + if (confirm(this.get_label('managesieve.filterdeleteconfirm'))) { + var lock = this.set_busy(true, 'loading'); + this.http_post('plugin.managesieve', + '_act=delete&_fid='+this.filters_list.rows[id].uid, lock); + } +}; + +rcube_webmail.prototype.managesieve_act = function() +{ + var id = this.filters_list.get_single_selection(), + lock = this.set_busy(true, 'loading'); + + this.http_post('plugin.managesieve', + '_act=act&_fid='+this.filters_list.rows[id].uid, lock); +}; + +// Filter selection +rcube_webmail.prototype.managesieve_select = function(list) +{ + var id = list.get_single_selection(); + if (id != null) + this.load_managesieveframe(list.rows[id].uid); +}; + +// Set selection +rcube_webmail.prototype.managesieve_setselect = function(list) +{ + this.show_contentframe(false); + this.filters_list.clear(true); + this.enable_command('plugin.managesieve-setdel', list.rowcount > 1); + this.enable_command( 'plugin.managesieve-setact', 'plugin.managesieve-setget', true); + + var id = list.get_single_selection(); + if (id != null) + this.managesieve_list(this.env.filtersets[id]); +}; + +rcube_webmail.prototype.managesieve_rowid = function(id) +{ + var i, rows = this.filters_list.rows; + + for (i=0; i<rows.length; i++) + if (rows[i] != null && rows[i].uid == id) + return i; +}; + +// Returns set's identifier +rcube_webmail.prototype.managesieve_setid = function(name) +{ + for (var i in this.env.filtersets) + if (this.env.filtersets[i] == name) + return i; +}; + +// Filters listing request +rcube_webmail.prototype.managesieve_list = function(script) +{ + var lock = this.set_busy(true, 'loading'); + + this.http_post('plugin.managesieve', '_act=list&_set='+urlencode(script), lock); +}; + +// Script download request +rcube_webmail.prototype.managesieve_setget = function() +{ + var id = this.filtersets_list.get_single_selection(), + script = this.env.filtersets[id]; + + location.href = this.env.comm_path+'&_action=plugin.managesieve&_act=setget&_set='+urlencode(script); +}; + +// Set activate/deactivate request +rcube_webmail.prototype.managesieve_setact = function() +{ + var id = this.filtersets_list.get_single_selection(), + lock = this.set_busy(true, 'loading'), + script = this.env.filtersets[id], + action = $('#rcmrow'+id).hasClass('disabled') ? 'setact' : 'deact'; + + this.http_post('plugin.managesieve', '_act='+action+'&_set='+urlencode(script), lock); +}; + +// Set delete request +rcube_webmail.prototype.managesieve_setdel = function() +{ + if (!confirm(this.get_label('managesieve.setdeleteconfirm'))) + return false; + + var id = this.filtersets_list.get_single_selection(), + lock = this.set_busy(true, 'loading'), + script = this.env.filtersets[id]; + + this.http_post('plugin.managesieve', '_act=setdel&_set='+urlencode(script), lock); +}; + +// Set add request +rcube_webmail.prototype.managesieve_setadd = function() +{ + this.filters_list.clear_selection(); + this.enable_command('plugin.managesieve-act', 'plugin.managesieve-del', false); + + if (this.env.contentframe && window.frames && window.frames[this.env.contentframe]) { + var lock = this.set_busy(true, 'loading'); + target = window.frames[this.env.contentframe]; + target.location.href = this.env.comm_path+'&_action=plugin.managesieve&_framed=1&_newset=1&_unlock='+lock; + } +}; + +rcube_webmail.prototype.managesieve_updatelist = function(action, o) +{ + this.set_busy(true); + + switch (action) { + + // Delete filter row + case 'del': + var i = 0, list = this.filters_list; + + list.remove_row(this.managesieve_rowid(o.id)); + list.clear_selection(); + this.show_contentframe(false); + this.enable_command('plugin.managesieve-del', 'plugin.managesieve-act', false); + + // filter identifiers changed, fix the list + $('tr', this.filters_list.list).each(function() { + // remove hidden (deleted) rows + if (this.style.display == 'none') { + $(this).detach(); + return; + } + + // modify ID and remove all attached events + $(this).attr('id', 'rcmrow'+(i++)).unbind(); + }); + list.init(); + + break; + + // Update filter row + case 'update': + var i, row = $('#rcmrow'+this.managesieve_rowid(o.id)); + + if (o.name) + $('td', row).text(o.name); + if (o.disabled) + row.addClass('disabled'); + else + row.removeClass('disabled'); + + $('#disabled', $('iframe').contents()).prop('checked', o.disabled); + + break; + + // Add filter row to the list + case 'add': + var list = this.filters_list, + row = $('<tr><td class="name"></td></tr>'); + + $('td', row).text(o.name); + row.attr('id', 'rcmrow'+o.id); + if (o.disabled) + row.addClass('disabled'); + + list.insert_row(row.get(0)); + list.highlight_row(o.id); + + this.enable_command('plugin.managesieve-del', 'plugin.managesieve-act', true); + + break; + + // Filling rules list + case 'list': + var i, tr, td, el, list = this.filters_list; + + if (o.clear) + list.clear(); + + for (i in o.list) { + el = o.list[i]; + tr = document.createElement('TR'); + td = document.createElement('TD'); + + $(td).text(el.name); + td.className = 'name'; + tr.id = 'rcmrow' + el.id; + if (el['class']) + tr.className = el['class']; + tr.appendChild(td); + + list.insert_row(tr); + } + + if (o.set) + list.highlight_row(o.set); + else + this.enable_command('plugin.managesieve-del', 'plugin.managesieve-act', false); + + break; + + // Sactivate/deactivate set + case 'setact': + var id = this.managesieve_setid(o.name), row = $('#rcmrow' + id); + if (o.active) { + if (o.all) + $('tr', this.gui_objects.filtersetslist).addClass('disabled'); + row.removeClass('disabled'); + } + else + row.addClass('disabled'); + + break; + + // Delete set row + case 'setdel': + var id = this.managesieve_setid(o.name); + + this.filtersets_list.remove_row(id); + this.filters_list.clear(); + this.show_contentframe(false); + this.enable_command('plugin.managesieve-setdel', 'plugin.managesieve-setact', 'plugin.managesieve-setget', false); + + delete this.env.filtersets[id]; + + break; + + // Create set row + case 'setadd': + var id = 'S' + new Date().getTime(), + list = this.filtersets_list, + row = $('<tr class="disabled"><td class="name"></td></tr>'); + + $('td', row).text(o.name); + row.attr('id', 'rcmrow'+id); + + this.env.filtersets[id] = o.name; + list.insert_row(row.get(0)); + + // move row into its position on the list + if (o.index != list.rowcount-1) { + row.detach(); + var elem = $('tr:visible', list.list).get(o.index); + row.insertBefore(elem); + } + + list.select(id); + + // Fix dragging filters over sets list + this.managesieve_fixdragend(row); + + break; + } + + this.set_busy(false); +}; + +// load filter frame +rcube_webmail.prototype.load_managesieveframe = function(id) +{ + var has_id = typeof(id) != 'undefined' && id != null; + this.enable_command('plugin.managesieve-act', 'plugin.managesieve-del', has_id); + + if (this.env.contentframe && window.frames && window.frames[this.env.contentframe]) { + target = window.frames[this.env.contentframe]; + var msgid = this.set_busy(true, 'loading'); + target.location.href = this.env.comm_path+'&_action=plugin.managesieve&_framed=1' + +(has_id ? '&_fid='+id : '')+'&_unlock='+msgid; + } +}; + +// load filter frame +rcube_webmail.prototype.managesieve_dragstart = function(list) +{ + var id = this.filters_list.get_single_selection(); + + this.drag_active = true; + this.drag_filter = id; +}; + +rcube_webmail.prototype.managesieve_dragend = function(e) +{ + if (this.drag_active) { + if (this.drag_filter_target) { + var lock = this.set_busy(true, 'loading'); + + this.show_contentframe(false); + this.http_post('plugin.managesieve', '_act=move&_fid='+this.drag_filter + +'&_to='+this.drag_filter_target, lock); + } + this.drag_active = false; + } +}; + +// Fixes filters dragging over sets list +// @TODO: to be removed after implementing copying filters +rcube_webmail.prototype.managesieve_fixdragend = function(elem) +{ + var p = this; + $(elem).bind('mouseup' + ((bw.iphone || bw.ipad) ? ' touchend' : ''), function(e) { + if (p.drag_active) + p.filters_list.drag_mouse_up(e); + }); +}; + +rcube_webmail.prototype.managesieve_focus_filter = function(row) +{ + var id = row.id.replace(/^rcmrow/, ''); + if (this.drag_active && id != this.drag_filter) { + this.drag_filter_target = id; + $(row.obj).addClass(id < this.drag_filter ? 'filtermoveup' : 'filtermovedown'); + } +}; + +rcube_webmail.prototype.managesieve_unfocus_filter = function(row) +{ + if (this.drag_active) { + $(row.obj).removeClass('filtermoveup filtermovedown'); + this.drag_filter_target = null; + } +}; + +/*********************************************************/ +/********* Filter Form methods *********/ +/*********************************************************/ + +// Form submition +rcube_webmail.prototype.managesieve_save = function() +{ + if (parent.rcmail && parent.rcmail.filters_list && this.gui_objects.sieveform.name != 'filtersetform') { + var id = parent.rcmail.filters_list.get_single_selection(); + if (id != null) + this.gui_objects.sieveform.elements['_fid'].value = parent.rcmail.filters_list.rows[id].uid; + } + this.gui_objects.sieveform.submit(); +}; + +// Operations on filters form +rcube_webmail.prototype.managesieve_ruleadd = function(id) +{ + this.http_post('plugin.managesieve', '_act=ruleadd&_rid='+id); +}; + +rcube_webmail.prototype.managesieve_rulefill = function(content, id, after) +{ + if (content != '') { + // create new element + var div = document.getElementById('rules'), + row = document.createElement('div'); + + this.managesieve_insertrow(div, row, after); + // fill row after inserting (for IE) + row.setAttribute('id', 'rulerow'+id); + row.className = 'rulerow'; + row.innerHTML = content; + + this.managesieve_formbuttons(div); + } +}; + +rcube_webmail.prototype.managesieve_ruledel = function(id) +{ + if ($('#ruledel'+id).hasClass('disabled')) + return; + + if (confirm(this.get_label('managesieve.ruledeleteconfirm'))) { + var row = document.getElementById('rulerow'+id); + row.parentNode.removeChild(row); + this.managesieve_formbuttons(document.getElementById('rules')); + } +}; + +rcube_webmail.prototype.managesieve_actionadd = function(id) +{ + this.http_post('plugin.managesieve', '_act=actionadd&_aid='+id); +}; + +rcube_webmail.prototype.managesieve_actionfill = function(content, id, after) +{ + if (content != '') { + var div = document.getElementById('actions'), + row = document.createElement('div'); + + this.managesieve_insertrow(div, row, after); + // fill row after inserting (for IE) + row.className = 'actionrow'; + row.setAttribute('id', 'actionrow'+id); + row.innerHTML = content; + + this.managesieve_formbuttons(div); + } +}; + +rcube_webmail.prototype.managesieve_actiondel = function(id) +{ + if ($('#actiondel'+id).hasClass('disabled')) + return; + + if (confirm(this.get_label('managesieve.actiondeleteconfirm'))) { + var row = document.getElementById('actionrow'+id); + row.parentNode.removeChild(row); + this.managesieve_formbuttons(document.getElementById('actions')); + } +}; + +// insert rule/action row in specified place on the list +rcube_webmail.prototype.managesieve_insertrow = function(div, row, after) +{ + for (var i=0; i<div.childNodes.length; i++) { + if (div.childNodes[i].id == (div.id == 'rules' ? 'rulerow' : 'actionrow') + after) + break; + } + + if (div.childNodes[i+1]) + div.insertBefore(row, div.childNodes[i+1]); + else + div.appendChild(row); +}; + +// update Delete buttons status +rcube_webmail.prototype.managesieve_formbuttons = function(div) +{ + var i, button, buttons = []; + + // count and get buttons + for (i=0; i<div.childNodes.length; i++) { + if (div.id == 'rules' && div.childNodes[i].id) { + if (/rulerow/.test(div.childNodes[i].id)) + buttons.push('ruledel' + div.childNodes[i].id.replace(/rulerow/, '')); + } + else if (div.childNodes[i].id) { + if (/actionrow/.test(div.childNodes[i].id)) + buttons.push( 'actiondel' + div.childNodes[i].id.replace(/actionrow/, '')); + } + } + + for (i=0; i<buttons.length; i++) { + button = document.getElementById(buttons[i]); + if (i>0 || buttons.length>1) { + $(button).removeClass('disabled'); + } + else { + $(button).addClass('disabled'); + } + } +}; + +function rule_header_select(id) +{ + var obj = document.getElementById('header' + id), + size = document.getElementById('rule_size' + id), + op = document.getElementById('rule_op' + id), + target = document.getElementById('rule_target' + id), + header = document.getElementById('custom_header' + id), + mod = document.getElementById('rule_mod' + id), + trans = document.getElementById('rule_trans' + id), + comp = document.getElementById('rule_comp' + id); + + if (obj.value == 'size') { + size.style.display = 'inline'; + op.style.display = 'none'; + target.style.display = 'none'; + header.style.display = 'none'; + mod.style.display = 'none'; + trans.style.display = 'none'; + comp.style.display = 'none'; + } + else { + header.style.display = obj.value != '...' ? 'none' : 'inline'; + size.style.display = 'none'; + op.style.display = 'inline'; + comp.style.display = ''; + rule_op_select(id); + mod.style.display = obj.value == 'body' ? 'none' : 'block'; + trans.style.display = obj.value == 'body' ? 'block' : 'none'; + } + + obj.style.width = obj.value == '...' ? '40px' : ''; +}; + +function rule_op_select(id) +{ + var obj = document.getElementById('rule_op' + id), + target = document.getElementById('rule_target' + id); + + target.style.display = obj.value == 'exists' || obj.value == 'notexists' ? 'none' : 'inline'; +}; + +function rule_trans_select(id) +{ + var obj = document.getElementById('rule_trans_op' + id), + target = document.getElementById('rule_trans_type' + id); + + target.style.display = obj.value != 'content' ? 'none' : 'inline'; +}; + +function rule_mod_select(id) +{ + var obj = document.getElementById('rule_mod_op' + id), + target = document.getElementById('rule_mod_type' + id); + + target.style.display = obj.value != 'address' && obj.value != 'envelope' ? 'none' : 'inline'; +}; + +function rule_join_radio(value) +{ + $('#rules').css('display', value == 'any' ? 'none' : 'block'); +}; + +function rule_adv_switch(id, elem) +{ + var elem = $(elem), enabled = elem.hasClass('hide'), adv = $('#rule_advanced'+id); + + if (enabled) { + adv.hide(); + elem.removeClass('hide').addClass('show'); + } + else { + adv.show(); + elem.removeClass('show').addClass('hide'); + } +} + +function action_type_select(id) +{ + var obj = document.getElementById('action_type' + id), + enabled = {}, + elems = { + mailbox: document.getElementById('action_mailbox' + id), + target: document.getElementById('action_target' + id), + target_area: document.getElementById('action_target_area' + id), + flags: document.getElementById('action_flags' + id), + vacation: document.getElementById('action_vacation' + id), + set: document.getElementById('action_set' + id), + notify: document.getElementById('action_notify' + id) + }; + + if (obj.value == 'fileinto' || obj.value == 'fileinto_copy') { + enabled.mailbox = 1; + } + else if (obj.value == 'redirect' || obj.value == 'redirect_copy') { + enabled.target = 1; + } + else if (obj.value.match(/^reject|ereject$/)) { + enabled.target_area = 1; + } + else if (obj.value.match(/^(add|set|remove)flag$/)) { + enabled.flags = 1; + } + else if (obj.value == 'vacation') { + enabled.vacation = 1; + } + else if (obj.value == 'set') { + enabled.set = 1; + } + else if (obj.value == 'notify') { + enabled.notify = 1; + } + + for (var x in elems) { + elems[x].style.display = !enabled[x] ? 'none' : 'inline'; + } +}; + +// Register onmouse(leave/enter) events for tips on specified form element +rcube_webmail.prototype.managesieve_tip_register = function(tips) +{ + var n, framed = parent.rcmail, + tip = framed ? parent.rcmail.env.ms_tip_layer : rcmail.env.ms_tip_layer; + + for (var n in tips) { + $('#'+tips[n][0]) + .bind('mouseenter', {str: tips[n][1]}, + function(e) { + var offset = $(this).offset(), + left = offset.left, + top = offset.top - 12, + minwidth = $(this).width(); + + if (framed) { + offset = $((rcmail.env.task == 'mail' ? '#sievefilterform > iframe' : '#filter-box'), parent.document).offset(); + top += offset.top; + left += offset.left; + } + + tip.html(e.data.str) + top -= tip.height(); + + tip.css({left: left, top: top, minWidth: (minwidth-2) + 'px'}).show(); + }) + .bind('mouseleave', function(e) { tip.hide(); }); + } +}; + +/*********************************************************/ +/********* Mail UI methods *********/ +/*********************************************************/ + +rcube_webmail.prototype.managesieve_create = function() +{ + if (!rcmail.env.sieve_headers || !rcmail.env.sieve_headers.length) + return; + + var i, html, buttons = {}, dialog = $("#sievefilterform"); + + // create dialog window + if (!dialog.length) { + dialog = $('<div id="sievefilterform"></div>'); + $('body').append(dialog); + } + + // build dialog window content + html = '<fieldset><legend>'+this.gettext('managesieve.usedata')+'</legend><ul>'; + for (i in rcmail.env.sieve_headers) + html += '<li><input type="checkbox" name="headers[]" id="sievehdr'+i+'" value="'+i+'" checked="checked" />' + +'<label for="sievehdr'+i+'">'+rcmail.env.sieve_headers[i][0]+':</label> '+rcmail.env.sieve_headers[i][1]+'</li>'; + html += '</ul></fieldset>'; + + dialog.html(html); + + // [Next Step] button action + buttons[this.gettext('managesieve.nextstep')] = function () { + // check if there's at least one checkbox checked + var hdrs = $('input[name="headers[]"]:checked', dialog); + if (!hdrs.length) { + alert(rcmail.gettext('managesieve.nodata')); + return; + } + + // build frame URL + var url = rcmail.get_task_url('mail'); + url = rcmail.add_url(url, '_action', 'plugin.managesieve'); + url = rcmail.add_url(url, '_framed', 1); + + hdrs.map(function() { + var val = rcmail.env.sieve_headers[this.value]; + url = rcmail.add_url(url, 'r['+this.value+']', val[0]+':'+val[1]); + }); + + // load form in the iframe + var frame = $('<iframe>').attr({src: url, frameborder: 0}) + dialog.empty().append(frame).dialog('widget').resize(); + + // Change [Next Step] button with [Save] button + buttons = {}; + buttons[rcmail.gettext('save')] = function() { + var win = $('iframe', dialog).get(0).contentWindow; + win.rcmail.managesieve_save(); + }; + dialog.dialog('option', 'buttons', buttons); + }; + + // show dialog window + dialog.dialog({ + modal: false, + resizable: !bw.ie6, + closeOnEscape: (!bw.ie6 && !bw.ie7), // disable for performance reasons + title: this.gettext('managesieve.newfilter'), + close: function() { rcmail.managesieve_dialog_close(); }, + buttons: buttons, + minWidth: 600, + minHeight: 300, + height: 250 + }).show(); + + this.env.managesieve_dialog = dialog; +} + +rcube_webmail.prototype.managesieve_dialog_close = function() +{ + var dialog = this.env.managesieve_dialog; + + // BUG(?): if we don't remove the iframe first, it will be reloaded + dialog.html(''); + dialog.dialog('destroy').hide(); +} + +rcube_webmail.prototype.managesieve_dialog_resize = function(o) +{ + var dialog = this.env.managesieve_dialog, + win = $(window), form = $(o); + width = $('fieldset:first', o).width(), // fieldset width is more appropriate here + height = form.height(), + w = win.width(), h = win.height(); + + dialog.dialog('option', { height: Math.min(h-20, height+120), width: Math.min(w-20, width+65) }) + .dialog('option', 'position', ['center', 'center']); // works in a separate call only (!?) +} diff --git a/webmail/plugins/managesieve/managesieve.php b/webmail/plugins/managesieve/managesieve.php new file mode 100644 index 0000000..80face7 --- /dev/null +++ b/webmail/plugins/managesieve/managesieve.php @@ -0,0 +1,2050 @@ +<?php + +/** + * Managesieve (Sieve Filters) + * + * Plugin that adds a possibility to manage Sieve filters in Thunderbird's style. + * It's clickable interface which operates on text scripts and communicates + * with server using managesieve protocol. Adds Filters tab in Settings. + * + * @version @package_version@ + * @author Aleksander Machniak <alec@alec.pl> + * + * Configuration (see config.inc.php.dist) + * + * Copyright (C) 2008-2012, The Roundcube Dev Team + * Copyright (C) 2011-2012, Kolab Systems AG + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +class managesieve extends rcube_plugin +{ + public $task = 'mail|settings'; + + private $rc; + private $sieve; + private $errors; + private $form; + private $tips = array(); + private $script = array(); + private $exts = array(); + private $list; + private $active = array(); + private $headers = array( + 'subject' => 'Subject', + 'from' => 'From', + 'to' => 'To', + ); + private $addr_headers = array( + // Required + "from", "to", "cc", "bcc", "sender", "resent-from", "resent-to", + // Additional (RFC 822 / RFC 2822) + "reply-to", "resent-reply-to", "resent-sender", "resent-cc", "resent-bcc", + // Non-standard (RFC 2076, draft-palme-mailext-headers-08.txt) + "for-approval", "for-handling", "for-comment", "apparently-to", "errors-to", + "delivered-to", "return-receipt-to", "x-admin", "read-receipt-to", + "x-confirm-reading-to", "return-receipt-requested", + "registered-mail-reply-requested-by", "mail-followup-to", "mail-reply-to", + "abuse-reports-to", "x-complaints-to", "x-report-abuse-to", + // Undocumented + "x-beenthere", + ); + + const VERSION = '6.2'; + const PROGNAME = 'Roundcube (Managesieve)'; + const PORT = 4190; + + + function init() + { + $this->rc = rcmail::get_instance(); + + // register actions + $this->register_action('plugin.managesieve', array($this, 'managesieve_actions')); + $this->register_action('plugin.managesieve-save', array($this, 'managesieve_save')); + + if ($this->rc->task == 'settings') { + $this->init_ui(); + } + else if ($this->rc->task == 'mail') { + // register message hook + $this->add_hook('message_headers_output', array($this, 'mail_headers')); + + // inject Create Filter popup stuff + if (empty($this->rc->action) || $this->rc->action == 'show') { + $this->mail_task_handler(); + } + } + } + + /** + * Initializes plugin's UI (localization, js script) + */ + private function init_ui() + { + if ($this->ui_initialized) + return; + + // load localization + $this->add_texts('localization/', array('filters','managefilters')); + $this->include_script('managesieve.js'); + + $this->ui_initialized = true; + } + + /** + * Add UI elements to the 'mailbox view' and 'show message' UI. + */ + function mail_task_handler() + { + // use jQuery for popup window + $this->require_plugin('jqueryui'); + + // include js script and localization + $this->init_ui(); + + // include styles + $skin_path = $this->local_skin_path(); + if (is_file($this->home . "/$skin_path/managesieve_mail.css")) { + $this->include_stylesheet("$skin_path/managesieve_mail.css"); + } + + // add 'Create filter' item to message menu + $this->api->add_content(html::tag('li', null, + $this->api->output->button(array( + 'command' => 'managesieve-create', + 'label' => 'managesieve.filtercreate', + 'type' => 'link', + 'classact' => 'icon filterlink active', + 'class' => 'icon filterlink', + 'innerclass' => 'icon filterlink', + ))), 'messagemenu'); + + // register some labels/messages + $this->rc->output->add_label('managesieve.newfilter', 'managesieve.usedata', + 'managesieve.nodata', 'managesieve.nextstep', 'save'); + + $this->rc->session->remove('managesieve_current'); + } + + /** + * Get message headers for popup window + */ + function mail_headers($args) + { + // this hook can be executed many times + if ($this->mail_headers_done) { + return $args; + } + + $this->mail_headers_done = true; + + $headers = $args['headers']; + $ret = array(); + + if ($headers->subject) + $ret[] = array('Subject', rcube_mime::decode_header($headers->subject)); + + // @TODO: List-Id, others? + foreach (array('From', 'To') as $h) { + $hl = strtolower($h); + if ($headers->$hl) { + $list = rcube_mime::decode_address_list($headers->$hl); + foreach ($list as $item) { + if ($item['mailto']) { + $ret[] = array($h, $item['mailto']); + } + } + } + } + + if ($this->rc->action == 'preview') + $this->rc->output->command('parent.set_env', array('sieve_headers' => $ret)); + else + $this->rc->output->set_env('sieve_headers', $ret); + + + return $args; + } + + /** + * Loads configuration, initializes plugin (including sieve connection) + */ + function managesieve_start() + { + $this->load_config(); + + // register UI objects + $this->rc->output->add_handlers(array( + 'filterslist' => array($this, 'filters_list'), + 'filtersetslist' => array($this, 'filtersets_list'), + 'filterframe' => array($this, 'filter_frame'), + 'filterform' => array($this, 'filter_form'), + 'filtersetform' => array($this, 'filterset_form'), + )); + + // Add include path for internal classes + $include_path = $this->home . '/lib' . PATH_SEPARATOR; + $include_path .= ini_get('include_path'); + set_include_path($include_path); + + // Get connection parameters + $host = $this->rc->config->get('managesieve_host', 'localhost'); + $port = $this->rc->config->get('managesieve_port'); + $tls = $this->rc->config->get('managesieve_usetls', false); + + $host = rcube_parse_host($host); + $host = rcube_idn_to_ascii($host); + + // remove tls:// prefix, set TLS flag + if (($host = preg_replace('|^tls://|i', '', $host, 1, $cnt)) && $cnt) { + $tls = true; + } + + if (empty($port)) { + $port = getservbyname('sieve', 'tcp'); + if (empty($port)) { + $port = self::PORT; + } + } + + $plugin = $this->rc->plugins->exec_hook('managesieve_connect', array( + 'user' => $_SESSION['username'], + 'password' => $this->rc->decrypt($_SESSION['password']), + 'host' => $host, + 'port' => $port, + 'usetls' => $tls, + 'auth_type' => $this->rc->config->get('managesieve_auth_type'), + 'disabled' => $this->rc->config->get('managesieve_disabled_extensions'), + 'debug' => $this->rc->config->get('managesieve_debug', false), + 'auth_cid' => $this->rc->config->get('managesieve_auth_cid'), + 'auth_pw' => $this->rc->config->get('managesieve_auth_pw'), + )); + + // try to connect to managesieve server and to fetch the script + $this->sieve = new rcube_sieve( + $plugin['user'], + $plugin['password'], + $plugin['host'], + $plugin['port'], + $plugin['auth_type'], + $plugin['usetls'], + $plugin['disabled'], + $plugin['debug'], + $plugin['auth_cid'], + $plugin['auth_pw'] + ); + + if (!($error = $this->sieve->error())) { + // Get list of scripts + $list = $this->list_scripts(); + + if (!empty($_GET['_set']) || !empty($_POST['_set'])) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + } + else if (!empty($_SESSION['managesieve_current'])) { + $script_name = $_SESSION['managesieve_current']; + } + else { + // get (first) active script + if (!empty($this->active[0])) { + $script_name = $this->active[0]; + } + else if ($list) { + $script_name = $list[0]; + } + // create a new (initial) script + else { + // if script not exists build default script contents + $script_file = $this->rc->config->get('managesieve_default'); + $script_name = $this->rc->config->get('managesieve_script_name'); + + if (empty($script_name)) + $script_name = 'roundcube'; + + if ($script_file && is_readable($script_file)) + $content = file_get_contents($script_file); + + // add script and set it active + if ($this->sieve->save_script($script_name, $content)) { + $this->activate_script($script_name); + $this->list[] = $script_name; + } + } + } + + if ($script_name) { + $this->sieve->load($script_name); + } + + $error = $this->sieve->error(); + } + + // finally set script objects + if ($error) { + switch ($error) { + case SIEVE_ERROR_CONNECTION: + case SIEVE_ERROR_LOGIN: + $this->rc->output->show_message('managesieve.filterconnerror', 'error'); + break; + default: + $this->rc->output->show_message('managesieve.filterunknownerror', 'error'); + break; + } + + raise_error(array('code' => 403, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Unable to connect to managesieve on $host:$port"), true, false); + + // to disable 'Add filter' button set env variable + $this->rc->output->set_env('filterconnerror', true); + $this->script = array(); + } + else { + $this->exts = $this->sieve->get_extensions(); + $this->script = $this->sieve->script->as_array(); + $this->rc->output->set_env('currentset', $this->sieve->current); + $_SESSION['managesieve_current'] = $this->sieve->current; + } + + return $error; + } + + function managesieve_actions() + { + $this->init_ui(); + + $error = $this->managesieve_start(); + + // Handle user requests + if ($action = get_input_value('_act', RCUBE_INPUT_GPC)) { + $fid = (int) get_input_value('_fid', RCUBE_INPUT_POST); + + if ($action == 'delete' && !$error) { + if (isset($this->script[$fid])) { + if ($this->sieve->script->delete_rule($fid)) + $result = $this->save_script(); + + if ($result === true) { + $this->rc->output->show_message('managesieve.filterdeleted', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'del', array('id' => $fid)); + } else { + $this->rc->output->show_message('managesieve.filterdeleteerror', 'error'); + } + } + } + else if ($action == 'move' && !$error) { + if (isset($this->script[$fid])) { + $to = (int) get_input_value('_to', RCUBE_INPUT_POST); + $rule = $this->script[$fid]; + + // remove rule + unset($this->script[$fid]); + $this->script = array_values($this->script); + + // add at target position + if ($to >= count($this->script)) { + $this->script[] = $rule; + } + else { + $script = array(); + foreach ($this->script as $idx => $r) { + if ($idx == $to) + $script[] = $rule; + $script[] = $r; + } + $this->script = $script; + } + + $this->sieve->script->content = $this->script; + $result = $this->save_script(); + + if ($result === true) { + $result = $this->list_rules(); + + $this->rc->output->show_message('managesieve.moved', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'list', + array('list' => $result, 'clear' => true, 'set' => $to)); + } else { + $this->rc->output->show_message('managesieve.moveerror', 'error'); + } + } + } + else if ($action == 'act' && !$error) { + if (isset($this->script[$fid])) { + $rule = $this->script[$fid]; + $disabled = $rule['disabled'] ? true : false; + $rule['disabled'] = !$disabled; + $result = $this->sieve->script->update_rule($fid, $rule); + + if ($result !== false) + $result = $this->save_script(); + + if ($result === true) { + if ($rule['disabled']) + $this->rc->output->show_message('managesieve.deactivated', 'confirmation'); + else + $this->rc->output->show_message('managesieve.activated', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'update', + array('id' => $fid, 'disabled' => $rule['disabled'])); + } else { + if ($rule['disabled']) + $this->rc->output->show_message('managesieve.deactivateerror', 'error'); + else + $this->rc->output->show_message('managesieve.activateerror', 'error'); + } + } + } + else if ($action == 'setact' && !$error) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $result = $this->activate_script($script_name); + $kep14 = $this->rc->config->get('managesieve_kolab_master'); + + if ($result === true) { + $this->rc->output->set_env('active_sets', $this->active); + $this->rc->output->show_message('managesieve.setactivated', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'setact', + array('name' => $script_name, 'active' => true, 'all' => !$kep14)); + } else { + $this->rc->output->show_message('managesieve.setactivateerror', 'error'); + } + } + else if ($action == 'deact' && !$error) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $result = $this->deactivate_script($script_name); + + if ($result === true) { + $this->rc->output->set_env('active_sets', $this->active); + $this->rc->output->show_message('managesieve.setdeactivated', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'setact', + array('name' => $script_name, 'active' => false)); + } else { + $this->rc->output->show_message('managesieve.setdeactivateerror', 'error'); + } + } + else if ($action == 'setdel' && !$error) { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $result = $this->remove_script($script_name); + + if ($result === true) { + $this->rc->output->show_message('managesieve.setdeleted', 'confirmation'); + $this->rc->output->command('managesieve_updatelist', 'setdel', + array('name' => $script_name)); + $this->rc->session->remove('managesieve_current'); + } else { + $this->rc->output->show_message('managesieve.setdeleteerror', 'error'); + } + } + else if ($action == 'setget') { + $script_name = get_input_value('_set', RCUBE_INPUT_GPC, true); + $script = $this->sieve->get_script($script_name); + + if (PEAR::isError($script)) + exit; + + $browser = new rcube_browser; + + // send download headers + header("Content-Type: application/octet-stream"); + header("Content-Length: ".strlen($script)); + + if ($browser->ie) + header("Content-Type: application/force-download"); + if ($browser->ie && $browser->ver < 7) + $filename = rawurlencode(abbreviate_string($script_name, 55)); + else if ($browser->ie) + $filename = rawurlencode($script_name); + else + $filename = addcslashes($script_name, '\\"'); + + header("Content-Disposition: attachment; filename=\"$filename.txt\""); + echo $script; + exit; + } + else if ($action == 'list') { + $result = $this->list_rules(); + + $this->rc->output->command('managesieve_updatelist', 'list', array('list' => $result)); + } + else if ($action == 'ruleadd') { + $rid = get_input_value('_rid', RCUBE_INPUT_GPC); + $id = $this->genid(); + $content = $this->rule_div($fid, $id, false); + + $this->rc->output->command('managesieve_rulefill', $content, $id, $rid); + } + else if ($action == 'actionadd') { + $aid = get_input_value('_aid', RCUBE_INPUT_GPC); + $id = $this->genid(); + $content = $this->action_div($fid, $id, false); + + $this->rc->output->command('managesieve_actionfill', $content, $id, $aid); + } + + $this->rc->output->send(); + } + else if ($this->rc->task == 'mail') { + // Initialize the form + $rules = get_input_value('r', RCUBE_INPUT_GET); + if (!empty($rules)) { + $i = 0; + foreach ($rules as $rule) { + list($header, $value) = explode(':', $rule, 2); + $tests[$i] = array( + 'type' => 'contains', + 'test' => 'header', + 'arg1' => $header, + 'arg2' => $value, + ); + $i++; + } + + $this->form = array( + 'join' => count($tests) > 1 ? 'allof' : 'anyof', + 'name' => '', + 'tests' => $tests, + 'actions' => array( + 0 => array('type' => 'fileinto'), + 1 => array('type' => 'stop'), + ), + ); + } + } + + $this->managesieve_send(); + } + + function managesieve_save() + { + // load localization + $this->add_texts('localization/', array('filters','managefilters')); + + // include main js script + if ($this->api->output->type == 'html') { + $this->include_script('managesieve.js'); + } + + // Init plugin and handle managesieve connection + $error = $this->managesieve_start(); + + // get request size limits (#1488648) + $max_post = max(array( + ini_get('max_input_vars'), + ini_get('suhosin.request.max_vars'), + ini_get('suhosin.post.max_vars'), + )); + $max_depth = max(array( + ini_get('suhosin.request.max_array_depth'), + ini_get('suhosin.post.max_array_depth'), + )); + + // check request size limit + if ($max_post && count($_POST, COUNT_RECURSIVE) >= $max_post) { + rcube::raise_error(array( + 'code' => 500, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Request size limit exceeded (one of max_input_vars/suhosin.request.max_vars/suhosin.post.max_vars)" + ), true, false); + $this->rc->output->show_message('managesieve.filtersaveerror', 'error'); + } + // check request depth limits + else if ($max_depth && count($_POST['_header']) > $max_depth) { + rcube::raise_error(array( + 'code' => 500, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Request size limit exceeded (one of suhosin.request.max_array_depth/suhosin.post.max_array_depth)" + ), true, false); + $this->rc->output->show_message('managesieve.filtersaveerror', 'error'); + } + // filters set add action + else if (!empty($_POST['_newset'])) { + $name = get_input_value('_name', RCUBE_INPUT_POST, true); + $copy = get_input_value('_copy', RCUBE_INPUT_POST, true); + $from = get_input_value('_from', RCUBE_INPUT_POST); + $exceptions = $this->rc->config->get('managesieve_filename_exceptions'); + $kolab = $this->rc->config->get('managesieve_kolab_master'); + $name_uc = mb_strtolower($name); + $list = $this->list_scripts(); + + if (!$name) { + $this->errors['name'] = $this->gettext('cannotbeempty'); + } + else if (mb_strlen($name) > 128) { + $this->errors['name'] = $this->gettext('nametoolong'); + } + else if (!empty($exceptions) && in_array($name, (array)$exceptions)) { + $this->errors['name'] = $this->gettext('namereserved'); + } + else if (!empty($kolab) && in_array($name_uc, array('MASTER', 'USER', 'MANAGEMENT'))) { + $this->errors['name'] = $this->gettext('namereserved'); + } + else if (in_array($name, $list)) { + $this->errors['name'] = $this->gettext('setexist'); + } + else if ($from == 'file') { + // from file + if (is_uploaded_file($_FILES['_file']['tmp_name'])) { + $file = file_get_contents($_FILES['_file']['tmp_name']); + $file = preg_replace('/\r/', '', $file); + // for security don't save script directly + // check syntax before, like this... + $this->sieve->load_script($file); + if (!$this->save_script($name)) { + $this->errors['file'] = $this->gettext('setcreateerror'); + } + } + else { // upload failed + $err = $_FILES['_file']['error']; + + if ($err == UPLOAD_ERR_INI_SIZE || $err == UPLOAD_ERR_FORM_SIZE) { + $msg = rcube_label(array('name' => 'filesizeerror', + 'vars' => array('size' => + show_bytes(parse_bytes(ini_get('upload_max_filesize')))))); + } + else { + $this->errors['file'] = $this->gettext('fileuploaderror'); + } + } + } + else if (!$this->sieve->copy($name, $from == 'set' ? $copy : '')) { + $error = 'managesieve.setcreateerror'; + } + + if (!$error && empty($this->errors)) { + // Find position of the new script on the list + $list[] = $name; + asort($list, SORT_LOCALE_STRING); + $list = array_values($list); + $index = array_search($name, $list); + + $this->rc->output->show_message('managesieve.setcreated', 'confirmation'); + $this->rc->output->command('parent.managesieve_updatelist', 'setadd', + array('name' => $name, 'index' => $index)); + } else if ($msg) { + $this->rc->output->command('display_message', $msg, 'error'); + } else if ($error) { + $this->rc->output->show_message($error, 'error'); + } + } + // filter add/edit action + else if (isset($_POST['_name'])) { + $name = trim(get_input_value('_name', RCUBE_INPUT_POST, true)); + $fid = trim(get_input_value('_fid', RCUBE_INPUT_POST)); + $join = trim(get_input_value('_join', RCUBE_INPUT_POST)); + + // and arrays + $headers = get_input_value('_header', RCUBE_INPUT_POST); + $cust_headers = get_input_value('_custom_header', RCUBE_INPUT_POST); + $ops = get_input_value('_rule_op', RCUBE_INPUT_POST); + $sizeops = get_input_value('_rule_size_op', RCUBE_INPUT_POST); + $sizeitems = get_input_value('_rule_size_item', RCUBE_INPUT_POST); + $sizetargets = get_input_value('_rule_size_target', RCUBE_INPUT_POST); + $targets = get_input_value('_rule_target', RCUBE_INPUT_POST, true); + $mods = get_input_value('_rule_mod', RCUBE_INPUT_POST); + $mod_types = get_input_value('_rule_mod_type', RCUBE_INPUT_POST); + $body_trans = get_input_value('_rule_trans', RCUBE_INPUT_POST); + $body_types = get_input_value('_rule_trans_type', RCUBE_INPUT_POST, true); + $comparators = get_input_value('_rule_comp', RCUBE_INPUT_POST); + $act_types = get_input_value('_action_type', RCUBE_INPUT_POST, true); + $mailboxes = get_input_value('_action_mailbox', RCUBE_INPUT_POST, true); + $act_targets = get_input_value('_action_target', RCUBE_INPUT_POST, true); + $area_targets = get_input_value('_action_target_area', RCUBE_INPUT_POST, true); + $reasons = get_input_value('_action_reason', RCUBE_INPUT_POST, true); + $addresses = get_input_value('_action_addresses', RCUBE_INPUT_POST, true); + $days = get_input_value('_action_days', RCUBE_INPUT_POST); + $subject = get_input_value('_action_subject', RCUBE_INPUT_POST, true); + $flags = get_input_value('_action_flags', RCUBE_INPUT_POST); + $varnames = get_input_value('_action_varname', RCUBE_INPUT_POST); + $varvalues = get_input_value('_action_varvalue', RCUBE_INPUT_POST); + $varmods = get_input_value('_action_varmods', RCUBE_INPUT_POST); + $notifyaddrs = get_input_value('_action_notifyaddress', RCUBE_INPUT_POST); + $notifybodies = get_input_value('_action_notifybody', RCUBE_INPUT_POST); + $notifymessages = get_input_value('_action_notifymessage', RCUBE_INPUT_POST); + $notifyfrom = get_input_value('_action_notifyfrom', RCUBE_INPUT_POST); + $notifyimp = get_input_value('_action_notifyimportance', RCUBE_INPUT_POST); + + // we need a "hack" for radiobuttons + foreach ($sizeitems as $item) + $items[] = $item; + + $this->form['disabled'] = $_POST['_disabled'] ? true : false; + $this->form['join'] = $join=='allof' ? true : false; + $this->form['name'] = $name; + $this->form['tests'] = array(); + $this->form['actions'] = array(); + + if ($name == '') + $this->errors['name'] = $this->gettext('cannotbeempty'); + else { + foreach($this->script as $idx => $rule) + if($rule['name'] == $name && $idx != $fid) { + $this->errors['name'] = $this->gettext('ruleexist'); + break; + } + } + + $i = 0; + // rules + if ($join == 'any') { + $this->form['tests'][0]['test'] = 'true'; + } + else { + foreach ($headers as $idx => $header) { + $header = $this->strip_value($header); + $target = $this->strip_value($targets[$idx], true); + $operator = $this->strip_value($ops[$idx]); + $comparator = $this->strip_value($comparators[$idx]); + + if ($header == 'size') { + $sizeop = $this->strip_value($sizeops[$idx]); + $sizeitem = $this->strip_value($items[$idx]); + $sizetarget = $this->strip_value($sizetargets[$idx]); + + $this->form['tests'][$i]['test'] = 'size'; + $this->form['tests'][$i]['type'] = $sizeop; + $this->form['tests'][$i]['arg'] = $sizetarget; + + if ($sizetarget == '') + $this->errors['tests'][$i]['sizetarget'] = $this->gettext('cannotbeempty'); + else if (!preg_match('/^[0-9]+(K|M|G)?$/i', $sizetarget.$sizeitem, $m)) { + $this->errors['tests'][$i]['sizetarget'] = $this->gettext('forbiddenchars'); + $this->form['tests'][$i]['item'] = $sizeitem; + } + else + $this->form['tests'][$i]['arg'] .= $m[1]; + } + else if ($header == 'body') { + $trans = $this->strip_value($body_trans[$idx]); + $trans_type = $this->strip_value($body_types[$idx], true); + + if (preg_match('/^not/', $operator)) + $this->form['tests'][$i]['not'] = true; + $type = preg_replace('/^not/', '', $operator); + + if ($type == 'exists') { + $this->errors['tests'][$i]['op'] = true; + } + + $this->form['tests'][$i]['test'] = 'body'; + $this->form['tests'][$i]['type'] = $type; + $this->form['tests'][$i]['arg'] = $target; + + if ($target == '' && $type != 'exists') + $this->errors['tests'][$i]['target'] = $this->gettext('cannotbeempty'); + else if (preg_match('/^(value|count)-/', $type) && !preg_match('/[0-9]+/', $target)) + $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + + $this->form['tests'][$i]['part'] = $trans; + if ($trans == 'content') { + $this->form['tests'][$i]['content'] = $trans_type; + } + } + else { + $cust_header = $headers = $this->strip_value($cust_headers[$idx]); + $mod = $this->strip_value($mods[$idx]); + $mod_type = $this->strip_value($mod_types[$idx]); + + if (preg_match('/^not/', $operator)) + $this->form['tests'][$i]['not'] = true; + $type = preg_replace('/^not/', '', $operator); + + if ($header == '...') { + $headers = preg_split('/[\s,]+/', $cust_header, -1, PREG_SPLIT_NO_EMPTY); + + if (!count($headers)) + $this->errors['tests'][$i]['header'] = $this->gettext('cannotbeempty'); + else { + foreach ($headers as $hr) { + // RFC2822: printable ASCII except colon + if (!preg_match('/^[\x21-\x39\x41-\x7E]+$/i', $hr)) { + $this->errors['tests'][$i]['header'] = $this->gettext('forbiddenchars'); + } + } + } + + if (empty($this->errors['tests'][$i]['header'])) + $cust_header = (is_array($headers) && count($headers) == 1) ? $headers[0] : $headers; + } + + if ($type == 'exists') { + $this->form['tests'][$i]['test'] = 'exists'; + $this->form['tests'][$i]['arg'] = $header == '...' ? $cust_header : $header; + } + else { + $test = 'header'; + $header = $header == '...' ? $cust_header : $header; + + if ($mod == 'address' || $mod == 'envelope') { + $found = false; + if (empty($this->errors['tests'][$i]['header'])) { + foreach ((array)$header as $hdr) { + if (!in_array(strtolower(trim($hdr)), $this->addr_headers)) + $found = true; + } + } + if (!$found) + $test = $mod; + } + + $this->form['tests'][$i]['type'] = $type; + $this->form['tests'][$i]['test'] = $test; + $this->form['tests'][$i]['arg1'] = $header; + $this->form['tests'][$i]['arg2'] = $target; + + if ($target == '') + $this->errors['tests'][$i]['target'] = $this->gettext('cannotbeempty'); + else if (preg_match('/^(value|count)-/', $type) && !preg_match('/[0-9]+/', $target)) + $this->errors['tests'][$i]['target'] = $this->gettext('forbiddenchars'); + + if ($mod) { + $this->form['tests'][$i]['part'] = $mod_type; + } + } + } + + if ($header != 'size' && $comparator) { + if (preg_match('/^(value|count)/', $this->form['tests'][$i]['type'])) + $comparator = 'i;ascii-numeric'; + + $this->form['tests'][$i]['comparator'] = $comparator; + } + + $i++; + } + } + + $i = 0; + // actions + foreach($act_types as $idx => $type) { + $type = $this->strip_value($type); + $target = $this->strip_value($act_targets[$idx]); + + switch ($type) { + + case 'fileinto': + case 'fileinto_copy': + $mailbox = $this->strip_value($mailboxes[$idx], false, false); + $this->form['actions'][$i]['target'] = $this->mod_mailbox($mailbox, 'in'); + if ($type == 'fileinto_copy') { + $type = 'fileinto'; + $this->form['actions'][$i]['copy'] = true; + } + break; + + case 'reject': + case 'ereject': + $target = $this->strip_value($area_targets[$idx]); + $this->form['actions'][$i]['target'] = str_replace("\r\n", "\n", $target); + + // if ($target == '') +// $this->errors['actions'][$i]['targetarea'] = $this->gettext('cannotbeempty'); + break; + + case 'redirect': + case 'redirect_copy': + $this->form['actions'][$i]['target'] = $target; + + if ($this->form['actions'][$i]['target'] == '') + $this->errors['actions'][$i]['target'] = $this->gettext('cannotbeempty'); + else if (!check_email($this->form['actions'][$i]['target'])) + $this->errors['actions'][$i]['target'] = $this->gettext('noemailwarning'); + + if ($type == 'redirect_copy') { + $type = 'redirect'; + $this->form['actions'][$i]['copy'] = true; + } + break; + + case 'addflag': + case 'setflag': + case 'removeflag': + $_target = array(); + if (empty($flags[$idx])) { + $this->errors['actions'][$i]['target'] = $this->gettext('noflagset'); + } + else { + foreach ($flags[$idx] as $flag) { + $_target[] = $this->strip_value($flag); + } + } + $this->form['actions'][$i]['target'] = $_target; + break; + + case 'vacation': + $reason = $this->strip_value($reasons[$idx]); + $this->form['actions'][$i]['reason'] = str_replace("\r\n", "\n", $reason); + $this->form['actions'][$i]['days'] = $days[$idx]; + $this->form['actions'][$i]['subject'] = $subject[$idx]; + $this->form['actions'][$i]['addresses'] = explode(',', $addresses[$idx]); +// @TODO: vacation :mime, :from, :handle + + if ($this->form['actions'][$i]['addresses']) { + foreach($this->form['actions'][$i]['addresses'] as $aidx => $address) { + $address = trim($address); + if (!$address) + unset($this->form['actions'][$i]['addresses'][$aidx]); + else if(!check_email($address)) { + $this->errors['actions'][$i]['addresses'] = $this->gettext('noemailwarning'); + break; + } else + $this->form['actions'][$i]['addresses'][$aidx] = $address; + } + } + + if ($this->form['actions'][$i]['reason'] == '') + $this->errors['actions'][$i]['reason'] = $this->gettext('cannotbeempty'); + if ($this->form['actions'][$i]['days'] && !preg_match('/^[0-9]+$/', $this->form['actions'][$i]['days'])) + $this->errors['actions'][$i]['days'] = $this->gettext('forbiddenchars'); + break; + + case 'set': + $this->form['actions'][$i]['name'] = $varnames[$idx]; + $this->form['actions'][$i]['value'] = $varvalues[$idx]; + foreach ((array)$varmods[$idx] as $v_m) { + $this->form['actions'][$i][$v_m] = true; + } + + if (empty($varnames[$idx])) { + $this->errors['actions'][$i]['name'] = $this->gettext('cannotbeempty'); + } + else if (!preg_match('/^[0-9a-z_]+$/i', $varnames[$idx])) { + $this->errors['actions'][$i]['name'] = $this->gettext('forbiddenchars'); + } + + if (!isset($varvalues[$idx]) || $varvalues[$idx] === '') { + $this->errors['actions'][$i]['value'] = $this->gettext('cannotbeempty'); + } + break; + + case 'notify': + if (empty($notifyaddrs[$idx])) { + $this->errors['actions'][$i]['address'] = $this->gettext('cannotbeempty'); + } + else if (!check_email($notifyaddrs[$idx])) { + $this->errors['actions'][$i]['address'] = $this->gettext('noemailwarning'); + } + if (!empty($notifyfrom[$idx]) && !check_email($notifyfrom[$idx])) { + $this->errors['actions'][$i]['from'] = $this->gettext('noemailwarning'); + } + $this->form['actions'][$i]['address'] = $notifyaddrs[$idx]; + $this->form['actions'][$i]['body'] = $notifybodies[$idx]; + $this->form['actions'][$i]['message'] = $notifymessages[$idx]; + $this->form['actions'][$i]['from'] = $notifyfrom[$idx]; + $this->form['actions'][$i]['importance'] = $notifyimp[$idx]; + break; + } + + $this->form['actions'][$i]['type'] = $type; + $i++; + } + + if (!$this->errors && !$error) { + // zapis skryptu + if (!isset($this->script[$fid])) { + $fid = $this->sieve->script->add_rule($this->form); + $new = true; + } else + $fid = $this->sieve->script->update_rule($fid, $this->form); + + if ($fid !== false) + $save = $this->save_script(); + + if ($save && $fid !== false) { + $this->rc->output->show_message('managesieve.filtersaved', 'confirmation'); + if ($this->rc->task != 'mail') { + $this->rc->output->command('parent.managesieve_updatelist', + isset($new) ? 'add' : 'update', + array( + 'name' => $this->form['name'], + 'id' => $fid, + 'disabled' => $this->form['disabled'] + )); + } + else { + $this->rc->output->command('managesieve_dialog_close'); + $this->rc->output->send('iframe'); + } + } + else { + $this->rc->output->show_message('managesieve.filtersaveerror', 'error'); +// $this->rc->output->send(); + } + } + } + + $this->managesieve_send(); + } + + private function managesieve_send() + { + // Handle form action + if (isset($_GET['_framed']) || isset($_POST['_framed'])) { + if (isset($_GET['_newset']) || isset($_POST['_newset'])) { + $this->rc->output->send('managesieve.setedit'); + } + else { + $this->rc->output->send('managesieve.filteredit'); + } + } else { + $this->rc->output->set_pagetitle($this->gettext('filters')); + $this->rc->output->send('managesieve.managesieve'); + } + } + + // return the filters list as HTML table + function filters_list($attrib) + { + // add id to message list table if not specified + if (!strlen($attrib['id'])) + $attrib['id'] = 'rcmfilterslist'; + + // define list of cols to be displayed + $a_show_cols = array('name'); + + $result = $this->list_rules(); + + // create XHTML table + $out = rcube_table_output($attrib, $result, $a_show_cols, 'id'); + + // set client env + $this->rc->output->add_gui_object('filterslist', $attrib['id']); + $this->rc->output->include_script('list.js'); + + // add some labels to client + $this->rc->output->add_label('managesieve.filterdeleteconfirm'); + + return $out; + } + + // return the filters list as <SELECT> + function filtersets_list($attrib, $no_env = false) + { + // add id to message list table if not specified + if (!strlen($attrib['id'])) + $attrib['id'] = 'rcmfiltersetslist'; + + $list = $this->list_scripts(); + + if ($list) { + asort($list, SORT_LOCALE_STRING); + } + + if (!empty($attrib['type']) && $attrib['type'] == 'list') { + // define list of cols to be displayed + $a_show_cols = array('name'); + + if ($list) { + foreach ($list as $idx => $set) { + $scripts['S'.$idx] = $set; + $result[] = array( + 'name' => $set, + 'id' => 'S'.$idx, + 'class' => !in_array($set, $this->active) ? 'disabled' : '', + ); + } + } + + // create XHTML table + $out = rcube_table_output($attrib, $result, $a_show_cols, 'id'); + + $this->rc->output->set_env('filtersets', $scripts); + $this->rc->output->include_script('list.js'); + } + else { + $select = new html_select(array('name' => '_set', 'id' => $attrib['id'], + 'onchange' => $this->rc->task != 'mail' ? 'rcmail.managesieve_set()' : '')); + + if ($list) { + foreach ($list as $set) + $select->add($set, $set); + } + + $out = $select->show($this->sieve->current); + } + + // set client env + if (!$no_env) { + $this->rc->output->add_gui_object('filtersetslist', $attrib['id']); + $this->rc->output->add_label('managesieve.setdeleteconfirm'); + } + + return $out; + } + + function filter_frame($attrib) + { + if (!$attrib['id']) + $attrib['id'] = 'rcmfilterframe'; + + $attrib['name'] = $attrib['id']; + + $this->rc->output->set_env('contentframe', $attrib['name']); + $this->rc->output->set_env('blankpage', $attrib['src'] ? + $this->rc->output->abs_url($attrib['src']) : 'program/resources/blank.gif'); + + return $this->rc->output->frame($attrib); + } + + function filterset_form($attrib) + { + if (!$attrib['id']) + $attrib['id'] = 'rcmfiltersetform'; + + $out = '<form name="filtersetform" action="./" method="post" enctype="multipart/form-data">'."\n"; + + $hiddenfields = new html_hiddenfield(array('name' => '_task', 'value' => $this->rc->task)); + $hiddenfields->add(array('name' => '_action', 'value' => 'plugin.managesieve-save')); + $hiddenfields->add(array('name' => '_framed', 'value' => ($_POST['_framed'] || $_GET['_framed'] ? 1 : 0))); + $hiddenfields->add(array('name' => '_newset', 'value' => 1)); + + $out .= $hiddenfields->show(); + + $name = get_input_value('_name', RCUBE_INPUT_POST); + $copy = get_input_value('_copy', RCUBE_INPUT_POST); + $selected = get_input_value('_from', RCUBE_INPUT_POST); + + // filter set name input + $input_name = new html_inputfield(array('name' => '_name', 'id' => '_name', 'size' => 30, + 'class' => ($this->errors['name'] ? 'error' : ''))); + + $out .= sprintf('<label for="%s"><b>%s:</b></label> %s<br /><br />', + '_name', Q($this->gettext('filtersetname')), $input_name->show($name)); + + $out .="\n<fieldset class=\"itemlist\"><legend>" . $this->gettext('filters') . ":</legend>\n"; + $out .= '<input type="radio" id="from_none" name="_from" value="none"' + .(!$selected || $selected=='none' ? ' checked="checked"' : '').'></input>'; + $out .= sprintf('<label for="%s">%s</label> ', 'from_none', Q($this->gettext('none'))); + + // filters set list + $list = $this->list_scripts(); + $select = new html_select(array('name' => '_copy', 'id' => '_copy')); + + if (is_array($list)) { + asort($list, SORT_LOCALE_STRING); + + if (!$copy) + $copy = $_SESSION['managesieve_current']; + + foreach ($list as $set) { + $select->add($set, $set); + } + + $out .= '<br /><input type="radio" id="from_set" name="_from" value="set"' + .($selected=='set' ? ' checked="checked"' : '').'></input>'; + $out .= sprintf('<label for="%s">%s:</label> ', 'from_set', Q($this->gettext('fromset'))); + $out .= $select->show($copy); + } + + // script upload box + $upload = new html_inputfield(array('name' => '_file', 'id' => '_file', 'size' => 30, + 'type' => 'file', 'class' => ($this->errors['file'] ? 'error' : ''))); + + $out .= '<br /><input type="radio" id="from_file" name="_from" value="file"' + .($selected=='file' ? ' checked="checked"' : '').'></input>'; + $out .= sprintf('<label for="%s">%s:</label> ', 'from_file', Q($this->gettext('fromfile'))); + $out .= $upload->show(); + $out .= '</fieldset>'; + + $this->rc->output->add_gui_object('sieveform', 'filtersetform'); + + if ($this->errors['name']) + $this->add_tip('_name', $this->errors['name'], true); + if ($this->errors['file']) + $this->add_tip('_file', $this->errors['file'], true); + + $this->print_tips(); + + return $out; + } + + + function filter_form($attrib) + { + if (!$attrib['id']) + $attrib['id'] = 'rcmfilterform'; + + $fid = get_input_value('_fid', RCUBE_INPUT_GPC); + $scr = isset($this->form) ? $this->form : $this->script[$fid]; + + $hiddenfields = new html_hiddenfield(array('name' => '_task', 'value' => $this->rc->task)); + $hiddenfields->add(array('name' => '_action', 'value' => 'plugin.managesieve-save')); + $hiddenfields->add(array('name' => '_framed', 'value' => ($_POST['_framed'] || $_GET['_framed'] ? 1 : 0))); + $hiddenfields->add(array('name' => '_fid', 'value' => $fid)); + + $out = '<form name="filterform" action="./" method="post">'."\n"; + $out .= $hiddenfields->show(); + + // 'any' flag + if (sizeof($scr['tests']) == 1 && $scr['tests'][0]['test'] == 'true' && !$scr['tests'][0]['not']) + $any = true; + + // filter name input + $field_id = '_name'; + $input_name = new html_inputfield(array('name' => '_name', 'id' => $field_id, 'size' => 30, + 'class' => ($this->errors['name'] ? 'error' : ''))); + + if ($this->errors['name']) + $this->add_tip($field_id, $this->errors['name'], true); + + if (isset($scr)) + $input_name = $input_name->show($scr['name']); + else + $input_name = $input_name->show(); + + $out .= sprintf("\n<label for=\"%s\"><b>%s:</b></label> %s\n", + $field_id, Q($this->gettext('filtername')), $input_name); + + // filter set selector + if ($this->rc->task == 'mail') { + $out .= sprintf("\n <label for=\"%s\"><b>%s:</b></label> %s\n", + $field_id, Q($this->gettext('filterset')), + $this->filtersets_list(array('id' => 'sievescriptname'), true)); + } + + $out .= '<br /><br /><fieldset><legend>' . Q($this->gettext('messagesrules')) . "</legend>\n"; + + // any, allof, anyof radio buttons + $field_id = '_allof'; + $input_join = new html_radiobutton(array('name' => '_join', 'id' => $field_id, 'value' => 'allof', + 'onclick' => 'rule_join_radio(\'allof\')', 'class' => 'radio')); + + if (isset($scr) && !$any) + $input_join = $input_join->show($scr['join'] ? 'allof' : ''); + else + $input_join = $input_join->show(); + + $out .= sprintf("%s<label for=\"%s\">%s</label> \n", + $input_join, $field_id, Q($this->gettext('filterallof'))); + + $field_id = '_anyof'; + $input_join = new html_radiobutton(array('name' => '_join', 'id' => $field_id, 'value' => 'anyof', + 'onclick' => 'rule_join_radio(\'anyof\')', 'class' => 'radio')); + + if (isset($scr) && !$any) + $input_join = $input_join->show($scr['join'] ? '' : 'anyof'); + else + $input_join = $input_join->show('anyof'); // default + + $out .= sprintf("%s<label for=\"%s\">%s</label>\n", + $input_join, $field_id, Q($this->gettext('filteranyof'))); + + $field_id = '_any'; + $input_join = new html_radiobutton(array('name' => '_join', 'id' => $field_id, 'value' => 'any', + 'onclick' => 'rule_join_radio(\'any\')', 'class' => 'radio')); + + $input_join = $input_join->show($any ? 'any' : ''); + + $out .= sprintf("%s<label for=\"%s\">%s</label>\n", + $input_join, $field_id, Q($this->gettext('filterany'))); + + $rows_num = isset($scr) ? sizeof($scr['tests']) : 1; + + $out .= '<div id="rules"'.($any ? ' style="display: none"' : '').'>'; + for ($x=0; $x<$rows_num; $x++) + $out .= $this->rule_div($fid, $x); + $out .= "</div>\n"; + + $out .= "</fieldset>\n"; + + // actions + $out .= '<fieldset><legend>' . Q($this->gettext('messagesactions')) . "</legend>\n"; + + $rows_num = isset($scr) ? sizeof($scr['actions']) : 1; + + $out .= '<div id="actions">'; + for ($x=0; $x<$rows_num; $x++) + $out .= $this->action_div($fid, $x); + $out .= "</div>\n"; + + $out .= "</fieldset>\n"; + + $this->print_tips(); + + if ($scr['disabled']) { + $this->rc->output->set_env('rule_disabled', true); + } + $this->rc->output->add_label( + 'managesieve.ruledeleteconfirm', + 'managesieve.actiondeleteconfirm' + ); + $this->rc->output->add_gui_object('sieveform', 'filterform'); + + return $out; + } + + function rule_div($fid, $id, $div=true) + { + $rule = isset($this->form) ? $this->form['tests'][$id] : $this->script[$fid]['tests'][$id]; + $rows_num = isset($this->form) ? sizeof($this->form['tests']) : sizeof($this->script[$fid]['tests']); + + // headers select + $select_header = new html_select(array('name' => "_header[]", 'id' => 'header'.$id, + 'onchange' => 'rule_header_select(' .$id .')')); + foreach($this->headers as $name => $val) + $select_header->add(Q($this->gettext($name)), Q($val)); + if (in_array('body', $this->exts)) + $select_header->add(Q($this->gettext('body')), 'body'); + $select_header->add(Q($this->gettext('size')), 'size'); + $select_header->add(Q($this->gettext('...')), '...'); + + // TODO: list arguments + $aout = ''; + + if ((isset($rule['test']) && in_array($rule['test'], array('header', 'address', 'envelope'))) + && !is_array($rule['arg1']) && in_array($rule['arg1'], $this->headers) + ) { + $aout .= $select_header->show($rule['arg1']); + } + else if ((isset($rule['test']) && $rule['test'] == 'exists') + && !is_array($rule['arg']) && in_array($rule['arg'], $this->headers) + ) { + $aout .= $select_header->show($rule['arg']); + } + else if (isset($rule['test']) && $rule['test'] == 'size') + $aout .= $select_header->show('size'); + else if (isset($rule['test']) && $rule['test'] == 'body') + $aout .= $select_header->show('body'); + else if (isset($rule['test']) && $rule['test'] != 'true') + $aout .= $select_header->show('...'); + else + $aout .= $select_header->show(); + + if (isset($rule['test']) && in_array($rule['test'], array('header', 'address', 'envelope'))) { + if (is_array($rule['arg1'])) + $custom = implode(', ', $rule['arg1']); + else if (!in_array($rule['arg1'], $this->headers)) + $custom = $rule['arg1']; + } + else if (isset($rule['test']) && $rule['test'] == 'exists') { + if (is_array($rule['arg'])) + $custom = implode(', ', $rule['arg']); + else if (!in_array($rule['arg'], $this->headers)) + $custom = $rule['arg']; + } + + $tout = '<div id="custom_header' .$id. '" style="display:' .(isset($custom) ? 'inline' : 'none'). '"> + <input type="text" name="_custom_header[]" id="custom_header_i'.$id.'" ' + . $this->error_class($id, 'test', 'header', 'custom_header_i') + .' value="' .Q($custom). '" size="15" /> </div>' . "\n"; + + // matching type select (operator) + $select_op = new html_select(array('name' => "_rule_op[]", 'id' => 'rule_op'.$id, + 'style' => 'display:' .($rule['test']!='size' ? 'inline' : 'none'), + 'class' => 'operator_selector', + 'onchange' => 'rule_op_select('.$id.')')); + $select_op->add(Q($this->gettext('filtercontains')), 'contains'); + $select_op->add(Q($this->gettext('filternotcontains')), 'notcontains'); + $select_op->add(Q($this->gettext('filteris')), 'is'); + $select_op->add(Q($this->gettext('filterisnot')), 'notis'); + $select_op->add(Q($this->gettext('filterexists')), 'exists'); + $select_op->add(Q($this->gettext('filternotexists')), 'notexists'); + $select_op->add(Q($this->gettext('filtermatches')), 'matches'); + $select_op->add(Q($this->gettext('filternotmatches')), 'notmatches'); + if (in_array('regex', $this->exts)) { + $select_op->add(Q($this->gettext('filterregex')), 'regex'); + $select_op->add(Q($this->gettext('filternotregex')), 'notregex'); + } + if (in_array('relational', $this->exts)) { + $select_op->add(Q($this->gettext('countisgreaterthan')), 'count-gt'); + $select_op->add(Q($this->gettext('countisgreaterthanequal')), 'count-ge'); + $select_op->add(Q($this->gettext('countislessthan')), 'count-lt'); + $select_op->add(Q($this->gettext('countislessthanequal')), 'count-le'); + $select_op->add(Q($this->gettext('countequals')), 'count-eq'); + $select_op->add(Q($this->gettext('countnotequals')), 'count-ne'); + $select_op->add(Q($this->gettext('valueisgreaterthan')), 'value-gt'); + $select_op->add(Q($this->gettext('valueisgreaterthanequal')), 'value-ge'); + $select_op->add(Q($this->gettext('valueislessthan')), 'value-lt'); + $select_op->add(Q($this->gettext('valueislessthanequal')), 'value-le'); + $select_op->add(Q($this->gettext('valueequals')), 'value-eq'); + $select_op->add(Q($this->gettext('valuenotequals')), 'value-ne'); + } + + // target input (TODO: lists) + + if (in_array($rule['test'], array('header', 'address', 'envelope'))) { + $test = ($rule['not'] ? 'not' : '').($rule['type'] ? $rule['type'] : 'is'); + $target = $rule['arg2']; + } + else if ($rule['test'] == 'body') { + $test = ($rule['not'] ? 'not' : '').($rule['type'] ? $rule['type'] : 'is'); + $target = $rule['arg']; + } + else if ($rule['test'] == 'size') { + $test = ''; + $target = ''; + if (preg_match('/^([0-9]+)(K|M|G)?$/', $rule['arg'], $matches)) { + $sizetarget = $matches[1]; + $sizeitem = $matches[2]; + } + else { + $sizetarget = $rule['arg']; + $sizeitem = $rule['item']; + } + } + else { + $test = ($rule['not'] ? 'not' : '').$rule['test']; + $target = ''; + } + + $tout .= $select_op->show($test); + $tout .= '<input type="text" name="_rule_target[]" id="rule_target' .$id. '" + value="' .Q($target). '" size="20" ' . $this->error_class($id, 'test', 'target', 'rule_target') + . ' style="display:' . ($rule['test']!='size' && $rule['test'] != 'exists' ? 'inline' : 'none') . '" />'."\n"; + + $select_size_op = new html_select(array('name' => "_rule_size_op[]", 'id' => 'rule_size_op'.$id)); + $select_size_op->add(Q($this->gettext('filterover')), 'over'); + $select_size_op->add(Q($this->gettext('filterunder')), 'under'); + + $tout .= '<div id="rule_size' .$id. '" style="display:' . ($rule['test']=='size' ? 'inline' : 'none') .'">'; + $tout .= $select_size_op->show($rule['test']=='size' ? $rule['type'] : ''); + $tout .= '<input type="text" name="_rule_size_target[]" id="rule_size_i'.$id.'" value="'.$sizetarget.'" size="10" ' + . $this->error_class($id, 'test', 'sizetarget', 'rule_size_i') .' /> + <input type="radio" name="_rule_size_item['.$id.']" value=""' + . (!$sizeitem ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('B').' + <input type="radio" name="_rule_size_item['.$id.']" value="K"' + . ($sizeitem=='K' ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('KB').' + <input type="radio" name="_rule_size_item['.$id.']" value="M"' + . ($sizeitem=='M' ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('MB').' + <input type="radio" name="_rule_size_item['.$id.']" value="G"' + . ($sizeitem=='G' ? ' checked="checked"' : '') .' class="radio" />'.rcube_label('GB'); + $tout .= '</div>'; + + // Advanced modifiers (address, envelope) + $select_mod = new html_select(array('name' => "_rule_mod[]", 'id' => 'rule_mod_op'.$id, + 'onchange' => 'rule_mod_select(' .$id .')')); + $select_mod->add(Q($this->gettext('none')), ''); + $select_mod->add(Q($this->gettext('address')), 'address'); + if (in_array('envelope', $this->exts)) + $select_mod->add(Q($this->gettext('envelope')), 'envelope'); + + $select_type = new html_select(array('name' => "_rule_mod_type[]", 'id' => 'rule_mod_type'.$id)); + $select_type->add(Q($this->gettext('allparts')), 'all'); + $select_type->add(Q($this->gettext('domain')), 'domain'); + $select_type->add(Q($this->gettext('localpart')), 'localpart'); + if (in_array('subaddress', $this->exts)) { + $select_type->add(Q($this->gettext('user')), 'user'); + $select_type->add(Q($this->gettext('detail')), 'detail'); + } + + $need_mod = $rule['test'] != 'size' && $rule['test'] != 'body'; + $mout = '<div id="rule_mod' .$id. '" class="adv" style="display:' . ($need_mod ? 'block' : 'none') .'">'; + $mout .= ' <span>'; + $mout .= Q($this->gettext('modifier')) . ' '; + $mout .= $select_mod->show($rule['test']); + $mout .= '</span>'; + $mout .= ' <span id="rule_mod_type' . $id . '"'; + $mout .= ' style="display:' . (in_array($rule['test'], array('address', 'envelope')) ? 'inline' : 'none') .'">'; + $mout .= Q($this->gettext('modtype')) . ' '; + $mout .= $select_type->show($rule['part']); + $mout .= '</span>'; + $mout .= '</div>'; + + // Advanced modifiers (body transformations) + $select_mod = new html_select(array('name' => "_rule_trans[]", 'id' => 'rule_trans_op'.$id, + 'onchange' => 'rule_trans_select(' .$id .')')); + $select_mod->add(Q($this->gettext('text')), 'text'); + $select_mod->add(Q($this->gettext('undecoded')), 'raw'); + $select_mod->add(Q($this->gettext('contenttype')), 'content'); + + $mout .= '<div id="rule_trans' .$id. '" class="adv" style="display:' . ($rule['test'] == 'body' ? 'block' : 'none') .'">'; + $mout .= ' <span>'; + $mout .= Q($this->gettext('modifier')) . ' '; + $mout .= $select_mod->show($rule['part']); + $mout .= '<input type="text" name="_rule_trans_type[]" id="rule_trans_type'.$id + . '" value="'.(is_array($rule['content']) ? implode(',', $rule['content']) : $rule['content']) + .'" size="20" style="display:' . ($rule['part'] == 'content' ? 'inline' : 'none') .'"' + . $this->error_class($id, 'test', 'part', 'rule_trans_type') .' />'; + $mout .= '</span>'; + $mout .= '</div>'; + + // Advanced modifiers (body transformations) + $select_comp = new html_select(array('name' => "_rule_comp[]", 'id' => 'rule_comp_op'.$id)); + $select_comp->add(Q($this->gettext('default')), ''); + $select_comp->add(Q($this->gettext('octet')), 'i;octet'); + $select_comp->add(Q($this->gettext('asciicasemap')), 'i;ascii-casemap'); + if (in_array('comparator-i;ascii-numeric', $this->exts)) { + $select_comp->add(Q($this->gettext('asciinumeric')), 'i;ascii-numeric'); + } + + $mout .= '<div id="rule_comp' .$id. '" class="adv" style="display:' . ($rule['test'] != 'size' ? 'block' : 'none') .'">'; + $mout .= ' <span>'; + $mout .= Q($this->gettext('comparator')) . ' '; + $mout .= $select_comp->show($rule['comparator']); + $mout .= '</span>'; + $mout .= '</div>'; + + // Build output table + $out = $div ? '<div class="rulerow" id="rulerow' .$id .'">'."\n" : ''; + $out .= '<table><tr>'; + $out .= '<td class="advbutton">'; + $out .= '<a href="#" id="ruleadv' . $id .'" title="'. Q($this->gettext('advancedopts')). '" + onclick="rule_adv_switch(' . $id .', this)" class="show"> </a>'; + $out .= '</td>'; + $out .= '<td class="rowactions">' . $aout . '</td>'; + $out .= '<td class="rowtargets">' . $tout . "\n"; + $out .= '<div id="rule_advanced' .$id. '" style="display:none">' . $mout . '</div>'; + $out .= '</td>'; + + // add/del buttons + $out .= '<td class="rowbuttons">'; + $out .= '<a href="#" id="ruleadd' . $id .'" title="'. Q($this->gettext('add')). '" + onclick="rcmail.managesieve_ruleadd(' . $id .')" class="button add"></a>'; + $out .= '<a href="#" id="ruledel' . $id .'" title="'. Q($this->gettext('del')). '" + onclick="rcmail.managesieve_ruledel(' . $id .')" class="button del' . ($rows_num<2 ? ' disabled' : '') .'"></a>'; + $out .= '</td>'; + $out .= '</tr></table>'; + + $out .= $div ? "</div>\n" : ''; + + return $out; + } + + function action_div($fid, $id, $div=true) + { + $action = isset($this->form) ? $this->form['actions'][$id] : $this->script[$fid]['actions'][$id]; + $rows_num = isset($this->form) ? sizeof($this->form['actions']) : sizeof($this->script[$fid]['actions']); + + $out = $div ? '<div class="actionrow" id="actionrow' .$id .'">'."\n" : ''; + + $out .= '<table><tr><td class="rowactions">'; + + // action select + $select_action = new html_select(array('name' => "_action_type[$id]", 'id' => 'action_type'.$id, + 'onchange' => 'action_type_select(' .$id .')')); + if (in_array('fileinto', $this->exts)) + $select_action->add(Q($this->gettext('messagemoveto')), 'fileinto'); + if (in_array('fileinto', $this->exts) && in_array('copy', $this->exts)) + $select_action->add(Q($this->gettext('messagecopyto')), 'fileinto_copy'); + $select_action->add(Q($this->gettext('messageredirect')), 'redirect'); + if (in_array('copy', $this->exts)) + $select_action->add(Q($this->gettext('messagesendcopy')), 'redirect_copy'); + if (in_array('reject', $this->exts)) + $select_action->add(Q($this->gettext('messagediscard')), 'reject'); + else if (in_array('ereject', $this->exts)) + $select_action->add(Q($this->gettext('messagediscard')), 'ereject'); + if (in_array('vacation', $this->exts)) + $select_action->add(Q($this->gettext('messagereply')), 'vacation'); + $select_action->add(Q($this->gettext('messagedelete')), 'discard'); + if (in_array('imapflags', $this->exts) || in_array('imap4flags', $this->exts)) { + $select_action->add(Q($this->gettext('setflags')), 'setflag'); + $select_action->add(Q($this->gettext('addflags')), 'addflag'); + $select_action->add(Q($this->gettext('removeflags')), 'removeflag'); + } + if (in_array('variables', $this->exts)) { + $select_action->add(Q($this->gettext('setvariable')), 'set'); + } + if (in_array('enotify', $this->exts) || in_array('notify', $this->exts)) { + $select_action->add(Q($this->gettext('notify')), 'notify'); + } + $select_action->add(Q($this->gettext('rulestop')), 'stop'); + + $select_type = $action['type']; + if (in_array($action['type'], array('fileinto', 'redirect')) && $action['copy']) { + $select_type .= '_copy'; + } + + $out .= $select_action->show($select_type); + $out .= '</td>'; + + // actions target inputs + $out .= '<td class="rowtargets">'; + // shared targets + $out .= '<input type="text" name="_action_target['.$id.']" id="action_target' .$id. '" ' + .'value="' .($action['type']=='redirect' ? Q($action['target'], 'strict', false) : ''). '" size="35" ' + .'style="display:' .($action['type']=='redirect' ? 'inline' : 'none') .'" ' + . $this->error_class($id, 'action', 'target', 'action_target') .' />'; + $out .= '<textarea name="_action_target_area['.$id.']" id="action_target_area' .$id. '" ' + .'rows="3" cols="35" '. $this->error_class($id, 'action', 'targetarea', 'action_target_area') + .'style="display:' .(in_array($action['type'], array('reject', 'ereject')) ? 'inline' : 'none') .'">' + . (in_array($action['type'], array('reject', 'ereject')) ? Q($action['target'], 'strict', false) : '') + . "</textarea>\n"; + + // vacation + $out .= '<div id="action_vacation' .$id.'" style="display:' .($action['type']=='vacation' ? 'inline' : 'none') .'">'; + $out .= '<span class="label">'. Q($this->gettext('vacationreason')) .'</span><br />' + .'<textarea name="_action_reason['.$id.']" id="action_reason' .$id. '" ' + .'rows="3" cols="35" '. $this->error_class($id, 'action', 'reason', 'action_reason') . '>' + . Q($action['reason'], 'strict', false) . "</textarea>\n"; + $out .= '<br /><span class="label">' .Q($this->gettext('vacationsubject')) . '</span><br />' + .'<input type="text" name="_action_subject['.$id.']" id="action_subject'.$id.'" ' + .'value="' . (is_array($action['subject']) ? Q(implode(', ', $action['subject']), 'strict', false) : $action['subject']) . '" size="35" ' + . $this->error_class($id, 'action', 'subject', 'action_subject') .' />'; + $out .= '<br /><span class="label">' .Q($this->gettext('vacationaddresses')) . '</span><br />' + .'<input type="text" name="_action_addresses['.$id.']" id="action_addr'.$id.'" ' + .'value="' . (is_array($action['addresses']) ? Q(implode(', ', $action['addresses']), 'strict', false) : $action['addresses']) . '" size="35" ' + . $this->error_class($id, 'action', 'addresses', 'action_addr') .' />'; + $out .= '<br /><span class="label">' . Q($this->gettext('vacationdays')) . '</span><br />' + .'<input type="text" name="_action_days['.$id.']" id="action_days'.$id.'" ' + .'value="' .Q($action['days'], 'strict', false) . '" size="2" ' + . $this->error_class($id, 'action', 'days', 'action_days') .' />'; + $out .= '</div>'; + + // flags + $flags = array( + 'read' => '\\Seen', + 'answered' => '\\Answered', + 'flagged' => '\\Flagged', + 'deleted' => '\\Deleted', + 'draft' => '\\Draft', + ); + $flags_target = (array)$action['target']; + + $out .= '<div id="action_flags' .$id.'" style="display:' + . (preg_match('/^(set|add|remove)flag$/', $action['type']) ? 'inline' : 'none') . '"' + . $this->error_class($id, 'action', 'flags', 'action_flags') . '>'; + foreach ($flags as $fidx => $flag) { + $out .= '<input type="checkbox" name="_action_flags[' .$id .'][]" value="' . $flag . '"' + . (in_array_nocase($flag, $flags_target) ? 'checked="checked"' : '') . ' />' + . Q($this->gettext('flag'.$fidx)) .'<br>'; + } + $out .= '</div>'; + + // set variable + $set_modifiers = array( + 'lower', + 'upper', + 'lowerfirst', + 'upperfirst', + 'quotewildcard', + 'length' + ); + + $out .= '<div id="action_set' .$id.'" style="display:' .($action['type']=='set' ? 'inline' : 'none') .'">'; + $out .= '<span class="label">' .Q($this->gettext('setvarname')) . '</span><br />' + .'<input type="text" name="_action_varname['.$id.']" id="action_varname'.$id.'" ' + .'value="' . Q($action['name']) . '" size="35" ' + . $this->error_class($id, 'action', 'name', 'action_varname') .' />'; + $out .= '<br /><span class="label">' .Q($this->gettext('setvarvalue')) . '</span><br />' + .'<input type="text" name="_action_varvalue['.$id.']" id="action_varvalue'.$id.'" ' + .'value="' . Q($action['value']) . '" size="35" ' + . $this->error_class($id, 'action', 'value', 'action_varvalue') .' />'; + $out .= '<br /><span class="label">' .Q($this->gettext('setvarmodifiers')) . '</span><br />'; + foreach ($set_modifiers as $j => $s_m) { + $s_m_id = 'action_varmods' . $id . $s_m; + $out .= sprintf('<input type="checkbox" name="_action_varmods[%s][]" value="%s" id="%s"%s />%s<br>', + $id, $s_m, $s_m_id, + (array_key_exists($s_m, (array)$action) && $action[$s_m] ? ' checked="checked"' : ''), + Q($this->gettext('var' . $s_m))); + } + $out .= '</div>'; + + // notify + // skip :options tag - not used by the mailto method + $out .= '<div id="action_notify' .$id.'" style="display:' .($action['type']=='notify' ? 'inline' : 'none') .'">'; + $out .= '<span class="label">' .Q($this->gettext('notifyaddress')) . '</span><br />' + .'<input type="text" name="_action_notifyaddress['.$id.']" id="action_notifyaddress'.$id.'" ' + .'value="' . Q($action['address']) . '" size="35" ' + . $this->error_class($id, 'action', 'address', 'action_notifyaddress') .' />'; + $out .= '<br /><span class="label">'. Q($this->gettext('notifybody')) .'</span><br />' + .'<textarea name="_action_notifybody['.$id.']" id="action_notifybody' .$id. '" ' + .'rows="3" cols="35" '. $this->error_class($id, 'action', 'method', 'action_notifybody') . '>' + . Q($action['body'], 'strict', false) . "</textarea>\n"; + $out .= '<br /><span class="label">' .Q($this->gettext('notifysubject')) . '</span><br />' + .'<input type="text" name="_action_notifymessage['.$id.']" id="action_notifymessage'.$id.'" ' + .'value="' . Q($action['message']) . '" size="35" ' + . $this->error_class($id, 'action', 'message', 'action_notifymessage') .' />'; + $out .= '<br /><span class="label">' .Q($this->gettext('notifyfrom')) . '</span><br />' + .'<input type="text" name="_action_notifyfrom['.$id.']" id="action_notifyfrom'.$id.'" ' + .'value="' . Q($action['from']) . '" size="35" ' + . $this->error_class($id, 'action', 'from', 'action_notifyfrom') .' />'; + $importance_options = array( + 3 => 'notifyimportancelow', + 2 => 'notifyimportancenormal', + 1 => 'notifyimportancehigh' + ); + $select_importance = new html_select(array( + 'name' => '_action_notifyimportance[' . $id . ']', + 'id' => '_action_notifyimportance' . $id, + 'class' => $this->error_class($id, 'action', 'importance', 'action_notifyimportance'))); + foreach ($importance_options as $io_v => $io_n) { + $select_importance->add(Q($this->gettext($io_n)), $io_v); + } + $out .= '<br /><span class="label">' . Q($this->gettext('notifyimportance')) . '</span><br />'; + $out .= $select_importance->show($action['importance'] ? $action['importance'] : 2); + $out .= '</div>'; + + // mailbox select + if ($action['type'] == 'fileinto') + $mailbox = $this->mod_mailbox($action['target'], 'out'); + else + $mailbox = ''; + + $select = rcmail_mailbox_select(array( + 'realnames' => false, + 'maxlength' => 100, + 'id' => 'action_mailbox' . $id, + 'name' => "_action_mailbox[$id]", + 'style' => 'display:'.(!isset($action) || $action['type']=='fileinto' ? 'inline' : 'none') + )); + $out .= $select->show($mailbox); + $out .= '</td>'; + + // add/del buttons + $out .= '<td class="rowbuttons">'; + $out .= '<a href="#" id="actionadd' . $id .'" title="'. Q($this->gettext('add')). '" + onclick="rcmail.managesieve_actionadd(' . $id .')" class="button add"></a>'; + $out .= '<a href="#" id="actiondel' . $id .'" title="'. Q($this->gettext('del')). '" + onclick="rcmail.managesieve_actiondel(' . $id .')" class="button del' . ($rows_num<2 ? ' disabled' : '') .'"></a>'; + $out .= '</td>'; + + $out .= '</tr></table>'; + + $out .= $div ? "</div>\n" : ''; + + return $out; + } + + private function genid() + { + return preg_replace('/[^0-9]/', '', microtime(true)); + } + + private function strip_value($str, $allow_html = false, $trim = true) + { + if (!$allow_html) { + $str = strip_tags($str); + } + + return $trim ? trim($str) : $str; + } + + private function error_class($id, $type, $target, $elem_prefix='') + { + // TODO: tooltips + if (($type == 'test' && ($str = $this->errors['tests'][$id][$target])) || + ($type == 'action' && ($str = $this->errors['actions'][$id][$target])) + ) { + $this->add_tip($elem_prefix.$id, $str, true); + return ' class="error"'; + } + + return ''; + } + + private function add_tip($id, $str, $error=false) + { + if ($error) + $str = html::span('sieve error', $str); + + $this->tips[] = array($id, $str); + } + + private function print_tips() + { + if (empty($this->tips)) + return; + + $script = JS_OBJECT_NAME.'.managesieve_tip_register('.json_encode($this->tips).');'; + $this->rc->output->add_script($script, 'foot'); + } + + /** + * Converts mailbox name from/to UTF7-IMAP from/to internal Sieve encoding + * with delimiter replacement. + * + * @param string $mailbox Mailbox name + * @param string $mode Conversion direction ('in'|'out') + * + * @return string Mailbox name + */ + private function mod_mailbox($mailbox, $mode = 'out') + { + $delimiter = $_SESSION['imap_delimiter']; + $replace_delimiter = $this->rc->config->get('managesieve_replace_delimiter'); + $mbox_encoding = $this->rc->config->get('managesieve_mbox_encoding', 'UTF7-IMAP'); + + if ($mode == 'out') { + $mailbox = rcube_charset_convert($mailbox, $mbox_encoding, 'UTF7-IMAP'); + if ($replace_delimiter && $replace_delimiter != $delimiter) + $mailbox = str_replace($replace_delimiter, $delimiter, $mailbox); + } + else { + $mailbox = rcube_charset_convert($mailbox, 'UTF7-IMAP', $mbox_encoding); + if ($replace_delimiter && $replace_delimiter != $delimiter) + $mailbox = str_replace($delimiter, $replace_delimiter, $mailbox); + } + + return $mailbox; + } + + /** + * List sieve scripts + * + * @return array Scripts list + */ + public function list_scripts() + { + if ($this->list !== null) { + return $this->list; + } + + $this->list = $this->sieve->get_scripts(); + + // Handle active script(s) and list of scripts according to Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + + // Skip protected names + foreach ((array)$this->list as $idx => $name) { + $_name = strtoupper($name); + if ($_name == 'MASTER') + $master_script = $name; + else if ($_name == 'MANAGEMENT') + $management_script = $name; + else if($_name == 'USER') + $user_script = $name; + else + continue; + + unset($this->list[$idx]); + } + + // get active script(s), read USER script + if ($user_script) { + $extension = $this->rc->config->get('managesieve_filename_extension', '.sieve'); + $filename_regex = '/'.preg_quote($extension, '/').'$/'; + $_SESSION['managesieve_user_script'] = $user_script; + + $this->sieve->load($user_script); + + foreach ($this->sieve->script->as_array() as $rules) { + foreach ($rules['actions'] as $action) { + if ($action['type'] == 'include' && empty($action['global'])) { + $name = preg_replace($filename_regex, '', $action['target']); + $this->active[] = $name; + } + } + } + } + // create USER script if it doesn't exist + else { + $content = "# USER Management Script\n" + ."#\n" + ."# This script includes the various active sieve scripts\n" + ."# it is AUTOMATICALLY GENERATED. DO NOT EDIT MANUALLY!\n" + ."#\n" + ."# For more information, see http://wiki.kolab.org/KEP:14#USER\n" + ."#\n"; + if ($this->sieve->save_script('USER', $content)) { + $_SESSION['managesieve_user_script'] = 'USER'; + if (empty($this->master_file)) + $this->sieve->activate('USER'); + } + } + } + else if (!empty($this->list)) { + // Get active script name + if ($active = $this->sieve->get_active()) { + $this->active = array($active); + } + + // Hide scripts from config + $exceptions = $this->rc->config->get('managesieve_filename_exceptions'); + if (!empty($exceptions)) { + $this->list = array_diff($this->list, (array)$exceptions); + } + } + + return $this->list; + } + + /** + * Removes sieve script + * + * @param string $name Script name + * + * @return bool True on success, False on failure + */ + public function remove_script($name) + { + $result = $this->sieve->remove($name); + + // Kolab's KEP:14 + if ($result && $this->rc->config->get('managesieve_kolab_master')) { + $this->deactivate_script($name); + } + + return $result; + } + + /** + * Activates sieve script + * + * @param string $name Script name + * + * @return bool True on success, False on failure + */ + public function activate_script($name) + { + // Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + $extension = $this->rc->config->get('managesieve_filename_extension', '.sieve'); + $user_script = $_SESSION['managesieve_user_script']; + + // if the script is not active... + if ($user_script && ($key = array_search($name, $this->active)) === false) { + // ...rewrite USER file adding appropriate include command + if ($this->sieve->load($user_script)) { + $script = $this->sieve->script->as_array(); + $list = array(); + $regexp = '/' . preg_quote($extension, '/') . '$/'; + + // Create new include entry + $rule = array( + 'actions' => array( + 0 => array( + 'target' => $name.$extension, + 'type' => 'include', + 'personal' => true, + ))); + + // get all active scripts for sorting + foreach ($script as $rid => $rules) { + foreach ($rules['actions'] as $aid => $action) { + if ($action['type'] == 'include' && empty($action['global'])) { + $target = $extension ? preg_replace($regexp, '', $action['target']) : $action['target']; + $list[] = $target; + } + } + } + $list[] = $name; + + // Sort and find current script position + asort($list, SORT_LOCALE_STRING); + $list = array_values($list); + $index = array_search($name, $list); + + // add rule at the end of the script + if ($index === false || $index == count($list)-1) { + $this->sieve->script->add_rule($rule); + } + // add rule at index position + else { + $script2 = array(); + foreach ($script as $rid => $rules) { + if ($rid == $index) { + $script2[] = $rule; + } + $script2[] = $rules; + } + $this->sieve->script->content = $script2; + } + + $result = $this->sieve->save(); + if ($result) { + $this->active[] = $name; + } + } + } + } + else { + $result = $this->sieve->activate($name); + if ($result) + $this->active = array($name); + } + + return $result; + } + + /** + * Deactivates sieve script + * + * @param string $name Script name + * + * @return bool True on success, False on failure + */ + public function deactivate_script($name) + { + // Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + $extension = $this->rc->config->get('managesieve_filename_extension', '.sieve'); + $user_script = $_SESSION['managesieve_user_script']; + + // if the script is active... + if ($user_script && ($key = array_search($name, $this->active)) !== false) { + // ...rewrite USER file removing appropriate include command + if ($this->sieve->load($user_script)) { + $script = $this->sieve->script->as_array(); + $name = $name.$extension; + + foreach ($script as $rid => $rules) { + foreach ($rules['actions'] as $aid => $action) { + if ($action['type'] == 'include' && empty($action['global']) + && $action['target'] == $name + ) { + break 2; + } + } + } + + // Entry found + if ($rid < count($script)) { + $this->sieve->script->delete_rule($rid); + $result = $this->sieve->save(); + if ($result) { + unset($this->active[$key]); + } + } + } + } + } + else { + $result = $this->sieve->deactivate(); + if ($result) + $this->active = array(); + } + + return $result; + } + + /** + * Saves current script (adding some variables) + */ + public function save_script($name = null) + { + // Kolab's KEP:14 + if ($this->rc->config->get('managesieve_kolab_master')) { + $this->sieve->script->set_var('EDITOR', self::PROGNAME); + $this->sieve->script->set_var('EDITOR_VERSION', self::VERSION); + } + + return $this->sieve->save($name); + } + + /** + * Returns list of rules from the current script + * + * @return array List of rules + */ + public function list_rules() + { + $result = array(); + $i = 1; + + foreach ($this->script as $idx => $filter) { + if ($filter['type'] != 'if') { + continue; + } + $fname = $filter['name'] ? $filter['name'] : "#$i"; + $result[] = array( + 'id' => $idx, + 'name' => $fname, + 'class' => $filter['disabled'] ? 'disabled' : '', + ); + $i++; + } + + return $result; + } +} diff --git a/webmail/plugins/managesieve/package.xml b/webmail/plugins/managesieve/package.xml new file mode 100644 index 0000000..a0c38b8 --- /dev/null +++ b/webmail/plugins/managesieve/package.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 + http://pear.php.net/dtd/tasks-1.0.xsd + http://pear.php.net/dtd/package-2.0 + http://pear.php.net/dtd/package-2.0.xsd"> + <name>managesieve</name> + <channel>pear.roundcube.net</channel> + <summary>Sieve filters manager for Roundcube</summary> + <description> + Adds a possibility to manage Sieve scripts (incoming mail filters). + It's clickable interface which operates on text scripts and communicates + with server using managesieve protocol. Adds Filters tab in Settings. + </description> + <lead> + <name>Aleksander Machniak</name> + <user>alec</user> + <email>alec@alec.pl</email> + <active>yes</active> + </lead> + <date>2013-02-17</date> + <version> + <release>6.2</release> + <api>6.0</api> + </version> + <stability> + <release>stable</release> + <api>stable</api> + </stability> + <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> + <notes>-</notes> + <contents> + <dir baseinstalldir="/" name="/"> + <file name="managesieve.php" role="php"> + <tasks:replace from="@name@" to="name" type="package-info"/> + <tasks:replace from="@package_version@" to="version" type="package-info"/> + </file> + <file name="managesieve.js" role="data"> + <tasks:replace from="@name@" to="name" type="package-info"/> + <tasks:replace from="@package_version@" to="version" type="package-info"/> + </file> + <file name="localization/be_BE.inc" role="data"></file> + <file name="localization/bg_BG.inc" role="data"></file> + <file name="localization/bs_BA.inc" role="data"></file> + <file name="localization/ca_ES_BA.inc" role="data"></file> + <file name="localization/cs_CZ.inc" role="data"></file> + <file name="localization/cy_GB.inc" role="data"></file> + <file name="localization/da_DK.inc" role="data"></file> + <file name="localization/de_CH.inc" role="data"></file> + <file name="localization/de_DE.inc" role="data"></file> + <file name="localization/el_GR.inc" role="data"></file> + <file name="localization/en_GB.inc" role="data"></file> + <file name="localization/en_US.inc" role="data"></file> + <file name="localization/eo.inc" role="data"></file> + <file name="localization/es_AR.inc" role="data"></file> + <file name="localization/es_ES.inc" role="data"></file> + <file name="localization/et_EE.inc" role="data"></file> + <file name="localization/fa_IR.inc" role="data"></file> + <file name="localization/fi_FI.inc" role="data"></file> + <file name="localization/fr_FR.inc" role="data"></file> + <file name="localization/gl_ES.inc" role="data"></file> + <file name="localization/he_IL.inc" role="data"></file> + <file name="localization/hr_HR.inc" role="data"></file> + <file name="localization/hu_HU.inc" role="data"></file> + <file name="localization/ia_IA.inc" role="data"></file> + <file name="localization/id_ID.inc" role="data"></file> + <file name="localization/it_IT.inc" role="data"></file> + <file name="localization/ja_JP.inc" role="data"></file> + <file name="localization/lt_LT.inc" role="data"></file> + <file name="localization/lv_LV.inc" role="data"></file> + <file name="localization/ml_ML.inc" role="data"></file> + <file name="localization/mr_IN.inc" role="data"></file> + <file name="localization/nb_NO.inc" role="data"></file> + <file name="localization/nl_NL.inc" role="data"></file> + <file name="localization/pl_PL.inc" role="data"></file> + <file name="localization/pt_BR.inc" role="data"></file> + <file name="localization/pt_PT.inc" role="data"></file> + <file name="localization/ro_RO.inc" role="data"></file> + <file name="localization/ru_RU.inc" role="data"></file> + <file name="localization/si_LK.inc" role="data"></file> + <file name="localization/sk_SK.inc" role="data"></file> + <file name="localization/sl_SI.inc" role="data"></file> + <file name="localization/sv_SE.inc" role="data"></file> + <file name="localization/tr_TR.inc" role="data"></file> + <file name="localization/uk_UA.inc" role="data"></file> + <file name="localization/vi_VN.inc" role="data"></file> + <file name="localization/zh_CN.inc" role="data"></file> + <file name="localization/zh_TW.inc" role="data"></file> + <file name="skins/classic/managesieve.css" role="data"></file> + <file name="skins/classic/managesieve_mail.css" role="data"></file> + <file name="skins/classic/templates/filteredit.html" role="data"></file> + <file name="skins/classic/templates/managesieve.html" role="data"></file> + <file name="skins/classic/templates/setedit.html" role="data"></file> + <file name="skins/classic/images/add.png" role="data"></file> + <file name="skins/classic/images/del.png" role="data"></file> + <file name="skins/classic/images/down_small.gif" role="data"></file> + <file name="skins/classic/images/filter.png" role="data"></file> + <file name="skins/classic/images/up_small.gif" role="data"></file> + <file name="skins/larry/managesieve.css" role="data"></file> + <file name="skins/larry/managesieve_mail.css" role="data"></file> + <file name="skins/larry/templates/filteredit.html" role="data"></file> + <file name="skins/larry/templates/managesieve.html" role="data"></file> + <file name="skins/larry/templates/setedit.html" role="data"></file> + <file name="skins/larry/images/add.png" role="data"></file> + <file name="skins/larry/images/del.png" role="data"></file> + <file name="skins/larry/images/down_small.gif" role="data"></file> + <file name="skins/larry/images/up_small.gif" role="data"></file> + <file name="managesieve.php" role="php"></file> + <file name="lib/rcube_sieve.php" role="php"></file> + <file name="lib/rcube_sieve_script.php" role="php"></file> + <file name="lib/Net/Sieve.php" role="php"></file> + <file name="config.inc.php.dist" role="data"></file> + </dir> + <!-- / --> + </contents> + <dependencies> + <required> + <php> + <min>5.2.1</min> + </php> + <pearinstaller> + <min>1.7.0</min> + </pearinstaller> + </required> + </dependencies> + <phprelease/> +</package> diff --git a/webmail/plugins/managesieve/skins/classic/images/add.png b/webmail/plugins/managesieve/skins/classic/images/add.png Binary files differnew file mode 100644 index 0000000..97a6422 --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/images/add.png diff --git a/webmail/plugins/managesieve/skins/classic/images/del.png b/webmail/plugins/managesieve/skins/classic/images/del.png Binary files differnew file mode 100644 index 0000000..518905b --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/images/del.png diff --git a/webmail/plugins/managesieve/skins/classic/images/down_small.gif b/webmail/plugins/managesieve/skins/classic/images/down_small.gif Binary files differnew file mode 100644 index 0000000..f865893 --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/images/down_small.gif diff --git a/webmail/plugins/managesieve/skins/classic/images/filter.png b/webmail/plugins/managesieve/skins/classic/images/filter.png Binary files differnew file mode 100644 index 0000000..a79ba10 --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/images/filter.png diff --git a/webmail/plugins/managesieve/skins/classic/images/up_small.gif b/webmail/plugins/managesieve/skins/classic/images/up_small.gif Binary files differnew file mode 100644 index 0000000..40deb89 --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/images/up_small.gif diff --git a/webmail/plugins/managesieve/skins/classic/managesieve.css b/webmail/plugins/managesieve/skins/classic/managesieve.css new file mode 100644 index 0000000..b7c6f5d --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/managesieve.css @@ -0,0 +1,317 @@ +#filtersetslistbox +{ + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 195px; + border: 1px solid #999999; + background-color: #F9F9F9; + overflow: hidden; + /* css hack for IE */ + height: expression(parseInt(this.parentNode.offsetHeight)+'px'); +} + +#filtersscreen +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 205px; + /* css hack for IE */ + height: expression(parseInt(this.parentNode.offsetHeight)+'px'); +} + +#filterslistbox +{ + position: absolute; + left: 0; + top: 0; + bottom: 0; + border: 1px solid #999999; + overflow: auto; + /* css hack for IE */ + height: expression(parseInt(this.parentNode.offsetHeight)+'px'); +} + +#filterslist, +#filtersetslist +{ + width: 100%; + table-layout: fixed; +} + +#filterslist tbody td, +#filtersetslist tbody td +{ + cursor: default; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; +} + +#filterslist tbody tr.disabled td, +#filtersetslist tbody tr.disabled td +{ + color: #999999; +} + +#filtersetslist tbody td +{ + font-weight: bold; +} +/* +#filtersetslist tr.selected +{ + background-color: #929292; + border-bottom: 1px solid #898989; + color: #FFF; + font-weight: bold; +} +*/ + +#filterslist tbody tr.filtermoveup td +{ + border-top: 2px dotted #555; + padding-top: 0px; +} + +#filterslist tbody tr.filtermovedown td +{ + border-bottom: 2px dotted #555; + padding-bottom: 1px; +} + +#filter-box +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + border: 1px solid #999999; + overflow: hidden; + /* css hack for IE */ + width: expression((parseInt(this.parentNode.offsetWidth)-20-parseInt(document.getElementById('filterslistbox').offsetWidth))+'px'); + height: expression(parseInt(this.parentNode.offsetHeight)+'px'); +} + +#filter-frame +{ + border: none; +} + +body.iframe +{ + min-width: 620px; + width: expression(Math.max(620, document.documentElement.clientWidth)+'px'); + background-color: #F2F2F2; +} + +#filter-form +{ + min-width: 550px; + width: expression(Math.max(550, document.documentElement.clientWidth)+'px'); + white-space: nowrap; + padding: 20px 10px 10px 10px; +} + +legend, label +{ + color: #666666; +} + +#rules, #actions +{ + margin-top: 5px; + padding: 0; + border-collapse: collapse; +} + +div.rulerow, div.actionrow +{ + width: auto; + padding: 2px; + white-space: nowrap; + border: 1px solid #F2F2F2; +} + +div.rulerow:hover, div.actionrow:hover +{ + padding: 2px; + white-space: nowrap; + background: #F9F9F9; + border: 1px solid silver; +} + +div.rulerow table, div.actionrow table +{ + padding: 0px; + min-width: 600px; + width: expression(Math.max(600, document.documentElement.clientWidth)+'px'); +} + +td +{ + vertical-align: top; +} + +td.advbutton +{ + width: 1%; +} + +td.advbutton a +{ + display: block; + padding-top: 14px; + height: 6px; + width: 12px; + text-decoration: none; +} + +td.advbutton a.show +{ + background: url(images/down_small.gif?v=8629.106) center no-repeat; +} + +td.advbutton a.hide +{ + background: url(images/up_small.gif?v=c56c.106) center no-repeat; +} + +td.rowbuttons +{ + text-align: right; + white-space: nowrap; + width: 1%; +} + +td.rowactions +{ + white-space: nowrap; + width: 1%; + padding-top: 2px; +} + +td.rowtargets +{ + white-space: nowrap; + width: 98%; + padding-left: 3px; + padding-top: 2px; +} + +td.rowtargets div.adv +{ + padding-top: 3px; +} + +input.disabled, input.disabled:hover +{ + color: #999999; +} + +input.error, textarea.error +{ + background-color: #FFFF88; +} + +input.box, +input.radio +{ + border: 0; + margin-top: 0; +} + +select.operator_selector +{ + width: 200px; +} + +td.rowtargets span, +span.label +{ + color: #666666; + font-size: 10px; + white-space: nowrap; +} + +#footer +{ + padding-top: 5px; + width: 100%; +} + +#footer .footerleft +{ + padding-left: 2px; + white-space: nowrap; + float: left; +} + +#footer .footerright +{ + padding-right: 2px; + white-space: nowrap; + text-align: right; + float: right; +} + +.itemlist +{ + line-height: 25px; +} + +.itemlist input +{ + vertical-align: middle; +} + +span.sieve.error +{ + color: red; +} + +a.button.add +{ + background: url(images/add.png?v=a165.280) no-repeat; + width: 30px; + height: 20px; + margin-right: 4px; + display: inline-block; +} + +a.button.del +{ + background: url(images/del.png?v=3c27.247) no-repeat; + width: 30px; + height: 20px; + display: inline-block; +} + +a.button.disabled +{ + opacity: 0.35; + filter: alpha(opacity=35); + cursor: default; +} + +#filter-form select, +#filter-form input, +#filter-form textarea +{ + font-size: 11px; +} + +/* fixes for popup window */ + +body.iframe.mail +{ + margin: 0; + padding: 0; +} + +body.iframe.mail #filter-form +{ + padding: 10px 5px 5px 5px; +} diff --git a/webmail/plugins/managesieve/skins/classic/managesieve_mail.css b/webmail/plugins/managesieve/skins/classic/managesieve_mail.css new file mode 100644 index 0000000..73cc47b --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/managesieve_mail.css @@ -0,0 +1,62 @@ +#messagemenu li a.filterlink { + background-image: url(images/filter.png?v=b0fe.547); + background-position: 7px 0; +} + +#sievefilterform { + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: #F2F2F2; + border: 1px solid #999999; + padding: 0; + margin: 5px; +} + +#sievefilterform iframe { + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + min-height: 100%; /* Chrome 14 bug */ + background-color: #F2F2F2; + border: 0; + padding: 0; + margin: 0; +} + +#sievefilterform ul { + list-style: none; + padding: 0; + margin: 0; + margin-top: 5px; +} + +#sievefilterform fieldset { + margin: 5px; +} + +#sievefilterform ul li { + margin-bottom: 5px; + white-space: nowrap; +} + +#sievefilterform ul li input { + margin-right: 5px; +} + +#sievefilterform label { + font-weight: bold; +} + +#managesieve-tip +{ + z-index: 100000; +} + +span.sieve.error +{ + color: red; +} diff --git a/webmail/plugins/managesieve/skins/classic/templates/filteredit.html b/webmail/plugins/managesieve/skins/classic/templates/filteredit.html new file mode 100644 index 0000000..6ecb03c --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/templates/filteredit.html @@ -0,0 +1,33 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/managesieve.css" /> +</head> +<body class="iframe<roundcube:exp expression="env:task != 'mail' ? '' : ' mail'" />"> + +<roundcube:if condition="env:task != 'mail'" /> +<div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.filterdef" /></div> +<roundcube:endif /> + +<div id="filter-form" class="boxcontent"> +<roundcube:object name="filterform" /> + +<roundcube:if condition="env:task != 'mail'" /> +<div id="footer"> +<div class="footerleft"> +<roundcube:button command="plugin.managesieve-save" type="input" class="button mainaction" label="save" /> +</div> +<div class="footerright"> +<label for="disabled"><roundcube:label name="managesieve.filterdisabled" /></label> +<input type="checkbox" id="disabled" name="_disabled" value="1" /> +</div> +</div> +<roundcube:endif /> + +</form> +</div> + +</body> +</html> diff --git a/webmail/plugins/managesieve/skins/classic/templates/managesieve.html b/webmail/plugins/managesieve/skins/classic/templates/managesieve.html new file mode 100644 index 0000000..71eebe1 --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/templates/managesieve.html @@ -0,0 +1,87 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/managesieve.css" /> +<script type="text/javascript" src="/functions.js"></script> +<script type="text/javascript" src="/splitter.js"></script> + +<style type="text/css"> +#filterslistbox { width: <roundcube:exp expression="!empty(cookie:sieveviewsplitter) ? cookie:sieveviewsplitter-5 : 210" />px; } +#filter-box { left: <roundcube:exp expression="!empty(cookie:sieveviewsplitter) ? cookie:sieveviewsplitter+5 : 220" />px; +<roundcube:exp expression="browser:ie ? ('width:expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:sieveviewsplitter) ? cookie:sieveviewsplitter+5 : 220).')+\\'px\\');') : ''" /> +} +#filtersetslistbox { width: <roundcube:exp expression="!empty(cookie:sieveviewsplitter2) ? cookie:sieveviewsplitter2-5 : 175" />px; } +#filtersscreen { left: <roundcube:exp expression="!empty(cookie:sieveviewsplitter2) ? cookie:sieveviewsplitter2+5 : 185" />px; +<roundcube:exp expression="browser:ie ? ('width:expression((parseInt(this.parentNode.offsetWidth)-'.(!empty(cookie:sieveviewsplitter2) ? cookie:sieveviewsplitter2+5 : 185).')+\\'px\\');') : ''" /> +} +</style> + +</head> +<body onload="rcube_init_mail_ui()"> + +<roundcube:include file="/includes/taskbar.html" /> +<roundcube:include file="/includes/header.html" /> +<roundcube:include file="/includes/settingstabs.html" /> + +<div id="mainscreen"> + +<div id="filtersetslistbox"> +<div id="filtersetslist-title" class="boxtitle"><roundcube:label name="managesieve.filtersets" /></div> +<div class="boxlistcontent"> + <roundcube:object name="filtersetslist" id="filtersetslist" class="records-table" cellspacing="0" summary="Filters list" type="list" noheader="true" /> +</div> +<div class="boxfooter"> + <roundcube:button command="plugin.managesieve-setadd" type="link" title="managesieve.filtersetadd" class="buttonPas addfilterset" classAct="button addfilterset" content=" " /> + <roundcube:button name="filtersetmenulink" id="filtersetmenulink" type="link" title="moreactions" class="button groupactions" onclick="rcmail_ui.show_popup('filtersetmenu', undefined, {above:1});return false" content=" " /> +</div> +</div> + +<div id="filtersscreen"> +<div id="filterslistbox"> +<div class="boxtitle"><roundcube:label name="managesieve.filters" /></div> +<div class="boxlistcontent"> + <roundcube:object name="filterslist" id="filterslist" class="records-table" cellspacing="0" summary="Filters list" noheader="true" /> +</div> +<div class="boxfooter"> + <roundcube:button command="plugin.managesieve-add" type="link" title="managesieve.filteradd" class="buttonPas addfilter" classAct="button addfilter" content=" " /> + <roundcube:button name="filtermenulink" id="filtermenulink" type="link" title="moreactions" class="button groupactions" onclick="rcmail_ui.show_popup('filtermenu', undefined, {above:1});return false" content=" " /> +</div> +</div> + +<script type="text/javascript"> + var sieveviewsplit2 = new rcube_splitter({id:'sieveviewsplitter2', p1: 'filtersetslistbox', p2: 'filtersscreen', orientation: 'v', relative: true, start: 200}); + rcmail.add_onload('sieveviewsplit2.init()'); + + var sieveviewsplit = new rcube_splitter({id:'sieveviewsplitter', p1: 'filterslistbox', p2: 'filter-box', orientation: 'v', relative: true, start: 215}); + rcmail.add_onload('sieveviewsplit.init()'); +</script> + +<div id="filter-box"> + <roundcube:object name="filterframe" id="filter-frame" width="100%" height="100%" frameborder="0" src="/watermark.html" /> +</div> + +</div> +</div> +</div> + +<div id="filtersetmenu" class="popupmenu"> + <ul> + <li><roundcube:button command="plugin.managesieve-setact" label="managesieve.enable" classAct="active" /></li> + <li><roundcube:button command="plugin.managesieve-setdel" label="delete" classAct="active" /></li> + <li class="separator_above"><roundcube:button command="plugin.managesieve-setget" label="download" classAct="active" /></li> + <roundcube:container name="filtersetoptions" id="filtersetmenu" /> + </ul> +</div> + +<div id="filtermenu" class="popupmenu"> + <ul> + <li><roundcube:button command="plugin.managesieve-act" label="managesieve.enable" classAct="active" /></li> + <li><roundcube:button command="plugin.managesieve-del" label="delete" classAct="active" /></li> + <roundcube:container name="filteroptions" id="filtermenu" /> + </ul> +</div> + +</body> +</html> diff --git a/webmail/plugins/managesieve/skins/classic/templates/setedit.html b/webmail/plugins/managesieve/skins/classic/templates/setedit.html new file mode 100644 index 0000000..26f7fec --- /dev/null +++ b/webmail/plugins/managesieve/skins/classic/templates/setedit.html @@ -0,0 +1,24 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/managesieve.css" /> +</head> +<body class="iframe"> + +<div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.newfilterset" /></div> + +<div id="filter-form" class="boxcontent"> +<roundcube:object name="filtersetform" /> + +<p> +<roundcube:button command="plugin.managesieve-save" type="input" class="button mainaction" label="save" /> +</p> + +</form> +</div> + + +</body> +</html> diff --git a/webmail/plugins/managesieve/skins/larry/images/add.png b/webmail/plugins/managesieve/skins/larry/images/add.png Binary files differnew file mode 100644 index 0000000..97a6422 --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/images/add.png diff --git a/webmail/plugins/managesieve/skins/larry/images/del.png b/webmail/plugins/managesieve/skins/larry/images/del.png Binary files differnew file mode 100644 index 0000000..518905b --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/images/del.png diff --git a/webmail/plugins/managesieve/skins/larry/images/down_small.gif b/webmail/plugins/managesieve/skins/larry/images/down_small.gif Binary files differnew file mode 100644 index 0000000..f865893 --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/images/down_small.gif diff --git a/webmail/plugins/managesieve/skins/larry/images/up_small.gif b/webmail/plugins/managesieve/skins/larry/images/up_small.gif Binary files differnew file mode 100644 index 0000000..40deb89 --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/images/up_small.gif diff --git a/webmail/plugins/managesieve/skins/larry/managesieve.css b/webmail/plugins/managesieve/skins/larry/managesieve.css new file mode 100644 index 0000000..bf5910e --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/managesieve.css @@ -0,0 +1,310 @@ +#filtersetslistbox +{ + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 150px; +} + +#filtersscreen +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 162px; +} + +#filterslistbox +{ + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 180px; +} + +#filter-box +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 192px; +} + +#filter-frame +{ + border-radius: 4px; +} + +#filterslist, +#filtersetslist +{ + width: 100%; + table-layout: fixed; +} + +#filterslist tbody td, +#filtersetslist tbody td +{ + width: 100%; + overflow: hidden; + text-overflow: ellipsis; +} + +#filterslist tbody tr.disabled td, +#filtersetslist tbody tr.disabled td +{ + color: #87A3AA; +} + +#filtersetslist tbody td +{ + font-weight: bold; +} + +#filterslist tbody tr.filtermoveup td +{ + border-top: 2px dotted #555; + padding-top: 5px; +} + +#filterslist tbody tr.filtermovedown td +{ + border-bottom: 2px dotted #555; + padding-bottom: 4px; +} + +body.iframe +{ + min-width: 620px; +} + +#filter-form +{ + min-width: 550px; + white-space: nowrap; + padding: 20px 10px 10px 10px; +} + +legend, label +{ + color: #666666; +} + +#rules, #actions +{ + margin-top: 5px; + padding: 0; + border-collapse: collapse; +} + +div.rulerow, div.actionrow +{ + width: auto; + padding: 2px; + white-space: nowrap; + border: 1px solid white; +} + +div.rulerow:hover, div.actionrow:hover +{ + padding: 2px; + white-space: nowrap; + background-color: #D9ECF4; + border: 1px solid #BBD3DA; + border-radius: 4px; +} + +div.rulerow table, div.actionrow table +{ + padding: 0px; + min-width: 600px; +} + +td +{ + vertical-align: top; +} + +td.advbutton +{ + width: 1%; +} + +td.advbutton a +{ + display: block; + padding-top: 14px; + height: 6px; + width: 12px; + text-decoration: none; +} + +td.advbutton a.show +{ + background: url(images/down_small.gif?v=8629.106) center no-repeat; +} + +td.advbutton a.hide +{ + background: url(images/up_small.gif?v=c56c.106) center no-repeat; +} + +td.rowbuttons +{ + text-align: right; + white-space: nowrap; + width: 1%; +} + +td.rowactions +{ + white-space: nowrap; + width: 1%; + padding-top: 2px; +} + +td.rowtargets +{ + white-space: nowrap; + width: 98%; + padding-left: 3px; + padding-top: 2px; +} + +td.rowtargets div.adv +{ + padding-top: 3px; +} + +input.disabled, input.disabled:hover +{ + color: #999999; +} + +input.error, textarea.error +{ + background-color: #FFFFC4; +} + +input.box, +input.radio +{ + border: 0; + margin-top: 0; +} + +select.operator_selector +{ + width: 200px; +} + +td.rowtargets span, +span.label +{ + color: #666666; + font-size: 10px; + white-space: nowrap; +} + +#footer +{ + padding-top: 5px; + width: 100%; +} + +#footer .footerleft label +{ + margin-left: 40px; + white-space: nowrap; +} + +.itemlist +{ + line-height: 25px; +} + +.itemlist input +{ + vertical-align: middle; +} + +span.sieve.error +{ + color: red; + white-space: nowrap; +} + +#managesieve-tip +{ + padding: 3px; + background-color: #eee; +} + +a.button +{ + margin: 0; + padding: 0; +} + +a.button.add +{ + background: url(images/add.png?v=a165.280) no-repeat; + width: 30px; + height: 20px; + margin-right: 4px; + display: inline-block; +} + +a.button.del +{ + background: url(images/del.png?v=3c27.247) no-repeat; + width: 30px; + height: 20px; + display: inline-block; +} + +a.button.disabled +{ + opacity: 0.35; + filter: alpha(opacity=35); + cursor: default; +} + +#filter-form select, +#filter-form input, +#filter-form textarea +{ + font-size: 11px; + padding: 1px; +} + +/* revert larry style button */ +#filter-form input.button +{ + padding-bottom: 2px; + padding-left: 5px; + padding-right: 5px; + padding-top: 2px; +} + +fieldset +{ + border-radius: 4px; +} + +/* fixes for popup window */ + +body.iframe.mail +{ + margin: 0; + padding: 0; +} + +body.iframe.mail #filter-form +{ + padding: 10px 5px 5px 5px; +} diff --git a/webmail/plugins/managesieve/skins/larry/managesieve_mail.css b/webmail/plugins/managesieve/skins/larry/managesieve_mail.css new file mode 100644 index 0000000..ea417bd --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/managesieve_mail.css @@ -0,0 +1,62 @@ +ul.toolbarmenu li span.filterlink { + background-position: 0 -1924px; +} + +#sievefilterform { + top: 0; + bottom: 0; + left: 0; + right: 0; + padding: 0; + overflow: hidden; +} + +#sievefilterform iframe { + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + min-height: 100%; /* Chrome 14 bug */ + border: 0; + padding: 0; + margin: 0; +} + +#sievefilterform ul { + list-style: none; + padding: 0; + margin: 0; + margin-top: 5px; +} + +#sievefilterform fieldset { + margin: 5px; + border-radius: 4px; +} + +#sievefilterform ul li { + margin-bottom: 5px; + white-space: nowrap; +} + +#sievefilterform ul li input { + margin-right: 5px; +} + +#sievefilterform label { + font-weight: bold; +} + +#managesieve-tip +{ + z-index: 100000; + padding: 3px; + background-color: #eee; +} + +span.sieve.error +{ + color: red; + white-space: nowrap; +} diff --git a/webmail/plugins/managesieve/skins/larry/templates/filteredit.html b/webmail/plugins/managesieve/skins/larry/templates/filteredit.html new file mode 100644 index 0000000..602816a --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/templates/filteredit.html @@ -0,0 +1,33 @@ +<roundcube:object name="doctype" value="html5" /> +<html> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/managesieve.css" /> +</head> +<body class="iframe<roundcube:exp expression="env:task != 'mail' ? ' floatingbuttons' : ' mail'" />"> + +<roundcube:if condition="env:task != 'mail'" /> +<div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.filterdef" /></div> +<roundcube:endif /> + +<div id="filter-form" class="boxcontent"> +<roundcube:object name="filterform" /> + +<roundcube:if condition="env:task != 'mail'" /> +<div id="footer"> +<div class="footerleft formbuttons floating"> +<roundcube:button command="plugin.managesieve-save" type="input" class="button mainaction" label="save" /> +<label for="disabled"> +<input type="checkbox" id="disabled" name="_disabled" value="1" /> +<roundcube:label name="managesieve.filterdisabled" /> +</label> +</div> +</div> +<roundcube:endif /> + +</form> +</div> + +</body> +</html> diff --git a/webmail/plugins/managesieve/skins/larry/templates/managesieve.html b/webmail/plugins/managesieve/skins/larry/templates/managesieve.html new file mode 100644 index 0000000..25bbbaf --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/templates/managesieve.html @@ -0,0 +1,75 @@ +<roundcube:object name="doctype" value="html5" /> +<html> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/managesieve.css" /> +</head> +<body class="noscroll"> + +<roundcube:include file="/includes/header.html" /> + +<div id="mainscreen" class="offset"> + +<roundcube:include file="/includes/settingstabs.html" /> + +<div id="settings-right"> + +<div id="filtersetslistbox" class="uibox listbox"> +<h2 class="boxtitle"><roundcube:label name="managesieve.filtersets" /></h2> +<div class="scroller withfooter"> + <roundcube:object name="filtersetslist" id="filtersetslist" class="listing" cellspacing="0" summary="Filters list" type="list" noheader="true" /> +</div> +<div class="boxfooter"> + <roundcube:button command="plugin.managesieve-setadd" type="link" title="managesieve.filtersetadd" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button name="filtersetmenulink" id="filtersetmenulink" type="link" title="moreactions" class="listbutton groupactions" onclick="UI.show_popup('filtersetmenu');return false" innerClass="inner" content="⚙" /> +</div> +</div> + +<div id="filtersscreen"> +<div id="filterslistbox" class="uibox listbox"> +<h2 class="boxtitle"><roundcube:label name="managesieve.filters" /></h2> +<div class="scroller withfooter"> + <roundcube:object name="filterslist" id="filterslist" class="listing" cellspacing="0" summary="Filters list" noheader="true" /> +</div> +<div class="boxfooter"> + <roundcube:button command="plugin.managesieve-add" type="link" title="managesieve.filteradd" class="listbutton add disabled" classAct="listbutton add" innerClass="inner" content="+" /><roundcube:button name="filtermenulink" id="filtermenulink" type="link" title="moreactions" class="listbutton groupactions" onclick="UI.show_popup('filtermenu');return false" innerClass="inner" content="⚙" /> +</div> +</div> + +<div id="filter-box" class="uibox contentbox"> + <div class="iframebox"> + <roundcube:object name="filterframe" id="filter-frame" style="width:100%; height:100%" frameborder="0" src="/watermark.html" /> + </div> + <roundcube:object name="message" id="message" class="statusbar" /> +</div> + +</div> + +<div id="filtersetmenu" class="popupmenu"> + <ul class="toolbarmenu"> + <li><roundcube:button command="plugin.managesieve-setact" label="managesieve.enable" classAct="active" /></li> + <li><roundcube:button command="plugin.managesieve-setdel" label="delete" classAct="active" /></li> + <li class="separator_above"><roundcube:button command="plugin.managesieve-setget" label="download" classAct="active" /></li> + <roundcube:container name="filtersetoptions" id="filtersetmenu" /> + </ul> +</div> + +<div id="filtermenu" class="popupmenu"> + <ul class="toolbarmenu"> + <li><roundcube:button command="plugin.managesieve-act" label="managesieve.enable" classAct="active" /></li> + <li><roundcube:button command="plugin.managesieve-del" label="delete" classAct="active" /></li> + <roundcube:container name="filteroptions" id="filtermenu" /> + </ul> +</div> + +<roundcube:include file="/includes/footer.html" /> + +<script type="text/javascript"> + new rcube_splitter({ id:'managesievesplitter1', p1:'#filtersetslistbox', p2:'#filtersscreen', + orientation:'v', relative:true, start:156, min:120, size:12 }).init(); + new rcube_splitter({ id:'managesievesplitter2', p1:'#filterslistbox', p2:'#filter-box', + orientation:'v', relative:true, start:186, min:120, size:12 }).init(); +</script> + +</body> +</html> diff --git a/webmail/plugins/managesieve/skins/larry/templates/setedit.html b/webmail/plugins/managesieve/skins/larry/templates/setedit.html new file mode 100644 index 0000000..9fc115d --- /dev/null +++ b/webmail/plugins/managesieve/skins/larry/templates/setedit.html @@ -0,0 +1,25 @@ +<roundcube:object name="doctype" value="html5" /> +<html> +<head> +<title><roundcube:object name="pagetitle" /></title> +<roundcube:include file="/includes/links.html" /> +<link rel="stylesheet" type="text/css" href="/this/managesieve.css" /> +</head> +<body class="iframe floatingbuttons"> + +<div id="filter-title" class="boxtitle"><roundcube:label name="managesieve.newfilterset" /></div> + +<div id="filter-form" class="boxcontent"> +<roundcube:object name="filtersetform" /> + +<div id="footer"> +<div class="footerleft formbuttons floating"> +<roundcube:button command="plugin.managesieve-save" type="input" class="button mainaction" label="save" /> +</div> +</div> + +</form> +</div> + +</body> +</html> diff --git a/webmail/plugins/managesieve/tests/Makefile b/webmail/plugins/managesieve/tests/Makefile new file mode 100644 index 0000000..072be2f --- /dev/null +++ b/webmail/plugins/managesieve/tests/Makefile @@ -0,0 +1,7 @@ + +clean: + rm -f *.log *.php *.diff *.exp *.out + + +test: + pear run-tests *.phpt diff --git a/webmail/plugins/managesieve/tests/Managesieve.php b/webmail/plugins/managesieve/tests/Managesieve.php new file mode 100644 index 0000000..d802f56 --- /dev/null +++ b/webmail/plugins/managesieve/tests/Managesieve.php @@ -0,0 +1,23 @@ +<?php + +class Managesieve_Plugin extends PHPUnit_Framework_TestCase +{ + + function setUp() + { + include_once dirname(__FILE__) . '/../managesieve.php'; + } + + /** + * Plugin object construction test + */ + function test_constructor() + { + $rcube = rcube::get_instance(); + $plugin = new managesieve($rcube->api); + + $this->assertInstanceOf('managesieve', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + diff --git a/webmail/plugins/managesieve/tests/Parser.php b/webmail/plugins/managesieve/tests/Parser.php new file mode 100644 index 0000000..9050f09 --- /dev/null +++ b/webmail/plugins/managesieve/tests/Parser.php @@ -0,0 +1,62 @@ +<?php + +class Parser extends PHPUnit_Framework_TestCase +{ + + function setUp() + { + include_once dirname(__FILE__) . '/../lib/Roundcube/rcube_sieve_script.php'; + } + + /** + * Sieve script parsing + * + * @dataProvider data_parser + */ + function test_parser($input, $output, $message) + { + // get capabilities list from the script + $caps = array(); + if (preg_match('/require \[([a-z0-9", ]+)\]/', $input, $m)) { + foreach (explode(',', $m[1]) as $cap) { + $caps[] = trim($cap, '" '); + } + } + + $script = new rcube_sieve_script($input, $caps); + $result = $script->as_text(); + + $this->assertEquals(trim($result), trim($output), $message); + } + + /** + * Data provider for test_parser() + */ + function data_parser() + { + $dir_path = realpath(dirname(__FILE__) . '/src'); + $dir = opendir($dir_path); + $result = array(); + + while ($file = readdir($dir)) { + if (preg_match('/^[a-z0-9_]+$/', $file)) { + $input = file_get_contents($dir_path . '/' . $file); + + if (file_exists($dir_path . '/' . $file . '.out')) { + $output = file_get_contents($dir_path . '/' . $file . '.out'); + } + else { + $output = $input; + } + + $result[] = array( + 'input' => $input, + 'output' => $output, + 'message' => "Error in parsing '$file' file", + ); + } + } + + return $result; + } +} diff --git a/webmail/plugins/managesieve/tests/Tokenizer.php b/webmail/plugins/managesieve/tests/Tokenizer.php new file mode 100644 index 0000000..e71bae0 --- /dev/null +++ b/webmail/plugins/managesieve/tests/Tokenizer.php @@ -0,0 +1,33 @@ +<?php + +class Tokenizer extends PHPUnit_Framework_TestCase +{ + + function setUp() + { + include_once dirname(__FILE__) . '/../lib/Roundcube/rcube_sieve_script.php'; + } + + function data_tokenizer() + { + return array( + array(1, "text: #test\nThis is test ; message;\nMulti line\n.\n;\n", '"This is test ; message;\nMulti line"'), + array(0, '["test1","test2"]', '[["test1","test2"]]'), + array(1, '["test"]', '["test"]'), + array(1, '"te\\"st"', '"te\\"st"'), + array(0, 'test #comment', '["test"]'), + array(0, "text:\ntest\n.\ntext:\ntest\n.\n", '["test","test"]'), + array(1, '"\\a\\\\\\"a"', '"a\\\\\\"a"'), + ); + } + + /** + * @dataProvider data_tokenizer + */ + function test_tokenizer($num, $input, $output) + { + $res = json_encode(rcube_sieve_script::tokenize($input, $num)); + + $this->assertEquals(trim($res), trim($output)); + } +} diff --git a/webmail/plugins/managesieve/tests/parser.phpt b/webmail/plugins/managesieve/tests/parser.phpt new file mode 100644 index 0000000..aec0421 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser.phpt @@ -0,0 +1,120 @@ +--TEST-- +Main test of script parser +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["fileinto","reject","envelope"]; +# rule:[spam] +if anyof (header :contains "X-DSPAM-Result" "Spam") +{ + fileinto "Spam"; + stop; +} +# rule:[test1] +if anyof (header :comparator "i;ascii-casemap" :contains ["From","To"] "test@domain.tld") +{ + discard; + stop; +} +# rule:[test2] +if anyof (not header :comparator "i;octet" :contains ["Subject"] "[test]", header :contains "Subject" "[test2]") +{ + fileinto "test"; + stop; +} +# rule:[comments] +if anyof (true) /* comment + * "comment" #comment */ { + /* comment */ stop; +# comment +} +# rule:[reject] +if size :over 5000K { + reject "Message over 5MB size limit. Please contact me before sending this."; +} +# rule:[false] +if false # size :over 5000K +{ + stop; /* rule disabled */ +} +# rule:[true] +if true +{ + stop; +} +fileinto "Test"; +# rule:[address test] +if address :all :is "From" "nagios@domain.tld" +{ + fileinto "domain.tld"; + stop; +} +# rule:[envelope test] +if envelope :domain :is "From" "domain.tld" +{ + fileinto "domain.tld"; + stop; +} +'; + +$s = new rcube_sieve_script($txt); +echo $s->as_text(); + +// ------------------------------------------------------------------------------- +?> +--EXPECT-- +require ["fileinto","reject","envelope"]; +# rule:[spam] +if header :contains "X-DSPAM-Result" "Spam" +{ + fileinto "Spam"; + stop; +} +# rule:[test1] +if header :contains ["From","To"] "test@domain.tld" +{ + discard; + stop; +} +# rule:[test2] +if anyof (not header :comparator "i;octet" :contains "Subject" "[test]", header :contains "Subject" "[test2]") +{ + fileinto "test"; + stop; +} +# rule:[comments] +if true +{ + stop; +} +# rule:[reject] +if size :over 5000K +{ + reject "Message over 5MB size limit. Please contact me before sending this."; +} +# rule:[false] +if false # size :over 5000K +{ + stop; +} +# rule:[true] +if true +{ + stop; +} +fileinto "Test"; +# rule:[address test] +if address :all :is "From" "nagios@domain.tld" +{ + fileinto "domain.tld"; + stop; +} +# rule:[envelope test] +if envelope :domain :is "From" "domain.tld" +{ + fileinto "domain.tld"; + stop; +} diff --git a/webmail/plugins/managesieve/tests/parser_body.phpt b/webmail/plugins/managesieve/tests/parser_body.phpt new file mode 100644 index 0000000..08ad549 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_body.phpt @@ -0,0 +1,49 @@ +--TEST-- +Test of Sieve body extension (RFC5173) +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["body","fileinto"]; +if body :raw :contains "MAKE MONEY FAST" +{ + stop; +} +if body :content "text" :contains ["missile","coordinates"] +{ + fileinto "secrets"; +} +if body :content "audio/mp3" :contains "" +{ + fileinto "jukebox"; +} +if body :text :contains "project schedule" +{ + fileinto "project/schedule"; +} +'; + +$s = new rcube_sieve_script($txt); +echo $s->as_text(); + +?> +--EXPECT-- +require ["body","fileinto"]; +if body :raw :contains "MAKE MONEY FAST" +{ + stop; +} +if body :content "text" :contains ["missile","coordinates"] +{ + fileinto "secrets"; +} +if body :content "audio/mp3" :contains "" +{ + fileinto "jukebox"; +} +if body :text :contains "project schedule" +{ + fileinto "project/schedule"; +} diff --git a/webmail/plugins/managesieve/tests/parser_imapflags.phpt b/webmail/plugins/managesieve/tests/parser_imapflags.phpt new file mode 100644 index 0000000..a4bc465 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_imapflags.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test of Sieve vacation extension (RFC5232) +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["imapflags"]; +# rule:[imapflags] +if header :matches "Subject" "^Test$" { + setflag "\\\\Seen"; + addflag ["\\\\Answered","\\\\Deleted"]; +} +'; + +$s = new rcube_sieve_script($txt, array('imapflags')); +echo $s->as_text(); + +?> +--EXPECT-- +require ["imapflags"]; +# rule:[imapflags] +if header :matches "Subject" "^Test$" +{ + setflag "\\Seen"; + addflag ["\\Answered","\\Deleted"]; +} diff --git a/webmail/plugins/managesieve/tests/parser_include.phpt b/webmail/plugins/managesieve/tests/parser_include.phpt new file mode 100644 index 0000000..addc0d4 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_include.phpt @@ -0,0 +1,30 @@ +--TEST-- +Test of Sieve include extension +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["include"]; + +include "script.sieve"; +# rule:[two] +if true +{ + include :optional "second.sieve"; +} +'; + +$s = new rcube_sieve_script($txt, array(), array('variables')); +echo $s->as_text(); + +?> +--EXPECT-- +require ["include"]; +include "script.sieve"; +# rule:[two] +if true +{ + include :optional "second.sieve"; +} diff --git a/webmail/plugins/managesieve/tests/parser_kep14.phpt b/webmail/plugins/managesieve/tests/parser_kep14.phpt new file mode 100644 index 0000000..dcdbd48 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_kep14.phpt @@ -0,0 +1,19 @@ +--TEST-- +Test of Kolab's KEP:14 implementation +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +# EDITOR Roundcube +# EDITOR_VERSION 123 +'; + +$s = new rcube_sieve_script($txt, array('body')); +echo $s->as_text(); + +?> +--EXPECT-- +# EDITOR Roundcube +# EDITOR_VERSION 123 diff --git a/webmail/plugins/managesieve/tests/parser_prefix.phpt b/webmail/plugins/managesieve/tests/parser_prefix.phpt new file mode 100644 index 0000000..c87e965 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_prefix.phpt @@ -0,0 +1,25 @@ +--TEST-- +Test of prefix comments handling +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +# this is a comment +# and the second line + +require ["variables"]; +set "b" "c"; +'; + +$s = new rcube_sieve_script($txt, array(), array('variables')); +echo $s->as_text(); + +?> +--EXPECT-- +# this is a comment +# and the second line + +require ["variables"]; +set "b" "c"; diff --git a/webmail/plugins/managesieve/tests/parser_relational.phpt b/webmail/plugins/managesieve/tests/parser_relational.phpt new file mode 100644 index 0000000..6b6f29f --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_relational.phpt @@ -0,0 +1,25 @@ +--TEST-- +Test of Sieve relational extension (RFC5231) +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["relational","comparator-i;ascii-numeric"]; +# rule:[redirect] +if header :value "ge" :comparator "i;ascii-numeric" + ["X-Spam-score"] ["14"] {redirect "test@test.tld";} +'; + +$s = new rcube_sieve_script($txt); +echo $s->as_text(); + +?> +--EXPECT-- +require ["relational","comparator-i;ascii-numeric"]; +# rule:[redirect] +if header :value "ge" :comparator "i;ascii-numeric" "X-Spam-score" "14" +{ + redirect "test@test.tld"; +} diff --git a/webmail/plugins/managesieve/tests/parser_vacation.phpt b/webmail/plugins/managesieve/tests/parser_vacation.phpt new file mode 100644 index 0000000..a603ff6 --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_vacation.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test of Sieve vacation extension (RFC5230) +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["vacation"]; +# rule:[test-vacation] +if anyof (header :contains "Subject" "vacation") +{ + vacation :days 1 text: +# test +test test /* test */ +test +. +; + stop; +} +'; + +$s = new rcube_sieve_script($txt); +echo $s->as_text(); + +?> +--EXPECT-- +require ["vacation"]; +# rule:[test-vacation] +if header :contains "Subject" "vacation" +{ + vacation :days 1 text: +# test +test test /* test */ +test +. +; + stop; +} diff --git a/webmail/plugins/managesieve/tests/parser_variables.phpt b/webmail/plugins/managesieve/tests/parser_variables.phpt new file mode 100644 index 0000000..cf1f8fc --- /dev/null +++ b/webmail/plugins/managesieve/tests/parser_variables.phpt @@ -0,0 +1,39 @@ +--TEST-- +Test of Sieve variables extension +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["variables"]; +set "honorific" "Mr"; +set "vacation" text: +Dear ${HONORIFIC} ${last_name}, +I am out, please leave a message after the meep. +. +; +set :length "b" "${a}"; +set :lower "b" "${a}"; +set :upperfirst "b" "${a}"; +set :upperfirst :lower "b" "${a}"; +set :quotewildcard "b" "Rock*"; +'; + +$s = new rcube_sieve_script($txt, array(), array('variables')); +echo $s->as_text(); + +?> +--EXPECT-- +require ["variables"]; +set "honorific" "Mr"; +set "vacation" text: +Dear ${HONORIFIC} ${last_name}, +I am out, please leave a message after the meep. +. +; +set :length "b" "${a}"; +set :lower "b" "${a}"; +set :upperfirst "b" "${a}"; +set :upperfirst :lower "b" "${a}"; +set :quotewildcard "b" "Rock*"; diff --git a/webmail/plugins/managesieve/tests/parset_subaddress.phpt b/webmail/plugins/managesieve/tests/parset_subaddress.phpt new file mode 100644 index 0000000..6d4d03c --- /dev/null +++ b/webmail/plugins/managesieve/tests/parset_subaddress.phpt @@ -0,0 +1,38 @@ +--TEST-- +Test of Sieve subaddress extension (RFC5233) +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt = ' +require ["envelope","subaddress","fileinto"]; +if envelope :user "To" "postmaster" +{ + fileinto "postmaster"; + stop; +} +if envelope :detail :is "To" "mta-filters" +{ + fileinto "mta-filters"; + stop; +} +'; + +$s = new rcube_sieve_script($txt); +echo $s->as_text(); + +// ------------------------------------------------------------------------------- +?> +--EXPECT-- +require ["envelope","subaddress","fileinto"]; +if envelope :user "To" "postmaster" +{ + fileinto "postmaster"; + stop; +} +if envelope :detail :is "To" "mta-filters" +{ + fileinto "mta-filters"; + stop; +} diff --git a/webmail/plugins/managesieve/tests/src/parser b/webmail/plugins/managesieve/tests/src/parser new file mode 100644 index 0000000..9c4717b --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser @@ -0,0 +1,52 @@ +require ["fileinto","reject","envelope"]; +# rule:[spam] +if anyof (header :contains "X-DSPAM-Result" "Spam") +{ + fileinto "Spam"; + stop; +} +# rule:[test1] +if anyof (header :comparator "i;ascii-casemap" :contains ["From","To"] "test@domain.tld") +{ + discard; + stop; +} +# rule:[test2] +if anyof (not header :comparator "i;octet" :contains ["Subject"] "[test]", header :contains "Subject" "[test2]") +{ + fileinto "test"; + stop; +} +# rule:[comments] +if anyof (true) /* comment + * "comment" #comment */ { + /* comment */ stop; +# comment +} +# rule:[reject] +if size :over 5000K { + reject "Message over 5MB size limit. Please contact me before sending this."; +} +# rule:[false] +if false # size :over 5000K +{ + stop; /* rule disabled */ +} +# rule:[true] +if true +{ + stop; +} +fileinto "Test"; +# rule:[address test] +if address :all :is "From" "nagios@domain.tld" +{ + fileinto "domain.tld"; + stop; +} +# rule:[envelope test] +if envelope :domain :is "From" "domain.tld" +{ + fileinto "domain.tld"; + stop; +} diff --git a/webmail/plugins/managesieve/tests/src/parser.out b/webmail/plugins/managesieve/tests/src/parser.out new file mode 100644 index 0000000..385c889 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser.out @@ -0,0 +1,52 @@ +require ["fileinto","reject","envelope"]; +# rule:[spam] +if header :contains "X-DSPAM-Result" "Spam" +{ + fileinto "Spam"; + stop; +} +# rule:[test1] +if header :contains ["From","To"] "test@domain.tld" +{ + discard; + stop; +} +# rule:[test2] +if anyof (not header :comparator "i;octet" :contains "Subject" "[test]", header :contains "Subject" "[test2]") +{ + fileinto "test"; + stop; +} +# rule:[comments] +if true +{ + stop; +} +# rule:[reject] +if size :over 5000K +{ + reject "Message over 5MB size limit. Please contact me before sending this."; +} +# rule:[false] +if false # size :over 5000K +{ + stop; +} +# rule:[true] +if true +{ + stop; +} +fileinto "Test"; +# rule:[address test] +if address :all :is "From" "nagios@domain.tld" +{ + fileinto "domain.tld"; + stop; +} +# rule:[envelope test] +if envelope :domain :is "From" "domain.tld" +{ + fileinto "domain.tld"; + stop; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_body b/webmail/plugins/managesieve/tests/src/parser_body new file mode 100644 index 0000000..bd142ed --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_body @@ -0,0 +1,17 @@ +require ["body","fileinto"]; +if body :raw :contains "MAKE MONEY FAST" +{ + stop; +} +if body :content "text" :contains ["missile","coordinates"] +{ + fileinto "secrets"; +} +if body :content "audio/mp3" :contains "" +{ + fileinto "jukebox"; +} +if body :text :contains "project schedule" +{ + fileinto "project/schedule"; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_enotify_a b/webmail/plugins/managesieve/tests/src/parser_enotify_a new file mode 100644 index 0000000..68a9ef5 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_enotify_a @@ -0,0 +1,19 @@ +require ["enotify","variables"]; +# rule:[notify1] +if header :contains "from" "boss@example.org" +{ + notify :importance "1" :message "This is probably very important" "mailto:alm@example.com"; + stop; +} +# rule:[subject] +if header :matches "Subject" "*" +{ + set "subject" "${1}"; +} +# rule:[from notify2] +if header :matches "From" "*" +{ + set "from" "${1}"; + notify :importance "3" :message "${from}: ${subject}" "mailto:alm@example.com"; +} + diff --git a/webmail/plugins/managesieve/tests/src/parser_enotify_b b/webmail/plugins/managesieve/tests/src/parser_enotify_b new file mode 100644 index 0000000..8854658 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_enotify_b @@ -0,0 +1,18 @@ +require ["envelope","variables","enotify"]; +# rule:[from] +if envelope :all :matches "from" "*" +{ + set "env_from" " [really: ${1}]"; +} +# rule:[subject] +if header :matches "Subject" "*" +{ + set "subject" "${1}"; +} +# rule:[from notify] +if address :all :matches "from" "*" +{ + set "from_addr" "${1}"; + notify :message "${from_addr}${env_from}: ${subject}" "mailto:alm@example.com"; +} + diff --git a/webmail/plugins/managesieve/tests/src/parser_imapflags b/webmail/plugins/managesieve/tests/src/parser_imapflags new file mode 100644 index 0000000..e67bf7c --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_imapflags @@ -0,0 +1,7 @@ +require ["imap4flags"]; +# rule:[imapflags] +if header :matches "Subject" "^Test$" +{ + setflag "\\Seen"; + addflag ["\\Answered","\\Deleted"]; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_include b/webmail/plugins/managesieve/tests/src/parser_include new file mode 100644 index 0000000..b5585a4 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_include @@ -0,0 +1,7 @@ +require ["include"]; +include "script.sieve"; +# rule:[two] +if true +{ + include :optional "second.sieve"; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_kep14 b/webmail/plugins/managesieve/tests/src/parser_kep14 new file mode 100644 index 0000000..1ded8d8 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_kep14 @@ -0,0 +1,2 @@ +# EDITOR Roundcube +# EDITOR_VERSION 123 diff --git a/webmail/plugins/managesieve/tests/src/parser_kep14.out b/webmail/plugins/managesieve/tests/src/parser_kep14.out new file mode 100644 index 0000000..cb7faa7 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_kep14.out @@ -0,0 +1,3 @@ +require ["variables"]; +set "EDITOR" "Roundcube"; +set "EDITOR_VERSION" "123"; diff --git a/webmail/plugins/managesieve/tests/src/parser_notify_a b/webmail/plugins/managesieve/tests/src/parser_notify_a new file mode 100644 index 0000000..f1a5754 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_notify_a @@ -0,0 +1,18 @@ +require ["notify","variables"]; +# rule:[notify1] +if header :contains "from" "boss@example.org" +{ + notify :low :message "This is probably very important"; + stop; +} +# rule:[subject] +if header :matches "Subject" "*" +{ + set "subject" "${1}"; +} +# rule:[from notify2] +if header :matches "From" "*" +{ + set "from" "${1}"; + notify :high :message "${from}: ${subject}" :method "mailto:test@example.org"; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_notify_b b/webmail/plugins/managesieve/tests/src/parser_notify_b new file mode 100644 index 0000000..cf80a97 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_notify_b @@ -0,0 +1,17 @@ +require ["envelope","variables","notify"]; +# rule:[from] +if envelope :all :matches "from" "*" +{ + set "env_from" " [really: ${1}]"; +} +# rule:[subject] +if header :matches "Subject" "*" +{ + set "subject" "${1}"; +} +# rule:[from notify] +if address :all :matches "from" "*" +{ + set "from_addr" "${1}"; + notify :message "${from_addr}${env_from}: ${subject}" :method "sms:1234567890"; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_prefix b/webmail/plugins/managesieve/tests/src/parser_prefix new file mode 100644 index 0000000..9f6a33a --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_prefix @@ -0,0 +1,5 @@ +# this is a comment +# and the second line + +require ["variables"]; +set "b" "c"; diff --git a/webmail/plugins/managesieve/tests/src/parser_relational b/webmail/plugins/managesieve/tests/src/parser_relational new file mode 100644 index 0000000..0a92fde --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_relational @@ -0,0 +1,6 @@ +require ["relational","comparator-i;ascii-numeric"]; +# rule:[redirect] +if header :value "ge" :comparator "i;ascii-numeric" "X-Spam-score" "14" +{ + redirect "test@test.tld"; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_subaddress b/webmail/plugins/managesieve/tests/src/parser_subaddress new file mode 100644 index 0000000..f106b79 --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_subaddress @@ -0,0 +1,11 @@ +require ["envelope","subaddress","fileinto"]; +if envelope :user "To" "postmaster" +{ + fileinto "postmaster"; + stop; +} +if envelope :detail :is "To" "mta-filters" +{ + fileinto "mta-filters"; + stop; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_vacation b/webmail/plugins/managesieve/tests/src/parser_vacation new file mode 100644 index 0000000..93026db --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_vacation @@ -0,0 +1,12 @@ +require ["vacation"]; +# rule:[test-vacation] +if header :contains "Subject" "vacation" +{ + vacation :days 1 text: +# test +test test /* test */ +test +. +; + stop; +} diff --git a/webmail/plugins/managesieve/tests/src/parser_variables b/webmail/plugins/managesieve/tests/src/parser_variables new file mode 100644 index 0000000..bd5941c --- /dev/null +++ b/webmail/plugins/managesieve/tests/src/parser_variables @@ -0,0 +1,12 @@ +require ["variables"]; +set "honorific" "Mr"; +set "vacation" text: +Dear ${HONORIFIC} ${last_name}, +I am out, please leave a message after the meep. +. +; +set :length "b" "${a}"; +set :lower "b" "${a}"; +set :upperfirst "b" "${a}"; +set :upperfirst :lower "b" "${a}"; +set :quotewildcard "b" "Rock*"; diff --git a/webmail/plugins/managesieve/tests/tokenize.phpt b/webmail/plugins/managesieve/tests/tokenize.phpt new file mode 100644 index 0000000..f988653 --- /dev/null +++ b/webmail/plugins/managesieve/tests/tokenize.phpt @@ -0,0 +1,66 @@ +--TEST-- +Script parsing: tokenizer +--SKIPIF-- +--FILE-- +<?php +include '../lib/rcube_sieve_script.php'; + +$txt[1] = array(1, 'text: #test +This is test ; message; +Multi line +. +; +'); +$txt[2] = array(0, '["test1","test2"]'); +$txt[3] = array(1, '["test"]'); +$txt[4] = array(1, '"te\\"st"'); +$txt[5] = array(0, 'test #comment'); +$txt[6] = array(0, 'text: +test +. +text: +test +. +'); +$txt[7] = array(1, '"\\a\\\\\\"a"'); + +foreach ($txt as $idx => $t) { + echo "[$idx]---------------\n"; + var_dump(rcube_sieve_script::tokenize($t[1], $t[0])); +} +?> +--EXPECT-- +[1]--------------- +string(34) "This is test ; message; +Multi line" +[2]--------------- +array(1) { + [0]=> + array(2) { + [0]=> + string(5) "test1" + [1]=> + string(5) "test2" + } +} +[3]--------------- +array(1) { + [0]=> + string(4) "test" +} +[4]--------------- +string(5) "te"st" +[5]--------------- +array(1) { + [0]=> + string(4) "test" +} +[6]--------------- +array(2) { + [0]=> + string(4) "test" + [1]=> + string(4) "test" +} +[7]--------------- +string(4) "a\"a" |
