Projects
Kolab:16
roundcubemail
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 86
View file
roundcubemail.spec
Changed
@@ -49,14 +49,14 @@ %global tmpdir /var/lib/roundcubemail %global rc_version 1.4 -%global rc_rel_suffix rc1.221 +%global rc_rel_suffix rc2.12 %global dot_rel_suffix %{?rc_rel_suffix:.%{rc_rel_suffix}} %global dash_rel_suffix %{?rc_rel_suffix:-%{rc_rel_suffix}} Name: roundcubemail Version: 1.4 -Release: 248%{?dot_rel_suffix}%{?dist} +Release: 312%{?dot_rel_suffix}%{?dist} Summary: Round Cube Webmail is a browser-based multilingual IMAP client @@ -2233,7 +2233,7 @@ fi if [ "${plugin}" == "enigma" ]; then - %{__mkdir_p} %{buildroot}%{tmpdir}/plugins/ + %{__mkdir_p} %{buildroot}%{tmpdir}/plugins/${plugin}/ pushd %{buildroot}%{plugindir}/${plugin} %{__mv} -v home %{buildroot}%{tmpdir}/plugins/${plugin} || \ mkdir -p %{buildroot}%{tmpdir}/plugins/${plugin} @@ -3434,6 +3434,9 @@ %defattr(-,root,root,-) %changelog +* Mon Oct 7 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 1.4-312.rc2.12 +- Check in 12 revisions ahead of upstream 1.4-rc2 release + * Mon Jul 1 2019 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 1.4-248.rc1.221 - Check in 221 revisions ahead of the upstream 1.4-rc1 release
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +roundcubemail (1.4-0~kolab312) unstable; urgency=low + + * Check in 12 revisions ahead of upstream 1.4-rc2 release + + -- Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Mon, 7 Oct 2019 11:11:11 +0200 + roundcubemail (1.4-0~kolab249) unstable; urgency=low * Check in 221 revisions ahead of upstream 1.4-rc1 release
View file
roundcubemail-1.4-rc1.221.tar.gz/tests/RcmailFunc.php
Deleted
@@ -1,85 +0,0 @@ -<?php - -/** - * Test class to test rcmail class - * - * @package Tests - */ -class RcmailFunc extends PHPUnit_Framework_TestCase -{ - function setUp() - { - // set some HTTP env vars - $_SERVER['HTTP_HOST'] = 'mail.example.org'; - $_SERVER['SERVER_PORT'] = '443'; - $_SERVER['SCRIPT_NAME'] = '/sub/index.php'; - $_SERVER['HTTPS'] = true; - - rcmail::get_instance()->filename = ''; - } - - /** - * Class constructor - */ - function test_class() - { - $object = rcmail::get_instance(); - $this->assertInstanceOf('rcmail', $object, "Class singleton"); - } - - /** - * Test rcmail::url() - */ - function test_url() - { - $rcmail = rcmail::get_instance(); - $this->assertEquals( - './?_task=cli&_action=test', - $rcmail->url('test'), - "Action only" - ); - $this->assertEquals( - './?_task=cli&_action=test&_a=AA', - $rcmail->url(array('action' => 'test', 'a' => 'AA')), - "Unprefixed parameters" - ); - $this->assertEquals( - './?_task=cli&_action=test&_b=BB', - $rcmail->url(array('_action' => 'test', '_b' => 'BB', '_c' => null)), - "Prefixed parameters (skip empty)" - ); - $this->assertEquals( - '/sub/?_task=cli&_action=test&_mode=ABS', - $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true), - "Absolute URL" - ); - - $this->assertEquals( - 'https://mail.example.org/sub/?_task=calendar&_action=test&_mode=FQ', - $rcmail->url(array('task' => 'calendar', '_action' => 'test', '_mode' => 'FQ'), true, true), - "Fully Qualified URL" - ); - - // with different SCRIPT_NAME values - $_SERVER['SCRIPT_NAME'] = 'index.php'; - $this->assertEquals( - '/?_task=cli&_action=test&_mode=ABS', - $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true), - "Absolute URL (root)" - ); - $_SERVER['SCRIPT_NAME'] = ''; - $this->assertEquals( - '/?_task=cli&_action=test&_mode=ABS', - $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true), - "Absolute URL (root)" - ); - - $_SERVER['HTTPS'] = false; - $_SERVER['SERVER_PORT'] = '8080'; - $this->assertEquals( - 'http://mail.example.org:8080/?_task=cli&_action=test&_mode=ABS', - $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true, true), - "Full URL with port" - ); - } -}
View file
roundcubemail-1.4-rc1.221.tar.gz/CHANGELOG -> roundcubemail-1.4-rc2.12.tar.gz/CHANGELOG
Changed
@@ -1,10 +1,19 @@ CHANGELOG Roundcube Webmail =========================== +- Elastic: Resizeable columns (#6929) +- Elastic: Fix position and style of auto-complete dropdown on small screens (#6951) +- Redis: Improve error handling and phpredis 5.X support (#6888) +- Fix bug where cache keys were not case-sensitive on MySQL/MSSQL (#6942) +- Fix so an error is loogged when encryption fails (#6948) + +RELEASE 1.4-rc2 +--------------- - Update to jQuery 3.4.1 - Clarified 'address_book_type' option behavior (#6680) - Added cookie mismatch detection, display an error message informing the user to clear cookies - Renamed 'log_session' option to 'session_debug' +- Removed 'delete_always' option (#6782) - Don't log full session identifiers in userlogins log (#6625) - Support $HasAttachment/$HasNoAttachment keywords (#6201) - Support PECL memcached extension as a session and cache storage driver (experimental) @@ -12,28 +21,37 @@ - installto.sh: Add possibility to run the update even on the up-to-date installation (#6533) - Plugin API: Add 'render_folder_selector' hook - Added 'keyservers' option to define list of HKP servers for Enigma/Mailvelope (#6326) +- Added flag to disable server certificate validation via Mysql DSN argument (#6848) +- Select all records on the current list page with CTRL + A (#6813) +- Use Left/Right Arrow keys to faster move over threaded messages list (#6399) - Changes in `display_next` setting (#6795): - Move it to Preferences > User Interface > Main Options - Make it apply to Contacts interface too - Make it apply only if deleting/moving a previewed message/contact - Redis: Support connection to unix socket - Put charset meta specification before a title tag, add page title automatically (#6811) +- Elastic: Various internal refactorings - Elastic: Add Prev/Next buttons on message page toolbar (#6648) - Elastic: Close search options on Enter key press in quick-search input (#6660) +- Elastic: Changed some icons (#6852) - Elastic: Changed read/unread icons (#6636) - Elastic: Changed "Move to..." icon (#6637) - Elastic: Add hide/show for advanced preferences (#6632) +- Elastic: Add default icon on Settings/Preferences lists for external plugins (#6814) +- Elastic: Add indicator for popover menu items that open a submenu (#6868) +- Elastic: Move compose attachments/options to the right side (#6839) +- Elastic: Add border/background to attachments list widget (#6842) +- Elastic: Add "Show unread messages" button to the search bar (#6587) - Elastic: Fix bug where toolbar disappears on attachment menu use in Chrome (#6677) - Elastic: Fix folders list scrolling on touch devices (#6706) - Elastic: Fix non-working pretty selects in Chrome browser (#6705) -- Elastic: Various internal refactorings - Elastic: Fix issue with absolute positioned mail content (#6739) - Elastic: Fix bug where some menu actions could cause a browser popup warning - Elastic: Fix handling mailto: URL parameters in contact menu (#6751) - Elastic: Fix keyboard navigation in some menus, e.g. the contact menu - Elastic: Fix visual issue with long buttons in .boxwarning (#6797) - Elastic: Fix handling new-line in text pasted to a recipient input -- Elastic: Add default icon on Settings/Preferences lists for external plugins (#6814) +- Elastic: Fix so search is not reset when returning from the message preview page (#6847) - Larry: Fix regression where menu actions didn't work with keyboard (#6740) - ACL: Display user/group names (from ldap) instead of acl identifier - Password: Added ldap_exop driver (#4992) @@ -45,6 +63,8 @@ - Enigma: Fix bug where revoked users/keys were not greyed out in key info - Enigma: Fix error message when trying to encrypt with a revoked key (#6607) - Enigma: Fix "decryption oracle" bug [CVE-2019-10740] (#6638) +- Enigma: Fix bug where signature verification could have been skipped for some message structures (#6838) +- Fix language selection for spellchecker in html mode (#6915) - Fix css styles leak from replied/forwarded message to the rest of the composed text (#6831) - Fix invalid path to "add contact" icon when using assets_path setting - Fix invalid path to blocked.gif when using assets_path setting (#6752) @@ -66,6 +86,14 @@ - Fix bug where Next/Prev button in mail view didn't work with multi-folder search result (#6793) - Fix bug where selection of columns on messages list wasn't working - Fix bug in converting multi-page Tiff images to Jpeg (#6824) +- Fix bug where handling multiple messages from multi-folder search result could not work (#6845) +- Fix bug where unread count wasn't updated after moving multi-folder result (#6846) +- Fix wrong messages order after returning to a multi-folder search result (#6836) +- Fix some PHP 7.4 compat. issues (#6884, #6866) +- Fix bug where it was possible to bypass the position:fixed CSS check in received messages (#6898) +- Fix bug where some strict remote URIs in url() style were unintentionally blocked (#6899) +- Fix bug where it was possible to bypass the CSS jail in HTML messages using :root pseudo-class (#6897) +- Fix bug where it was possible to bypass href URI check with data:application/xhtml+xml URIs (#6896) RELEASE 1.4-rc1 ---------------
View file
roundcubemail-1.4-rc1.221.tar.gz/INSTALL -> roundcubemail-1.4-rc2.12.tar.gz/INSTALL
Changed
@@ -27,6 +27,7 @@ - Crypt_GPG 1.6.3 or newer (for enigma plugin) - Endroid/QrCode 1.6.0 or newer (https://github.com/endroid/QrCode) - Kolab/Net_LDAP3 1.0.6 or newer (for LDAP addressbook) + - Masterminds/HTML5 2.5.x (optional HTML parser) * php.ini options: - error_reporting E_ALL & ~E_NOTICE & ~E_STRICT - memory_limit > 16MB
View file
roundcubemail-1.4-rc1.221.tar.gz/SQL/mssql.initial.sql -> roundcubemail-1.4-rc2.12.tar.gz/SQL/mssql.initial.sql
Changed
@@ -1,13 +1,13 @@ CREATE TABLE [dbo].[cache] ( [user_id] [int] NOT NULL , - [cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , + [cache_key] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL , [expires] [datetime] NULL , [data] [text] COLLATE Latin1_General_CI_AI NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO CREATE TABLE [dbo].[cache_shared] ( - [cache_key] [varchar] (255) COLLATE Latin1_General_CI_AI NOT NULL , + [cache_key] [varchar] (255) COLLATE Latin1_General_CS_AS NOT NULL , [expires] [datetime] NULL , [data] [text] COLLATE Latin1_General_CI_AI NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] @@ -15,7 +15,7 @@ CREATE TABLE [dbo].[cache_index] ( [user_id] [int] NOT NULL , - [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , + [mailbox] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL , [expires] [datetime] NULL , [valid] [char] (1) COLLATE Latin1_General_CI_AI NOT NULL , [data] [text] COLLATE Latin1_General_CI_AI NOT NULL @@ -24,7 +24,7 @@ CREATE TABLE [dbo].[cache_thread] ( [user_id] [int] NOT NULL , - [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , + [mailbox] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL , [expires] [datetime] NULL , [data] [text] COLLATE Latin1_General_CI_AI NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] @@ -32,7 +32,7 @@ CREATE TABLE [dbo].[cache_messages] ( [user_id] [int] NOT NULL , - [mailbox] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , + [mailbox] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL , [uid] [int] NOT NULL , [expires] [datetime] NULL , [data] [text] COLLATE Latin1_General_CI_AI NOT NULL , @@ -96,7 +96,7 @@ CREATE TABLE [dbo].[users] ( [user_id] [int] IDENTITY (1, 1) NOT NULL , - [username] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , + [username] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL , [mail_host] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , [created] [datetime] NOT NULL , [last_login] [datetime] NULL , @@ -422,6 +422,6 @@ WHERE [contact_id] IN (SELECT [contact_id] FROM deleted) GO -INSERT INTO [dbo].[system] ([name], [value]) VALUES ('roundcube-version', '2018122300') +INSERT INTO [dbo].[system] ([name], [value]) VALUES ('roundcube-version', '2019092900') GO \ No newline at end of file
View file
roundcubemail-1.4-rc2.12.tar.gz/SQL/mssql/2019092900.sql
Added
@@ -0,0 +1,18 @@ +ALTER TABLE [dbo].[cache] ALTER COLUMN + [cache_key] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL +GO +ALTER TABLE [dbo].[cache_shared] ALTER COLUMN + [cache_key] [varchar] (255) COLLATE Latin1_General_CS_AS NOT NULL +GO +ALTER TABLE [dbo].[cache_index] ALTER COLUMN + [mailbox] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL +GO +ALTER TABLE [dbo].[cache_messages] ALTER COLUMN + [mailbox] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL +GO +ALTER TABLE [dbo].[cache_thread] ALTER COLUMN + [mailbox] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL +GO +ALTER TABLE [dbo].[users] ALTER COLUMN + [username] [varchar] (128) COLLATE Latin1_General_CS_AS NOT NULL +GO
View file
roundcubemail-1.4-rc1.221.tar.gz/SQL/mysql.initial.sql -> roundcubemail-1.4-rc2.12.tar.gz/SQL/mysql.initial.sql
Changed
@@ -36,7 +36,7 @@ CREATE TABLE `cache` ( `user_id` int(10) UNSIGNED NOT NULL, - `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL, + `cache_key` varchar(128) BINARY NOT NULL, `expires` datetime DEFAULT NULL, `data` longtext NOT NULL, PRIMARY KEY (`user_id`, `cache_key`), @@ -49,7 +49,7 @@ -- Table structure for table `cache_shared` CREATE TABLE `cache_shared` ( - `cache_key` varchar(255) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL, + `cache_key` varchar(255) BINARY NOT NULL, `expires` datetime DEFAULT NULL, `data` longtext NOT NULL, PRIMARY KEY (`cache_key`), @@ -211,7 +211,7 @@ CONSTRAINT `user_id_fk_filestore` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE, UNIQUE `uniqueness` (`user_id`, `context`, `filename`) -); +) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */; -- Table structure for table `system` @@ -223,4 +223,4 @@ /*!40014 SET FOREIGN_KEY_CHECKS=1 */; -INSERT INTO `system` (`name`, `value`) VALUES ('roundcube-version', '2018122300'); +INSERT INTO `system` (`name`, `value`) VALUES ('roundcube-version', '2019092900');
View file
roundcubemail-1.4-rc1.221.tar.gz/SQL/mysql/2018021600.sql -> roundcubemail-1.4-rc2.12.tar.gz/SQL/mysql/2018021600.sql
Changed
@@ -8,4 +8,4 @@ CONSTRAINT `user_id_fk_filestore` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE, UNIQUE `uniqueness` (`user_id`, `filename`) -); +) /*!40000 ENGINE=INNODB */ /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
View file
roundcubemail-1.4-rc2.12.tar.gz/SQL/mysql/2019092900.sql
Added
@@ -0,0 +1,2 @@ +ALTER TABLE `cache` CHANGE `cache_key` `cache_key` varchar(128) BINARY NOT NULL; +ALTER TABLE `cache_shared` CHANGE `cache_key` `cache_key` varchar(255) BINARY NOT NULL;
View file
roundcubemail-1.4-rc1.221.tar.gz/SQL/oracle.initial.sql -> roundcubemail-1.4-rc2.12.tar.gz/SQL/oracle.initial.sql
Changed
@@ -238,4 +238,4 @@ "value" long ); -INSERT INTO "system" ("name", "value") VALUES ('roundcube-version', '2018122300'); +INSERT INTO "system" ("name", "value") VALUES ('roundcube-version', '2019092900');
View file
roundcubemail-1.4-rc2.12.tar.gz/SQL/oracle/2019092900.sql
Added
@@ -0,0 +1,1 @@ +-- empty \ No newline at end of file
View file
roundcubemail-1.4-rc1.221.tar.gz/SQL/postgres.initial.sql -> roundcubemail-1.4-rc2.12.tar.gz/SQL/postgres.initial.sql
Changed
@@ -314,4 +314,4 @@ value text ); -INSERT INTO "system" (name, value) VALUES ('roundcube-version', '2018122300'); +INSERT INTO "system" (name, value) VALUES ('roundcube-version', '2019092900');
View file
roundcubemail-1.4-rc2.12.tar.gz/SQL/postgres/2019092900.sql
Added
@@ -0,0 +1,1 @@ +-- empty \ No newline at end of file
View file
roundcubemail-1.4-rc1.221.tar.gz/SQL/sqlite.initial.sql -> roundcubemail-1.4-rc2.12.tar.gz/SQL/sqlite.initial.sql
Changed
@@ -215,4 +215,4 @@ value text NOT NULL ); -INSERT INTO system (name, value) VALUES ('roundcube-version', '2018122300'); +INSERT INTO system (name, value) VALUES ('roundcube-version', '2019092900');
View file
roundcubemail-1.4-rc2.12.tar.gz/SQL/sqlite/2019092900.sql
Added
@@ -0,0 +1,1 @@ +-- empty \ No newline at end of file
View file
roundcubemail-1.4-rc1.221.tar.gz/bin/installto.sh -> roundcubemail-1.4-rc2.12.tar.gz/bin/installto.sh
Changed
@@ -26,10 +26,11 @@ rcube::raise_error("PHP system() function is required. Check disable_functions in php.ini.", false, true); } -$target_dir = unslashify($_SERVER['argv'][1]); +$target_dir = unslashify(end($_SERVER['argv'])); +$accept = in_array('-y', $_SERVER['argv']) ? 'y' : null; if (empty($target_dir) || !is_dir(realpath($target_dir))) - rcube::raise_error("Invalid target: not a directory\nUsage: installto.sh <TARGET>", false, true); + rcube::raise_error("Invalid target: not a directory\nUsage: installto.sh [-y] <TARGET>", false, true); // read version from iniset.php $iniset = @file_get_contents($target_dir . '/program/include/iniset.php'); @@ -48,7 +49,7 @@ echo "Upgrading from $oldversion. Do you want to continue? (y/N)\n"; } -$input = trim(fgets(STDIN)); +$input = $accept ?: trim(fgets(STDIN)); if (strtolower($input) == 'y') { echo "Copying files to target location..."; @@ -130,11 +131,11 @@ } if (!empty($adds)) { - echo implode($adds, "\n") . "\n\n"; + echo implode("\n", $adds) . "\n\n"; } echo "Running update script at target...\n"; - system("cd $target_dir && php bin/update.sh --version=$oldversion"); + system("cd $target_dir && php bin/update.sh --version=$oldversion" . ($accept ? ' -y' : '')); echo "All done.\n"; } else {
View file
roundcubemail-1.4-rc1.221.tar.gz/bin/update.sh -> roundcubemail-1.4-rc2.12.tar.gz/bin/update.sh
Changed
@@ -269,7 +269,7 @@ echo "\n }\n\n"; } - echo "NOTE: Update dependencies by running `php composer.phar update --no-dev`\n"; + echo "NOTICE: Update dependencies by running `php composer.phar update --no-dev`\n"; } // index contacts for fulltext searching
View file
roundcubemail-1.4-rc1.221.tar.gz/composer.json-dist -> roundcubemail-1.4-rc2.12.tar.gz/composer.json-dist
Changed
@@ -25,7 +25,7 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21" }, "suggest": { - "kolab/net_ldap3": "~1.0.6 required for connecting to LDAP", + "kolab/net_ldap3": "~1.1.1 required for connecting to LDAP", "mkopinsky/zxcvbn-php": "^4.4.2 required for Zxcvbn password strength driver" } }
View file
roundcubemail-1.4-rc1.221.tar.gz/config/defaults.inc.php -> roundcubemail-1.4-rc2.12.tar.gz/config/defaults.inc.php
Changed
@@ -27,8 +27,12 @@ // Format (compatible with PEAR MDB2): db_provider://user:password@host/database // Currently supported db_providers: mysql, pgsql, sqlite, mssql, sqlsrv, oracle // For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php -// NOTE: for SQLite use absolute path (Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646' +// Note: for SQLite use absolute path (Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646' // or (Windows): 'sqlite:///C:/full/path/to/sqlite.db' +// Note: Various drivers support various additional arguments for connection, +// for Mysql: key, cipher, cert, capath, ca, verify_server_cert, +// for Postgres: application_name, sslmode, sslcert, sslkey, sslrootcert, sslcrl, sslcompression, service. +// e.g. 'mysql://roundcube:@localhost/roundcubemail?verify_server_cert=false' $config['db_dsnw'] = 'mysql://roundcube:@localhost/roundcubemail'; // Database DSN for read-only operations (if empty write database will be used) @@ -177,7 +181,7 @@ // If you know your imap's folder vendor, you can specify it here. // Otherwise it will be determined automatically. Use lower-case -// identifiers, e.g. 'dovecot', 'cyrus', 'gmail', 'hmail', 'uw-imap'. +// identifiers, e.g. 'dovecot', 'cyrus', 'gimap', 'hmail', 'uw-imap'. $config['imap_vendor'] = null; // If IMAP server doesn't support NAMESPACE extension, but you're @@ -513,7 +517,7 @@ // with any configured cipher_method (see below). $config['des_key'] = 'rcmail-!24ByteDESkey*Str'; -// Encryption algorithm. You can use any method supported by openssl. +// Encryption algorithm. You can use any method supported by OpenSSL. // Default is set for backward compatibility to DES-EDE3-CBC, // but you can choose e.g. AES-256-CBC which we consider a better choice. $config['cipher_method'] = 'DES-EDE3-CBC'; @@ -1211,12 +1215,6 @@ // Defaults of the addressbook search field configuration. $config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); -// 'Delete always' -// This setting reflects if mail should be always deleted -// when moving to Trash fails. This is necessary in some setups -// when user is over quota and Trash is included in the quota. -$config['delete_always'] = false; - // Directly delete messages in Junk instead of moving to Trash $config['delete_junk'] = false;
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/acl/acl.js -> roundcubemail-1.4-rc2.12.tar.gz/plugins/acl/acl.js
Changed
@@ -202,7 +202,7 @@ // Returns names of users in selected rows rcube_webmail.prototype.acl_get_usernames = function() { - var users = [], n, len, cell, row, + var users = [], n, len, id, row, list = this.acl_list, selection = list.get_selection(); @@ -210,10 +210,8 @@ if (this.env.acl_specials.length && $.inArray(selection[n], this.env.acl_specials) >= 0) { users.push(selection[n]); } - else if (row = list.rows[selection[n]]) { - cell = $('td.user', row.obj); - if (cell.length == 1) - users.push(cell.text()); + else if ((row = list.rows[selection[n]]) && (id = $(row.obj).data('userid'))) { + users.push(id); } }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/acl/localization/ar_SA.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/acl/localization/ar_SA.inc
Changed
@@ -38,6 +38,7 @@ $labels['acle'] = 'حُذف'; $labels['aclx'] = 'حذف المجلد'; $labels['acla'] = 'ادارة'; +$labels['acln'] = 'التعليق على الرسائل'; $labels['aclfull'] = 'تحكم كامل'; $labels['aclother'] = 'اخرى'; $labels['aclread'] = 'قراءة '; @@ -56,6 +57,7 @@ $labels['shortacle'] = 'حُذف'; $labels['shortaclx'] = 'حذف المجلد'; $labels['shortacla'] = 'ادارة'; +$labels['shortacln'] = 'كتابة تعليق'; $labels['shortaclother'] = 'اخرى'; $labels['shortaclread'] = 'قراءة '; $labels['shortaclwrite'] = 'كتابة'; @@ -73,10 +75,14 @@ $labels['longacle'] = 'بالامكان شطب الرسائل'; $labels['longaclx'] = 'هذا المجلد بالامكان حذفة او اعادة تسميته'; $labels['longacla'] = 'حقوق الوصول لهذا المجلد بالامكان تغييره'; +$labels['longacln'] = 'يمكن تغيير البيانات الوصفية (التعليقات) المشتركة بين الرسائل'; $labels['longaclfull'] = 'التحكم الكامل يتضمن ادارة المجلدات'; $labels['longaclread'] = 'من الممكن فتح المجلد للقراءة'; $labels['longaclwrite'] = 'لا يمكن وضع علامة على الرسائل, كتبت او نسخة الى هذا المجلد'; $labels['longacldelete'] = 'لا يمكن حذف الرسائل'; +$labels['longaclother'] = 'حقوق الوصول الأخرى'; +$labels['ariasummaryacltable'] = 'قائمة حقوق الوصول'; +$labels['arialabelaclform'] = 'نموذج حقوق الوصول'; $messages['deleting'] = 'جاري حذف حقوق الوصول...'; $messages['saving'] = 'جاري حفظ حقوق الوصول...'; $messages['updatesuccess'] = 'تم تغيير حقوق الوصول بنجاح';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/acl/localization/is_IS.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/acl/localization/is_IS.inc
Changed
@@ -23,14 +23,17 @@ $labels['editperms'] = 'Breyta heimildum'; $labels['anyone'] = 'Allir notendur (hver sem er)'; $labels['anonymous'] = 'Gestir (nafnlausir)'; +$labels['identifier'] = 'Auðkenni'; $labels['acll'] = 'Uppfletting'; $labels['aclr'] = 'Lesa skilaboð'; +$labels['acli'] = 'Setja inn (afrita inn í)'; $labels['aclc'] = 'Búa til undirmöppur'; $labels['aclk'] = 'Búa til undirmöppur'; $labels['acld'] = 'Eyða skilaboðum'; $labels['aclt'] = 'Eyða skilaboðum'; $labels['aclx'] = 'Eyða möppu'; $labels['acla'] = 'Stjórna'; +$labels['aclfull'] = 'Full stjórn'; $labels['aclother'] = 'Annað'; $labels['aclread'] = 'Lesið'; $labels['aclwrite'] = 'Skrifa';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/archive/archive.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/archive/archive.php
Changed
@@ -14,7 +14,13 @@ { public $task = 'settings|mail|login'; + private $archive_folder; + private $folders; + + /** + * Plugin initialization. + */ function init() { $rcmail = rcmail::get_instance(); @@ -22,9 +28,9 @@ // register special folder type rcube_storage::$folder_types[] = 'archive'; - $archive_folder = $rcmail->config->get('archive_mbox'); + $this->archive_folder = $rcmail->config->get('archive_mbox'); - if ($rcmail->task == 'mail' && ($rcmail->action == '' || $rcmail->action == 'show') && $archive_folder) { + if ($rcmail->task == 'mail' && ($rcmail->action == '' || $rcmail->action == 'show') && $this->archive_folder) { $this->include_stylesheet($this->local_skin_path() . '/archive.css'); $this->include_script('archive.js'); $this->add_texts('localization', true); @@ -47,7 +53,7 @@ $this->add_hook('render_mailboxlist', array($this, 'render_mailboxlist')); // set env variables for client - $rcmail->output->set_env('archive_folder', $archive_folder); + $rcmail->output->set_env('archive_folder', $this->archive_folder); $rcmail->output->set_env('archive_type', $rcmail->config->get('archive_type','')); } else if ($rcmail->task == 'mail') { @@ -58,11 +64,11 @@ $this->add_hook('preferences_list', array($this, 'prefs_table')); $this->add_hook('preferences_save', array($this, 'save_prefs')); - if ($rcmail->action == 'folders' && $archive_folder) { + if ($rcmail->action == 'folders' && $this->archive_folder) { $this->include_stylesheet($this->local_skin_path() . '/archive.css'); $this->include_script('archive.js'); // set env variables for client - $rcmail->output->set_env('archive_folder', $archive_folder); + $rcmail->output->set_env('archive_folder', $this->archive_folder); } } } @@ -72,18 +78,14 @@ */ function render_mailboxlist($p) { - $rcmail = rcmail::get_instance(); - $archive_folder = $rcmail->config->get('archive_mbox'); - $show_real_name = $rcmail->config->get('show_real_foldernames'); - // set localized name for the configured archive folder - if ($archive_folder && !$show_real_name) { - if (isset($p['list'][$archive_folder])) { - $p['list'][$archive_folder]['name'] = $this->gettext('archivefolder'); + if ($this->archive_folder && !rcmail::get_instance()->config->get('show_real_foldernames')) { + if (isset($p['list'][$this->archive_folder])) { + $p['list'][$this->archive_folder]['name'] = $this->gettext('archivefolder'); } else { // search in subfolders - $this->_mod_folder_name($p['list'], $archive_folder, $this->gettext('archivefolder')); + $this->_mod_folder_name($p['list'], $this->archive_folder, $this->gettext('archivefolder')); } } @@ -129,15 +131,13 @@ $delimiter = $storage->get_hierarchy_delimiter(); $read_on_move = (bool) $rcmail->config->get('read_on_archive'); $archive_type = $rcmail->config->get('archive_type', ''); - $archive_folder = $rcmail->config->get('archive_mbox'); - $archive_prefix = $archive_folder . $delimiter; + $archive_prefix = $this->archive_folder . $delimiter; $search_request = rcube_utils::get_input_value('_search', rcube_utils::INPUT_GPC); // count messages before changing anything if ($_POST['_from'] != 'show') { $threading = (bool) $storage->get_threading(); $old_count = $storage->count(null, $threading ? 'THREADS' : 'ALL'); - $old_pages = ceil($old_count / $storage->get_pagesize()); } $count = 0; @@ -152,12 +152,12 @@ ); foreach (rcmail::get_uids(null, null, $multifolder, rcube_utils::INPUT_POST) as $mbox => $uids) { - if (!$archive_folder || $mbox === $archive_folder || strpos($mbox, $archive_prefix) === 0) { + if (!$this->archive_folder || $mbox === $this->archive_folder || strpos($mbox, $archive_prefix) === 0) { $count = count($uids); continue; } else if (!$archive_type || $archive_type == 'folder') { - $folder = $archive_folder; + $folder = $this->archive_folder; if ($archive_type == 'folder') { // compose full folder path @@ -202,7 +202,7 @@ } // compose full folder path - $folder = $archive_folder . ($subfolder ? $delimiter . $subfolder : ''); + $folder = $this->archive_folder . ($subfolder ? $delimiter . $subfolder : ''); $execute[$folder][] = $message->uid; } @@ -257,6 +257,7 @@ $pages = ceil($msg_count / $page_size); $nextpage_count = $old_count - $page_size * $page; $remaining = $msg_count - $page_size * ($page - 1); + $quota_root = $multifolder ? $this->result['sources'][0] : 'INBOX'; // jump back one page (user removed the whole last page) if ($page > 1 && $remaining == 0) { @@ -266,22 +267,16 @@ $jump_back = true; } + // update unread messages counts for all involved folders + foreach ($this->result['sources'] as $folder) { + rcmail_send_unread_count($folder, true); + } + // update message count display $rcmail->output->set_env('messagecount', $msg_count); $rcmail->output->set_env('current_page', $page); $rcmail->output->set_env('pagecount', $pages); $rcmail->output->set_env('exists', $exists); - - // update mailboxlist - $unseen_count = $msg_count ? $storage->count($mbox, 'UNSEEN') : 0; - $old_unseen = rcmail_get_unseen_count($mbox); - $quota_root = $multifolder ? $this->result['sources'][0] : 'INBOX'; - - if ($old_unseen != $unseen_count) { - $rcmail->output->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); - rcmail_set_unseen_count($mbox, $unseen_count); - } - $rcmail->output->command('set_quota', $rcmail->quota_content(null, $quota_root)); $rcmail->output->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox); @@ -353,7 +348,7 @@ $delimiter = $storage->get_hierarchy_delimiter(); if ($this->folders === null) { - $this->folders = $storage->list_folders('', $archive_folder . '*', 'mail', null, true); + $this->folders = $storage->list_folders('', $this->archive_folder . '*', 'mail', null, true); } if (!in_array($folder, $this->folders)) {
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/archive/localization/ar_SA.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/archive/localization/ar_SA.inc
Changed
@@ -24,7 +24,9 @@ $labels['archivetype'] = 'تقسيم الأرشيف ب'; $labels['archivetypeyear'] = 'السنة (مثال. الارشيف/2012)'; $labels['archivetypemonth'] = 'الشهر (مثال. الارشيف/2012/06)'; +$labels['archivetypetbmonth'] = 'الشهر - متوافق مع ثندربرد (المحفوظات/1433/1433-06 مثلاً)'; $labels['archivetypefolder'] = 'المجلد الاصلي'; $labels['archivetypesender'] = 'ايميل المرسل'; $labels['unkownsender'] = 'مجهول'; +$labels['readonarchive'] = 'تحديد الرسالة مقروءة في المحفوظات'; ?>
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/archive/localization/es_AR.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/archive/localization/es_AR.inc
Changed
@@ -24,7 +24,9 @@ $labels['archivetype'] = 'Separar archivo por'; $labels['archivetypeyear'] = 'Año (ej. Archivo/2012)'; $labels['archivetypemonth'] = 'Mes (ej. Archivo/2012/06)'; +$labels['archivetypetbmonth'] = 'Mes - estilo Thunderbird (ej. Archive/2012/2012-06)'; $labels['archivetypefolder'] = 'Carpeta original'; $labels['archivetypesender'] = 'Remitente del correo'; $labels['unkownsender'] = 'desconocido'; +$labels['readonarchive'] = 'Marcar el mensaje como leído al archivar'; ?>
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/attachment_reminder/localization/ar_SA.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/attachment_reminder/localization/ar_SA.inc
Changed
@@ -13,6 +13,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ +$messages['missingattachment'] = "المرفق مفقود ؟"; $messages['forgotattachment'] = "هل نسيت إرفاق ملف؟"; $messages['reminderoption'] = "تذكير حول المرفقات المنسية"; $messages['keywords'] = "المرفقات,الملف,ارفاق,مرفق,ارفاق,مضمون,CV,صفحة المغلف";
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/attachment_reminder/localization/es_AR.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/attachment_reminder/localization/es_AR.inc
Changed
@@ -13,6 +13,7 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/plugin-attachment_reminder/ */ -$messages['forgotattachment'] = "Has olvidado adjuntar un archivo?"; +$messages['missingattachment'] = "¿Adjunto olvidado?"; +$messages['forgotattachment'] = "¿Te olvidaste de adjuntar un archivo?"; $messages['reminderoption'] = "Recordar sobre archivos adjuntos olvidados"; -$messages['keywords'] = "adjunto,archivo,adjuntar,adjuntado,adjuntando,"; +$messages['keywords'] = "adjunto,archivo,adjuntar,adjuntado,adjuntando,CV";
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/debug_logger/runlog/runlog.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/debug_logger/runlog/runlog.php
Changed
@@ -38,8 +38,8 @@ $this->parent_stack[] = $name; - $this->print_to_console("start: ".$name, $tag, 'start'); - $this->print_to_file("start: ".$name, $tag, 'start'); + $this->print_to_console("start: ".$name, $tag); + $this->print_to_file("start: ".$name, $tag); $this->indent++; } @@ -72,8 +72,8 @@ $tag_report .= "$tag: $count, "; } $end_txt = sprintf("end: $name - %0.4f seconds $tag_report", $this->run_log[$lastk]['duration']); - $this->print_to_console($end_txt, $this->run_log[$lastk]['tag'], 'end'); - $this->print_to_file($end_txt, $this->run_log[$lastk]['tag'], 'end'); + $this->print_to_console($end_txt, $this->run_log[$lastk]['tag']); + $this->print_to_file($end_txt, $this->run_log[$lastk]['tag']); } } @@ -137,7 +137,7 @@ $this->print_to_console($msg, $tag); } - public function print_to_file($msg, $tag = false, $type = false) + public function print_to_file($msg, $tag = false) { if (!$tag) { $file_handle_tag = 'master';
View file
roundcubemail-1.4-rc2.12.tar.gz/plugins/emoticons/localization/es_AR.inc
Added
@@ -0,0 +1,19 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | Localization file of the Roundcube Webmail Emoticons plugin | + | | + | Copyright (C) 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-emoticons/ +*/ + +$labels['emoticonsdisplay'] = 'Mostrar emoticones en mensajes de texto plano'; +$labels['emoticonscompose'] = 'Habilitar emoticones'; +?>
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/enigma.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/enigma.php
Changed
@@ -455,7 +455,7 @@ if (count($listing)) { $content .= html::p(null, $this->gettext(array('name' => 'identitymatchingprivkeys', 'vars' => array('nr' => count($listing))))); - $content .= html::tag('ul', 'keylist', join('\n', $listing)); + $content .= html::tag('ul', 'keylist', implode("\n", $listing)); } else { $content .= html::p(null, $this->gettext('identitynoprivkeys')); }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/lib/enigma_driver_gnupg.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/lib/enigma_driver_gnupg.php
Changed
@@ -574,8 +574,8 @@ $data_result = $db->query("SELECT `data`, `mtime` FROM $table" . " WHERE `file_id` = ?", $record['file_id']); - $data = $db->fetch_assoc($data_result); - $data = $data ? base64_decode($data['data']) : null; + $record = $db->fetch_assoc($data_result); + $data = $record ? base64_decode($record['data']) : null; if ($data === null || $data === false) { rcube::raise_error(array( @@ -590,7 +590,7 @@ if (file_put_contents($tmpfile, $data, LOCK_EX) === strlen($data)) { rename($tmpfile, $file); - touch($file, $data_record['mtime']); + touch($file, $record['mtime']); if ($this->debug) { $this->debug("SYNC: Fetched file: $file");
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/lib/enigma_engine.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/lib/enigma_engine.php
Changed
@@ -682,7 +682,7 @@ $sig = $this->pgp_verify($msg_body, $sig_body); // Store signature data for display - $this->signatures[$struct->mime_id] = $sig; + $this->signatures[$struct->mime_id] = $sig; $this->signatures[$msg_part->mime_id] = $sig; } }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/lib/enigma_key.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/lib/enigma_key.php
Changed
@@ -46,10 +46,12 @@ */ function get_type() { - if ($this->subkeys[0]->has_private) + if ($this->subkeys[0]->has_private) { return enigma_key::TYPE_KEYPAIR; - else if (!empty($this->subkeys[0])) + } + else if (!empty($this->subkeys[0])) { return enigma_key::TYPE_PUBLIC; + } return enigma_key::TYPE_UNKNOWN; } @@ -59,9 +61,11 @@ */ function is_revoked() { - foreach ($this->subkeys as $subkey) - if (!$subkey->revoked) + foreach ($this->subkeys as $subkey) { + if (!$subkey->revoked) { return false; + } + } return true; } @@ -71,9 +75,11 @@ */ function is_valid() { - foreach ($this->users as $user) - if ($user->valid) + foreach ($this->users as $user) { + if ($user->valid) { return true; + } + } return false; } @@ -85,9 +91,11 @@ { $now = time(); - foreach ($this->subkeys as $subkey) - if (!$subkey->expires || $subkey->expires > $now) + foreach ($this->subkeys as $subkey) { + if (!$subkey->expires || $subkey->expires > $now) { return true; + } + } return false; } @@ -97,11 +105,11 @@ */ function is_private() { - $now = time(); - - foreach ($this->subkeys as $subkey) - if ($subkey->has_private) + foreach ($this->subkeys as $subkey) { + if ($subkey->has_private) { return true; + } + } return false; }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/lib/enigma_ui.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/lib/enigma_ui.php
Changed
@@ -752,7 +752,7 @@ } $table->add('title', html::label('key-name', rcube::Q($this->enigma->gettext('newkeyident')))); - $table->add(null, html::tag('ul', 'proplist', implode($identities, "\n"))); + $table->add(null, html::tag('ul', 'proplist', implode("\n", $identities))); // Key size $select = new html_select(array('name' => 'size', 'id' => 'key-size')); @@ -1253,7 +1253,6 @@ $uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); $mbox = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); $mime_id = rcube_utils::get_input_value('_part', rcube_utils::INPUT_POST); - $storage = $this->rc->get_storage(); $engine = $this->enigma->load_engine(); if ($uid && $mime_id) {
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/cy_GB.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/cy_GB.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = 'Llofnodi wedi methu. Mae angen cyfrinair.'; $messages['encrypterror'] = 'Amgryptio wedi methu.'; $messages['encryptnokey'] = 'Amgryptio wedi methu. Allwedd cyhoeddus heb ei ganfod ar gyfer $email.'; +$messages['encryptnoprivkey'] = 'Dadgryptio wedi methu. Allwedd breifat heb ei ganfod.'; $messages['nokeysfound'] = 'Ni ganfuwyd unrhyw allweddi'; $messages['keynotfound'] = 'Ni ganfuwyd yr allwedd!'; $messages['keyopenerror'] = 'Methwyd cael gwybodaeth allwedd! Gwall mewnol.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/en_GB.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/en_GB.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = 'Signing failed. Key password required.'; $messages['encrypterror'] = 'Encryption failed.'; $messages['encryptnokey'] = 'Encryption failed. Public key not found for $email.'; +$messages['encryptnoprivkey'] = 'Encryption failed. Private key not found.'; $messages['nokeysfound'] = 'No keys found'; $messages['keynotfound'] = 'Key not found!'; $messages['keyopenerror'] = 'Unable to get key information! Internal error.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/es_AR.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/es_AR.inc
Changed
@@ -14,10 +14,42 @@ For translation see https://www.transifex.com/roundcube/roundcube-webmail/plugin-enigma/ */ +$labels['encryption'] = 'Encriptación'; +$labels['enigmacerts'] = 'Certificados S/MIME'; +$labels['enigmakeys'] = 'Claves PGP'; +$labels['keysfromto'] = 'Claves $from a $to de $count'; $labels['keyname'] = 'Nombre'; +$labels['keyid'] = 'ID de clave'; +$labels['keyuserid'] = 'ID de usuario'; +$labels['keytype'] = 'Tipo de clave'; +$labels['fingerprint'] = 'Huella'; +$labels['subkeys'] = 'Subclave'; +$labels['keyprops'] = 'Propiedades de la clave'; +$labels['basicinfo'] = 'Información básica'; +$labels['userids'] = 'Usuarios adicionales'; +$labels['typepublickey'] = 'clave pública'; +$labels['typekeypair'] = 'par de claves'; +$labels['keyattfound'] = 'Este mensaje contiene clave(s) PGP adjunta(s)'; +$labels['keyattimport'] = 'Importar clave(s)'; +$labels['typesign'] = 'Firmar'; +$labels['typeencrypt'] = 'Encriptar'; +$labels['typecert'] = 'Certificar'; +$labels['typeauth'] = 'Autenticación'; +$labels['subkeyid'] = 'ID'; +$labels['subkeyalgo'] = 'Algoritmo'; $labels['subkeycreated'] = 'Creado'; +$labels['subkeyexpires'] = 'Expira'; +$labels['subkeyusage'] = 'Uso'; $labels['expiresnever'] = 'nunca'; $labels['unknown'] = 'desconocido'; +$labels['uservalid'] = 'Válido'; +$labels['userid'] = 'ID'; +$labels['valid'] = 'válido'; +$labels['supportencryption'] = 'Habilita encriptación y firma de mensajes'; +$labels['supportsignatures'] = 'Habilitar la verificación de firmas de mensaje'; +$labels['createkeys'] = 'Crear un nuevo par de claves'; +$labels['importkeys'] = 'Importar clave(s)'; $labels['keychpass'] = 'Cambiar contraseña'; $labels['newkeypass'] = 'Contraseña'; +$labels['keyimportlabel'] = 'Importar desde archivo'; ?>
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/eu_ES.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/eu_ES.inc
Changed
@@ -84,6 +84,7 @@ $labels['findkey'] = 'Bilatu gako zerbitzari(et)an'; $labels['keyimportlabel'] = 'Inportatu fitxategitik'; $labels['keyimportsearchlabel'] = 'Bilatu gako zerbitzari(et)an'; +$labels['managekeys'] = 'Kudeatu PGP gakoak'; $messages['sigvalid'] = '$sender-en sinadura egiaztatuta'; $messages['sigvalidpartial'] = '$sender-en sinadura egiaztatuta, baina testu-gorputzaren zati bat ez dago sinatua.'; $messages['siginvalid'] = '$sender-en sinadura baliogabea.'; @@ -93,6 +94,7 @@ $messages['decryptok'] = 'Mezua deszifratua.'; $messages['decrypterror'] = 'Deszifratzeak huts egin du.'; $messages['decryptnokey'] = 'Deszifratzeak huts egin du. Ez da aurkitu gako pribatua. Gakoaren IDa: $keyid.'; +$messages['decryptnomdc'] = 'Deszifratzeak huts egin du. Mezua ez da bere osotasunean babestu.'; $messages['decryptbadpass'] = 'Deszifratzeak huts egin du. Baliogabeko pasahitza.'; $messages['decryptnopass'] = 'Deszifratzeak huts egin du. Pasahitz gakoa behar da.'; $messages['decryptpartial'] = 'Mezua deszifratua, baina testu gorputzaren zati bat ez zegoen zifratua.'; @@ -102,6 +104,7 @@ $messages['signnopass'] = 'Sinadurak huts egin du. Gako pasahitza behar da.'; $messages['encrypterror'] = 'Zifratzeak huts egin du.'; $messages['encryptnokey'] = 'Zifratzeak huts egin du. Ez da $email -ren gako publikoa aurkitu.'; +$messages['encryptnoprivkey'] = 'Zifratzeak huts egin du. Gako pribatua ez da aurkitu.'; $messages['nokeysfound'] = 'Ez dira gakoak aurkitu'; $messages['keynotfound'] = 'Gakoa ez da aurkitu!'; $messages['keyopenerror'] = 'Ezin izan da gakoaren informazioa eskuratu! Barne errorea.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/fo_FO.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/fo_FO.inc
Changed
@@ -71,6 +71,7 @@ $labels['enterkeypasstitle'] = 'Skriva loyniorð'; $labels['enterkeypass'] = 'Tað er tørvur á einum loyniorðið fyri at stongja upp loyndar-lykilin ($keyid) hjá brúkara:'; $labels['arialabelkeyexportoptions'] = 'Lykla út flytingar møguleikar'; +$labels['keyimportlabel'] = 'Inflyt frá fílu'; $messages['sigvalid'] = 'Váttað undirskrift frá $sender.'; $messages['siginvalid'] = 'Ógildig undirskrift frá $sender.'; $messages['sigunverified'] = 'Óvátta undirskrift: skjal er ikki vátta. Skjal ID: $keyid.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/he_IL.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/he_IL.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = 'חיתום נכשל. נדרשת סיסמת מפתח.'; $messages['encrypterror'] = 'הצפנה נכשלה.'; $messages['encryptnokey'] = 'הצפנה נכשלה. לא נמצא מפתח ציבורי עבור mail$.'; +$messages['encryptnoprivkey'] = 'הצפנה נכשלה. לא נמצא מפתח פרטי.'; $messages['nokeysfound'] = 'לא נמצאו מפתחות.'; $messages['keynotfound'] = 'לא נמצא מפתח !'; $messages['keyopenerror'] = 'לא ניתן להשיג מידע על מפתח! שגיאה פנימית.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/hu_HU.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/hu_HU.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = 'Aláírás sikertelen. A kulcshoz jelszó kell.'; $messages['encrypterror'] = 'Titkosítás sikertelen.'; $messages['encryptnokey'] = 'Titkosítás sikertelen. Nyilvás kulcs nem található a következőhöz: $email.'; +$messages['encryptnoprivkey'] = 'A titkosítás sikertelen. A magánkulcs nem található.'; $messages['nokeysfound'] = 'Nem találhatóak kulcsok'; $messages['keynotfound'] = 'A kulcs nem található!'; $messages['keyopenerror'] = 'A kulcs információk lekérésés nem lehetséges. Belső hiba.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/it_IT.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/it_IT.inc
Changed
@@ -105,6 +105,7 @@ $messages['signnopass'] = 'Firma non riuscita. Password della chiave richiesta.'; $messages['encrypterror'] = 'Cifratura non riuscita.'; $messages['encryptnokey'] = 'Cifratura non riuscita. Chiave pubblica non trovata per $email.'; +$messages['encryptnoprivkey'] = 'Crittografia fallita. Chiave privata non trovata.'; $messages['nokeysfound'] = 'Nessuna chiave trovata'; $messages['keynotfound'] = 'Chiave non trovata!'; $messages['keyopenerror'] = 'Impossibile ottenere informazioni sulla chiave. Errore interno.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/ja_JP.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/ja_JP.inc
Changed
@@ -86,6 +86,7 @@ $labels['keyimportsearchlabel'] = 'キーサーバーで検索'; $labels['managekeys'] = 'PGPの鍵を管理'; $labels['identitymatchingprivkeys'] = 'キーリングに$nr個の合致するPGPのプライベートキー:'; +$labels['identitynoprivkeys'] = 'この送信者の識別へのPGP秘密鍵はキーリングにまだありません。'; $messages['sigvalid'] = '$senderからの署名を検証しました。'; $messages['sigvalidpartial'] = '$senderからの署名を検証しましたが、本文の一部は署名されていません。'; $messages['siginvalid'] = '$senderからの署名は正しくありません。'; @@ -95,6 +96,7 @@ $messages['decryptok'] = 'メッセージを復号しました。'; $messages['decrypterror'] = '復号できませんでした。'; $messages['decryptnokey'] = '復号できませんでした。次のキーIDの秘密鍵がありません: $keyid'; +$messages['decryptnomdc'] = '復号を省きました。メッセージは完全な状態で保護されていません。'; $messages['decryptbadpass'] = '復号できませんでした。パスワードが正しくありません。'; $messages['decryptnopass'] = '復号できませんでした。キーのパスワードが必要です。'; $messages['decryptpartial'] = 'メッセージを復号しました。しかし、本文の一部は暗号化していませんでした。'; @@ -104,6 +106,7 @@ $messages['signnopass'] = '署名できませんでした。キーのパスワードが必要です。'; $messages['encrypterror'] = '暗号化できませんでした。'; $messages['encryptnokey'] = '暗号化できませんでした。$emailへの公開鍵がありません。'; +$messages['encryptnoprivkey'] = '暗号化できませんでした。秘密鍵がありません。'; $messages['nokeysfound'] = 'キーがありません。'; $messages['keynotfound'] = 'キーがありません!'; $messages['keyopenerror'] = 'キーの情報を取得できません! 内部エラーです。';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/nl_NL.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/nl_NL.inc
Changed
@@ -85,8 +85,8 @@ $labels['keyimportlabel'] = 'Importeer van bestand'; $labels['keyimportsearchlabel'] = 'Zoek op sleutel server(s)'; $labels['managekeys'] = 'PGP sleutels beheren'; -$labels['identitymatchingprivkeys'] = 'U heeft $nr overeenkomende PGP privé sleutels opgeslagen.'; -$labels['identitynoprivkeys'] = 'De afzender heeft (nog) geen PGP privé sleutel opgeslagen.'; +$labels['identitymatchingprivkeys'] = 'U heeft $nr overeenkomende PGP-privésleutels opgeslagen.'; +$labels['identitynoprivkeys'] = 'De afzender heeft (nog) geen PGP-privésleutel opgeslagen.'; $messages['sigvalid'] = 'Ondertekening van $sender geverifieerd.'; $messages['sigvalidpartial'] = 'Ondertekening van $sender geverifieerd, maar een deel van de inhoud was niet ondertekend.'; $messages['siginvalid'] = 'Ongeldige ondertekening van $sender.'; @@ -97,15 +97,16 @@ $messages['decrypterror'] = 'Ontsleutelen mislukt.'; $messages['decryptnokey'] = 'Ontsleutelen mislukt. Geheime sleutel niet gevonden. Sleutel-ID: $keyid.'; $messages['decryptnomdc'] = 'Ontsleutelen overgeslaan. Het bericht is niet correct versleuteld.'; -$messages['decryptbadpass'] = 'Ontsleutelen mislukt. Verkeerde wachtwoord.'; +$messages['decryptbadpass'] = 'Ontsleutelen mislukt. Wachtwoord onjuist.'; $messages['decryptnopass'] = 'Ontsleutelen mislukt. Sleutelwachtwoord vereist.'; $messages['decryptpartial'] = 'Bericht ontsleuteld, maar een deel van de inhoud was niet versleuteld.'; $messages['signerror'] = 'Ondertekenen mislukt.'; $messages['signnokey'] = 'Ondertekenen mislukt. Geheime sleutel niet gevonden.'; -$messages['signbadpass'] = 'Ondertekenen mislukt. Verkeerde sleutel.'; +$messages['signbadpass'] = 'Ondertekenen mislukt. Wachtwoord onjuist.'; $messages['signnopass'] = 'Ondertekenen mislukt. Sleutelwachtwoord vereist.'; $messages['encrypterror'] = 'Versleutelen mislukt.'; $messages['encryptnokey'] = 'Onsleutelen mislukt. Publieke sleutel niet gevonden voor $email.'; +$messages['encryptnoprivkey'] = 'Versleutelen mislukt. Geheime sleutel niet gevonden'; $messages['nokeysfound'] = 'Geen sleutels gevonden'; $messages['keynotfound'] = 'Sleutel niet gevonden'; $messages['keyopenerror'] = 'Sleutelinformatie kan niet worden opgehaald! Interne fout.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/ru_RU.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/ru_RU.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = 'Сбой подписания. Требуется ключ пароля.'; $messages['encrypterror'] = 'Сбой шифрования.'; $messages['encryptnokey'] = 'Сбой шифрования. Не найден открытый ключ для $email.'; +$messages['encryptnoprivkey'] = 'Сбой шифрования. Не найден закрытый ключ.'; $messages['nokeysfound'] = 'Ключи не найдены'; $messages['keynotfound'] = 'Ключ не найден!'; $messages['keyopenerror'] = 'Невозможно получить информацию о ключе! Внутренняя ошибка.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/sv_SE.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/sv_SE.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = 'Signeringen misslyckades. Ange nyckelns lösenord.'; $messages['encrypterror'] = 'Krypteringen misslyckades.'; $messages['encryptnokey'] = 'Krypteringen misslyckades. Offentlig nyckel otillgänglig för $email.'; +$messages['encryptnoprivkey'] = 'Krypteringen misslyckades. Offentlig nyckel kunde inte hittas.'; $messages['nokeysfound'] = 'Inga nycklar hittades.'; $messages['keynotfound'] = 'Nyckeln hittades inte!'; $messages['keyopenerror'] = 'Nyckelinformation kunde inte hämtas. Internt fel.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/localization/zh_TW.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/localization/zh_TW.inc
Changed
@@ -106,6 +106,7 @@ $messages['signnopass'] = '簽名失敗。必須要金鑰密碼'; $messages['encrypterror'] = '加密失敗'; $messages['encryptnokey'] = '加密失敗。找不到用於 $email 的公開金鑰'; +$messages['encryptnoprivkey'] = '加密失敗。找不到私鑰。'; $messages['nokeysfound'] = '找不到金鑰'; $messages['keynotfound'] = '找不到金鑰!'; $messages['keyopenerror'] = '無法取得金鑰資訊!內部出錯';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/skins/classic/enigma.css -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/skins/classic/enigma.css
Changed
@@ -79,13 +79,11 @@ #enigmamenu div.row > label { display: table-cell; - width: 99%; padding: 3px; } #enigmamenu div.row > div { display: table-cell; - width: 1%; padding: 3px; }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/skins/elastic/templates/keys.html -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/skins/elastic/templates/keys.html
Changed
@@ -68,7 +68,7 @@ <h3 id="aria-label-exportmenu" class="voice"><roundcube:label name="enigma.arialabelkeyexportoptions" /></h3> <ul class="menu listing" role="menu" aria-labelledby="aria-label-export-menu"> <roundcube:button type="link-menuitem" command="plugin.enigma-key-export" label="exportall" prop="sub" class="export all disabled" classAct="export all active" /> - <roundcube:button type="link-menuitem" command="plugin.enigma-key-export-selected" label="exportsel" prop="sub" class="export selection disabled" classAct="export selection active" /> + <roundcube:button type="link-menuitem" command="plugin.enigma-key-export-selected" label="exportsel" prop="sub" class="export select disabled" classAct="export select active" /> </ul> </div>
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/enigma/skins/larry/enigma.css -> roundcubemail-1.4-rc2.12.tar.gz/plugins/enigma/skins/larry/enigma.css
Changed
@@ -79,13 +79,11 @@ #enigmamenu div.row > label { display: table-cell; - width: 99%; padding: 3px; } #enigmamenu div.row > div { display: table-cell; - width: 1%; padding: 3px; }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/filesystem_attachments/filesystem_attachments.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/filesystem_attachments/filesystem_attachments.php
Changed
@@ -71,8 +71,7 @@ function upload($args) { $args['status'] = false; - $group = $args['group']; - $rcmail = rcube::get_instance(); + $group = $args['group']; // use common temp dir for file uploads $tmpfname = rcube_utils::temp_filename('attmnt'); @@ -199,7 +198,7 @@ private function find_file_by_id($id) { - foreach ((array) $_SESSION['plugins']['filesystem_attachments'] as $group => $files) { + foreach ((array) $_SESSION['plugins']['filesystem_attachments'] as $files) { if (isset($files[$id])) { return true; }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/help/help.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/help/help.php
Changed
@@ -143,7 +143,7 @@ // resolve task/action for deep linking $rel = $_REQUEST['_rel']; - list($task, $action) = explode('/', $rel); + list($task, ) = explode('/', $rel); if ($add = $index_map[$rel]) { $src .= $add; }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/jqueryui/jqueryui.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/jqueryui/jqueryui.php
Changed
@@ -55,10 +55,10 @@ $lang_s = substr($_SESSION['language'], 0, 2); foreach ($jquery_ui_i18n as $package) { - if (self::asset_exists("js/i18n/jquery.ui.$package-$lang_l.js")) { + if (self::asset_exists("js/i18n/jquery.ui.$package-$lang_l.js", false)) { $this->include_script("js/i18n/jquery.ui.$package-$lang_l.js"); } - else if (self::asset_exists("js/i18n/jquery.ui.$package-$lang_s.js")) { + else if ($lang_s != 'en' && self::asset_exists("js/i18n/jquery.ui.$package-$lang_s.js", false)) { $this->include_script("js/i18n/jquery.ui.$package-$lang_s.js"); } } @@ -143,12 +143,10 @@ /** * Checks if an asset file exists in specified location (with assets_dir support) */ - protected static function asset_exists($path) + protected static function asset_exists($path, $minified = true) { - $rcube = rcube::get_instance(); - $assets_dir = $rcube->config->get('assets_dir'); - $full_path = unslashify($assets_dir ?: INSTALL_PATH) . '/plugins/jqueryui/' . $path; + $rcube = rcube::get_instance(); - return file_exists($full_path); + return $rcube->find_asset('/plugins/jqueryui/' . $path, $minified) !== null; } }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_engine.php
Changed
@@ -1564,7 +1564,7 @@ } if ($compact) { - $select = new html_select(array('name' => '_join', 'id' => '_join' . $id, + $select = new html_select(array('name' => '_join', 'id' => '_join', 'onchange' => 'rule_join_radio(this.value)')); foreach (array('allof', 'anyof', 'any') as $val) {
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_forward.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_forward.php
Changed
@@ -200,18 +200,12 @@ return; } - $date_extension = in_array('date', $this->exts); - $regex_extension = in_array('regex', $this->exts); + $status = rcube_utils::get_input_value('forward_status', rcube_utils::INPUT_POST); + $action = rcube_utils::get_input_value('forward_action', rcube_utils::INPUT_POST); + $target = rcube_utils::get_input_value('action_target', rcube_utils::INPUT_POST, true); - $status = rcube_utils::get_input_value('forward_status', rcube_utils::INPUT_POST); - $action = rcube_utils::get_input_value('forward_action', rcube_utils::INPUT_POST); - $target = rcube_utils::get_input_value('action_target', rcube_utils::INPUT_POST, true); - - $forward_action['type'] = 'forward'; - $forward_action['reason'] = $this->strip_value(str_replace("\r\n", "\n", $reason)); - $forward_action['subject'] = trim($subject); - $forward_action['from'] = trim($from); - $forward_tests = (array) $this->forward['tests']; + $date_extension = in_array('date', $this->exts); + $forward_tests = (array) $this->forward['tests']; if ($action == 'redirect' || $action == 'copy') { if (empty($target) || !rcube_utils::check_email($target)) { @@ -230,7 +224,7 @@ $rule['disabled'] = $status == 'off'; $rule['tests'] = $forward_tests; $rule['join'] = $date_extension ? count($forward_tests) > 1 : false; - $rule['actions'] = array($forward_action); + $rule['actions'] = array(); $rule['after'] = $after; if ($action && $action != 'keep') { @@ -269,8 +263,8 @@ // form elements - $status = new html_select(array('name' => 'forward_status', 'id' => 'forward_status')); - $action = new html_select(array('name' => 'forward_action', 'id' => 'forward_action')); + $status = new html_select(array('name' => 'forward_status', 'id' => 'forward_status')); + $action = new html_select(array('name' => 'forward_action', 'id' => 'forward_action')); $status->add($this->plugin->gettext('forward.on'), 'on'); $status->add($this->plugin->gettext('forward.off'), 'off'); @@ -455,7 +449,7 @@ $this->init_script(); $this->forward_rule(); - $forward['type'] = 'forward'; + $date_extension = in_array('date', $this->exts); if ($data['action'] == 'redirect' || $data['action'] == 'copy') { if (empty($data['target']) || !rcube_utils::check_email($data['target'])) { @@ -478,7 +472,7 @@ $rule['disabled'] = isset($data['enabled']) && !$data['enabled']; $rule['tests'] = $forward_tests; $rule['join'] = $date_extension ? count($forward_tests) > 1 : false; - $rule['actions'] = array($forward); + $rule['actions'] = array(); if ($data['action'] && $data['action'] != 'keep') { $rule['actions'][] = array(
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/lib/Roundcube/rcube_sieve_vacation.php
Changed
@@ -591,6 +591,7 @@ public static function vacation_interval(&$vacation) { $rcube = rcube::get_instance(); + $seconds_extension = in_array('vacation-seconds', $this->exts); if (isset($vacation['seconds'])) { $interval = $vacation['seconds']; @@ -720,9 +721,8 @@ $this->vacation_rule(); // check supported extensions - $date_extension = in_array('date', $this->exts); - $regex_extension = in_array('regex', $this->exts); - $seconds_extension = in_array('vacation-seconds', $this->exts); + $date_extension = in_array('date', $this->exts); + $regex_extension = in_array('regex', $this->exts); // set user's timezone try { @@ -754,8 +754,8 @@ else if ($regex_extension) { // Sieve 'date' extension not available, read start/end from RegEx based rules instead if ($date_tests = self::parse_regexp_tests($this->vacation['tests'])) { - $from = new DateTime($date_tests['from'] . ' ' . '00:00:00', $timezone); - $to = new DateTime($date_tests['to'] . ' ' . '23:59:59', $timezone); + $start = new DateTime($date_tests['from'] . ' ' . '00:00:00', $timezone); + $end = new DateTime($date_tests['to'] . ' ' . '23:59:59', $timezone); } } @@ -799,9 +799,8 @@ $this->vacation_rule(); // check supported extensions - $date_extension = in_array('date', $this->exts); - $regex_extension = in_array('regex', $this->exts); - $seconds_extension = in_array('vacation-seconds', $this->exts); + $date_extension = in_array('date', $this->exts); + $regex_extension = in_array('regex', $this->exts); $vacation['type'] = 'vacation'; $vacation['reason'] = $this->strip_value(str_replace("\r\n", "\n", $data['message']));
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/localization/es_AR.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/localization/es_AR.inc
Changed
@@ -21,10 +21,12 @@ $labels['newfilter'] = 'Nuevo filtro'; $labels['filteradd'] = 'Agregar filtro'; $labels['filterdel'] = 'Eliminar filtro'; +$labels['rules'] = 'Reglas'; +$labels['actions'] = 'Acciones'; $labels['scope'] = 'Alcance'; $labels['moveup'] = 'Mover arriba'; $labels['movedown'] = 'Mover abajo'; -$labels['filterallof'] = 'coinidir con todas las reglas siguientes'; +$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'; @@ -34,11 +36,19 @@ $labels['filterexists'] = 'existe'; $labels['filternotexists'] = 'no existe'; $labels['filtermatches'] = 'coincide con la expresión'; -$labels['filternotmatches'] = 'no coindice 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['mime'] = 'MIME:'; +$labels['mimepart'] = 'Parte MIME:'; +$labels['mime-message'] = 'mensaje'; +$labels['mime-anychild'] = 'cualquiera'; +$labels['mime-type'] = 'tipo'; +$labels['mime-subtype'] = 'subtipo'; +$labels['mime-contenttype'] = 'tipo de contenido'; +$labels['mime-param'] = 'parámetro'; $labels['addrule'] = 'Agregar regla'; $labels['delrule'] = 'Eliminar regla'; $labels['messagemoveto'] = 'Mover mensaje a'; @@ -55,27 +65,38 @@ $labels['del'] = 'Eliminar'; $labels['sender'] = 'Remitente'; $labels['recipient'] = 'Destinatario'; +$labels['vacationaddr'] = 'Mi dirección de correo electrónico:'; $labels['vacationdays'] = 'Cada cuanto enviar mensajes (en días):'; $labels['vacationinterval'] = 'Enviar mensajes cada:'; $labels['vacationreason'] = 'Cuerpo del mensaje (razón de vacaciones):'; +$labels['vacationfrom'] = 'Responder a la dirección remitente:'; $labels['vacationsubject'] = 'Asunto del mensaje:'; $labels['days'] = 'dias'; $labels['seconds'] = 'segundos'; $labels['rulestop'] = 'Parar de evaluar reglas'; $labels['enable'] = 'Habilitar/Deshabilitar'; -$labels['filtersets'] = 'Filtro activa'; -$labels['filterdef'] = 'Definicion del conjunto de filtros'; +$labels['filterset'] = 'Conjunto de filtros'; +$labels['filtersets'] = 'Conjuntos de filtros'; +$labels['filtersetadd'] = 'Agregar conjunto de filtros'; +$labels['filtersetdel'] = 'Eliminar conjunto de filtros'; +$labels['filtersetact'] = 'Activar este conjunto de filtros'; +$labels['filtersetdeact'] = 'Desactivar este conjunto de filtros'; +$labels['filterseteditraw'] = 'Editar conjunto de filtros'; +$labels['filtersetswitch'] = 'Habilitar/deshabilitar conjunto de filtros'; +$labels['filterdef'] = 'Creación de filtros'; +$labels['filtersetname'] = 'Nombre del conjunto de filtros'; +$labels['newfilterset'] = 'Nuevo conjunto de filtros'; $labels['active'] = 'Activar'; -$labels['none'] = 'none'; +$labels['none'] = 'ninguno'; $labels['fromset'] = 'desde conjunto'; $labels['fromfile'] = 'desde archivo'; $labels['filterdisabled'] = 'Filtro deshabilitado'; -$labels['countisgreaterthan'] = 'la cuenta es mayor a'; -$labels['countisgreaterthanequal'] = 'la cuenta es mayor o igual a'; -$labels['countislessthan'] = 'la cuenta es menor a'; -$labels['countislessthanequal'] = 'la cuenta es menor o igual a'; -$labels['countequals'] = 'la cuenta es igual a'; -$labels['countnotequals'] = 'la cuenta no es igual a'; +$labels['countisgreaterthan'] = 'la longitud es mayor a'; +$labels['countisgreaterthanequal'] = 'la longitud es mayor o igual a'; +$labels['countislessthan'] = 'la longitud es menor a'; +$labels['countislessthanequal'] = 'la longitud es menor o igual a'; +$labels['countequals'] = 'la longitud es igual a'; +$labels['countnotequals'] = 'la longitud no es igual a'; $labels['valueisgreaterthan'] = 'el valor es mayor a'; $labels['valueisgreaterthanequal'] = 'el valor es mayor o igual a'; $labels['valueislessthan'] = 'el valor es menor a'; @@ -90,6 +111,18 @@ $labels['flaganswered'] = 'Respondido'; $labels['flagflagged'] = 'Marcado'; $labels['flagdraft'] = 'Borrador'; +$labels['addheader'] = 'Agregar encabezado al mensaje'; +$labels['deleteheader'] = 'Eliminar encabezado del mensaje'; +$labels['headername'] = 'Nombre del encabezado'; +$labels['headervalue'] = 'Valor del encabezado'; +$labels['headerpos'] = 'Posición del encabezado'; +$labels['headeratstart'] = 'al principio'; +$labels['headeratend'] = 'al final'; +$labels['headeroccurrence'] = 'Posición/aparición del encabezado'; +$labels['headerfromstart'] = 'desde el principio'; +$labels['headerfromend'] = 'desde el final'; +$labels['headerpatterns'] = 'Patrones del valor del encabezado'; +$labels['headermatchtype'] = 'tipo de coincidencia:'; $labels['setvariable'] = 'Setear variable'; $labels['setvarname'] = 'Nombre de variable:'; $labels['setvarvalue'] = 'Valor de variable:'; @@ -116,6 +149,7 @@ $labels['usedata'] = 'Usar la siguiente información en el filtro:'; $labels['nextstep'] = 'Siguiente paso'; $labels['...'] = '...'; +$labels['string'] = 'Cadena'; $labels['currdate'] = 'Fecha actual'; $labels['datetest'] = 'Fecha'; $labels['dateheader'] = 'encabezado:'; @@ -153,45 +187,74 @@ $labels['asciinumeric'] = 'numérico (ascii-numeric)'; $labels['index'] = 'índice:'; $labels['indexlast'] = 'hacia atrás'; +$labels['vacation'] = 'Aviso de ausencia'; $labels['vacation.reply'] = 'Responder mensaje'; -$labels['vacation.advanced'] = 'Opciones avanzdas'; +$labels['vacation.advanced'] = 'Opciones avanzadas'; +$labels['vacation.from'] = 'Dirección del remitente de la respuesta'; $labels['vacation.subject'] = 'Asunto'; $labels['vacation.body'] = 'Cuerpo'; +$labels['vacation.start'] = 'Fecha y hora de comienzo'; +$labels['vacation.end'] = 'Fecha y hora de finalización'; $labels['vacation.status'] = 'Estado'; -$labels['vacation.on'] = 'On'; -$labels['vacation.off'] = 'Off'; +$labels['vacation.on'] = 'Habilitado'; +$labels['vacation.off'] = 'Deshabilitado'; +$labels['vacation.addresses'] = 'Mis direcciones de correo electrónico'; $labels['vacation.interval'] = 'Intervalo de respuesta'; +$labels['vacation.after'] = 'Poner la regla de ausencia después'; $labels['vacation.saving'] = 'Guardando información...'; $labels['vacation.action'] = 'Acción para mensaje entrante'; $labels['vacation.keep'] = 'Mantener'; $labels['vacation.discard'] = 'Descartar'; $labels['vacation.redirect'] = 'Reenviar a'; $labels['vacation.copy'] = 'Enviar copia a'; +$labels['forward'] = 'Reenvío'; $labels['forward.redirect'] = 'Reenviar a'; $labels['forward.copy'] = 'Enviar copia a'; -$labels['forward.on'] = 'On'; -$labels['forward.off'] = 'Off'; +$labels['forward.on'] = 'Sí'; +$labels['forward.off'] = 'No'; +$labels['forward.status'] = 'Estado:'; +$labels['forward.action'] = 'Para mensajes entrantes ejecutar la siguiente acción:'; $labels['forward.saving'] = 'Guardando información...'; +$labels['filladdresses'] = 'Rellenar con todas mis direcciones'; $labels['arialabelfiltersetactions'] = 'Acciones de conjunto de filtros'; $labels['arialabelfilteractions'] = 'Filtrar acciones'; $labels['arialabelfilterform'] = 'Filtrar propiedades'; $labels['ariasummaryfilterslist'] = 'Listado de filtros'; $labels['ariasummaryfiltersetslist'] = 'Listado de conjunto de filtros'; $labels['filterstitle'] = 'Editar filtros para mensajes entrantes'; -$labels['vacationtitle'] = 'Editar reglas "fuera de la oficina"'; +$labels['vacationtitle'] = 'Editar reglas de ausencia'; +$labels['forwardtitle'] = 'Editar regla de reenvío de correo'; +$labels['message'] = 'Mensaje'; +$labels['duplicate'] = 'está duplicado'; +$labels['notduplicate'] = 'no está duplicado'; +$labels['duplicate.handle'] = 'handle:'; $labels['duplicate.header'] = 'encabezado:'; -$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'; +$labels['duplicate.uniqueid'] = 'identificador:'; +$labels['duplicate.seconds'] = 'límite de tiempo (en segundos):'; +$labels['duplicate.last'] = 'relativo a la última ejecución'; +$messages['filterunknownerror'] = 'Error desconocido del servidor.'; +$messages['filterconnerror'] = 'Imposible conectar con el servidor.'; +$messages['filterdeleteerror'] = 'Imposible borrar el 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'] = 'El filtro con el nombre especificado ya existe.'; +$messages['filtersaveerror'] = 'Imposible guardar el filtro. Ha ocurrido un error en el servidor.'; +$messages['filterformerror'] = 'La forma del filtro contiene errores.'; +$messages['filterdeleteconfirm'] = '¿Realmente deseás borrar el filtro seleccionado?'; +$messages['ruledeleteconfirm'] = '¿Estás seguro de que deseás borrar la regla seleccionada?'; +$messages['actiondeleteconfirm'] = '¿Está seguro de que deseás 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. Ocurrió un error en el servidor.'; +$messages['setdeactivateerror'] = 'Imposible desactivar el conjunto de filtros seleccionado. Ocurrió un error en el servidor.'; +$messages['setdeleteerror'] = 'Imposible borrar el conjunto de filtros seleccionado. Ocurrió un error en el servidor.'; +$messages['setactivated'] = 'Conjunto de filtros activados satisfactoriamente.'; +$messages['setdeactivated'] = 'Conjunto de filtros desactivados satisfactoriamente.'; +$messages['setdeleted'] = 'Conjunto de filtros eliminados satisfactoriamente.'; +$messages['setupdated'] = 'Conjunto de filtros actualizados satisfactoriamente.'; +$messages['setdeleteconfirm'] = '¿Estás seguro de que deseás eliminar el conjunto de filtros seleccionado?'; +$messages['setcreateerror'] = 'Imposible crear el conjunto de filtros seleccionado. Ocurrió un error en el servidor.'; +$messages['setcreated'] = 'Conjunto de filtros creado satisfactoriamente.'; $messages['activateerror'] = 'Imposible activar el conjunto de filtros. Error en el servidor.'; $messages['deactivateerror'] = 'Imposible desactivar el conjunto de filtros. Error en el servidor.'; $messages['deactivated'] = 'Filtro deshabilitado satisfactoriamente'; @@ -204,4 +267,9 @@ $messages['nodata'] = 'Al menos una posición debe ser seleccionada!'; $messages['invaliddateformat'] = 'Fecha o formato de fecha inválido'; $messages['saveerror'] = 'Imposible guardar la información. Ha ocurrido un error con el servidor.'; +$messages['vacationsaved'] = 'Datos de ausencia guardados satisfactoriamente.'; +$messages['forwardsaved'] = 'Datos de reenvío guardados satisfactoriamente.'; $messages['emptyvacationbody'] = '¡Se requiere un cuerpo para el mensaje por vacaciones!'; +$messages['duplicate.conflict.err'] = 'Ni el encabezado ni el identificador único están permitidos.'; +$messages['disabledaction'] = 'Acción no permitida.'; +$messages['lastindexempty'] = 'Se necesita un índice cuando se cuenta desde el final';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/localization/eu_ES.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/localization/eu_ES.inc
Changed
@@ -21,6 +21,8 @@ $labels['newfilter'] = 'Iragazki berria'; $labels['filteradd'] = 'Gehitu iragazkia'; $labels['filterdel'] = 'Ezabatu iragazkia'; +$labels['rules'] = 'Araudia'; +$labels['actions'] = 'Ekintzak'; $labels['scope'] = 'Esparrua'; $labels['moveup'] = 'Mugitu gora'; $labels['movedown'] = 'Mugitu behera'; @@ -39,6 +41,13 @@ $labels['filternotregex'] = 'bat ez datorren espresio erregularra'; $labels['filterunder'] = 'azpian'; $labels['filterover'] = 'gainean'; +$labels['mime'] = 'MIME:'; +$labels['mimepart'] = 'MIME zatia:'; +$labels['mime-message'] = 'mezua'; +$labels['mime-anychild'] = 'baten bat'; +$labels['mime-type'] = 'mota'; +$labels['mime-subtype'] = 'azpi-mota'; +$labels['mime-contenttype'] = 'eduki mota'; $labels['addrule'] = 'Gehitu araua'; $labels['delrule'] = 'Ezabatu araua'; $labels['messagemoveto'] = 'Mugitu mezua hona';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/localization/is_IS.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/localization/is_IS.inc
Changed
@@ -27,6 +27,10 @@ $labels['filterany'] = 'öll skilaboð'; $labels['filtercontains'] = 'inniheldur'; $labels['filternotcontains'] = 'inniheldur ekki'; +$labels['filteris'] = 'er jafnt og'; +$labels['filterisnot'] = 'er ekki jafnt og'; +$labels['filterexists'] = 'er til'; +$labels['filternotexists'] = 'er ekki til'; $labels['mime'] = 'MIME:'; $labels['mimepart'] = 'MIME part:'; $labels['mime-message'] = 'skilaboð';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/localization/ja_JP.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/localization/ja_JP.inc
Changed
@@ -41,6 +41,14 @@ $labels['filternotregex'] = '次の正規表現に一致しない'; $labels['filterunder'] = 'より下'; $labels['filterover'] = 'より上'; +$labels['mime'] = 'MIME:'; +$labels['mimepart'] = 'MIMEのパート:'; +$labels['mime-message'] = 'メッセージ'; +$labels['mime-anychild'] = '任意'; +$labels['mime-type'] = 'タイプ'; +$labels['mime-subtype'] = 'サブタイプ'; +$labels['mime-contenttype'] = 'コンテントタイプ'; +$labels['mime-param'] = 'パラメーター'; $labels['addrule'] = '規則を追加'; $labels['delrule'] = '規則を削除'; $labels['messagemoveto'] = '次にメッセージを移動'; @@ -67,9 +75,17 @@ $labels['seconds'] = '秒'; $labels['rulestop'] = '規則の評価を停止'; $labels['enable'] = '有効/無効'; +$labels['filterset'] = 'フィルターセット'; $labels['filtersets'] = 'フィルターセット'; +$labels['filtersetadd'] = 'フィルターセットを追加'; +$labels['filtersetdel'] = 'フィルターセットを削除'; +$labels['filtersetact'] = '現在のフィルターセットを有効化'; +$labels['filtersetdeact'] = '現在のフィルターセットを無効化'; $labels['filterseteditraw'] = 'フィルターセットを編集'; +$labels['filtersetswitch'] = 'フィルターセットを有効・無効'; $labels['filterdef'] = 'フィルターの定義'; +$labels['filtersetname'] = 'フィルターセットの名前'; +$labels['newfilterset'] = '新しいフィルターセット'; $labels['active'] = '有効'; $labels['none'] = 'なし'; $labels['fromset'] = 'セットから'; @@ -102,6 +118,11 @@ $labels['headerpos'] = 'ヘッダーの位置'; $labels['headeratstart'] = '最初'; $labels['headeratend'] = '最後'; +$labels['headeroccurrence'] = 'ヘッダーの存在・位置'; +$labels['headerfromstart'] = '開始'; +$labels['headerfromend'] = '終了'; +$labels['headerpatterns'] = 'ヘッダーの値のパターン'; +$labels['headermatchtype'] = '一致タイプ:'; $labels['setvariable'] = '変数を設定'; $labels['setvarname'] = '変数の名前:'; $labels['setvarvalue'] = '変数の値:'; @@ -166,16 +187,20 @@ $labels['asciinumeric'] = '数値(ascii-numeric)'; $labels['index'] = 'インデックス:'; $labels['indexlast'] = '後方'; +$labels['vacation'] = '事務所に不在'; $labels['vacation.reply'] = '返信のメッセージ'; $labels['vacation.advanced'] = '詳細な設定'; $labels['vacation.from'] = '送信者のアドレスに返信'; $labels['vacation.subject'] = '件名'; $labels['vacation.body'] = '本文'; +$labels['vacation.start'] = '開始時刻'; +$labels['vacation.end'] = '終了時刻'; $labels['vacation.status'] = '状態'; $labels['vacation.on'] = 'オン'; $labels['vacation.off'] = 'オフ'; $labels['vacation.addresses'] = '私の電子メールアドレス'; $labels['vacation.interval'] = '返信の間隔'; +$labels['vacation.after'] = '事務所不在のルールを後に配置'; $labels['vacation.saving'] = 'データを保存中...'; $labels['vacation.action'] = '届いたメッセージの操作'; $labels['vacation.keep'] = '保持'; @@ -220,6 +245,16 @@ $messages['forbiddenchars'] = '項目に禁止している文字が含まれています。'; $messages['cannotbeempty'] = '項目は空欄にできません。'; $messages['ruleexist'] = '指定した名前のフィルターが既に存在します。'; +$messages['setactivateerror'] = '選択したフィルターセットを有効にできませんでした。サーバーでエラーが発生しました。'; +$messages['setdeactivateerror'] = '選択したフィルターセットを無効にできませんでした。サーバーでエラーが発生しました。'; +$messages['setdeleteerror'] = '選択したフィルターセットを削除できませんでした。サーバーでエラーが発生しました。'; +$messages['setactivated'] = 'フィルターセットを有効にしました。'; +$messages['setdeactivated'] = 'フィルターセットを無効にしました。'; +$messages['setdeleted'] = 'フィルターセットを削除しました。'; +$messages['setupdated'] = 'フィルターセットを更新しました。'; +$messages['setdeleteconfirm'] = '本当に削除したフィルターセットを削除しますか?'; +$messages['setcreateerror'] = 'フィルターセットを作成できませんでした。サーバーでエラーが発生しました。'; +$messages['setcreated'] = 'フィルターセットを作成しました。'; $messages['activateerror'] = '選択したフィルターを有効にできません。サーバーでエラーが発生しました。'; $messages['deactivateerror'] = '選択したフィルターを無効にできません。サーバーでエラーが発生しました。'; $messages['deactivated'] = 'フィルターを有効にしました。'; @@ -229,10 +264,12 @@ $messages['nametoolong'] = '名前が長すぎます。'; $messages['namereserved'] = '予約されている名前です。'; $messages['setexist'] = 'フィルターセットが既に存在します。'; -$messages['nodata'] = '少なくとも1つの場所を選択しなければなりません!'; +$messages['nodata'] = '少なくとも場所を1つ選択しなければなりません!'; $messages['invaliddateformat'] = '無効な日付または日付部分の書式'; $messages['saveerror'] = 'フィルターの保存できません。サーバーでエラーが発生しました。'; +$messages['vacationsaved'] = '事務所不在のデータを保存しました。'; $messages['forwardsaved'] = '転送のデータを保存しました。'; $messages['emptyvacationbody'] = '休暇のメッセージの本文が必要です!'; $messages['duplicate.conflict.err'] = 'ヘッダーと一意な識別子の両方は同時に使用できません。'; $messages['disabledaction'] = '許可されていない動作です。'; +$messages['lastindexempty'] = '最後から数える時はインデックスが必要';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/localization/lt_LT.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/localization/lt_LT.inc
Changed
@@ -75,9 +75,17 @@ $labels['seconds'] = 'sek.'; $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'] = 'Ištrinti filtrų rinkinį'; +$labels['filtersetact'] = 'Aktyvuoti dabartinį filtrų rinkinį'; +$labels['filtersetdeact'] = 'Pasyvinti dabartinį filtrų rinkinį'; $labels['filterseteditraw'] = 'Taisyti filtrų rinkinį'; +$labels['filtersetswitch'] = 'Įjungti/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'; @@ -237,6 +245,16 @@ $messages['forbiddenchars'] = 'Laukelyje yra draudžiamų simbolių.'; $messages['cannotbeempty'] = 'Laukelis negali būti tuščias'; $messages['ruleexist'] = 'Filtras tokiu vardu jau yra.'; +$messages['setactivateerror'] = 'Nepavyko aktyvuoti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setdeactivateerror'] = 'Nepavyko pasyvinti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setdeleteerror'] = 'Nepavyko ištrinti pasirinkto filtrų rinkinio. Įvyko serverio klaida.'; +$messages['setactivated'] = 'Filtrų rinkinys sėkmingai aktyvuotas.'; +$messages['setdeactivated'] = 'Filtrų rinkinys sėkmingai pasyvintas.'; +$messages['setdeleted'] = 'Filtrų rinkinys sėkmingai ištrintas.'; +$messages['setupdated'] = 'Filtrų rinkinys sėkmingai atnaujintas.'; +$messages['setdeleteconfirm'] = 'Ar tikrai norite ištrinti pasirinktą filtrų rinkinį?'; +$messages['setcreateerror'] = 'Nepavyko 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.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/managesieve/localization/nl_NL.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/managesieve/localization/nl_NL.inc
Changed
@@ -75,9 +75,17 @@ $labels['seconds'] = 'seconden'; $labels['rulestop'] = 'Stop met regels uitvoeren'; $labels['enable'] = 'In-/uitschakelen'; +$labels['filterset'] = 'Filter-set'; $labels['filtersets'] = 'Filtersets'; +$labels['filtersetadd'] = 'Filter-set toevoegen'; +$labels['filtersetdel'] = 'Filter-set verwijderen'; +$labels['filtersetact'] = 'Huidige filter-set activeren'; +$labels['filtersetdeact'] = 'Huidige filter-set uitschakelen'; $labels['filterseteditraw'] = 'Filter-set bewerken'; +$labels['filtersetswitch'] = 'Filter-set in/uitschakelen'; $labels['filterdef'] = 'Filterdefinitie'; +$labels['filtersetname'] = 'Filter-set naam'; +$labels['newfilterset'] = 'Nieuwe filter-set'; $labels['active'] = 'actief'; $labels['none'] = 'geen'; $labels['fromset'] = 'van set'; @@ -237,6 +245,16 @@ $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'] = 'Filter-set kon niet geactiveerd worden. Er trad een serverfout op.'; +$messages['setdeactivateerror'] = 'Filter-set kon niet gedeactiveerd worden. Er trad een serverfout op.'; +$messages['setdeleteerror'] = 'Filter-set kon niet verwijderd worden. Er trad een serverfout op.'; +$messages['setactivated'] = 'Filter-set succesvol geactiveerd.'; +$messages['setdeactivated'] = 'Filter-set succesvol gedeactiveerd.'; +$messages['setdeleted'] = 'Filter-set succesvol verwijderd.'; +$messages['setupdated'] = 'Filter-set succesvol bijgewerkt.'; +$messages['setdeleteconfirm'] = 'Weet u zeker dat u de geselecteerde filter-set wilt verwijderen?'; +$messages['setcreateerror'] = 'Filter-set kon niet aangemaakt worden. Er trad een serverfout op.'; +$messages['setcreated'] = 'Filter-set 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.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/markasjunk/drivers/edit_headers.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/markasjunk/drivers/edit_headers.php
Changed
@@ -56,7 +56,7 @@ $saved = $rcube->storage->save_message($dst_mbox, $raw_message); if ($saved !== false) { - $rcube->output->command('rcmail_markasjunk_move', null, $uid); + $rcube->output->command('markasjunk_move', null, array($uid)); array_push($new_uids, $saved); } }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/markasjunk/drivers/sa_detach.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/markasjunk/drivers/sa_detach.php
Changed
@@ -47,7 +47,7 @@ $orig_message_raw = $message->get_part_body($part->mime_id); if ($saved = $storage->save_message($dst_mbox, $orig_message_raw)) { - $rcube->output->command('rcmail_markasjunk_move', null, $uid); + $rcube->output->command('markasjunk_move', null, array($uid)); array_push($new_uids, $saved); } }
View file
roundcubemail-1.4-rc2.12.tar.gz/plugins/markasjunk/localization/eu_ES.inc
Added
@@ -0,0 +1,25 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | Localization file of the Roundcube Webmail Mark-As-Junk plugin | + | | + | Copyright (C) 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-markasjunk/ +*/ + +$labels['buttonjunk'] = 'Mezu hau zaborra da'; +$labels['asjunk'] = 'Zaborra moduan'; +$labels['markasjunk'] = 'Markatu zaborra moduan'; +$labels['buttonnotjunk'] = 'Mezu hau ez da zaborra'; +$labels['asnotjunk'] = 'Ez zaborra moduan'; +$labels['markasnotjunk'] = 'Markatu ez zaborra moduan'; +$labels['notjunk'] = 'Ez da zaborra'; +$messages['reportedasjunk'] = 'Zabor gisa informatu da'; +$messages['reportedasnotjunk'] = 'Ez zaborra gisa informatu da';
View file
roundcubemail-1.4-rc2.12.tar.gz/plugins/markasjunk/localization/ja_JP.inc
Added
@@ -0,0 +1,25 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | Localization file of the Roundcube Webmail Mark-As-Junk plugin | + | | + | Copyright (C) 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-markasjunk/ +*/ + +$labels['buttonjunk'] = 'このメッセージは迷惑メール'; +$labels['asjunk'] = '迷惑メール'; +$labels['markasjunk'] = '迷惑メールとしてマーク'; +$labels['buttonnotjunk'] = 'このメッセージは迷惑メールではない'; +$labels['asnotjunk'] = '非迷惑メール'; +$labels['markasnotjunk'] = '迷惑メールでないとマーク'; +$labels['notjunk'] = '非迷惑メール'; +$messages['reportedasjunk'] = '迷惑メールとして報告'; +$messages['reportedasnotjunk'] = '非迷惑メールとして報告';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/markasjunk/markasjunk.js -> roundcubemail-1.4-rc2.12.tar.gz/plugins/markasjunk/markasjunk.js
Changed
@@ -25,11 +25,11 @@ this.http_post('plugin.markasjunk.' + (is_spam ? 'junk' : 'not_junk'), this.selection_post_data({_uid: uids}), lock); } -rcube_webmail.prototype.rcmail_markasjunk_move = function(mbox, uids) { - var prev_uid = this.env.uid, a_uids = $.isArray(uids) ? uids : uids.split(","); +rcube_webmail.prototype.markasjunk_move = function(mbox, uids) { + var prev_uid = this.env.uid; - if (this.message_list && a_uids.length == 1 && !this.message_list.in_selection([a_uids[0]])) - this.env.uid = a_uids[0]; + if (this.message_list && uids.length == 1 && !this.message_list.in_selection(uids[0])) + this.env.uid = uids[0]; if (mbox) this.move_messages(mbox);
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/markasjunk/markasjunk.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/markasjunk/markasjunk.php
Changed
@@ -141,7 +141,7 @@ if ($result) { if ($dest_mbox && ($mbox_name !== $dest_mbox || $multifolder)) { - $this->rcube->output->command('rcmail_markasjunk_move', $dest_mbox, $this->_messageset_to_uids($messageset, $multifolder)); + $this->rcube->output->command('markasjunk_move', $dest_mbox, $this->_messageset_to_uids($messageset, $multifolder)); } else { $this->rcube->output->command('command', 'list', $mbox_name);
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/composer.json -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/composer.json
Changed
@@ -3,7 +3,7 @@ "type": "roundcube-plugin", "description": "Password Change for Roundcube. Plugin adds a possibility to change user password using many methods (drivers) via Settings/Password tab.", "license": "GPLv3+", - "version": "5.0", + "version": "5.1", "authors": [ { "name": "Aleksander Machniak",
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/directadmin.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/directadmin.php
Changed
@@ -84,419 +84,369 @@ * @author Phi1 'l0rdphi1' Stier <l0rdphi1@liquenox.net> * @package HTTPSocket * @version 3.0.2 + */ +class HTTPSocket +{ + var $version = '3.0.2'; + + // all vars are private except $error, $query_cache, and $doFollowLocationHeader + + var $method = 'GET'; + + var $remote_host; + var $remote_port; + var $remote_uname; + var $remote_passwd; + + var $result; + var $result_header; + var $result_body; + var $result_status_code; + + var $lastTransferSpeed; + var $bind_host; + var $error = array(); + var $warn = array(); + var $query_cache = array(); + var $doFollowLocationHeader = true; + var $redirectURL; + var $max_redirects = 5; + var $ssl_setting_message = 'DirectAdmin appears to be using SSL. Change your script to connect to ssl://'; + var $extra_headers = array(); + + /** + * Create server "connection". + * + */ + function connect($host, $port = '') + { + if (!is_numeric($port)) { + $port = 2222; + } - * 3.0.2 - * added longer curl timeouts + $this->remote_host = $host; + $this->remote_port = $port; + } - * 3.0.1 - * support for tcp:// conversion to http:// + function bind($ip = '') + { + if ($ip == '') { + $ip = $_SERVER['SERVER_ADDR']; + } - * 3.0.0 - * swapped to use curl to address ssl certificate issues with php 5.6 + $this->bind_host = $ip; + } - * 2.7.2 - * added x-use-https header check - * added max number of location redirects - * added custom settable message if x-use-https is found, so users can be told where to set their scripts - * if a redirect host is https, add ssl:// to remote_host + /** + * Change the method being used to communicate. + * + * @param string|null request method. supports GET, POST, and HEAD. default is GET + */ + function set_method($method = 'GET') + { + $this->method = strtoupper($method); + } - * 2.7.1 - * added isset to headers['location'], line 306 + /** + * Specify a username and password. + * + * @param string|null username. default is null + * @param string|null password. default is null + */ + function set_login($uname = '', $passwd = '') + { + if (strlen($uname) > 0) { + $this->remote_uname = $uname; + } - */ -class HTTPSocket { - - var $version = '3.0.2'; - - /* all vars are private except $error, $query_cache, and $doFollowLocationHeader */ - - var $method = 'GET'; - - var $remote_host; - var $remote_port; - var $remote_uname; - var $remote_passwd; - - var $result; - var $result_header; - var $result_body; - var $result_status_code; - - var $lastTransferSpeed; - - var $bind_host; - - var $error = array(); - var $warn = array(); - var $query_cache = array(); - - var $doFollowLocationHeader = TRUE; - var $redirectURL; - var $max_redirects = 5; - var $ssl_setting_message = 'DirectAdmin appears to be using SSL. Change your script to connect to ssl://'; - - var $extra_headers = array(); - - /** - * Create server "connection". - * - */ - function connect($host, $port = '' ) - { - if (!is_numeric($port)) - { - $port = 2222; - } - - $this->remote_host = $host; - $this->remote_port = $port; - } - - function bind( $ip = '' ) - { - if ( $ip == '' ) - { - $ip = $_SERVER['SERVER_ADDR']; - } - - $this->bind_host = $ip; - } - - /** - * Change the method being used to communicate. - * - * @param string|null request method. supports GET, POST, and HEAD. default is GET - */ - function set_method( $method = 'GET' ) - { - $this->method = strtoupper($method); - } - - /** - * Specify a username and password. - * - * @param string|null username. default is null - * @param string|null password. default is null - */ - function set_login( $uname = '', $passwd = '' ) - { - if ( strlen($uname) > 0 ) - { - $this->remote_uname = $uname; - } - - if ( strlen($passwd) > 0 ) - { - $this->remote_passwd = $passwd; - } - - } - - /** - * Query the server - * - * @param string containing properly formatted server API. See DA API docs and examples. Http:// URLs O.K. too. - * @param string|array query to pass to url - * @param int if connection KB/s drops below value here, will drop connection - */ - function query( $request, $content = '', $doSpeedCheck = 0 ) - { - $this->error = $this->warn = array(); - $this->result_status_code = NULL; - - $is_ssl = FALSE; - - // is our request a http:// ... ? - if (preg_match('!^http://!i',$request) || preg_match('!^https://!i',$request)) - { - $location = parse_url($request); - if (preg_match('!^https://!i',$request)) - { - $this->connect('https://'.$location['host'],$location['port']); - } - else - $this->connect('http://'.$location['host'],$location['port']); - - $this->set_login($location['user'],$location['pass']); - - $request = $location['path']; - $content = $location['query']; - - if ( strlen($request) < 1 ) - { - $request = '/'; - } - - } - - if (preg_match('!^ssl://!i', $this->remote_host)) - $this->remote_host = 'https://'.substr($this->remote_host, 6); - - if (preg_match('!^tcp://!i', $this->remote_host)) - $this->remote_host = 'http://'.substr($this->remote_host, 6); - - if (preg_match('!^https://!i', $this->remote_host)) - $is_ssl = TRUE; - - $array_headers = array( - 'Host' => ( $this->remote_port == 80 ? $this->remote_host : "$this->remote_host:$this->remote_port" ), - 'Accept' => '*/*', - 'Connection' => 'Close' ); - - foreach ( $this->extra_headers as $key => $value ) - { - $array_headers[$key] = $value; - } - - $this->result = $this->result_header = $this->result_body = ''; - - // was content sent as an array? if so, turn it into a string - if (is_array($content)) - { - $pairs = array(); - - foreach ( $content as $key => $value ) - { - $pairs[] = "$key=".urlencode($value); - } - - $content = join('&',$pairs); - unset($pairs); - } - - $OK = TRUE; - - if ($this->method == 'GET') - $request .= '?'.$content; - - $ch = curl_init($this->remote_host.':'.$this->remote_port.$request); - - if ($is_ssl) - { - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //1 - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //2 - //curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); - } - - curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); - curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); - curl_setopt($ch, CURLOPT_USERAGENT, "HTTPSocket/$this->version"); - curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); - curl_setopt($ch, CURLOPT_TIMEOUT, 100); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); - curl_setopt($ch, CURLOPT_HEADER, 1); - - curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 512); - curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 120); - - //if ($this->doFollowLocationHeader) - //{ - // curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); - // curl_setopt($ch, CURLOPT_MAXREDIRS, $this->max_redirects); - //} - - // instance connection - if ($this->bind_host) - { - curl_setopt($ch, CURLOPT_INTERFACE, $this->bind_host); - } - - // if we have a username and password, add the header - if ( isset($this->remote_uname) && isset($this->remote_passwd) ) - { - curl_setopt($ch, CURLOPT_USERPWD, $this->remote_uname.':'.$this->remote_passwd); - } - - // for DA skins: if $this->remote_passwd is NULL, try to use the login key system - if ( isset($this->remote_uname) && $this->remote_passwd == NULL ) - { - $array_headers['Cookie'] = "session={$_SERVER['SESSION_ID']}; key={$_SERVER['SESSION_KEY']}"; - } - - // if method is POST, add content length & type headers - if ( $this->method == 'POST' ) - { - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, $content); - - //$array_headers['Content-type'] = 'application/x-www-form-urlencoded'; - $array_headers['Content-length'] = strlen($content); - } - - curl_setopt($ch, CURLOPT_HTTPHEADER, $array_headers); - - - if( !($this->result = curl_exec($ch)) ) - { - $this->error[] .= curl_error($ch); - $OK = FALSE; - } - - $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); - $this->result_header = substr($this->result, 0, $header_size); - $this->result_body = substr($this->result, $header_size); - $this->result_status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); - - $this->lastTransferSpeed = curl_getinfo($ch, CURLINFO_SPEED_DOWNLOAD) / 1024; - - curl_close($ch); - - $this->query_cache[] = $this->remote_host.':'.$this->remote_port.$request; - - $headers = $this->fetch_header(); - - // did we get the full file? - if ( !empty($headers['content-length']) && $headers['content-length'] != strlen($this->result_body) ) - { - $this->result_status_code = 206; - } - - // now, if we're being passed a location header, should we follow it? - if ($this->doFollowLocationHeader) - { - //dont bother if we didn't even setup the script correctly - if (isset($headers['x-use-https']) && $headers['x-use-https']=='yes') - die($this->ssl_setting_message); - - if (isset($headers['location'])) - { - if ($this->max_redirects <= 0) - die("Too many redirects on: ".$headers['location']); - - $this->max_redirects--; - $this->redirectURL = $headers['location']; - $this->query($headers['location']); - } - } - - } - - function getTransferSpeed() - { - return $this->lastTransferSpeed; - } - - /** - * The quick way to get a URL's content :) - * - * @param string URL - * @param boolean return as array? (like PHP's file() command) - * @return string result body - */ - function get($location, $asArray = FALSE ) - { - $this->query($location); - - if ( $this->get_status_code() == 200 ) - { - if ($asArray) - { - return preg_split("/\n/",$this->fetch_body()); - } - - return $this->fetch_body(); - } - - return FALSE; - } - - /** - * Returns the last status code. - * 200 = OK; - * 403 = FORBIDDEN; - * etc. - * - * @return int status code - */ - function get_status_code() - { - return $this->result_status_code; - } - - /** - * Adds a header, sent with the next query. - * - * @param string header name - * @param string header value - */ - function add_header($key,$value) - { - $this->extra_headers[$key] = $value; - } - - /** - * Clears any extra headers. - * - */ - function clear_headers() - { - $this->extra_headers = array(); - } - - /** - * Return the result of a query. - * - * @return string result - */ - function fetch_result() - { - return $this->result; - } - - /** - * Return the header of result (stuff before body). - * - * @param string (optional) header to return - * @return array result header - */ - function fetch_header( $header = '' ) - { - $array_headers = preg_split("/\r\n/",$this->result_header); - - $array_return = array( 0 => $array_headers[0] ); - unset($array_headers[0]); - - foreach ( $array_headers as $pair ) - { - if ($pair == '' || $pair == "\r\n") continue; - list($key,$value) = preg_split("/: /",$pair,2); - $array_return[strtolower($key)] = $value; - } - - if ( $header != '' ) - { - return $array_return[strtolower($header)]; - } - - return $array_return; - } - - /** - * Return the body of result (stuff after header). - * - * @return string result body - */ - function fetch_body() - { - return $this->result_body; - } - - /** - * Return parsed body in array format. - * - * @return array result parsed - */ - function fetch_parsed_body() - { - parse_str($this->result_body,$x); - return $x; - } - - /** - * Set a specifc message on how to change the SSL setting, in the event that it's not set correctly. - */ - function set_ssl_setting_message($str) - { - $this->ssl_setting_message = $str; - } + if (strlen($passwd) > 0) { + $this->remote_passwd = $passwd; + } + + } + + /** + * Query the server + * + * @param string containing properly formatted server API. See DA API docs and examples. Http:// URLs O.K. too. + * @param string|array query to pass to url + */ + function query($request, $content = '') + { + $this->error = $this->warn = array(); + $this->result_status_code = null; + + $is_ssl = false; + + // is our request a http:// ... ? + if (preg_match('!^http://!i',$request) || preg_match('!^https://!i',$request)) { + $location = parse_url($request); + if (preg_match('!^https://!i',$request)) { + $this->connect('https://'.$location['host'],$location['port']); + } + else { + $this->connect('http://'.$location['host'],$location['port']); + } + + $this->set_login($location['user'],$location['pass']); + + $request = $location['path']; + $content = $location['query']; + + if (strlen($request) < 1) { + $request = '/'; + } + } + + if (preg_match('!^ssl://!i', $this->remote_host)) { + $this->remote_host = 'https://'.substr($this->remote_host, 6); + } + + if (preg_match('!^tcp://!i', $this->remote_host)) { + $this->remote_host = 'http://'.substr($this->remote_host, 6); + } + + if (preg_match('!^https://!i', $this->remote_host)) { + $is_ssl = true; + } + + $array_headers = array( + 'Host' => $this->remote_port == 80 ? $this->remote_host : "$this->remote_host:$this->remote_port", + 'Accept' => '*/*', + 'Connection' => 'Close' ); + + foreach ($this->extra_headers as $key => $value) { + $array_headers[$key] = $value; + } + + $this->result = $this->result_header = $this->result_body = ''; + + // was content sent as an array? if so, turn it into a string + if (is_array($content)) { + $pairs = array(); + + foreach ($content as $key => $value) { + $pairs[] = "$key=".urlencode($value); + } + + $content = join('&',$pairs); + unset($pairs); + } + + $OK = true; + + if ($this->method == 'GET') { + $request .= '?'.$content; + } + + $ch = curl_init($this->remote_host.':'.$this->remote_port.$request); + + if ($is_ssl) { + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //1 + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //2 + //curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); + } + + curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); + curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); + curl_setopt($ch, CURLOPT_USERAGENT, "HTTPSocket/$this->version"); + curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); + curl_setopt($ch, CURLOPT_TIMEOUT, 100); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); + curl_setopt($ch, CURLOPT_HEADER, 1); + + curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 512); + curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 120); + + // instance connection + if ($this->bind_host) { + curl_setopt($ch, CURLOPT_INTERFACE, $this->bind_host); + } + + // if we have a username and password, add the header + if (isset($this->remote_uname) && isset($this->remote_passwd)) { + curl_setopt($ch, CURLOPT_USERPWD, $this->remote_uname.':'.$this->remote_passwd); + } + + // for DA skins: if $this->remote_passwd is NULL, try to use the login key system + if (isset($this->remote_uname) && $this->remote_passwd == NULL) { + $array_headers['Cookie'] = "session={$_SERVER['SESSION_ID']}; key={$_SERVER['SESSION_KEY']}"; + } + + // if method is POST, add content length & type headers + if ($this->method == 'POST') { + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $content); + + //$array_headers['Content-type'] = 'application/x-www-form-urlencoded'; + $array_headers['Content-length'] = strlen($content); + } + + curl_setopt($ch, CURLOPT_HTTPHEADER, $array_headers); + + if(!($this->result = curl_exec($ch))) { + $this->error[] .= curl_error($ch); + $OK = false; + } + + $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); + $this->result_header = substr($this->result, 0, $header_size); + $this->result_body = substr($this->result, $header_size); + $this->result_status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $this->lastTransferSpeed = curl_getinfo($ch, CURLINFO_SPEED_DOWNLOAD) / 1024; + + curl_close($ch); + + $this->query_cache[] = $this->remote_host.':'.$this->remote_port.$request; + + $headers = $this->fetch_header(); + + // did we get the full file? + if (!empty($headers['content-length']) && $headers['content-length'] != strlen($this->result_body)) { + $this->result_status_code = 206; + } + + // now, if we're being passed a location header, should we follow it? + if ($this->doFollowLocationHeader) { + //dont bother if we didn't even setup the script correctly + if (isset($headers['x-use-https']) && $headers['x-use-https'] == 'yes') { + die($this->ssl_setting_message); + } + + if (isset($headers['location'])) { + if ($this->max_redirects <= 0) { + die("Too many redirects on: ".$headers['location']); + } + + $this->max_redirects--; + $this->redirectURL = $headers['location']; + $this->query($headers['location']); + } + } + } + + function getTransferSpeed() + { + return $this->lastTransferSpeed; + } + + /** + * The quick way to get a URL's content :) + * + * @param string URL + * @param boolean return as array? (like PHP's file() command) + * @return string result body + */ + function get($location, $asArray = false) + { + $this->query($location); + + if ($this->get_status_code() == 200) { + if ($asArray) { + return preg_split("/\n/",$this->fetch_body()); + } + + return $this->fetch_body(); + } + + return false; + } + + /** + * Returns the last status code. + * 200 = OK; + * 403 = FORBIDDEN; + * etc. + * + * @return int status code + */ + function get_status_code() + { + return $this->result_status_code; + } + + /** + * Adds a header, sent with the next query. + * + * @param string header name + * @param string header value + */ + function add_header($key,$value) + { + $this->extra_headers[$key] = $value; + } + + /** + * Clears any extra headers. + * + */ + function clear_headers() + { + $this->extra_headers = array(); + } + + /** + * Return the result of a query. + * + * @return string result + */ + function fetch_result() + { + return $this->result; + } + + /** + * Return the header of result (stuff before body). + * + * @param string (optional) header to return + * @return array result header + */ + function fetch_header($header = '') + { + $array_headers = preg_split("/\r\n/",$this->result_header); + + $array_return = array(0 => $array_headers[0]); + unset($array_headers[0]); + + foreach ($array_headers as $pair) { + if ($pair == '' || $pair == "\r\n") continue; + list($key,$value) = preg_split("/: /",$pair,2); + $array_return[strtolower($key)] = $value; + } + + if ($header != '') { + return $array_return[strtolower($header)]; + } + + return $array_return; + } + + /** + * Return the body of result (stuff after header). + * + * @return string result body + */ + function fetch_body() + { + return $this->result_body; + } + + /** + * Return parsed body in array format. + * + * @return array result parsed + */ + function fetch_parsed_body() + { + parse_str($this->result_body,$x); + return $x; + } + + /** + * Set a specifc message on how to change the SSL setting, in the event that it's not set correctly. + */ + function set_ssl_setting_message($str) + { + $this->ssl_setting_message = $str; + } }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/domainfactory.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/domainfactory.php
Changed
@@ -30,8 +30,6 @@ { function save($curpass, $passwd, $username) { - $rcmail = rcmail::get_instance(); - if ($ch = curl_init()) { // initial login curl_setopt_array($ch, array(
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/gearman.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/gearman.php
Changed
@@ -51,7 +51,7 @@ 'code' => 600, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Password plugin: Gearman authentication failed for user $username: $error" + 'message' => "Password plugin: Gearman authentication failed for user $username" ), true, false); } }
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/ldap_simple.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/ldap_simple.php
Changed
@@ -85,7 +85,7 @@ $entry[$smblchattr] = time(); } - $this->_debug("C: Modify $user_dn: " . print_r($entry, true)); + $this->_debug("C: Modify {$this->user}: " . print_r($entry, true)); if (!ldap_modify($this->conn, $this->user, $entry)) { $this->_debug("S: ".ldap_error($this->conn));
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/sql.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/sql.php
Changed
@@ -5,7 +5,7 @@ * * Driver for passwords stored in SQL database * - * @version 2.0 + * @version 2.1 * @author Aleksander Machniak <alec@alec.pl> * * Copyright (C) The Roundcube Dev Team @@ -23,9 +23,16 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ - class rcube_sql_password { + /** + * Update current user password + * + * @param string $curpass Current password + * @param string $passwd New password + * + * @return int Result + */ function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); @@ -159,11 +166,11 @@ } } else { - // This is the good case: 1 row updated - if ($db->affected_rows($res) == 1) + // Note: Don't be tempted to check affected_rows = 1. For some queries + // (e.g. INSERT ... ON DUPLICATE KEY UPDATE) the result can be 2. + if ($db->affected_rows($res) > 0) { return PASSWORD_SUCCESS; - // @TODO: Some queries don't affect any rows - // Should we assume a success if there was no error? + } } } @@ -172,6 +179,10 @@ /** * Parse DSN string and replace host variables + * + * @param string $dsn DSN string + * + * @return string DSN string */ protected static function parse_dsn($dsn) {
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/virtualmin.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/virtualmin.php
Changed
@@ -33,7 +33,6 @@ { function save($currpass, $newpass, $username) { - $rcmail = rcmail::get_instance(); $curdir = RCUBE_PLUGINS_DIR . 'password/helpers'; $username = escapeshellarg($username);
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/drivers/zxcvbn.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/drivers/zxcvbn.php
Changed
@@ -28,12 +28,11 @@ { function strength_rules() { - $rcmail = rcmail::get_instance(); - - $rules = array(); - $rules[] = $rcmail->gettext('password.passwordweak'); - $rules[] = $rcmail->gettext('password.passwordnoseq'); - $rules[] = $rcmail->gettext('password.passwordnocommon'); + $rcmail = rcmail::get_instance(); + $rules = array( + $rcmail->gettext('password.passwordnoseq'), + $rcmail->gettext('password.passwordnocommon'), + ); return $rules; } @@ -56,7 +55,6 @@ return; } - $rcmail = rcmail::get_instance(); $zxcvbn = new ZxcvbnPhp\Zxcvbn(); $strength = $zxcvbn->passwordStrength($passwd);
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/localization/es_AR.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/localization/es_AR.inc
Changed
@@ -15,17 +15,26 @@ */ $labels['changepasswd'] = 'Cambiar contraseña'; -$labels['curpasswd'] = 'Contraseña Actual:'; -$labels['newpasswd'] = 'Contraseña Nueva:'; -$labels['confpasswd'] = 'Confirmar Contraseña:'; -$messages['nopassword'] = 'Por favor introduce una nueva contraseña.'; -$messages['nocurpassword'] = 'Por favor introduce la contraseña actual.'; +$labels['curpasswd'] = 'Contraseña actual:'; +$labels['newpasswd'] = 'Nueva contraseña:'; +$labels['confpasswd'] = 'Confirmar contraseña:'; +$messages['nopassword'] = 'Por favor ingresá una nueva contraseña.'; +$messages['nocurpassword'] = 'Por favor ingresá la contraseña actual.'; $messages['passwordincorrect'] = 'Contraseña actual incorrecta.'; -$messages['passwordinconsistency'] = 'Las contraseñas no coinciden, por favor inténtalo de nuevo.'; +$messages['passwordinconsistency'] = 'Las contraseñas no coinciden, por favor intentalo de nuevo.'; $messages['crypterror'] = 'No se pudo guardar la contraseña nueva. Falta la función de cifrado.'; $messages['connecterror'] = 'No se pudo guardar la contraseña nueva. Error de conexión'; $messages['internalerror'] = 'No se pudo guardar la contraseña nueva.'; $messages['passwordshort'] = 'Tu contraseña debe tener una longitud mínima de $length.'; $messages['passwordweak'] = 'Tu nueva contraseña debe incluir al menos un número y un signo de puntuación.'; -$messages['passwordforbidden'] = 'La contraseña contiene caracteres inválidos.'; +$messages['passwordtooweak'] = 'La contraseña es demasiado débil.'; +$messages['passwordnoseq'] = 'La contraseña no debe ser una secuencia como 123456 o QWERTY.'; +$messages['passwordnocommon'] = 'La contraseña no debe ser ni una palabra común ni un nombre.'; +$messages['passwordforbidden'] = 'La contraseña contiene caracteres no válidos.'; $messages['firstloginchange'] = 'Este es tu primer inicio de sesión. Por favor, cambia tu contraseña.'; +$messages['disablednotice'] = 'Actualmente el sistema se encuentra en mantenimiento y el cambio de contraseña no es posible en este momento. Todo debería volver a la normalidad pronto. Te pedimos disculpas por el inconveniente.'; +$messages['passwinhistory'] = 'La contraseña ya ha sido usada con anterioridad.'; +$messages['samepasswd'] = 'La nueva contraseña debe ser diferente de la anterior.'; +$messages['passwdexpirewarning'] = '¡Advertencia! Tu contraseña vencerá pronto, cambiala antes del $expirationdatetime.'; +$messages['passwdexpired'] = 'Tu contraseña expiró. ¡Tenés que cambiarla ahora!'; +$messages['passwdconstraintviolation'] = 'Violación de restricción de contraseña. Probablemente tu contraseña es demasiado débil.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/localization/ga_IE.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/localization/ga_IE.inc
Changed
@@ -20,4 +20,6 @@ $labels['confpasswd'] = 'Deimhnigh an focal faire nua:'; $messages['nopassword'] = 'Cuir isteach focal faire nua.'; $messages['internalerror'] = 'Níorbh fhéidir an focal faire nua a chur i dtaisce.'; +$messages['passwordtooweak'] = 'Tá an focal faire rólag.'; +$messages['passwordforbidden'] = 'Tá carachtair nach gceadaítear san fhocal faire.'; $messages['passwinhistory'] = 'Baineadh feidhm as an bhfocal faire seo cheana.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/localization/ja_JP.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/localization/ja_JP.inc
Changed
@@ -27,6 +27,9 @@ $messages['internalerror'] = '新しいパスワードを保存できませんでした。'; $messages['passwordshort'] = 'パスワードは少なくとも $length 文字の長さが必要です。'; $messages['passwordweak'] = 'パスワードは少なくとも数字の 1 文字と記号の 1 文字を含んでいなければなりません。'; +$messages['passwordtooweak'] = '弱すぎるパスワードです。'; +$messages['passwordnoseq'] = 'パスワードは123456やQWERTYの様な連続にしてはなりません。'; +$messages['passwordnocommon'] = 'パスワードはありふれた単語や名前にしてはなりません。'; $messages['passwordforbidden'] = 'パスワードに禁止された文字が含まれています。'; $messages['firstloginchange'] = 'これは初めてのログインです。パスワードを変更してください。'; $messages['disablednotice'] = 'このシステムは今は保守中で、現在のところパスワードの変更はできません。しばらくすれば、通常の状態に復帰するはずです。ご迷惑を掛けて申し訳ありません。';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/password/password.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/password/password.php
Changed
@@ -132,7 +132,6 @@ $this->rc->output->set_pagetitle($this->gettext('changepasswd')); - $form_disabled = $this->rc->config->get('password_disabled'); $confirm = $this->rc->config->get('password_confirm_current'); $required_length = intval($this->rc->config->get('password_minimum_length')); $force_save = $this->rc->config->get('password_force_save');
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/zipdownload/localization/eu_ES.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/zipdownload/localization/eu_ES.inc
Changed
@@ -19,3 +19,4 @@ $labels['downloadmbox'] = 'Mbox formatua (.zip)'; $labels['downloadmaildir'] = 'Maildir formatua (.zip)'; $labels['downloademl'] = 'Iturburua (.eml)'; +$labels['sizelimiterror'] = 'Hautatutako mezuen tamainak muga ($size) gainditu du.';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/zipdownload/localization/fo_FO.inc -> roundcubemail-1.4-rc2.12.tar.gz/plugins/zipdownload/localization/fo_FO.inc
Changed
@@ -19,3 +19,4 @@ $labels['downloadmbox'] = 'Mbox týpa (.zip)'; $labels['downloadmaildir'] = 'Teldupost mappu format (.zip)'; $labels['downloademl'] = 'Kelda (.eml)'; +$labels['sizelimiterror'] = 'Tann samlaða støddin av tí valgda boðnum, er stórri enn stórst loyvdu boð stødd ($size)';
View file
roundcubemail-1.4-rc1.221.tar.gz/plugins/zipdownload/zipdownload.php -> roundcubemail-1.4-rc2.12.tar.gz/plugins/zipdownload/zipdownload.php
Changed
@@ -133,7 +133,6 @@ // require CSRF protected request $rcmail->request_security_check(rcube_utils::INPUT_GET); - $imap = $rcmail->get_storage(); $tmpfname = rcube_utils::temp_filename('zipdownload'); $tempfiles = array($tmpfname); $message = new rcube_message(rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET));
View file
roundcubemail-1.4-rc1.221.tar.gz/program/include/rcmail.php -> roundcubemail-1.4-rc2.12.tar.gz/program/include/rcmail.php
Changed
@@ -99,12 +99,12 @@ $required_plugins = array('filesystem_attachments', 'jqueryui'); $this->plugins->load_plugins($plugins, $required_plugins); - // Remember default skin, before it's replaced by user prefs - $this->default_skin = $this->config->get('skin'); - // start session $this->session_init(); + // Remember default skin, before it's replaced by user prefs + $this->default_skin = $this->config->get('skin'); + // create user object $this->set_user(new rcube_user($_SESSION['user_id'])); @@ -1178,6 +1178,38 @@ } /** + * Check if specified asset file exists + * + * @param string $path Asset path + * @param bool $minified Fallback to minified version of the file + * + * @return string Asset path if found (modified if minified file found) + */ + public function find_asset($path, $minified = true) + { + if (empty($path)) { + return; + } + + $assets_dir = $this->config->get('assets_dir'); + $root_path = unslashify($assets_dir ?: INSTALL_PATH) . '/'; + $full_path = $root_path . trim($path, '/'); + + if (file_exists($full_path)) { + return $path; + } + + if ($minified && preg_match('/(?<!\.min)\.(js|css)$/', $path)) { + $path = preg_replace('/\.(js|css)$/', '.min.\\1', $path); + $full_path = $root_path . trim($path, '/'); + + if (file_exists($full_path)) { + return $path; + } + } + } + + /** * Create a HTML table based on the given data * * @param array $attrib Named table attributes @@ -1645,7 +1677,7 @@ $out .= html::tag('li', array( 'id' => "rcmli" . $folder_id, - 'class' => join(' ', $classes), + 'class' => implode(' ', $classes), 'noclose' => true ), html::a($link_attrib, $html_name)); @@ -2061,14 +2093,16 @@ ); if ($path = $this->config->get('editor_css_location')) { - $config['content_css'] = $skin_path . $path; + if ($path = $this->find_asset($skin_path . $path)) { + $config['content_css'] = $path; + } } $this->output->add_label('selectimage', 'addimage', 'selectmedia', 'addmedia'); $this->output->set_env('editor_config', $config); if ($path = $this->config->get('media_browser_css_location', 'program/resources/tinymce/browser.css')) { - if ($path != 'none') { + if ($path != 'none' && ($path = $this->find_asset($path))) { $this->output->include_css($path); } }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/include/rcmail_html_page.php -> roundcubemail-1.4-rc2.12.tar.gz/program/include/rcmail_html_page.php
Changed
@@ -32,7 +32,8 @@ self::reset(true); // load embed.css from skin folder (if exists) - if ($embed_css = $this->get_skin_file($this->config->get('embed_css_location', '/embed.css'))) { + $embed_css = $this->config->get('embed_css_location', '/embed.css'); + if ($embed_css = $this->get_skin_file($embed_css, $path, null, true)) { $this->include_css($embed_css); } else { // set default styles for warning blocks inside the attachment part frame
View file
roundcubemail-1.4-rc1.221.tar.gz/program/include/rcmail_install.php -> roundcubemail-1.4-rc2.12.tar.gz/program/include/rcmail_install.php
Changed
@@ -23,7 +23,6 @@ * * @category Install * @package Webmail - * @author Thomas Bruederli */ class rcmail_install { @@ -214,7 +213,7 @@ if ($prop == 'db_dsnw' && !empty($_POST['_dbtype'])) { if ($_POST['_dbtype'] == 'sqlite') { $value = sprintf('%s://%s?mode=0646', $_POST['_dbtype'], - $_POST['_dbname']{0} == '/' ? '/' . $_POST['_dbname'] : $_POST['_dbname']); + $_POST['_dbname'][0] == '/' ? '/' . $_POST['_dbname'] : $_POST['_dbname']); } else if ($_POST['_dbtype']) { $value = sprintf('%s://%s:%s@%s/%s', $_POST['_dbtype'], @@ -462,7 +461,7 @@ $diff = array_diff(array_keys($cols), $db_cols); if (!empty($diff)) { - $errors[] = "Missing columns in table '$table': " . join(',', $diff); + $errors[] = "Missing columns in table '$table': " . implode(',', $diff); } } } @@ -475,10 +474,9 @@ */ private function db_read_schema($schemafile) { - $lines = file($schemafile); - $table_block = false; - $schema = array(); - $keywords = array('PRIMARY','KEY','INDEX','UNIQUE','CONSTRAINT','REFERENCES','FOREIGN'); + $lines = file($schemafile); + $schema = array(); + $keywords = array('PRIMARY','KEY','INDEX','UNIQUE','CONSTRAINT','REFERENCES','FOREIGN'); foreach ($lines as $line) { if (preg_match('/^\s*create table ([\S]+)/i', $line, $m)) { @@ -783,7 +781,7 @@ } if ($isnum) { - return 'array(' . join(', ', array_map(array('rcmail_install', '_dump_var'), $var)) . ')'; + return 'array(' . implode(', ', array_map(array('rcmail_install', '_dump_var'), $var)) . ')'; } } }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/include/rcmail_output_html.php -> roundcubemail-1.4-rc2.12.tar.gz/program/include/rcmail_output_html.php
Changed
@@ -285,6 +285,7 @@ // register skin path(s) $this->skin_paths = array(); + $this->skins = array(); $this->load_skin($skin_path); $this->skin_name = $skin; @@ -398,10 +399,11 @@ * @param string $file File name/path to resolve (starting with /) * @param string &$skin_path Reference to the base path of the matching skin * @param string $add_path Additional path to search in + * @param bool $minified Fallback to a minified version of the file * * @return mixed Relative path to the requested file or False if not found */ - public function get_skin_file($file, &$skin_path = null, $add_path = null) + public function get_skin_file($file, &$skin_path = null, $add_path = null, $minified = false) { $skin_paths = $this->skin_paths; @@ -414,6 +416,14 @@ return $skin_path . $file; } + if ($minified && preg_match('/(?<!\.min)\.(js|css)$/', $file)) { + $file = preg_replace('/\.(js|css)$/', '.min.\\1', $file); + + if ($skin_path = $this->find_file_path($file, $skin_paths)) { + return $skin_path . $file; + } + } + return false; } @@ -643,7 +653,7 @@ $this->page_headers(); // call super method - $this->_write($template, $this->config->get('skin_path')); + $this->_write($template); } /** @@ -846,15 +856,15 @@ /** * Make URLs starting with a slash point to skin directory * - * @param string $str Input string - * @param bool $search_path True if URL should be resolved using the current skin path stack + * @param string $str Input string + * @param bool $search_path True if URL should be resolved using the current skin path stack * * @return string URL */ public function abs_url($str, $search_path = false) { if ($str[0] == '/') { - if ($search_path && ($file_url = $this->get_skin_file($str, $skin_path))) { + if ($search_path && ($file_url = $this->get_skin_file($str))) { return $file_url; } @@ -957,7 +967,7 @@ } // add file modification timestamp - if (preg_match('/\.(js|css|less|ico|png|svg|jpeg)$/', $file, $m)) { + if (preg_match('/\.(js|css|less|ico|png|svg|jpeg)$/', $file)) { $file = $this->file_mod($file); } @@ -1568,7 +1578,7 @@ // try to find out the button type if ($attrib['type']) { $attrib['type'] = strtolower($attrib['type']); - if ($pos = strpos($attrib['type'], '-menuitem')) { + if (strpos($attrib['type'], '-menuitem')) { $attrib['type'] = substr($attrib['type'], 0, -9); $menuitem = true; } @@ -1821,10 +1831,9 @@ /** * Process template and write to stdOut * - * @param string $output HTML output - * @param string $base_path Base for absolute paths + * @param string $output HTML output */ - protected function _write($output = '', $base_path = '') + protected function _write($output = '') { $output = trim($output); @@ -2364,12 +2373,12 @@ 'ISO-8859-7' => 'ISO-8859-7 ('.$this->app->gettext('greek').')', 'ISO-8859-8' => 'ISO-8859-8 ('.$this->app->gettext('hebrew').')', 'ISO-8859-9' => 'ISO-8859-9 ('.$this->app->gettext('turkish').')', - 'ISO-8859-10' => 'ISO-8859-10 ('.$this->app->gettext('nordic').')', - 'ISO-8859-11' => 'ISO-8859-11 ('.$this->app->gettext('thai').')', - 'ISO-8859-13' => 'ISO-8859-13 ('.$this->app->gettext('baltic').')', - 'ISO-8859-14' => 'ISO-8859-14 ('.$this->app->gettext('celtic').')', - 'ISO-8859-15' => 'ISO-8859-15 ('.$this->app->gettext('westerneuropean').')', - 'ISO-8859-16' => 'ISO-8859-16 ('.$this->app->gettext('southeasterneuropean').')', + 'ISO-8859-10' => 'ISO-8859-10 ('.$this->app->gettext('nordic').')', + 'ISO-8859-11' => 'ISO-8859-11 ('.$this->app->gettext('thai').')', + 'ISO-8859-13' => 'ISO-8859-13 ('.$this->app->gettext('baltic').')', + 'ISO-8859-14' => 'ISO-8859-14 ('.$this->app->gettext('celtic').')', + 'ISO-8859-15' => 'ISO-8859-15 ('.$this->app->gettext('westerneuropean').')', + 'ISO-8859-16' => 'ISO-8859-16 ('.$this->app->gettext('southeasterneuropean').')', 'WINDOWS-1250' => 'Windows-1250 ('.$this->app->gettext('easterneuropean').')', 'WINDOWS-1251' => 'Windows-1251 ('.$this->app->gettext('cyrillic').')', 'WINDOWS-1252' => 'Windows-1252 ('.$this->app->gettext('westerneuropean').')', @@ -2387,6 +2396,7 @@ 'EUC-CN' => 'EUC-CN ('.$this->app->gettext('chinese').')', 'BIG5' => 'BIG5 ('.$this->app->gettext('chinese').')', 'GB2312' => 'GB2312 ('.$this->app->gettext('chinese').')', + 'KOI8-R' => 'KOI8-R ('.$this->app->gettext('cyrillic').')', ); if ($post = rcube_utils::get_input_value('_charset', rcube_utils::INPUT_POST)) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/include/rcmail_sendmail.php -> roundcubemail-1.4-rc2.12.tar.gz/program/include/rcmail_sendmail.php
Changed
@@ -233,7 +233,7 @@ * Set charset and transfer encoding on the message * * @param Mail_mime $message Message object - * @param bool $flowed Enable format=flowed + * @param bool $flowed Enable format=flowed */ public function set_message_encoding($message, $flowed = false) { @@ -248,7 +248,7 @@ else if (preg_match('/[^\x00-\x7F]/', $message->getTXTBody())) { $transfer_encoding = $this->rcmail->config->get('force_7bit') ? 'quoted-printable' : '8bit'; } - else if ($message_charset == 'UTF-8') { + else if ($this->options['charset'] == 'UTF-8') { $text_charset = 'US-ASCII'; } @@ -287,9 +287,9 @@ // Check if we have enough memory to handle the message in it // It's faster than using files, so we'll do this if we only can - if (is_array($attachments) && ($mem_limit = parse_bytes(ini_get('memory_limit')))) { + if (is_array($attachments)) { $memory = 0; - foreach ($attachments as $id => $attachment) { + foreach ($attachments as $attachment) { $memory += $attachment['size']; } @@ -775,7 +775,7 @@ $parts[] = $key . '=' . ($encode ? 'B::' . base64_encode($val) : $val); } - return join('; ', $parts); + return implode('; ', $parts); } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/program/js/app.js -> roundcubemail-1.4-rc2.12.tar.gz/program/js/app.js
Changed
@@ -235,8 +235,7 @@ // tell parent window that this frame is loaded if (this.is_framed()) { - parent.rcmail.set_busy(false, null, parent.rcmail.env.frame_lock); - parent.rcmail.env.frame_lock = null; + parent.rcmail.unlock_frame(); } // enable general commands @@ -425,12 +424,19 @@ } // center and scale the image in preview frame + // TODO: Find a better way. Onload is late, also we could use embed.css if (this.env.mimetype.startsWith('image/')) $(this.gui_objects.messagepartframe).on('load', function() { - var css = 'img { max-width:100%; max-height:100%; } ' // scale - + 'body { display:flex; align-items:center; justify-content:center; height:100%; margin:0; }'; // align + var contents = $(this).contents(); - $(this).contents().find('head').append('<style type="text/css">'+ css + '</style>'); + // do not apply styles to an error page (with no image) + if (contents.find('img').length) + contents.find('head').append( + '<style type="text/css">' + + 'img { max-width:100%; max-height:100%; } ' // scale + + 'body { display:flex; align-items:center; justify-content:center; height:100%; margin:0; }' // align + + '</style>' + ); }); } // show printing dialog @@ -1776,6 +1782,9 @@ this.folder_collapsed = function(node) { + if (this.folder_collapsed_timer) + clearTimeout(this.folder_collapsed_timer); + var prefname = this.env.task == 'addressbook' ? 'collapsed_abooks' : 'collapsed_folders', old = this.env[prefname]; @@ -1794,7 +1803,7 @@ if (!this.drag_active) { if (old !== this.env[prefname]) - this.command('save-pref', { name: prefname, value: this.env[prefname] }); + this.folder_collapsed_timer = setTimeout(function(){ ref.command('save-pref', { name: prefname, value: ref.env[prefname] }); }, 10) if (this.env.unread_counts) this.set_unread_count_display(node.id, false); @@ -2546,11 +2555,10 @@ $(frame)[show ? 'show' : 'hide'](); } - if (!show && this.env.frame_lock) - this.set_busy(false, null, this.env.frame_lock); - - if (!show) + if (!show) { + this.unlock_frame(); delete this.preview_id; + } }; this.get_frame_element = function(id) @@ -2569,10 +2577,26 @@ return window.frames[frame.name]; }; - this.lock_frame = function() + this.lock_frame = function(target) + { + var rc = this.is_framed() ? parent.rcmail : this; + + if (!rc.env.frame_lock) + rc.env.frame_lock = rc.set_busy(true, 'loading'); + + if (target.frameElement) + $(target.frameElement).on('load.lock', function(e) { + rc.unlock_frame(); + $(this).off('load.lock'); + }); + }; + + this.unlock_frame = function() { - if (!this.env.frame_lock) - (this.is_framed() ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); + if (this.env.frame_lock) { + this.set_busy(false, null, this.env.frame_lock); + this.env.frame_lock = null; + } }; // list a specific page @@ -3391,7 +3415,7 @@ this.toggle_read_status = function(flag, a_uids) { var i, len = a_uids.length, - post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: flag}), + post_data = this.selection_post_data({_uid: a_uids, _flag: flag}), lock = this.display_message('markingmessage', 'loading'); // mark all message rows as read/unread @@ -3406,7 +3430,7 @@ { var i, len = a_uids.length, win = this.env.contentframe ? this.get_frame_window(this.env.contentframe) : window, - post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: flag}), + post_data = this.selection_post_data({_uid: a_uids, _flag: flag}), lock = this.display_message('markingmessage', 'loading'); // mark all message rows as flagged/unflagged @@ -3454,7 +3478,7 @@ this.flag_as_undeleted = function(a_uids) { var i, len = a_uids.length, - post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: 'undelete'}), + post_data = this.selection_post_data({_uid: a_uids, _flag: 'undelete'}), lock = this.display_message('markingmessage', 'loading'); for (i=0; i<len; i++) @@ -3466,7 +3490,7 @@ this.flag_as_deleted = function(a_uids) { var r_uids = [], - post_data = this.selection_post_data({_uid: this.uids_to_list(a_uids), _flag: 'delete'}), + post_data = this.selection_post_data({_uid: a_uids, _flag: 'delete'}), lock = this.display_message('markingmessage', 'loading'), list = this.message_list, rows = list ? list.rows : {}, @@ -3530,7 +3554,14 @@ // with select_all mode checking this.uids_to_list = function(uids) { - return this.select_all_mode ? '*' : ($.isArray(uids) ? uids.join(',') : uids); + if (this.select_all_mode) + return '*'; + + // multi-folder list of uids cannot be passed as a string (#6845) + if ($.isArray(uids) && (uids.length == 1 || String(uids[0]).indexOf('-') == -1)) + uids = uids.join(','); + + return uids; }; // Sets title of the delete button @@ -5908,7 +5939,7 @@ if (!this.ksearch_pane) { ul = $('<ul>'); this.ksearch_pane = $('<div>') - .attr({id: 'rcmKSearchpane', role: 'listbox'}) + .attr({id: 'rcmKSearchpane', role: 'listbox', 'class': 'select-menu inline'}) .css({position: 'absolute', 'z-index': 30000}) .append(ul) .appendTo(is_framed ? parent.document.body : document.body); @@ -5931,7 +5962,10 @@ this.env.contacts = []; // Calculate the results pane position and size - var pos = $(this.ksearch_input).offset(); + // Elastic: On small screen we use the width/position of the whole .ac-input element (input's parent) + var is_composite_input = $('html').is('.layout-small,.layout-phone') && $(this.ksearch_input).parents('.ac-input').length == 1, + input = is_composite_input ? $(this.ksearch_input).parents('.ac-input')[0] : $(this.ksearch_input)[0], + pos = $(input).offset(); // ... consider scroll position pos.left -= $(document.documentElement).scrollLeft(); @@ -5952,14 +5986,17 @@ } var w = $(is_framed ? parent : window).width(), + input_width = $(input).outerWidth(), left = w - pos.left > 200 ? pos.left : w - 200, + top = (pos.top + input.offsetHeight + 1), width = Math.min(400, w - left); this.ksearch_pane.css({ - left: left + 'px', - top: (pos.top + this.ksearch_input.offsetHeight + 1) + 'px', - maxWidth: width + 'px', + left: (is_composite_input ? pos.left : left) + 'px', + top: top + 'px', + maxWidth: (is_composite_input ? input_width : width) + 'px', minWidth: '200px', + width: is_composite_input ? (input_width + 'px') : 'auto', display: 'none' }); } @@ -8915,7 +8952,7 @@ this.location_href = function(url, target, frame) { if (frame) - this.lock_frame(); + this.lock_frame(target); if (typeof url == 'object') url = this.env.comm_path + '&' + $.param(url);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/js/editor.js -> roundcubemail-1.4-rc2.12.tar.gz/program/js/editor.js
Changed
@@ -69,12 +69,15 @@ } } - // secure spellchecker requests with Roundcube token // Note: must be registered only once (#1490311) if (!tinymce.registered_request_token) { tinymce.registered_request_token = true; tinymce.util.XHR.on('beforeSend', function(e) { + // secure spellchecker requests with Roundcube token e.xhr.setRequestHeader('X-Roundcube-Request', rcmail.env.request_token); + // A hacky way of setting spellchecker language (there's no API for this in Tiny) + if (e.settings && e.settings.data) + e.settings.data = e.settings.data.replace(/^(method=[a-zA-Z]+&lang=)([^&]+)/, '$1' + rcmail.env.spell_lang); }); } @@ -405,12 +408,7 @@ // get selected (spellchecker) language this.get_language = function() { - if (this.editor) { - return this.editor.settings.spellchecker_language || rcmail.env.spell_lang; - } - else if (this.spellchecker) { - return GOOGIE_CUR_LANG; - } + return rcmail.env.spell_lang; }; // set language for spellchecking @@ -419,11 +417,14 @@ var ed = this.editor; if (ed) { + // TODO: this has no effect in recent Tiny versions ed.settings.spellchecker_language = lang; } if (ed = this.spellchecker) { ed.setCurrentLanguage(lang); } + + rcmail.env.spell_lang = lang; }; // replace selection with text snippet
View file
roundcubemail-1.4-rc1.221.tar.gz/program/js/googiespell.js -> roundcubemail-1.4-rc2.12.tar.gz/program/js/googiespell.js
Changed
@@ -470,62 +470,52 @@ list = document.createElement('ul'); $(this.error_window).html(''); - $(list).addClass('googie_list').attr('googie_action_btn', '1'); + $(list).addClass('googie_list toolbarmenu').attr('googie_action_btn', '1'); // Build up the result list var suggestions = this.results[id]['suggestions'], offset = this.results[id]['attrs']['o'], len = this.results[id]['attrs']['l'], - row, item, dummy; + item, dummy; // [Add to dictionary] button if (this.has_dictionary && !$(elm).attr('is_corrected')) { - row = document.createElement('li'), - dummy = document.createElement('span'); + dummy = $('<a>').text(this.lang_learn_word).addClass('googie_add_to_dict active'); - $(dummy).text(this.lang_learn_word).addClass('googie_add_to_dict'); - $(row).attr('googie_action_btn', '1').css('cursor', 'default') + $('<li>').attr('googie_action_btn', '1').css('cursor', 'default') .mouseover(ref.item_onmouseover) .mouseout(ref.item_onmouseout) .click(function(e) { ref.learnWord(elm, id); ref.ignoreError(elm, id); - }); - - row.appendChild(dummy); - list.appendChild(row); + }) + .append(dummy) + .appendTo(list); } for (var i=0, len=suggestions.length; i < len; i++) { - row = document.createElement('li'), - dummy = document.createElement('span'); - - $(dummy).html(suggestions[i]); + dummy = $('<a>').html(suggestions[i]).addClass('active'); - $(row).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout) - .click(function(e) { ref.correctError(id, elm, e.target.firstChild); }); - - row.appendChild(dummy); - list.appendChild(row); + $('<li>').mouseover(this.item_onmouseover).mouseout(this.item_onmouseout) + .click(function(e) { ref.correctError(id, elm, e.target.firstChild); }) + .append(dummy) + .appendTo(list); } // The element is changed, append the revert if (elm.is_changed && elm.innerHTML != elm.old_value) { - var old_value = elm.old_value, - revert_row = document.createElement('li'), - rev_span = document.createElement('span'); + var old_value = elm.old_value; - $(rev_span).addClass('googie_list_revert').html(this.lang_revert + ' ' + old_value); + dummy = $('<a>').addClass('googie_list_revert active').html(this.lang_revert + ' ' + old_value); - $(revert_row).mouseover(this.item_onmouseover).mouseout(this.item_onmouseout) + $('<li>').mouseover(this.item_onmouseover).mouseout(this.item_onmouseout) .click(function(e) { ref.updateOrginalText(offset, elm.innerHTML, old_value, id); $(elm).removeAttr('is_corrected').css('color', '#b91414').html(old_value); ref.hideErrorWindow(); - }); - - revert_row.appendChild(rev_span); - list.appendChild(revert_row); + }) + .append(dummy) + .appendTo(list); } // Append the edit box @@ -546,10 +536,9 @@ return false; }; - $(edit_input).width(120) - .css({'margin': 0, 'padding': 0}) - .val($(elm).text()).attr('googie_action_btn', '1'); - $(edit_row).css('cursor', 'default').attr('googie_action_btn', '1'); + $(edit_input).width(120).val($(elm).text()).attr('googie_action_btn', '1'); + $(edit_row).css('cursor', 'default').attr('googie_action_btn', '1') + .on('click', function() { return false; }); // roundcube modified image use if (this.use_ok_pic) { @@ -562,15 +551,15 @@ $(ok_pic).text('OK'); } - $(ok_pic).addClass('mainaction save googie_ok_button').click(onsub); + $(ok_pic).addClass('mainaction save googie_ok_button btn-sm').click(onsub); $(edit_form).attr('googie_action_btn', '1') - .css({'margin': 0, 'padding': 0, 'cursor': 'default', 'white-space': 'nowrap'}) - .submit(onsub); + .css({'cursor': 'default', 'white-space': 'nowrap'}) + .submit(onsub) + .append(edit_input) + .append(ok_pic) + .appendTo(edit_row); - edit_form.appendChild(edit_input); - edit_form.appendChild(ok_pic); - edit_row.appendChild(edit_form); list.appendChild(edit_row); // Append extra menu items
View file
roundcubemail-1.4-rc1.221.tar.gz/program/js/list.js -> roundcubemail-1.4-rc2.12.tar.gz/program/js/list.js
Changed
@@ -732,25 +732,13 @@ { var row = this.rows[id], evtarget = rcube_event.get_target(e), - mod_key = rcube_event.get_modifier(e); + mod_key = rcube_event.get_modifier(e), + action = (row.expanded ? 'collapse' : 'expand') + (mod_key == CONTROL_KEY || this.multiexpand ? '_all' : ''); // Don't treat double click on the expando as double click on the message. row.clicked = 0; - if (row.expanded) { - evtarget.className = 'collapsed'; - if (mod_key == CONTROL_KEY || this.multiexpand) - this.collapse_all(row); - else - this.collapse(row); - } - else { - evtarget.className = 'expanded'; - if (mod_key == CONTROL_KEY || this.multiexpand) - this.expand_all(row); - else - this.expand(row); - } + this[action](row); }, collapse: function(row) @@ -759,6 +747,7 @@ new_row = row ? row.obj.nextSibling : null; row.expanded = false; + this.update_expando(row.id); this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj }); while (new_row) { @@ -814,6 +803,7 @@ last_expanded_parent_depth = p.depth; $(new_row).css('display', ''); r.expanded = true; + this.update_expando(r.id, true); this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row }); } } @@ -828,6 +818,7 @@ this.resize(); this.triggerEvent('listupdate'); + return false; }, @@ -843,7 +834,7 @@ this.update_expando(row.id); this.triggerEvent('expandcollapse', { uid:row.uid, expanded:row.expanded, obj:row.obj }); - // don't collapse sub-root tree in multiexpand mode + // don't collapse sub-root tree in multiexpand mode if (depth && this.multiexpand) return false; } @@ -860,10 +851,12 @@ if (row || r.depth) $(new_row).css('display', 'none'); - if (r.has_children && r.expanded) { + if (r.expanded) { r.expanded = false; - this.update_expando(r.id, false); - this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row }); + if (r.has_children) { + this.update_expando(r.id); + this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row }); + } } } } @@ -872,6 +865,7 @@ this.resize(); this.triggerEvent('listupdate'); + return false; }, @@ -899,10 +893,12 @@ break; $(new_row).css('display', ''); - if (r.has_children && !r.expanded) { + if (!r.expanded) { r.expanded = true; - this.update_expando(r.id, true); - this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row }); + if (r.has_children) { + this.update_expando(r.id, true); + this.triggerEvent('expandcollapse', { uid:r.uid, expanded:r.expanded, obj:new_row }); + } } } } @@ -911,6 +907,7 @@ this.resize(); this.triggerEvent('listupdate'); + return false; }, @@ -1123,7 +1120,7 @@ /** - * Select first row + * Select first row */ select_first: function(mod_key) { @@ -1429,29 +1426,20 @@ mod_key = rcube_event.get_modifier(e); switch (keyCode) { - case 40: - case 38: - case 63233: // "down", in safari keypress - case 63232: // "up", in safari keypress + case 37: // Left arrow + case 39: // Right arrow + case 40: // Up arrow + case 38: // Down arrow + case 63233: // "down" in Safari keypress + case 63232: // "up" in Safari keypress // Stop propagation so that the browser doesn't scroll rcube_event.cancel(e); return this.use_arrow_key(keyCode, mod_key); - case 32: + case 32: // Space rcube_event.cancel(e); return this.select_row(this.last_selected, mod_key, true); - case 37: // Left arrow key - case 39: // Right arrow key - // Stop propagation - rcube_event.cancel(e); - var ret = this.use_arrow_key(keyCode, mod_key); - this.key_pressed = keyCode; - this.modkey = mod_key; - this.triggerEvent('keypress'); - this.modkey = 0; - return ret; - case 36: // Home this.select_first(mod_key); return rcube_event.cancel(e); @@ -1460,7 +1448,15 @@ this.select_last(mod_key); return rcube_event.cancel(e); - case 27: + case 65: // Ctrl + A + if (mod_key == CONTROL_KEY && this.multiselect) { + this.select_first(); + this.select_last(SHIFT_KEY); + return rcube_event.cancel(e); + } + break; + + case 27: // Esc if (this.drag_active) return this.drag_mouse_up(e); @@ -1498,43 +1494,39 @@ */ use_arrow_key: function(keyCode, mod_key) { - var new_row, - selected_row = this.rows[this.last_selected]; + var new_row, selected_row = this.rows[this.last_selected]; - // Safari uses the nonstandard keycodes 63232/63233 for up/down, if we're + if (!selected_row) { + // select the first row if none selected yet + this.select_first(CONTROL_KEY); + } + // Safari uses the non-standard keycodes 63232/63233 for up/down, if we're // using the keypress event (but not the keydown or keyup event). - if (keyCode == 40 || keyCode == 63233) // down arrow key pressed + else if (keyCode == 40 || keyCode == 63233) // Down arrow new_row = this.get_next_row(); - else if (keyCode == 38 || keyCode == 63232) // up arrow key pressed + else if (keyCode == 38 || keyCode == 63232) // Up arrow new_row = this.get_prev_row(); - else { - if (!selected_row || !selected_row.has_children) - return; - - // expand - if (keyCode == 39) { - if (selected_row.expanded) - return; - - if (mod_key == CONTROL_KEY || this.multiexpand) - this.expand_all(selected_row); - else - this.expand(selected_row); - } - // collapse + else if (keyCode == 39 && selected_row.has_children) { // Right arrow + if (!selected_row.expanded) + this.expand_all(selected_row); else { - if (!selected_row.expanded) - return; - - if (mod_key == CONTROL_KEY || this.multiexpand) - this.collapse_all(selected_row); - else - this.collapse(selected_row); + // jump to the first child + new_row = this.get_next_row(); + mod_key = null; } + } + else if (keyCode == 37) { // Left arrow + if (selected_row.expanded && selected_row.has_children && (!selected_row.parent_uid || !this.multiexpand)) + this.collapse_all(selected_row); + else if (selected_row.parent_uid) { + // jump to the top-most or closest parent + if (mod_key == CONTROL_KEY) + new_row = this.rows[this.find_root(selected_row.uid)]; + else + new_row = this.rows[selected_row.parent_uid]; - this.update_expando(selected_row.id, selected_row.expanded); - - return false; + mod_key = null; + } } if (new_row) { @@ -1545,10 +1537,6 @@ this.select_row(new_row.uid, mod_key, false); this.scrollto(new_row.uid); } - else if (!new_row && !selected_row) { - // select the first row if none selected yet - this.select_first(CONTROL_KEY); - } return false; },
View file
roundcubemail-1.4-rc1.221.tar.gz/program/js/treelist.js -> roundcubemail-1.4-rc2.12.tar.gz/program/js/treelist.js
Changed
@@ -81,6 +81,8 @@ this.container = container; this.expand = expand; this.collapse = collapse; + this.expand_all = expand_all; + this.collapse_all = collapse_all; this.select = select; this.render = render; this.reset = reset; @@ -210,10 +212,8 @@ }); } - /////// private methods - /** - * Collaps a the node with the given ID + * Collapse a the node with the given ID */ function collapse(id, recursive, set) { @@ -254,6 +254,30 @@ } /** + * Collapse all expanded nodes + */ + function collapse_all() + { + $.each(indexbyid, function(id, data) { + if (data.children.length > 0 && !data.collapsed) { + collapse(id); + } + }); + } + + /** + * Expand all collapsed nodes + */ + function expand_all() + { + $.each(indexbyid, function(id, data) { + if (data.children.length > 0 && data.collapsed) { + collapse(id, false, false); + } + }); + } + + /** * Select a tree node by it's ID */ function select(id)
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/README.md -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/README.md
Changed
@@ -37,6 +37,7 @@ - Net_IDNA2 0.1.1 or newer - Auth_SASL 1.0.6 or newer - Kolab/Net_LDAP3 1.0.6 or newer (for LDAP addressbook) +- Masterminds/HTML5 2.5.x (optional HTML parser) USAGE
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/bootstrap.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/bootstrap.php
Changed
@@ -169,6 +169,10 @@ /** * Make sure the string ends with a slash + * + * @param string $str A string + * + * @return string A string ending with a slash */ function slashify($str) { @@ -177,6 +181,10 @@ /** * Remove slashes at the end of the string + * + * @param string $str A string + * + * @return string A string ending with no slash */ function unslashify($str) { @@ -285,6 +293,12 @@ /** * Remove all non-ascii and non-word chars except ., -, _ + * + * @param string $str A string + * @param bool $css_id The result may be used as CSS identifier + * @param string $replace_with Replacement character + * + * @return string Clean string */ function asciiwords($str, $css_id = false, $replace_with = '') { @@ -298,7 +312,7 @@ * @param string $str String to check * @param bool $control_chars Includes control characters * - * @return bool + * @return bool True if the string contains ASCII-only, False otherwise */ function is_ascii($str, $control_chars = true) { @@ -368,12 +382,17 @@ ); } -/** - * intl replacement functions - */ +// intl replacement functions if (!function_exists('idn_to_utf8')) { + /** + * Convert domain name from IDNA ASCII to Unicode + * + * @param string $domain Domain to convert in an IDNA ASCII-compatible format. + * + * @return string|false Unicode domain, False on failure + */ function idn_to_utf8($domain) { static $idn, $loaded; @@ -388,6 +407,7 @@ $domain = $idn->decode($domain); } catch (Exception $e) { + return false; } } @@ -397,6 +417,13 @@ if (!function_exists('idn_to_ascii')) { + /** + * Convert domain name to IDNA ASCII-compatible form Unicode + * + * @param string $domain The domain to convert, which must be UTF-8 encoded + * + * @return string|false The domain name encoded in ASCII-compatible form, False on failure + */ function idn_to_ascii($domain) { static $idn, $loaded; @@ -411,6 +438,7 @@ $domain = $idn->encode($domain); } catch (Exception $e) { + return false; } } @@ -421,6 +449,10 @@ /** * Use PHP5 autoload for dynamic class loading * + * @param string $classname Class name + * + * @return bool True when the class file has been found + * * @todo Make Zend, PEAR etc play with this * @todo Make our classes conform to a more straight forward CS. */
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/cache/apc.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/cache/apc.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Cache - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_cache_apc extends rcube_cache {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/cache/db.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/cache/db.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Cache - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_cache_db extends rcube_cache {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/cache/memcache.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/cache/memcache.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Cache - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_cache_memcache extends rcube_cache { @@ -96,7 +94,7 @@ if (!$seen["$host:$port"]++) { $available--; rcube::raise_error(array( - 'code' => 604, 'type' => 'db', + 'code' => 604, 'type' => 'memcache', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Memcache failure on host $host:$port"), true, false);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/cache/memcached.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/cache/memcached.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Cache - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_cache_memcached extends rcube_cache {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/cache/redis.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/cache/redis.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Cache - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_cache_redis extends rcube_cache { @@ -111,6 +109,7 @@ } self::$redis = new Redis; + $failures = 0; foreach ($hosts as $redis_host) { // explode individual fields @@ -128,47 +127,40 @@ try { if (self::$redis->connect($host, $port) === false) { - rcube::raise_error(array( - 'code' => 604, - 'type' => 'redis', - 'line' => __LINE__, - 'file' => __FILE__, - 'message' => "Could not connect to Redis server. Please check host and port" - ), - true, true); + throw new Exception("Could not connect to Redis server. Please check host and port."); } if ($password !== null && self::$redis->auth($password) === false) { - rcube::raise_error(array( - 'code' => 604, - 'type' => 'redis', - 'line' => __LINE__, - 'file' => __FILE__, - 'message' => "Could not authenticate with Redis server. Please check password." - ), - true, true); + throw new Exception("Could not authenticate with Redis server. Please check password."); } if ($database !== null && self::$redis->select($database) === false) { - rcube::raise_error(array( - 'code' => 604, - 'type' => 'redis', - 'line' => __LINE__, - 'file' => __FILE__, - 'message' => "Could not select Redis database. Please check database setting." - ), - true, true); + throw new Exception("Could not select Redis database. Please check database setting."); } } catch (Exception $e) { - rcube::raise_error($e, true, true); + rcube::raise_error($e, true, false); + $failures++; } } - if (self::$redis->ping() !== "+PONG") { + if (count($hosts) === $failures) { self::$redis = false; } + if (self::$redis) { + try { + $ping = self::$redis->ping(); + if ($ping !== true && $ping !== "+PONG") { + throw new Exception("Redis connection failure. Ping failed."); + } + } + catch (Exception $e) { + self::$redis = false; + rcube::raise_error($e, true, false); + } + } + return self::$redis; } @@ -201,7 +193,13 @@ return false; } - $data = self::$redis->get($key); + try { + $data = self::$redis->get($key); + } + catch (Exception $e) { + raise_error($e, true, false); + return false; + } if ($this->debug) { $this->debug('get', $key, $data); @@ -224,7 +222,13 @@ return false; } - $result = self::$redis->setEx($key, $this->ttl, $data); + try { + $result = self::$redis->setEx($key, $this->ttl, $data); + } + catch (Exception $e) { + raise_error($e, true, false); + return false; + } if ($this->debug) { $this->debug('set', $key, $data, $result); @@ -246,7 +250,14 @@ return false; } - $result = self::$redis->delete($key); + try { + $fname = method_exists(self::$redis, 'del') ? 'del' : 'delete'; + $result = self::$redis->$fname($key); + } + catch (Exception $e) { + raise_error($e, true, false); + return false; + } if ($this->debug) { $this->debug('delete', $key, null, $result);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/db/mssql.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/db/mssql.php
Changed
@@ -99,7 +99,7 @@ $args = $args[0]; } - return '(' . join('+', $args) . ')'; + return '(' . implode('+', $args) . ')'; } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/db/mysql.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/db/mysql.php
Changed
@@ -70,7 +70,7 @@ $args = $args[0]; } - return 'CONCAT(' . join(', ', $args) . ')'; + return 'CONCAT(' . implode(', ', $args) . ')'; } /** @@ -141,6 +141,10 @@ $result[PDO::MYSQL_ATTR_SSL_CA] = $dsn['ca']; } + if (isset($dsn['verify_server_cert'])) { + $result[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = rcube_utils::get_boolean($dsn['verify_server_cert']); + } + // Always return matching (not affected only) rows count $result[PDO::MYSQL_ATTR_FOUND_ROWS] = true;
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/html.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/html.php
Changed
@@ -226,7 +226,8 @@ /** * Derrived method to create <iframe></iframe> * - * @param mixed $attr Hash array with tag attributes or string with frame source (src) + * @param mixed $attr Hash array with tag attributes or string with frame source (src) + * @param string $cont Tag content * * @return string HTML code * @see html::tag() @@ -775,6 +776,10 @@ $cell->attrib = $attr; $cell->content = $cont; + if (!isset($this->rows[$this->rowindex])) { + $this->rows[$this->rowindex] = new stdClass; + } + $this->rows[$this->rowindex]->cells[$this->colindex] = $cell; $this->colindex += max(1, intval($attr['colspan'])); @@ -935,13 +940,14 @@ $this->content = $thead . ($this->tagname == 'table' ? self::tag('tbody', null, $tbody) : $tbody); unset($this->attrib['cols'], $this->attrib['rowsonly']); + return parent::show(); } /** * Count number of rows * - * @return The number of rows + * @return int The number of rows */ public function size() {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube.php
Changed
@@ -39,108 +39,60 @@ const DEBUG_LINE_LENGTH = 4096; - /** - * Singleton instance of rcube - * - * @var rcube - */ - static protected $instance; - - /** - * Stores instance of rcube_config. - * - * @var rcube_config - */ + /** @var rcube_config Stores instance of rcube_config */ public $config; - /** - * Instance of database class. - * - * @var rcube_db - */ + /** @var rcube_db Instance of database class */ public $db; - /** - * Instance of Memcache class. - * - * @var Memcache - */ + /** @var Memcache Instance of Memcache class */ public $memcache; - /** - * Instance of Memcached class. - * - * @var Memcached - */ + /** @var Memcached Instance of Memcached class */ public $memcached; - /** - * Instance of Redis class. - * - * @var Redis - */ + /** @var Redis Instance of Redis class */ public $redis; - /** - * Instance of rcube_session class. - * - * @var rcube_session - */ + /** @var rcube_session Instance of rcube_session class */ public $session; - /** - * Instance of rcube_smtp class. - * - * @var rcube_smtp - */ + /** @var rcube_smtp Instance of rcube_smtp class */ public $smtp; - /** - * Instance of rcube_storage class. - * - * @var rcube_storage - */ + /** @var rcube_storage Instance of rcube_storage class */ public $storage; - /** - * Instance of rcube_output class. - * - * @var rcube_output - */ + /** @var rcube_output Instance of rcube_output class */ public $output; - /** - * Instance of rcube_plugin_api. - * - * @var rcube_plugin_api - */ + /** @var rcube_plugin_api Instance of rcube_plugin_api */ public $plugins; - /** - * Instance of rcube_user class. - * - * @var rcube_user - */ + /** @var rcube_user Instance of rcube_user class */ public $user; - /** - * Request status - * - * @var int - */ + /** @var int Request status */ public $request_status = 0; - /* private/protected vars */ + /** @var array Localization */ protected $texts; + + /** @var rcube_cache[] Initialized cache objects */ protected $caches = array(); + + /** @var array Registered shutdown functions */ protected $shutdown_functions = array(); + /** @var rcube Singleton instance of rcube */ + static protected $instance; + /** * This implements the 'singleton' design pattern * - * @param integer $mode Options to initialize with this instance. See rcube::INIT_WITH_* constants - * @param string $env Environment name to run (e.g. live, dev, test) + * @param int $mode Options to initialize with this instance. See rcube::INIT_WITH_* constants + * @param string $env Environment name to run (e.g. live, dev, test) * * @return rcube The one and only instance */ @@ -156,6 +108,8 @@ /** * Private constructor + * + * @param string $env Environment name to run (e.g. live, dev, test) */ protected function __construct($env = '') { @@ -168,6 +122,8 @@ /** * Initial startup function + * + * @param int $mode Options to initialize with this instance. See rcube::INIT_WITH_* constants */ protected function init($mode = 0) { @@ -461,6 +417,8 @@ /** * Callback for IMAP connection events to log session identifiers + * + * @param array $args Callback arguments */ public function storage_log_session($args) { @@ -645,9 +603,9 @@ /** * Check if the given text label exists * - * @param string $name Label name - * @param string $domain Label domain (plugin) name or '*' for all domains - * @param string $ref_domain Sets domain name if label is found + * @param string $name Label name + * @param string $domain Label domain (plugin) name or '*' for all domains + * @param string &$ref_domain Sets domain name if label is found * * @return boolean True if text exists (either in the current language or in en_US) */ @@ -876,9 +834,9 @@ /** * Encrypt a string * - * @param string $clear Clear text input - * @param string $key Encryption key to retrieve from the configuration, defaults to 'des_key' - * @param boolean $base64 Whether or not to base64_encode() the result before returning + * @param string $clear Clear text input + * @param string $key Encryption key to retrieve from the configuration, defaults to 'des_key' + * @param bool $base64 Whether or not to base64_encode() the result before returning * * @return string Encrypted text */ @@ -892,7 +850,19 @@ $method = $this->config->get_crypto_method(); $opts = defined('OPENSSL_RAW_DATA') ? OPENSSL_RAW_DATA : true; $iv = rcube_utils::random_bytes(openssl_cipher_iv_length($method), true); - $cipher = $iv . openssl_encrypt($clear, $method, $ckey, $opts, $iv); + $cipher = openssl_encrypt($clear, $method, $ckey, $opts, $iv); + + if ($cipher === false) { + self::raise_error(array( + 'file' => __FILE__, + 'line' => __LINE__, + 'message' => "Failed to encrypt data with configured cipher method: $method!" + ), true, false); + + return false; + } + + $cipher = $iv . $cipher; return $base64 ? base64_encode($cipher) : $cipher; } @@ -900,9 +870,9 @@ /** * Decrypt a string * - * @param string $cipher Encrypted text - * @param string $key Encryption key to retrieve from the configuration, defaults to 'des_key' - * @param boolean $base64 Whether or not input is base64-encoded + * @param string $cipher Encrypted text + * @param string $key Encryption key to retrieve from the configuration, defaults to 'des_key' + * @param boo $base64 Whether or not input is base64-encoded * * @return string Decrypted text */ @@ -980,7 +950,7 @@ * * @param int $mode Request method * - * @return boolean True if request token is valid false if not + * @return bool True if request token is valid false if not */ public function check_request($mode = rcube_utils::INPUT_POST) { @@ -1129,6 +1099,10 @@ * Quote a given string. * Shortcut function for rcube_utils::rep_specialchars_output() * + * @param string $str A string to quote + * @param string $mode Replace mode for tags: show|remove|strict + * @param bool $newlines Convert newlines + * * @return string HTML-quoted string */ public static function Q($str, $mode = 'strict', $newlines = true) @@ -1140,6 +1114,8 @@ * Quote a given string for javascript output. * Shortcut function for rcube_utils::rep_specialchars_output() * + * @param string $str A string to quote + * * @return string JS-quoted string */ public static function JQ($str) @@ -1151,10 +1127,10 @@ * Construct shell command, execute it and return output as string. * Keywords {keyword} are replaced with arguments * - * @param $cmd Format string with {keywords} to be replaced - * @param $values (zero, one or more arrays can be passed) + * @param string $cmd Format string with {keywords} to be replaced + * @param mixed $values,... (zero, one or more arrays can be passed) * - * @return output of command. shell errors not detectable + * @return string Output of command. Shell errors not detectable */ public static function exec(/* $cmd, $values1 = array(), ... */) { @@ -1190,13 +1166,13 @@ } } - $replacements[$tag] = join(" ", $parts); + $replacements[$tag] = implode(' ', $parts); } // use strtr behaviour of going through source string once $cmd = strtr($cmd, $replacements); - return (string)shell_exec($cmd); + return (string) shell_exec($cmd); } /** @@ -1223,7 +1199,7 @@ $msg[] = !is_string($arg) ? var_export($arg, true) : $arg; } - self::write_log('console', join(";\n", $msg)); + self::write_log('console', implode(";\n", $msg)); } /** @@ -1328,8 +1304,8 @@ * - message: Error message * - file: File where error occurred * - line: Line where error occurred - * @param boolean $log True to log the error - * @param boolean $terminate Terminate script execution + * @param bool $log True to log the error + * @param bool $terminate Terminate script execution */ public static function raise_error($arg = array(), $log = false, $terminate = false) { @@ -1384,6 +1360,9 @@ else if ($terminate && is_object(self::$instance->output)) { self::$instance->output->raise_error($arg['code'], $arg['message']); } + else if ($terminate) { + header("HTTP/1.0 500 Internal Error"); + } // terminate script if ($terminate) { @@ -1561,6 +1540,8 @@ /** * Get the per-user log directory + * + * @return string|false Per-user log directory if it exists and is writable, False otherwise */ protected function get_user_log_dir() { @@ -1622,17 +1603,17 @@ /** * Send the given message using the configured method. * - * @param object $message Reference to Mail_MIME object - * @param string $from Sender address string - * @param array|string $mailto Either a comma-separated list of recipients (RFC822 compliant), - * or an array of recipients, each RFC822 valid - * @param array $error SMTP error array (reference) - * @param string $body_file Location of file with saved message body (reference), - * used when delay_file_io is enabled - * @param array $options SMTP options (e.g. DSN request) - * @param bool $disconnect Close SMTP connection ASAP - * - * @return boolean Send status. + * @param Mail_Mime &$message Reference to Mail_MIME object + * @param string $from Sender address string + * @param array|string $mailto Either a comma-separated list of recipients (RFC822 compliant), + * or an array of recipients, each RFC822 valid + * @param array &$error SMTP error array (reference) + * @param string &$body_file Location of file with saved message body (reference), + * used when delay_file_io is enabled + * @param array $options SMTP options (e.g. DSN request) + * @param bool $disconnect Close SMTP connection ASAP + * + * @return bool Send status. */ public function deliver_message(&$message, $from, $mailto, &$error, &$body_file = null, $options = null, $disconnect = false) @@ -1706,7 +1687,7 @@ if (!$sent) { self::raise_error(array('code' => 800, 'type' => 'smtp', 'line' => __LINE__, 'file' => __FILE__, - 'message' => join("\n", $response)), true, false); + 'message' => implode("\n", $response)), true, false); // allow plugins to catch sending errors with the same parameters as in 'message_before_send' $this->plugins->exec_hook('message_send_error', $plugin + array('error' => $error)); @@ -1727,7 +1708,7 @@ rcube_utils::remote_addr(), $headers['Message-ID'], implode(', ', $mailto), - !empty($response) ? join('; ', $response) : '')); + !empty($response) ? implode('; ', $response) : '')); } } @@ -1759,6 +1740,11 @@ { /** * Triggers a plugin hook. + * + * @param string $hook Hook name + * @param array $args Hook arguments + * + * @return array Hook arguments * @see rcube_plugin_api::exec_hook() */ public function exec_hook($hook, $args = array())
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_addressbook.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_addressbook.php
Changed
@@ -260,7 +260,7 @@ * * @return mixed The created record ID on success, False on error */ - function insert($save_data, $check=false) + function insert($save_data, $check = false) { /* empty for read-only address books */ } @@ -273,7 +273,7 @@ * * @return array List of created record IDs */ - function insertMultiple($recset, $check=false) + function insertMultiple($recset, $check = false) { $ids = array(); if (is_object($recset) && is_a($recset, rcube_result_set)) { @@ -282,6 +282,7 @@ $ids[] = $insert; } } + return $ids; } @@ -508,7 +509,7 @@ // default display name composition according to vcard standard if (!$fn) { - $fn = join(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']))); + $fn = implode(' ', array_filter(array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix']))); $fn = trim(preg_replace('/\s+/u', ' ', $fn)); } @@ -543,18 +544,24 @@ { static $compose_mode; - if (!isset($compose_mode)) // cache this + if (!isset($compose_mode)) { $compose_mode = rcube::get_instance()->config->get('addressbook_name_listing', 0); + } - if ($compose_mode == 3) - $fn = join(' ', array($contact['surname'] . ',', $contact['firstname'], $contact['middlename'])); - else if ($compose_mode == 2) - $fn = join(' ', array($contact['surname'], $contact['firstname'], $contact['middlename'])); - else if ($compose_mode == 1) - $fn = join(' ', array($contact['firstname'], $contact['middlename'], $contact['surname'])); - else if ($compose_mode == 0) - $fn = $contact['name'] ?: join(' ', array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix'])); - else { + switch ($compose_mode) { + case 3: + $fn = implode(' ', array($contact['surname'] . ',', $contact['firstname'], $contact['middlename'])); + break; + case 2: + $fn = implode(' ', array($contact['surname'], $contact['firstname'], $contact['middlename'])); + break; + case 1: + $fn = implode(' ', array($contact['firstname'], $contact['middlename'], $contact['surname'])); + break; + case 0: + $fn = $contact['name'] ?: implode(' ', array($contact['prefix'], $contact['firstname'], $contact['middlename'], $contact['surname'], $contact['suffix'])); + break; + default: $plugin = rcube::get_instance()->plugins->exec_hook('contact_listname', array('contact' => $contact)); $fn = $plugin['fn']; }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_base_replacer.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_base_replacer.php
Changed
@@ -23,7 +23,6 @@ * * @package Framework * @subpackage Utils - * @author Thomas Bruederli <roundcube@gmail.com> */ class rcube_base_replacer {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_browser.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_browser.php
Changed
@@ -25,46 +25,79 @@ */ class rcube_browser { - function __construct() + /** @var float $ver Browser version */ + public $ver = 0; + + /** @var bool $win Browser OS is Windows */ + public $win = false; + + /** @var bool $mac Browser OS is Mac */ + public $mac = false; + + /** @var bool $linux Browser OS is Linux */ + public $linux = false; + + /** @var bool $unix Browser OS is Unix */ + public $unix = false; + + /** @var bool $webkit Browser uses WebKit engine */ + public $webkit = false; + + /** @var bool $opera Browser is Opera */ + public $opera = false; + + /** @var bool $chrome Browser is Chrome */ + public $chrome = false; + + /** @var bool $ie Browser is Internet Explorer */ + public $ie = false; + + /** @var bool $edge Browser is Edge */ + public $edge = false; + + /** @var bool $safari Browser is Safari */ + public $safari = false; + + /** @var bool $mz Browser is Mozilla Firefox */ + public $mz = false; + + + /** + * Object constructor + */ + public function __construct() { $HTTP_USER_AGENT = strtolower($_SERVER['HTTP_USER_AGENT']); - $this->ver = 0; + // Operating system detection $this->win = strpos($HTTP_USER_AGENT, 'win') != false; $this->mac = strpos($HTTP_USER_AGENT, 'mac') != false; $this->linux = strpos($HTTP_USER_AGENT, 'linux') != false; $this->unix = strpos($HTTP_USER_AGENT, 'unix') != false; + // Engine detection $this->webkit = strpos($HTTP_USER_AGENT, 'applewebkit') !== false; $this->opera = strpos($HTTP_USER_AGENT, 'opera') !== false || ($this->webkit && strpos($HTTP_USER_AGENT, 'opr/') !== false); - $this->ns = strpos($HTTP_USER_AGENT, 'netscape') !== false; - $this->chrome = !$this->opera && strpos($HTTP_USER_AGENT, 'chrome') !== false; - $this->ie = !$this->opera && (strpos($HTTP_USER_AGENT, 'compatible; msie') !== false || strpos($HTTP_USER_AGENT, 'trident/') !== false); - $this->safari = !$this->opera && !$this->chrome && ($this->webkit || strpos($HTTP_USER_AGENT, 'safari') !== false); - $this->mz = !$this->ie && !$this->safari && !$this->chrome && !$this->ns && !$this->opera && strpos($HTTP_USER_AGENT, 'mozilla') !== false; - - if ($this->opera) { - if (preg_match('/(opera|opr)\/([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { - $this->ver = (float) $regs[2]; - } + $this->edge = strpos($HTTP_USER_AGENT, 'edge/') !== false; + $this->ie = !$this->opera && !$this->edge && (strpos($HTTP_USER_AGENT, 'compatible; msie') !== false || strpos($HTTP_USER_AGENT, 'trident/') !== false); + $this->chrome = !$this->opera && !$this->edge && strpos($HTTP_USER_AGENT, 'chrome') !== false; + $this->safari = !$this->opera && !$this->chrome && !$this->edge + && ($this->webkit || strpos($HTTP_USER_AGENT, 'safari') !== false); + $this->mz = !$this->ie && !$this->edge && !$this->safari && !$this->chrome && !$this->opera + && strpos($HTTP_USER_AGENT, 'mozilla') !== false; + + // Version detection + if ($this->edge && preg_match('/edge\/([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { + $this->ver = (float) $regs[1]; } - else if (preg_match('/(chrome|msie|version|khtml)(\s*|\/)([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { + else if ($this->opera && preg_match('/(opera|opr)(\s*|\/)([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { $this->ver = (float) $regs[3]; } - else if (preg_match('/rv:([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { + else if ($this->safari && preg_match('/(version|safari)\/([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { $this->ver = (float) $regs[1]; } - - if (preg_match('/ ([a-z]{2})-([a-z]{2})/', $HTTP_USER_AGENT, $regs)) { - $this->lang = $regs[1]; - } - else { - $this->lang = 'en'; + else if (preg_match('/(chrome|khtml|version|msie|rv:)(\s*|\/)([0-9.]+)/', $HTTP_USER_AGENT, $regs)) { + $this->ver = (float) $regs[3]; } - - $this->dom = $this->mz || $this->safari || ($this->ie && $this->ver>=5) || ($this->opera && $this->ver>=7); - $this->pngalpha = $this->mz || $this->safari || ($this->ie && $this->ver>=5.5) || - ($this->ie && $this->ver>=5 && $this->mac) || ($this->opera && $this->ver>=7); - $this->imgdata = !$this->ie; } }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_cache.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_cache.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Cache - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_cache {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_charset.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_charset.php
Changed
@@ -17,6 +17,7 @@ +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | | Author: Aleksander Machniak <alec@alec.pl> | + | Author: Edmund Grimley Evans <edmundo@rano.org> | +-----------------------------------------------------------------------+ */ @@ -25,9 +26,6 @@ * * @package Framework * @subpackage Core - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> - * @author Edmund Grimley Evans <edmundo@rano.org> */ class rcube_charset {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_config.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_config.php
Changed
@@ -633,7 +633,7 @@ */ public function get_error() { - return empty($this->errors) ? false : join("\n", $this->errors); + return empty($this->errors) ? false : implode("\n", $this->errors); } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_contacts.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_contacts.php
Changed
@@ -294,10 +294,8 @@ $required = array($required); } - $where = $and_where = $post_search = array(); + $where = $post_search = array(); $mode = intval($mode); - $WS = ' '; - $AS = self::SEPARATOR; // direct ID search if ($fields == 'ID' || $fields == $this->primary_key) { @@ -338,7 +336,7 @@ foreach ((array)$fields as $idx => $col) { $groups[] = $this->fulltext_sql_where($word, $mode, $col); } - $where[] = '(' . join(' OR ', $groups) . ')'; + $where[] = '(' . implode(' OR ', $groups) . ')'; } } @@ -349,7 +347,7 @@ if (!empty($where)) { // use AND operator for advanced searches - $where = join(" AND ", $where); + $where = implode(' AND ', $where); } // Post-searching in vCard data fields @@ -357,7 +355,7 @@ if (!empty($post_search) || !empty($required)) { $ids = array(0); // build key name regexp - $regexp = '/^(' . implode(array_keys($post_search), '|') . ')(?:.*)$/'; + $regexp = '/^(' . implode('|', array_keys($post_search)) . ')(?:.*)$/'; // use initial WHERE clause, to limit records number if possible if (!empty($where)) $this->set_search_set($where); @@ -390,7 +388,7 @@ if (!empty($required)) { foreach ($required as $req) { $hit = false; - foreach ($row as $c => $values) { + foreach (array_keys($row) as $c) { if ($c === $req || strpos($c, $req.':') === 0) { if ((is_string($row[$c]) && strlen($row[$c])) || !empty($row[$c])) { $hit = true; @@ -460,7 +458,7 @@ } } - return count($where) ? '(' . join(" $bool ", $where) . ')' : ''; + return count($where) ? '(' . implode(" $bool ", $where) . ')' : ''; } /** @@ -645,9 +643,9 @@ if (!$existing->count && !empty($a_insert_cols)) { $this->db->query( - "INSERT INTO " . $this->db->table_name($this->db_name, true). - " (`user_id`, `changed`, `del`, ".join(', ', $a_insert_cols).")". - " VALUES (".intval($this->user_id).", ".$this->db->now().", 0, ".join(', ', $a_insert_values).")" + "INSERT INTO " . $this->db->table_name($this->db_name, true) + . " (`user_id`, `changed`, `del`, " . implode(', ', $a_insert_cols) . ")" + . " VALUES (" . intval($this->user_id) . ", " . $this->db->now() . ", 0, " . implode(', ', $a_insert_values) . ")" ); $insert_id = $this->db->insert_id($this->db_name); @@ -679,11 +677,11 @@ if (!empty($write_sql)) { $this->db->query( - "UPDATE " . $this->db->table_name($this->db_name, true). - " SET `changed` = ".$this->db->now().", ".join(', ', $write_sql). - " WHERE `contact_id` = ?". - " AND `user_id` = ?". - " AND `del` <> 1", + "UPDATE " . $this->db->table_name($this->db_name, true) + . " SET `changed` = " . $this->db->now() . ", " . implode(', ', $write_sql) + . " WHERE `contact_id` = ?" + . " AND `user_id` = ?" + . " AND `del` <> 1", $id, $this->user_id ); @@ -744,7 +742,7 @@ if (isset($value)) $vcard->set($field, $value, $section); if ($fulltext && is_array($value)) - $words .= ' ' . rcube_utils::normalize_string(join(" ", $value)); + $words .= ' ' . rcube_utils::normalize_string(implode(' ', $value)); else if ($fulltext && strlen($value) >= 3) $words .= ' ' . rcube_utils::normalize_string($value); } @@ -753,21 +751,24 @@ foreach ($this->table_cols as $col) { $key = $col; - if (!isset($save_data[$key])) + if (!isset($save_data[$key])) { $key .= ':home'; + } if (isset($save_data[$key])) { - if (is_array($save_data[$key])) - $out[$col] = join(self::SEPARATOR, $save_data[$key]); - else + if (is_array($save_data[$key])) { + $out[$col] = implode(self::SEPARATOR, $save_data[$key]); + } + else { $out[$col] = $save_data[$key]; + } } } // save all e-mails in database column - $out['email'] = join(self::SEPARATOR, $vcard->email); + $out['email'] = implode(self::SEPARATOR, $vcard->email); // join words for fulltext search - $out['words'] = join(" ", array_unique(explode(" ", $words))); + $out['words'] = implode(' ', array_unique(explode(' ', $words))); return $out; }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_csv2vcard.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_csv2vcard.php
Changed
@@ -22,7 +22,6 @@ * * @package Framework * @subpackage Addressbook - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_csv2vcard { @@ -483,6 +482,10 @@ /** * Parse CSV file line + * + * @param string $line Line of text from CSV file + * + * @return array CSV data extracted from the line */ protected function parse_line($line) { @@ -512,6 +515,8 @@ /** * Parse CSV header line, detect fields mapping + * + * @param array $elements Array of field names from a first line in CSV file */ protected function parse_header($elements) { @@ -574,6 +579,8 @@ /** * Convert CSV data row to vCard + * + * @param array $data CSV data array */ protected function csv_to_vcard($data) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_db.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_db.php
Changed
@@ -914,7 +914,7 @@ $name[] = $start . $elem . $end; } - return implode($name, '.'); + return implode('.', $name); } /** @@ -1010,7 +1010,7 @@ $args = $args[0]; } - return '(' . join(' || ', $args) . ')'; + return '(' . implode(' || ', $args) . ')'; } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_html2text.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_html2text.php
Changed
@@ -666,7 +666,8 @@ * Callback function for preg_replace_callback use. * * @param array $matches PREG matches - * @return string + * + * @return string Element content */ public function tags_preg_callback($matches) { @@ -686,7 +687,8 @@ * Callback function for preg_replace_callback use in PRE content handler. * * @param array $matches PREG matches - * @return string + * + * @return string PRE content */ public function pre_preg_callback($matches) { @@ -697,6 +699,7 @@ * Strtoupper function with HTML tags and entities handling. * * @param string $str Text to convert + * * @return string Converted text */ private function _toupper($str) @@ -718,6 +721,7 @@ * Strtoupper multibyte wrapper function with HTML entities handling. * * @param string $str Text to convert + * * @return string Converted text */ private function _strtoupper($str)
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_image.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_image.php
Changed
@@ -395,7 +395,9 @@ } /** - * Checks if image format conversion is supported + * Checks if image format conversion is supported (for specified mimetype). + * + * @param string $mimetype Mimetype name * * @return boolean True if specified format can be converted to another format */ @@ -441,6 +443,10 @@ /** * Check if we have enough memory to load specified image + * + * @param array Hash array with image props like channels, width, height + * + * @return bool True if there's enough memory to process the image, False otherwise */ private function mem_check($props) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_imap.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_imap.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_imap extends rcube_storage { @@ -644,7 +642,7 @@ $vendor = (string) (!empty($ident) ? $ident['name'] : ''); $ident = strtolower($vendor . ' ' . $this->conn->data['GREETING']); - $vendors = array('cyrus', 'dovecot', 'uw-imap', 'gmail', 'hmail'); + $vendors = array('cyrus', 'dovecot', 'uw-imap', 'gimap', 'hmail'); foreach ($vendors as $v) { if (strpos($ident, $v) !== false) { @@ -1103,8 +1101,10 @@ } // slice resultset first... + $index = array_slice($search_set->get(), $from, $slice_length); $fetch = array(); - foreach (array_slice($search_set->get(), $from, $slice_length) as $msg_id) { + + foreach ($index as $msg_id) { list($uid, $folder) = explode('-', $msg_id, 2); $fetch[$folder][] = $uid; } @@ -1114,6 +1114,11 @@ foreach ($fetch as $folder => $a_index) { $a_msg_headers = array_merge($a_msg_headers, array_values($this->fetch_headers($folder, $a_index))); } + + // Re-sort the result according to the original search set order + usort($a_msg_headers, function($a, $b) use ($index) { + return array_search($a->uid . '-' . $a->folder, $index) - array_search($b->uid . '-' . $b->folder, $index); + }); } if ($slice) { @@ -2406,13 +2411,15 @@ $part_data = rcube_imap_generic::getStructurePartData($structure, $part); $o_part = new rcube_message_part; - $o_part->ctype_primary = $part_data['type']; - $o_part->encoding = $part_data['encoding']; - $o_part->charset = $part_data['charset']; - $o_part->size = $part_data['size']; + $o_part->ctype_primary = $part_data['type']; + $o_part->ctype_secondary = $part_data['subtype']; + $o_part->encoding = $part_data['encoding']; + $o_part->charset = $part_data['charset']; + $o_part->size = $part_data['size']; } - if ($o_part && $o_part->size) { + // Note: multipart/* parts will have size=0, we don't want to ignore them + if ($o_part && ($o_part->size || $o_part->ctype_primary == 'multipart')) { $formatted = $formatted && $o_part->ctype_primary == 'text'; $body = $this->conn->handlePartBody($this->folder, $uid, true, $part ? $part : 'TEXT', $o_part->encoding, $print, $fp, $formatted, $max_bytes); @@ -2621,7 +2628,7 @@ * * @return boolean True on success, False on error */ - public function move_message($uids, $to_mbox, $from_mbox='') + public function move_message($uids, $to_mbox, $from_mbox = '') { if (!strlen($from_mbox)) { $from_mbox = $this->folder; @@ -2665,16 +2672,9 @@ if ($moved) { $this->clear_messagecount($from_mbox); $this->clear_messagecount($to_mbox); - $this->set_search_dirty($from_mbox); $this->set_search_dirty($to_mbox); - } - // moving failed - else if ($to_trash && $config->get('delete_always', false)) { - $moved = $this->delete_message($uids, $from_mbox); - } - if ($moved) { // unset threads internal cache unset($this->icache['threads']); @@ -2706,13 +2706,13 @@ * * @return boolean True on success, False on error */ - public function copy_message($uids, $to_mbox, $from_mbox='') + public function copy_message($uids, $to_mbox, $from_mbox = '') { if (!strlen($from_mbox)) { $from_mbox = $this->folder; } - list($uids, $all_mode) = $this->parse_uids($uids); + list($uids, ) = $this->parse_uids($uids); // exit if no message uids are specified if (empty($uids)) { @@ -2736,12 +2736,12 @@ /** * Mark messages as deleted and expunge them * - * @param mixed $uids Message UIDs as array or comma-separated string, or '*' - * @param string $folder Source folder + * @param mixed $uids Message UIDs as array or comma-separated string, or '*' + * @param string $folder Source folder * * @return boolean True on success, False on error */ - public function delete_message($uids, $folder='') + public function delete_message($uids, $folder = '') { if (!strlen($folder)) { $folder = $this->folder; @@ -3186,7 +3186,7 @@ continue; } - $myrights = join('', (array)$this->my_rights($folder)); + $myrights = implode('', (array)$this->my_rights($folder)); if ($myrights !== null && !preg_match($regex, $myrights)) { unset($a_folders[$idx]);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_imap_cache.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_imap_cache.php
Changed
@@ -23,8 +23,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_imap_cache {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_imap_generic.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_imap_generic.php
Changed
@@ -299,7 +299,7 @@ while ($line[0] == '*'); if ($untagged) { - $untagged = join("\n", $untagged); + $untagged = implode("\n", $untagged); } return $line; @@ -2653,22 +2653,18 @@ */ public static function sortHeaders($messages, $field, $flag) { - // Strategy: First, we'll create an "index" array. - // Then, we'll use sort() on that array, and use that to sort the main array. - - $field = empty($field) ? 'uid' : strtolower($field); - $flag = empty($flag) ? 'ASC' : strtoupper($flag); - $index = array(); - $result = array(); + $field = empty($field) ? 'uid' : strtolower($field); + $order = empty($flag) ? 'ASC' : strtoupper($flag); + $index = array(); reset($messages); + // Create an index foreach ($messages as $key => $headers) { - $value = null; - switch ($field) { case 'arrival': $field = 'internaldate'; + // no-break case 'date': case 'internaldate': case 'timestamp': @@ -2684,33 +2680,26 @@ $value = $headers->$field; if (is_string($value)) { $value = str_replace('"', '', $value); + if ($field == 'subject') { $value = preg_replace('/^(Re:\s*|Fwd:\s*|Fw:\s*)+/i', '', $value); } - - $data = strtoupper($value); } } $index[$key] = $value; } - if (!empty($index)) { - // sort index - if ($flag == 'ASC') { - asort($index); - } - else { - arsort($index); - } + $sort_order = $flag == 'ASC' ? SORT_ASC : SORT_DESC; + $sort_flags = SORT_STRING | SORT_FLAG_CASE; - // form new array based on index - foreach ($index as $key => $val) { - $result[$key] = $messages[$key]; - } + if (in_array($field, array('arrival', 'date', 'internaldate', 'timestamp'))) { + $sort_flags = SORT_NUMERIC; } - return $result; + array_multisort($index, $sort_order, $sort_flags, $messages); + + return $messages; } /** @@ -3634,6 +3623,7 @@ } else { $data['type'] = strtolower($part_a[0]); + $data['subtype'] = strtolower($part_a[1]); $data['encoding'] = strtolower($part_a[5]); // charset
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_imap_search.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_imap_search.php
Changed
@@ -23,7 +23,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> */ class rcube_imap_search {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_ldap.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_ldap.php
Changed
@@ -655,10 +655,11 @@ /** * Fetch members of the given group entry from server * - * @param string Group DN - * @param array Group entry - * @param string Member attribute to use - * @param boolean Count only + * @param string $dn Group DN + * @param array $entry Group entry + * @param string $attr Member attribute to use + * @param bool $count Count only + * * @return array Accumulated group members */ private function _list_group_members($dn, $entry, $attr, $count) @@ -699,16 +700,17 @@ /** * List members of group class groupOfUrls * - * @param string Group DN - * @param array Group entry - * @param boolean True if only used for counting + * @param string $dn Group DN + * @param array $entry Group entry + * @param boo $count True if only used for counting + * * @return array Accumulated group members */ private function _list_group_memberurl($dn, $entry, $count) { $group_members = array(); - for ($i=0; $i < $entry['memberurl']['count']; $i++) { + for ($i = 0; $i < $entry['memberurl']['count']; $i++) { // extract components from url if (!preg_match('!ldap://[^/]*/([^\?]+)\?\?(\w+)\?(.*)$!', $entry['memberurl'][$i], $m)) { continue; @@ -716,14 +718,17 @@ // add search filter if any $filter = $this->filter ? '(&(' . $m[3] . ')(' . $this->filter . '))' : $m[3]; - $attrs = $count ? array('dn','objectClass') : $this->prop['list_attributes']; + $attrs = $count ? array('dn','objectClass') : $this->prop['list_attributes']; + if ($result = $this->ldap->search($m[1], $filter, $m[2], $attrs, $this->group_data)) { $entries = $result->entries(); for ($j = 0; $j < $entries['count']; $j++) { - if ($this->is_group_entry($entries[$j]) && ($nested_group_members = $this->list_group_members($entries[$j]['dn'], $count))) + if ($this->is_group_entry($entries[$j]) && ($nested_group_members = $this->list_group_members($entries[$j]['dn'], $count))) { $group_members = array_merge($group_members, $nested_group_members); - else + } + else { $group_members[] = $entries[$j]; + } } } } @@ -751,7 +756,7 @@ * * @return rcube_result_set List of contact records */ - function search($fields, $value, $mode=0, $select=true, $nocount=false, $required=array()) + function search($fields, $value, $mode = 0, $select = true, $nocount = false, $required = array()) { $mode = intval($mode); @@ -772,7 +777,7 @@ $rcube = rcube::get_instance(); $list_fields = $rcube->config->get('contactlist_fields'); - if ($this->prop['vlv_search'] && $this->ready && join(',', (array)$fields) == join(',', $list_fields)) { + if ($this->prop['vlv_search'] && $this->ready && implode(',', (array)$fields) == implode(',', $list_fields)) { $this->result = new rcube_result_set(0); $this->ldap->config_set('fuzzy_search', intval($this->prop['fuzzy_search'] && !($mode & rcube_addressbook::SEARCH_STRICT))); @@ -925,7 +930,6 @@ $prop = $this->group_id ? $this->group_data : $this->prop; $base_dn = $this->group_id ? $prop['base_dn'] : $this->base_dn; $attrs = $count ? array('dn') : $this->prop['attributes']; - $entries = array(); // Use global search filter if ($filter = $this->filter) { @@ -1608,7 +1612,7 @@ $key = $col.':'.$subtype; foreach ((array)$save_cols[$key] as $i => $val) { $values = array($val['street'], $val['locality'], $val['zipcode'], $val['country']); - $save_cols[$key][$i] = count(array_filter($values)) ? join($delim, $values) : null; + $save_cols[$key][$i] = count(array_filter($values)) ? implode($delim, $values) : null; } } }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_ldap_generic.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_ldap_generic.php
Changed
@@ -341,10 +341,10 @@ foreach ($attributes as $attr) { $parts[] = "($attr=$wp" . self::quote_string($word) . "$ws)"; } - $groups[] = '(|' . join('', $parts) . ')'; + $groups[] = '(|' . implode('', $parts) . ')'; } - return count($groups) > 1 ? '(&' . join('', $groups) . ')' : join('', $groups); + return count($groups) > 1 ? '(&' . implode('', $groups) . ')' : implode('', $groups); } }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_message.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_message.php
Changed
@@ -24,7 +24,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> */ class rcube_message { @@ -137,7 +136,8 @@ * Return a (decoded) message header * * @param string $name Header name - * @param bool $row Don't mime-decode the value + * @param bool $raw Don't mime-decode the value + * * @return string Header value */ public function get_header($name, $raw = false) @@ -164,6 +164,7 @@ * * @param string $mime_id Part MIME-ID * @param mixed $embed Mimetype class for parts to be embedded + * * @return string URL or false if part does not exist */ public function get_part_url($mime_id, $embed = false) @@ -208,11 +209,11 @@ /** * Get content of a specific part of this message * - * @param string $mime_id Part ID - * @param boolean $formatted Enables formatting of text/* parts bodies - * @param int $max_bytes Only return/read this number of bytes - * @param mixed $mode NULL to return a string, -1 to print body - * or file pointer to save the body into + * @param string $mime_id Part ID + * @param bool $formatted Enables formatting of text/* parts bodies + * @param int $max_bytes Only return/read this number of bytes + * @param mixed $mode NULL to return a string, -1 to print body + * or file pointer to save the body into * * @return string|bool Part content or operation status */ @@ -367,7 +368,7 @@ return true; } - $parent = $this->mime_parts[join('.', $level)]; + $parent = $this->mime_parts[implode('.', $level)]; if (!$this->check_context($parent)) { return true; @@ -425,7 +426,7 @@ return true; } - $parent = $this->mime_parts[join('.', $level)]; + $parent = $this->mime_parts[implode('.', $level)]; if (!$this->check_context($parent)) { return true; @@ -935,16 +936,22 @@ */ private function get_mime_numbers(&$part) { - if (strlen($part->mime_id)) + if (strlen($part->mime_id)) { $this->mime_parts[$part->mime_id] = &$part; + } - if (is_array($part->parts)) - for ($i=0; $i<count($part->parts); $i++) + if (is_array($part->parts)) { + for ($i=0; $i<count($part->parts); $i++) { $this->get_mime_numbers($part->parts[$i]); + } + } } /** * Add a part to object parts array(s) (with context check) + * + * @param rcube_message_part $part Message part + * @param string $type Part type (inline/attachment) */ private function add_part($part, $type = null) { @@ -961,6 +968,10 @@ /** * Check if specified part belongs to the current context + * + * @param rcube_message_part $part Message part + * + * @return bool True if the part belongs to the current context, False otherwise */ private function check_context($part) { @@ -971,7 +982,8 @@ * Decode a Microsoft Outlook TNEF part (winmail.dat) * * @param rcube_message_part $part Message part to decode - * @return array + * + * @return rcube_message_part[] List of message parts extracted from TNEF */ function tnef_decode(&$part) { @@ -1006,7 +1018,8 @@ * Parse message body for UUencoded attachments bodies * * @param rcube_message_part $part Message part to decode - * @return array + * + * @return rcube_message_part[] List of message parts extracted from the file */ function uu_decode(&$part) { @@ -1059,7 +1072,12 @@ } /** - * Fix attachment name encoding if needed/possible + * Fix attachment name encoding if needed and possible + * + * @param string $name Attachment name + * @param rcube_message_part $part Message part + * + * @return string Fixed attachment name */ protected function fix_attachment_name($name, $part) { @@ -1081,8 +1099,8 @@ // check parents' charset $items = explode('.', $part->mime_id); for ($i = count($items)-1; $i > 0; $i--) { - $last = array_pop($items); - $parent = $this->mime_parts[join('.', $items)]; + array_pop($items); + $parent = $this->mime_parts[implode('.', $items)]; if ($parent && $parent->charset) { $charsets[] = $parent->charset;
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_message_header.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_message_header.php
Changed
@@ -23,7 +23,6 @@ * * @package Framework * @subpackage Storage - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_message_header {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_message_part.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_message_part.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_message_part {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_mime.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_mime.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_mime {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_mime_decode.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_mime_decode.php
Changed
@@ -25,7 +25,6 @@ * * @package Framework * @subpackage Storage - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_mime_decode { @@ -376,8 +375,6 @@ $struct->charset = $part->ctype_parameters['charset']; } - $part_charset = $struct->charset ?: $this->params['default_charset']; - // determine filename if (($filename = $part->d_parameters['filename']) || ($filename = $part->ctype_parameters['name'])) { if (!$this->params['decode_headers']) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_plugin.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_plugin.php
Changed
@@ -69,9 +69,16 @@ */ public $allowed_prefs; + /** @var string Plugin directory location */ protected $home; + + /** @var string Base URL to the plugin directory */ protected $urlbase; + + /** @var string Plugin task name (if registered) */ private $mytask; + + /** @var array List of plugin configuration files already loaded */ private $loaded_config = array(); @@ -96,7 +103,7 @@ /** * Provide information about this * - * @return array Meta information about a plugin or false if not implemented: + * @return array Meta information about a plugin or false if not implemented. * As hash array with the following keys: * name: The plugin name * vendor: Name of the plugin developer @@ -380,9 +387,11 @@ { $rcube = rcube::get_instance(); $skins = array_keys((array)$rcube->output->skins); + if (empty($skins)) { $skins = (array) $rcube->config->get('skin'); } + foreach ($skins as $skin) { $skin_path = 'skins/' . $skin; if (is_dir(realpath(slashify($this->home) . $skin_path))) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_result_index.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_result_index.php
Changed
@@ -290,6 +290,7 @@ return $idx; } + return true; }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_result_multifolder.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_result_multifolder.php
Changed
@@ -166,7 +166,13 @@ $msgid .= '-' . $this->folder; } - return array_search($msgid, $this->index); + $idx = array_search($msgid, $this->index); + + if ($get_index) { + return $idx; + } + + return $idx !== false; } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_session.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_session.php
Changed
@@ -25,8 +25,6 @@ * * @package Framework * @subpackage Core - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ abstract class rcube_session {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_smtp.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_smtp.php
Changed
@@ -14,6 +14,7 @@ | Provide SMTP functionality using socket connections | +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | + | Aleksander Machniak <alec@alec.pl> | +-----------------------------------------------------------------------+ */ @@ -22,8 +23,6 @@ * * @package Framework * @subpackage Mail - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_smtp { @@ -350,7 +349,7 @@ return false; } - $this->response[] = join(': ', $this->conn->getResponse()); + $this->response[] = implode(': ', $this->conn->getResponse()); return true; } @@ -476,7 +475,7 @@ } } - return array($from, join(self::SMTP_MIME_CRLF, $lines) . self::SMTP_MIME_CRLF); + return array($from, implode(self::SMTP_MIME_CRLF, $lines) . self::SMTP_MIME_CRLF); } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_storage.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_storage.php
Changed
@@ -24,8 +24,6 @@ * * @package Framework * @subpackage Storage - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> */ abstract class rcube_storage { @@ -590,15 +588,15 @@ } // get UIDs from current search set else { - $uids = join(',', $this->search_set->get()); + $uids = implode(',', $this->search_set->get()); } } else { if (is_array($uids)) { - $uids = join(',', $uids); + $uids = implode(',', $uids); } else if (strpos($uids, ':')) { - $uids = join(',', rcube_imap_generic::uncompressMessageSet($uids)); + $uids = implode(',', rcube_imap_generic::uncompressMessageSet($uids)); } if (preg_match('/[^0-9,]/', $uids)) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_string_replacer.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_string_replacer.php
Changed
@@ -38,6 +38,11 @@ protected $noword = '[^\w@.#-]'; + /** + * Object constructor + * + * @param array $options Configuration options + */ function __construct($options = array()) { // Simplified domain expression for UTF8 characters handling @@ -63,7 +68,7 @@ /** * Add a string to the internal list * - * @param string String value + * @param string $str String value * * @return int Index of value for retrieval */ @@ -76,6 +81,10 @@ /** * Build replacement string + * + * @param string|int $i Replacement index + * + * @return string Replacement string */ public function get_replacement($i) { @@ -85,8 +94,10 @@ /** * Callback function used to build HTML links around URL strings * - * @param array Matches result from preg_replace_callback - * @return int Index of saved string value + * @param array $matches Matches result from preg_replace_callback + * + * @return string Return valid link for recognized schemes, otherwise + * return the unmodified URL. */ public function link_callback($matches) { @@ -111,13 +122,15 @@ $this->urls[$i] = $attrib['href']; } - // Return valid link for recognized schemes, otherwise - // return the unmodified string for unrecognized schemes. return $i >= 0 ? $prefix . $this->get_replacement($i) : $matches[0]; } /** * Callback to add an entry to the link index + * + * @param array $matches Matches result from preg_replace_callback + * + * @return string Replacement string */ public function linkref_addindex($matches) { @@ -129,6 +142,10 @@ /** * Callback to replace link references with real links + * + * @param array $matches Matches result from preg_replace_callback + * + * @return string Replacement string */ public function linkref_callback($matches) { @@ -145,9 +162,9 @@ /** * Callback function used to build mailto: links around e-mail strings * - * @param array Matches result from preg_replace_callback + * @param array $matches Matches result from preg_replace_callback * - * @return int Index of saved string value + * @return string Replacement string */ public function mailto_callback($matches) { @@ -162,7 +179,8 @@ * Look up the index from the preg_replace matches array * and return the substitution value. * - * @param array Matches result from preg_replace_callback + * @param array $matches Matches result from preg_replace_callback + * * @return string Value at index $matches[1] */ public function replace_callback($matches) @@ -191,6 +209,10 @@ /** * Replace substituted strings with original values + * + * @param string $str Text + * + * @return string Text */ public function resolve($str) { @@ -199,8 +221,12 @@ /** * Fixes bracket characters in URL handling + * + * @param string &$url URL + * + * @return string Suffix (the rest of the URL input) */ - public static function parse_url_brackets(&$url) + protected static function parse_url_brackets(&$url) { // #1487672: special handling of square brackets, // URL regexp allows [] characters in URL, for example:
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_text2html.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_text2html.php
Changed
@@ -25,25 +25,13 @@ */ class rcube_text2html { - /** - * Contains the HTML content after conversion. - * - * @var string $html - */ + /** @var string Contains the HTML content after conversion */ protected $html; - /** - * Contains the plain text. - * - * @var string $text - */ + /** @var string Contains the plain text */ protected $text; - /** - * Configuration - * - * @var array $config - */ + /** @var array Configuration */ protected $config = array( // non-breaking space 'space' => "\xC2\xA0", @@ -75,9 +63,9 @@ * will instantiate with that source propagated, all that has * to be done it to call get_html(). * - * @param string $source Plain text - * @param boolean $from_file Indicates $source is a file to pull content from - * @param array $config Class configuration + * @param string $source Plain text + * @param bool $from_file Indicates $source is a file to pull content from + * @param array $config Class configuration */ function __construct($source = '', $from_file = false, $config = array()) { @@ -93,8 +81,8 @@ /** * Loads source text into memory, either from $source string or a file. * - * @param string $source Plain text - * @param boolean $from_file Indicates $source is a file to pull content from + * @param string $source Plain text + * @param bool $from_file Indicates $source is a file to pull content from */ function set_text($source, $from_file = false) { @@ -143,7 +131,9 @@ /** * Workhorse function that does actual conversion. * - * @param string Plain text + * @param string $text Plain text + * + * @return string HTML content */ protected function _converter($text) { @@ -236,7 +226,7 @@ str_repeat('</blockquote>', $quote_level))); } - $text = join("\n", $text); + $text = implode("\n", $text); // colorize signature (up to <sig_max_lines> lines) $len = strlen($text); @@ -266,6 +256,11 @@ /** * Converts spaces in line of text + * + * @param string $text Plain text + * @param bool $is_flowed Is the $text format=flowed? + * + * @return string Converted text */ protected function _convert_line($text, $is_flowed) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_tnef_decoder.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_tnef_decoder.php
Changed
@@ -129,7 +129,7 @@ * * @param string $data The data to decompress. * - * @return mixed The decompressed data. + * @return array The decompressed data. */ public function decompress($data) { @@ -167,8 +167,8 @@ /** * Pop specified number of bytes from the buffer. * - * @param string &$data The data string. - * @param integer $bytes How many bytes to retrieve. + * @param string &$data The data string. + * @param int $bytes How many bytes to retrieve. * * @return string Extracted data */ @@ -187,10 +187,10 @@ /** * Pop specified number of bits from the buffer * - * @param string &$data The data string. - * @param integer $bits How many bits to retrieve. + * @param string &$data The data string. + * @param int $bits How many bits to retrieve. * - * @return int + * @return int|null */ protected function _geti(&$data, $bits) { @@ -216,6 +216,8 @@ * Decode a single attribute * * @param string &$data The data string. + * + * @return string Extracted data */ protected function _decodeAttribute(&$data) { @@ -493,21 +495,21 @@ $length_preload = strlen($preload); for ($cnt = 0; $cnt < $length_preload; $cnt++) { - $uncomp .= $preload{$cnt}; + $uncomp .= $preload[$cnt]; ++$out; } while ($out < ($size + $length_preload)) { if (($flag_count++ % 8) == 0) { - $flags = ord($data{$in++}); + $flags = ord($data[$in++]); } else { $flags = $flags >> 1; } if (($flags & 1) != 0) { - $offset = ord($data{$in++}); - $length = ord($data{$in++}); + $offset = ord($data[$in++]); + $length = ord($data[$in++]); $offset = ($offset << 4) | ($length >> 4); $length = ($length & 0xF) + 2; $offset = ((int)($out / 4096)) * 4096 + $offset; @@ -524,7 +526,7 @@ } } else { - $uncomp .= $data{$in++}; + $uncomp .= $data[$in++]; ++$out; } } @@ -534,8 +536,7 @@ /** * Parse RTF data and return the best plaintext representation we can. - * Adapted from: - * http://webcheatsheet.com/php/reading_the_clean_text_from_rtf.php + * Adapted from: http://webcheatsheet.com/php/reading_the_clean_text_from_rtf.php * * @param string $text The RTF (uncompressed) text. * @@ -738,6 +739,9 @@ return $document; } + /** + * Checks if an RTF element is plain text + */ protected static function _rtfIsPlain($s) { $notPlain = array('*', 'fonttbl', 'colortbl', 'datastore', 'themedata', 'stylesheet');
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_user.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_user.php
Changed
@@ -27,42 +27,35 @@ */ class rcube_user { + /** @var int User identifier */ public $ID; + + /** @var array User properties */ public $data; + + /** @var string User language code */ public $language; + + /** @var array User preferences */ public $prefs; - /** - * Holds database connection. - * - * @var rcube_db - */ + + /** @var rcube_db Holds database connection */ private $db; - /** - * Framework object. - * - * @var rcube - */ + /** @var rcube Framework object */ private $rc; - /** - * Internal identities cache - * - * @var array - */ + /** @var array Internal identities cache */ private $identities = array(); - /** - * Internal emails cache - * - * @var array - */ + /** @var array Internal emails cache */ private $emails; const SEARCH_ADDRESSBOOK = 1; - const SEARCH_MAIL = 2; + const SEARCH_MAIL = 2; + /** * Object constructor @@ -378,7 +371,7 @@ $query_params[] = $this->ID; $sql = "UPDATE ".$this->db->table_name('identities', true). - " SET `changed` = ".$this->db->now().", ".join(', ', $query_cols). + " SET `changed` = ".$this->db->now().", ".implode(', ', $query_cols). " WHERE `identity_id` = ?". " AND `user_id` = ?". " AND `del` <> 1"; @@ -420,8 +413,8 @@ $insert_values[] = $this->ID; $sql = "INSERT INTO ".$this->db->table_name('identities', true). - " (`changed`, ".join(', ', $insert_cols).")". - " VALUES (".$this->db->now().", ".join(', ', array_pad(array(), count($insert_values), '?')).")"; + " (`changed`, ".implode(', ', $insert_cols).")". + " VALUES (".$this->db->now().", ".implode(', ', array_pad(array(), count($insert_values), '?')).")"; $insert = $this->db->query($sql, $insert_values); @@ -510,7 +503,9 @@ */ function failed_login() { - if ($this->ID && ($rate = (int) $this->rc->config->get('login_rate_limit', 3))) { + if ($this->ID && $this->rc->config->get('login_rate_limit', 3)) { + $counter = 0; + if (empty($this->data['failed_login'])) { $failed_login = new DateTime('now'); $counter = 1; @@ -857,8 +852,8 @@ $insert_values[] = serialize($data['data']); $sql = "INSERT INTO ".$this->db->table_name('searches', true) - ." (".join(', ', $insert_cols).")" - ." VALUES (".join(', ', array_pad(array(), count($insert_values), '?')).")"; + ." (".implode(', ', $insert_cols).")" + ." VALUES (".implode(', ', array_pad(array(), count($insert_values), '?')).")"; $insert = $this->db->query($sql, $insert_values);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_utils.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_utils.php
Changed
@@ -58,10 +58,10 @@ /** * E-mail address validation. * - * @param string $email Email address - * @param boolean $dns_check True to check dns + * @param string $email Email address + * @param bool $dns_check True to check dns * - * @return boolean True on success, False if address is invalid + * @return bool True on success, False if address is invalid */ public static function check_email($email, $dns_check=true) { @@ -155,10 +155,10 @@ /** * Replacing specials characters to a specific encoding type * - * @param string Input string - * @param string Encoding type: text|html|xml|js|url - * @param string Replace mode for tags: show|remove|strict - * @param boolean Convert newlines + * @param string $str Input string + * @param string $enctype Encoding type: text|html|xml|js|url + * @param string $mode Replace mode for tags: show|remove|strict + * @param bool $newlines Convert newlines * * @return string The quoted string */ @@ -246,10 +246,10 @@ * Read input value and convert it for internal use * Performs stripslashes() and charset conversion if necessary * - * @param string Field name to read - * @param int Source to get value from (see self::INPUT_*) - * @param boolean Allow HTML tags in field value - * @param string Charset to convert into + * @param string $fname Field name to read + * @param int $source Source to get value from (see self::INPUT_*) + * @param bool $allow_html Allow HTML tags in field value + * @param string $charset Charset to convert into * * @return string Field value or NULL if not available */ @@ -276,9 +276,9 @@ * Parse/validate input value. See self::get_input_value() * Performs stripslashes() and charset conversion if necessary * - * @param string Input value - * @param boolean Allow HTML tags in field value - * @param string Charset to convert into + * @param string $value Input value + * @param bool $allow_html Allow HTML tags in field value + * @param string $charset Charset to convert into * * @return string Parsed value */ @@ -321,9 +321,9 @@ * Convert array of request parameters (prefixed with _) * to a regular array with non-prefixed keys. * - * @param int $mode Source to get value from (GPC) - * @param string $ignore PCRE expression to skip parameters by name - * @param boolean $allow_html Allow HTML tags in field value + * @param int $mode Source to get value from (GPC) + * @param string $ignore PCRE expression to skip parameters by name + * @param bool $allow_html Allow HTML tags in field value * * @return array Hash array with all request parameters */ @@ -345,25 +345,29 @@ /** * Convert the given string into a valid HTML identifier * Same functionality as done in app.js with rcube_webmail.html_identifier() + * + * @param string $str String input + * @param bool $encode Use base64 encoding + * + * @param string Valid HTML identifier */ - public static function html_identifier($str, $encode=false) + public static function html_identifier($str, $encode = false) { if ($encode) { return rtrim(strtr(base64_encode($str), '+/', '-_'), '='); } - else { - return asciiwords($str, true, '_'); - } + + return asciiwords($str, true, '_'); } /** * Replace all css definitions with #container [def] * and remove css-inlined scripting, make position style safe * - * @param string CSS source code - * @param string Container ID to use as prefix - * @param bool Allow remote content - * @param string Prefix to be added to id/class identifier + * @param string $source CSS source code + * @param string $container_id Container ID to use as prefix + * @param bool $allow_remote Allow remote content + * @param string $prefix Prefix to be added to id/class identifier * * @return string Modified CSS source */ @@ -381,7 +385,7 @@ return '/* evil! */'; } - $strict_url_regexp = '!url\s*\([ "\'](https?:)//[a-z0-9/._+-]+["\' ]\)!Uims'; + $strict_url_regexp = '!url\s*\(\s*["\']?(https?:)//[a-z0-9/._+-]+["\']?\s*\)!Uims'; // cut out all contents between { and } while (($pos = strpos($source, '{', $last_pos)) && ($pos2 = strpos($source, '}', $pos))) { @@ -392,7 +396,7 @@ $styles = substr($source, $pos+1, $length); // Convert position:fixed to position:absolute (#5264) - $styles = preg_replace('/position:[\s\r\n]*fixed/i', 'position: absolute', $styles); + $styles = preg_replace('/position[^a-z]*:[\s\r\n]*fixed/i', 'position: absolute', $styles); // check every line of a style block... if ($allow_remote) { @@ -414,7 +418,7 @@ } } - $styles = join(";\n", $a_styles); + $styles = implode(";\n", $a_styles); } $key = $replacements->add($styles); @@ -431,10 +435,14 @@ // (?!##str) below is to not match with ##str_replacement_0## // from rcube_string_replacer used above, this is needed for // cases like @media { body { position: fixed; } } (#5811) - $regexp = '/(^\s*|,\s*|\}\s*|\{\s*)((?!##str)[a-z0-9\._#\*\[][a-z0-9\._:\(\)#=~ \[\]"\|\>\+\$\^-]*)/im'; + $regexp = '/(^\s*|,\s*|\}\s*|\{\s*)((?!##str):?[a-z0-9\._#\*\[][a-z0-9\._:\(\)#=~ \[\]"\|\>\+\$\^-]*)/im'; $callback = function($matches) use ($container_id, $prefix) { $replace = $matches[2]; + if (stripos($replace, ':root') === 0) { + $replace = substr($replace, 5); + } + if ($prefix) { $replace = str_replace(array('.', '#'), array(".$prefix", "#$prefix"), $replace); } @@ -443,6 +451,9 @@ $replace = "#$container_id " . $replace; } + // Remove redundant spaces (for simpler testing) + $replace = preg_replace('/\s+/', ' ', $replace); + return str_replace($matches[2], $replace, $matches[0]); }; @@ -488,14 +499,14 @@ } } - return join(" ", $classes); + return implode(' ', $classes); } /** * Decode escaped entities used by known XSS exploits. * See http://downloads.securityfocus.com/vulnerabilities/exploits/26800.eml for examples * - * @param string CSS content to decode + * @param string $content CSS content to decode * * @return string Decoded string */ @@ -516,9 +527,9 @@ /** * Check if we can process not exceeding memory_limit * - * @param integer Required amount of memory + * @param integer $need Required amount of memory * - * @return boolean True if memory won't be exceeded, False otherwise + * @return bool True if memory won't be exceeded, False otherwise */ public static function mem_check($need) { @@ -531,25 +542,28 @@ /** * Check if working in SSL mode * - * @param integer $port HTTPS port number - * @param boolean $use_https Enables 'use_https' option checking + * @param int $port HTTPS port number + * @param bool $use_https Enables 'use_https' option checking * - * @return boolean + * @return bool True in SSL mode, False otherwise */ - public static function https_check($port=null, $use_https=true) + public static function https_check($port = null, $use_https = true) { if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') { return true; } + if (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https' && in_array($_SERVER['REMOTE_ADDR'], rcube::get_instance()->config->get('proxy_whitelist', array())) ) { return true; } + if ($port && $_SERVER['SERVER_PORT'] == $port) { return true; } + if ($use_https && rcube::get_instance()->config->get('use_https')) { return true; } @@ -597,11 +611,12 @@ } /** - * Returns the host name after checking it against trusted hostname - * patterns, otherwise returns localhost (and logs a warning) + * Returns the server name after checking it against trusted hostname patterns. * - * @param string $type The $_SERVER key, e.g. 'HTTP_HOST', Default: 'SERVER_NAME'. - * @param boolean $strip_port Strip port from the host name + * Returns 'localhost' and logs a warning when the hostname is not trusted. + * + * @param string $type The $_SERVER key, e.g. 'HTTP_HOST', Default: 'SERVER_NAME'. + * @param bool $strip_port Strip port from the host name * * @return string Server name */ @@ -696,7 +711,7 @@ * * @param string $name Header name * - * @return mixed Header value or null if not available + * @return string|null Header value or null if not available */ public static function request_header($name) { @@ -719,8 +734,8 @@ /** * Explode quoted string * - * @param string Delimiter expression string for preg_match() - * @param string Input string + * @param string $delimiter Delimiter expression string for preg_match() + * @param string $string Input string * * @return array String items */ @@ -786,7 +801,7 @@ * @param string $date Date string * @param DateTimeZone $timezone Timezone to use for DateTime object * - * @return DateTime instance or false on failure + * @return DateTime|false DateTime object or False on failure */ public static function anytodatetime($date, $timezone = null) { @@ -880,8 +895,8 @@ * @param string $date Date string * @param string $format Input date format * - * @return strin Date string in YYYY-MM-DD format, or the original string - * if format is not supported + * @return string Date string in YYYY-MM-DD format, or the original string + * if format is not supported */ public static function format_datestr($date, $format) { @@ -980,8 +995,9 @@ /** * Split the given string into word tokens * - * @param string Input to tokenize - * @param integer Minimum length of a single token + * @param string $str Input to tokenize + * @param int $minlen Minimum length of a single token + * * @return array List of tokens */ public static function tokenize_string($str, $minlen = 2) @@ -1002,11 +1018,11 @@ * Normalize the given string for fulltext search. * Currently only optimized for ISO-8859-1 and ISO-8859-2 characters; to be extended * - * @param string Input string (UTF-8) - * @param boolean True to return list of words as array - * @param integer Minimum length of tokens + * @param string $str Input string (UTF-8) + * @param bool $as_array True to return list of words as array + * @param int $minlen Minimum length of tokens * - * @return mixed Normalized string or a list of normalized tokens + * @return string|array Normalized string or a list of normalized tokens */ public static function normalize_string($str, $as_array = false, $minlen = 2) { @@ -1050,21 +1066,21 @@ $arr[$i] = $part; } - return $as_array ? $arr : join(" ", $arr); + return $as_array ? $arr : implode(' ', $arr); } /** * Compare two strings for matching words (order not relevant) * - * @param string Haystack - * @param string Needle + * @param string $haystack Haystack + * @param string $needle Needle * - * @return boolean True if match, False otherwise + * @return bool True if match, False otherwise */ public static function words_match($haystack, $needle) { $a_needle = self::tokenize_string($needle, 1); - $_haystack = join(" ", self::tokenize_string($haystack, 1)); + $_haystack = implode(' ', self::tokenize_string($haystack, 1)); $valid = strlen($_haystack) > 0; $hits = 0; @@ -1141,6 +1157,8 @@ * Safe password prompt for command line * from http://blogs.sitepoint.com/2009/05/01/interactive-cli-password-prompt-in-php/ * + * @param string $prompt Prompt text + * * @return string Password */ public static function prompt_silent($prompt = "Password:") @@ -1156,20 +1174,22 @@ return $password; } - else { - $command = "/usr/bin/env bash -c 'echo OK'"; - if (rtrim(shell_exec($command)) !== 'OK') { - echo $prompt; - $pass = trim(fgets(STDIN)); - echo chr(8)."\r" . $prompt . str_repeat("*", strlen($pass))."\n"; - return $pass; - } - $command = "/usr/bin/env bash -c 'read -s -p \"" . addslashes($prompt) . "\" mypassword && echo \$mypassword'"; - $password = rtrim(shell_exec($command)); - echo "\n"; - return $password; + $command = "/usr/bin/env bash -c 'echo OK'"; + + if (rtrim(shell_exec($command)) !== 'OK') { + echo $prompt; + $pass = trim(fgets(STDIN)); + echo chr(8)."\r" . $prompt . str_repeat("*", strlen($pass))."\n"; + + return $pass; } + + $command = "/usr/bin/env bash -c 'read -s -p \"" . addslashes($prompt) . "\" mypassword && echo \$mypassword'"; + $password = rtrim(shell_exec($command)); + echo "\n"; + + return $password; } /** @@ -1177,7 +1197,7 @@ * * @param string $str Input value * - * @return boolean Boolean value + * @return bool Boolean value */ public static function get_boolean($str) { @@ -1188,15 +1208,18 @@ /** * OS-dependent absolute path detection + * + * @param string $path File path + * + * @return bool True if the path is absolute, False otherwise */ public static function is_absolute_path($path) { if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { return (bool) preg_match('!^[a-z]:[\\\\/]!i', $path); } - else { - return $path[0] == '/'; - } + + return $path[0] == '/'; } /** @@ -1326,7 +1349,7 @@ public static function parse_socket_options(&$options, $host = null) { if (empty($host) || empty($options)) { - return $options; + return; } // get rid of schema and port from the hostname @@ -1336,7 +1359,7 @@ } // find per-host options - if (array_key_exists($host, $options)) { + if ($host && array_key_exists($host, $options)) { $options = $options[$host]; } }
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_vcard.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_vcard.php
Changed
@@ -89,6 +89,12 @@ /** * Constructor + * + * @param string $vcard vCard content + * @param string $charset Charset of string values + * @param bool $detect True if loading a 'foreign' vcard and extra heuristics + * for charset detection is required + * @param array $fieldmap Fields mapping definition */ public function __construct($vcard = null, $charset = RCUBE_CHARSET, $detect = false, $fieldmap = array()) { @@ -104,9 +110,10 @@ /** * Load record from (internal, unfolded) vcard 3.0 format * - * @param string vCard string to parse - * @param string Charset of string values - * @param boolean True if loading a 'foreign' vcard and extra heuristics for charset detection is required + * @param string $vcard vCard string to parse + * @param string $charset Charset of string values + * @param bool $detect True if loading a 'foreign' vcard and extra heuristics + * for charset detection is required */ public function load($vcard, $charset = RCUBE_CHARSET, $detect = false) { @@ -132,7 +139,7 @@ $this->middlename = $this->raw['N'][0][2]; $this->nickname = $this->raw['NICKNAME'][0][0]; $this->organization = $this->raw['ORG'][0][0]; - $this->business = ($this->raw['X-ABSHOWAS'][0][0] == 'COMPANY') || (join('', (array)$this->raw['N'][0]) == '' && !empty($this->organization)); + $this->business = ($this->raw['X-ABSHOWAS'][0][0] == 'COMPANY') || (implode('', (array)$this->raw['N'][0]) == '' && !empty($this->organization)); foreach ((array)$this->raw['EMAIL'] as $i => $raw_email) { $this->email[$i] = is_array($raw_email) ? $raw_email[0] : $raw_email; @@ -169,10 +176,13 @@ } } - if ($this->raw['N'][0][3]) + if ($this->raw['N'][0][3]) { $out['prefix'] = $this->raw['N'][0][3]; - if ($this->raw['N'][0][4]) + } + + if ($this->raw['N'][0][4]) { $out['suffix'] = $this->raw['N'][0][4]; + } // convert from raw vcard data into associative data for Roundcube foreach (array_flip(self::$fieldmap) as $tag => $col) { @@ -185,7 +195,7 @@ if (!empty($raw['type'])) { $raw['type'] = array_map('strtolower', $raw['type']); - $combined = join(',', array_diff($raw['type'], array('internet', 'pref'))); + $combined = implode(',', array_diff($raw['type'], array('internet', 'pref'))); $combined = strtoupper($combined); if ($typemap[$combined]) { @@ -257,6 +267,10 @@ /** * Convert the data structure into a vcard 3.0 string + * + * @param bool $folder Use RFC2425 folding + * + * @return string vCard output */ public function export($folded = true) { @@ -272,8 +286,8 @@ public function reset($fields = null) { if (!$fields) { - $fields = array_merge(array_values(self::$fieldmap), array_keys($this->immap), - array('FN','N','ORG','NICKNAME','EMAIL','ADR','BDAY')); + $fields = array('FN', 'N', 'ORG', 'NICKNAME', 'EMAIL', 'ADR', 'BDAY'); + $fields = array_merge(array_values(self::$fieldmap), array_keys($this->immap), $fields); } foreach ($fields as $f) { @@ -283,6 +297,7 @@ if (!$this->raw['N']) { $this->raw['N'] = array(array('','','','','')); } + if (!$this->raw['FN']) { $this->raw['FN'] = array(); } @@ -293,9 +308,9 @@ /** * Setter for address record fields * - * @param string Field name - * @param string Field value - * @param string Type/section name + * @param string $field Field name + * @param mixed $value Field value + * @param string $type Type/section name */ public function set($field, $value, $type = 'HOME') { @@ -374,7 +389,7 @@ $value = $value[0] ? $value : array('', '', $value['street'], $value['locality'], $value['region'], $value['zipcode'], $value['country']); // fall through if not empty - if (!strlen(join('', $value))) { + if (!strlen(implode('', $value))) { break; } @@ -402,20 +417,21 @@ /** * Setter for individual vcard properties * - * @param string VCard tag name - * @param array Value-set of this vcard property - * @param boolean Set to true if the value-set should be appended instead of replacing any existing value-set + * @param string $tag VCard tag name + * @param array $value Value-set of this vcard property + * @param bool $append Set to true if the value-set should be appended + * instead of replacing any existing value-set */ public function set_raw($tag, $value, $append = false) { $index = $append && isset($this->raw[$tag]) ? count($this->raw[$tag]) : 0; - $this->raw[$tag][$index] = (array)$value; + $this->raw[$tag][$index] = (array) $value; } /** * Find index with the '$type' attribute * - * @param string Field name + * @param string $field Field name * * @return int Field index having $type set */ @@ -457,6 +473,8 @@ /** * Extends fieldmap definition + * + * @param array $map Field mapping definition */ public function extend_fieldmap($map) { @@ -468,9 +486,9 @@ /** * Factory method to import a vcard file * - * @param string vCard file content + * @param string $data vCard file content * - * @return array List of rcube_vcard objects + * @return rcube_vcard[] List of rcube_vcard objects */ public static function import($data) { @@ -520,7 +538,7 @@ /** * Normalize vcard data for better parsing * - * @param string vCard block + * @param string $vcard vCard block * * @return string Cleaned vcard block */ @@ -558,22 +576,38 @@ return $vcard; } + /** + * Apple X-ABRELATEDNAMES converter callback + * + * @param array $matches Matching entries + * + * @return string Replacement string + */ private static function x_abrelatednames_callback($matches) { return 'X-' . strtoupper($matches[5]) . $matches[3] . ':'. $matches[4]; } + /** + * RFC2425 folding callback + * + * @param array $matches Matching entries + * + * @return string Replacement string + */ private static function rfc2425_fold_callback($matches) { // chunk_split string and avoid lines breaking multibyte characters $c = 71; $out .= substr($matches[1], 0, $c); + for ($n = $c; $c < strlen($matches[1]); $c++) { // break if length > 75 or mutlibyte character starts after position 71 if ($n > 75 || ($n > 71 && ord($matches[1][$c]) >> 6 == 3)) { $out .= "\r\n "; $n = 0; } + $out .= $matches[1][$c]; $n++; } @@ -581,16 +615,22 @@ return $out; } + /** + * Apply RFC2425 folding to a vCard content + * + * @param string $val vCard content + * + * @retunr string Folded vCard string + */ public static function rfc2425_fold($val) { return preg_replace_callback('/([^\n]{72,})/', array('self', 'rfc2425_fold_callback'), $val); } /** - * Decodes a vcard block (vcard 3.0 format, unfolded) - * into an array structure + * Decodes a vcard block (vcard 3.0 format, unfolded) into an array structure * - * @param string vCard block to parse + * @param string $vcard vCard block to parse * * @return array Raw data structure */ @@ -691,8 +731,8 @@ /** * Decode a given string with the encoding rule from ENCODING attributes * - * @param string String to decode - * @param string Encoding type (quoted-printable and base64 supported) + * @param string $value String to decode + * @param string $encoding Encoding type (quoted-printable and base64 supported) * * @return string Decoded 8bit value */ @@ -716,7 +756,7 @@ /** * Encodes an entry for storage in our database (vcard 3.0 format, unfolded) * - * @param array Raw data structure to encode + * @param array $data Raw data structure to encode * * @return string vCard encoded string */ @@ -782,32 +822,35 @@ /** * Join indexed data array to a vcard quoted string * - * @param array Field data - * @param string Separator + * @param array $str Field data + * @param string $sep Separator * * @return string Joined and quoted string */ - public static function vcard_quote($s, $sep = ';') + public static function vcard_quote($str, $sep = ';') { - if (is_array($s)) { - foreach ($s as $part) { + if (is_array($str)) { + $r = array(); + + foreach ($str as $part) { $r[] = self::vcard_quote($part, $sep); } - return(implode($sep, (array)$r)); + + return(implode($sep, $r)); } - return strtr($s, array('\\' => '\\\\', "\r" => '', "\n" => '\n', $sep => '\\'.$sep)); + return strtr($str, array("\\" => "\\\\", "\r" => '', "\n" => '\n', $sep => "\\$sep")); } /** * Split quoted string * - * @param string vCard string to split - * @param string Separator char/string + * @param string $str vCard string to split + * @param string $sep Separator char/string * * @return array List with splited values */ - private static function vcard_unquote($s, $sep = ';') + private static function vcard_unquote($str, $sep = ';') { // break string into parts separated by $sep if (!empty($sep)) { @@ -815,36 +858,37 @@ $rep1 = array("\\\\" => "\010", "\\$sep" => "\007"); $rep2 = array("\007" => "\\$sep", "\010" => "\\\\"); - if (count($parts = explode($sep, strtr($s, $rep1))) > 1) { + if (count($parts = explode($sep, strtr($str, $rep1))) > 1) { foreach ($parts as $s) { $result[] = self::vcard_unquote(strtr($s, $rep2)); } + return $result; } - $s = trim(strtr($s, $rep2)); + $str = trim(strtr($str, $rep2)); } // some implementations (GMail) use non-standard backslash before colon (#1489085) // we will handle properly any backslashed character - removing dummy backslahes - // return strtr($s, array("\r" => '', '\\\\' => '\\', '\n' => "\n", '\N' => "\n", '\,' => ',', '\;' => ';')); + // return strtr($str, array("\r" => '', '\\\\' => '\\', '\n' => "\n", '\N' => "\n", '\,' => ',', '\;' => ';')); - $s = str_replace("\r", '', $s); + $str = str_replace("\r", '', $str); $pos = 0; - while (($pos = strpos($s, '\\', $pos)) !== false) { - $next = substr($s, $pos + 1, 1); + while (($pos = strpos($str, "\\", $pos)) !== false) { + $next = substr($str, $pos + 1, 1); if ($next == 'n' || $next == 'N') { - $s = substr_replace($s, "\n", $pos, 2); + $str = substr_replace($str, "\n", $pos, 2); } else { - $s = substr_replace($s, '', $pos, 1); + $str = substr_replace($str, '', $pos, 1); } $pos += 1; } - return $s; + return $str; } /** @@ -869,7 +913,7 @@ /** * Returns UNICODE type based on BOM (Byte Order Mark) * - * @param string Input string to test + * @param string $string Input string to test * * @return string Detected encoding */
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/rcube_washtml.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/rcube_washtml.php
Changed
@@ -42,40 +42,6 @@ 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. - - OVERVIEW: - - Wahstml take an untrusted HTML and return a safe html string. - - SYNOPSIS: - - $washer = new washtml($config); - $washer->wash($html); - It return a sanityzed string of the $html parameter without html and head tags. - $html is a string containing the html code to wash. - $config is an array containing options: - $config['allow_remote'] is a boolean to allow link to remote resources (images/css). - $config['blocked_src'] string with image-src to be used for blocked remote images - $config['show_washed'] is a boolean to include washed out attributes as x-washed - $config['cid_map'] is an array where cid urls index urls to replace them. - $config['charset'] is a string containing the charset of the HTML document if it is not defined in it. - $washer->extlinks is a reference to a boolean that is set to true if remote images were removed. (FE: show remote images link) - - INTERNALS: - - Only tags and attributes in the static lists $html_elements and $html_attributes - are kept, inline styles are also filtered: all style identifiers matching - /[a-z\-]/i are allowed. Values matching colors, sizes, /[a-z\-]/i and safe - urls if allowed and cid urls if mapped are kept. - - Roundcube Changes: - - added $block_elements - - changed $ignore_elements behaviour - - added RFC2397 support - - base URL support - - invalid HTML comments removal before parsing - - "fixing" unitless CSS values for XHTML output - - SVG and MathML support */ /** @@ -86,7 +52,9 @@ */ class rcube_washtml { - /* Allowed HTML elements (default) */ + /** + * @var array Allowed HTML elements (default) + */ static $html_elements = array('a', 'abbr', 'acronym', 'address', 'area', 'b', 'basefont', 'bdo', 'big', 'blockquote', 'br', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', @@ -121,10 +89,14 @@ 'bvar', 'lowlimit', 'uplimit', ); - /* Ignore these HTML tags and their content */ + /** + * @var array Ignore these HTML tags and their content + */ static $ignore_elements = array('script', 'applet', 'embed', 'object', 'style'); - /* Allowed HTML attributes */ + /** + * @var array Allowed HTML attributes + */ static $html_attribs = array('name', 'class', 'title', 'alt', 'width', 'height', 'align', 'nowrap', 'col', 'row', 'id', 'rowspan', 'colspan', 'cellspacing', 'cellpadding', 'valign', 'bgcolor', 'color', 'border', 'bordercolorlight', @@ -173,7 +145,9 @@ 'fontsize', 'fontweight', 'fontstyle', 'fontfamily', 'groupalign', 'edge', 'side', ); - /* Elements which could be empty and be returned in short form (<tag />) */ + /** + * @var array Elements which could be empty and be returned in short form (<tag />) + */ static $void_elements = array('area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr', // MathML @@ -181,38 +155,52 @@ 'maligngroup', 'none', 'mprescripts', ); - /* State for linked objects in HTML */ + /** @var bool State indicating existence of linked objects in HTML */ public $extlinks = false; - /* Current settings */ + /** @var array Current settings */ private $config = array(); - /* Registered callback functions for tags */ + /** @var array Registered callback functions for tags */ private $handlers = array(); - /* Allowed HTML elements */ + /** @var array Allowed HTML elements */ private $_html_elements = array(); - /* Ignore these HTML tags but process their content */ + /** @var array Ignore these HTML tags but process their content */ private $_ignore_elements = array(); - /* Elements which could be empty and be returned in short form (<tag />) */ + /** @var array Elements which could be empty and be returned in short form (<tag />) */ private $_void_elements = array(); - /* Allowed HTML attributes */ + /** @var array Allowed HTML attributes */ private $_html_attribs = array(); - /* A prefix to be added to id/class/for attribute values */ + /** @var string A prefix to be added to id/class/for attribute values */ private $_css_prefix; - /* Max nesting level */ + /** @var int Max nesting level */ private $max_nesting_level; + /** @var bool True if current document is XML */ private $is_xml = false; /** * Class constructor + * + * @param array $p Configuration options: + * allow_remote: is a boolean to allow link to remote resources (images/css) + * blocked_src: string with image-src to be used for blocked remote images + * show_washed: is a boolean to include washed out attributes as x-washed + * cid_map: is an array where cid urls index urls to replace them + * charset: is a string containing the charset of the HTML document, + * to be used if the charset is not defined in the document + * css_prefix: A prefix to be added to id/class/for attribute values + * html_elements: Additional allowed HTML elements + * ignore_elements: Additional HTML elements to ignore + * html_attribs: Additional allowed HTML attributes + * void_elements: Elements which could be empty and be returned in short form (<tag />) */ public function __construct($p = array()) { @@ -222,21 +210,28 @@ $this->_void_elements = array_flip((array)$p['void_elements']) + array_flip(self::$void_elements); $this->_css_prefix = is_string($p['css_prefix']) && strlen($p['css_prefix']) ? $p['css_prefix'] : null; - unset($p['html_elements'], $p['html_attribs'], $p['ignore_elements'], $p['void_elements']); + unset($p['html_elements'], $p['html_attribs'], $p['ignore_elements'], $p['void_elements'], $p['css_prefix']); $this->config = $p + array('show_washed' => true, 'allow_remote' => false, 'cid_map' => array()); } /** * Register a callback function for a certain tag + * + * @param string $tag HTML tag name + * @param callback $callback Callback function */ - public function add_callback($tagName, $callback) + public function add_callback($tag, $callback) { - $this->handlers[$tagName] = $callback; + $this->handlers[$tag] = $callback; } /** * Check CSS style + * + * @param string $style CSS style + * + * @return string Washed CSS style */ private function wash_style($style) { @@ -291,6 +286,10 @@ /** * Take a node and return allowed attributes and check values + * + * @param DOMNode $node Document element + * + * @return string Washed element attributes */ private function wash_attribs($node) { @@ -321,7 +320,7 @@ $out = $this->wash_uri($value, true); } else if ($this->is_link_attribute($node->nodeName, $key)) { - if (!preg_match('!^(javascript|vbscript|data:text)!i', $value) + if (!preg_match('!^(javascript|vbscript|data:)!i', $value) && preg_match('!^([a-z][a-z0-9.+-]+:|//|#).+!i', $value) ) { $out = $value; @@ -373,6 +372,12 @@ /** * Wash URI value + * + * @param string $uri URI + * @param bool $blocked_source Block remote source + * @param bool $is_image URI points to an image + * + * @return string Washed URI */ private function wash_uri($uri, $blocked_source = false, $is_image = true) { @@ -404,6 +409,11 @@ /** * Check it the tag/attribute may contain an URI + * + * @param string $tag Element name + * @param string $attr Attribute name + * + * @return bool True if attribute may contain an URI, False otherwise */ private function is_link_attribute($tag, $attr) { @@ -412,6 +422,11 @@ /** * Check it the tag/attribute may contain an image URI + * + * @param string $tag Element name + * @param string $attr Attribute name + * + * @return bool True if attribute may contain an image URI, False otherwise */ private function is_image_attribute($tag, $attr) { @@ -424,6 +439,11 @@ /** * Check it the tag/attribute may contain a FUNCIRI value + * + * @param string $tag Element name + * @param string $attr Attribute name + * + * @return bool True if attribute may contain a FUNCIRI value, False otherwise */ private function is_funciri_attribute($tag, $attr) { @@ -437,6 +457,8 @@ * * @param DOMNode $node HTML element * @param int $level Recurrence level (safe initial value found empirically) + * + * @return string HTML content */ private function dumpHtml($node, $level = 20) { @@ -455,6 +477,7 @@ 'message' => "Maximum nesting level exceeded (xdebug.max_nesting_level={$this->max_nesting_level})"), true, false); } + return '<!-- ignored -->'; } @@ -535,6 +558,10 @@ /** * Main function, give it untrusted HTML, tell it if you allow loading * remote images and give it a map to convert "cid:" urls. + * + * @param string $html HTML content + * + * @return string Washed HTML content */ public function wash($html) { @@ -579,6 +606,10 @@ /** * Getter for config parameters + * + * @param string $prop Configuration parameter name + * + * @return mixed Configuration parameter value */ public function get_config($prop) { @@ -587,6 +618,10 @@ /** * Clean HTML input + * + * @param string $html HTML content + * + * @return string Clean HTML content */ private function cleanup($html) { @@ -667,6 +702,10 @@ /** * Callback function for HTML tags fixing + * + * @param array $matches Matched elements (from preg_replace_callback()) + * + * @return string Replacement string */ public static function html_tag_callback($matches) { @@ -692,6 +731,10 @@ /** * Convert all relative URLs according to a <base> in HTML + * + * @param string $body HTML body + * + * @return string HTML body */ public static function resolve_base($body) { @@ -706,6 +749,8 @@ /** * Fix broken nested lists, they are not handled properly by DOMDocument (#1488768) + * + * @param string &$html HTML content */ public static function fix_broken_lists(&$html) { @@ -735,8 +780,8 @@ // li close tag else if ($tt == '</li' && in_array($html[$p+4], array(' ', '>'))) { $li_pos = $p; + $in_li = false; $p += 4; - $in_li = false; } // ul/ol closing tag else if ($tt == '</' . $tag && in_array($html[$p+4], array(' ', '>'))) { @@ -764,8 +809,8 @@ $element = substr($html, $p, $len); // move element to the end of the last li - $html = substr_replace($html, '', $p, $len); - $html = substr_replace($html, $element, $li_pos, 0); + $html = substr_replace($html, '', $p, $len); + $html = substr_replace($html, $element, $li_pos, 0); $p = $end; } @@ -779,6 +824,10 @@ /** * Cleanup and workarounds on input to Masterminds/HTML5 + * + * @param string $html HTML content + * + * @return string HTML content */ protected function fix_html5($html) { @@ -812,6 +861,10 @@ /** * Explode css style value + * + * @param string $style CSS style + * + * @return array List of CSS rules */ protected function explode_style($style) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/session/db.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/session/db.php
Changed
@@ -25,9 +25,6 @@ * * @package Framework * @subpackage Core - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> - * @author Cor Bosman <cor@roundcu.be> */ class rcube_session_db extends rcube_session {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/session/memcache.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/session/memcache.php
Changed
@@ -25,9 +25,6 @@ * * @package Framework * @subpackage Core - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> - * @author Cor Bosman <cor@roundcu.be> */ class rcube_session_memcache extends rcube_session { @@ -48,7 +45,7 @@ if (!$this->memcache) { rcube::raise_error(array( - 'code' => 604, 'type' => 'db', + 'code' => 604, 'type' => 'memcache', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Failed to connect to memcached. Please check configuration"), true, true);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/session/memcached.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/session/memcached.php
Changed
@@ -25,9 +25,6 @@ * * @package Framework * @subpackage Core - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> - * @author Cor Bosman <cor@roundcu.be> */ class rcube_session_memcached extends rcube_session { @@ -48,7 +45,7 @@ if (!$this->memcache) { rcube::raise_error(array( - 'code' => 604, 'type' => 'db', + 'code' => 604, 'type' => 'memcache', 'line' => __LINE__, 'file' => __FILE__, 'message' => "Failed to connect to memcached. Please check configuration"), true, true);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/session/php.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/session/php.php
Changed
@@ -25,9 +25,6 @@ * * @package Framework * @subpackage Core - * @author Thomas Bruederli <roundcube@gmail.com> - * @author Aleksander Machniak <alec@alec.pl> - * @author Cor Bosman <cor@roundcu.be> */ class rcube_session_php extends rcube_session {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/lib/Roundcube/session/redis.php -> roundcubemail-1.4-rc2.12.tar.gz/program/lib/Roundcube/session/redis.php
Changed
@@ -14,6 +14,7 @@ | Provide redis supported session management | +-----------------------------------------------------------------------+ | Author: Cor Bosman <cor@roundcu.be> | + | Author: Aleksander Machniak <alec@alec.pl> | +-----------------------------------------------------------------------+ */ @@ -22,8 +23,6 @@ * * @package Framework * @subpackage Core - * @author Cor Bosman <cor@roundcu.be> - * @author Aleksander Machniak <alec@alec.pl> */ class rcube_session_redis extends rcube_session { @@ -42,6 +41,14 @@ $this->redis = rcube::get_instance()->get_redis(); $this->debug = $config->get('redis_debug'); + if (!$this->redis) { + rcube::raise_error(array( + 'code' => 604, 'type' => 'redis', + 'line' => __LINE__, 'file' => __FILE__, + 'message' => "Failed to connect to redis. Please check configuration"), + true, true); + } + // register sessions handler $this->register_session_handler(); } @@ -79,7 +86,13 @@ public function destroy($key) { if ($key) { - $result = $this->redis->del($key); + try { + $fname = method_exists($this->redis, 'del') ? 'del' : 'delete'; + $result = $this->redis->$fname($key); + } + catch (Exception $e) { + rcube::raise_error($e, true, true); + } if ($this->debug) { $this->debug('delete', $key, null, $result); @@ -98,7 +111,18 @@ */ public function read($key) { - if ($value = $this->redis->get($key)) { + try { + $value = $this->redis->get($key); + } + catch (Exception $e) { + rcube::raise_error($e, true, true); + } + + if ($this->debug) { + $this->debug('get', $key, $value); + } + + if ($value) { $arr = unserialize($value); $this->changed = $arr['changed']; $this->ip = $arr['ip']; @@ -106,10 +130,6 @@ $this->key = $key; } - if ($this->debug) { - $this->debug('get', $key, $value); - } - return $this->vars ?: ''; } @@ -127,8 +147,14 @@ $ts = microtime(true); if ($newvars !== $oldvars || $ts - $this->changed > $this->lifetime / 3) { - $data = serialize(array('changed' => time(), 'ip' => $this->ip, 'vars' => $newvars)); - $result = $this->redis->setex($key, $this->lifetime + 60, $data); + $data = serialize(array('changed' => time(), 'ip' => $this->ip, 'vars' => $newvars)); + + try { + $result = $this->redis->setex($key, $this->lifetime + 60, $data); + } + catch (Exception $e) { + rcube::raise_error($e, true, true); + } if ($this->debug) { $this->debug('set', $key, $data, $result); @@ -154,8 +180,13 @@ return true; } - $data = serialize(array('changed' => time(), 'ip' => $this->ip, 'vars' => $vars)); - $result = $this->redis->setex($key, $this->lifetime + 60, $data); + try { + $data = serialize(array('changed' => time(), 'ip' => $this->ip, 'vars' => $vars)); + $result = $this->redis->setex($key, $this->lifetime + 60, $data); + } + catch (Exception $e) { + rcube::raise_error($e, true, true); + } if ($this->debug) { $this->debug('set', $key, $data, $result);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ar/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ar/labels.inc
Changed
@@ -226,6 +226,7 @@ $labels['ignore'] = 'تجاهل'; $labels['responses'] = 'الردود'; $labels['manageresponses'] = 'إدارة الردود'; +$labels['editresponses'] = 'تعديل الردود'; $labels['responsename'] = 'الإسم'; $labels['attach'] = 'إرفاق'; $labels['attachments'] = 'مرفقات'; @@ -314,6 +315,7 @@ $labels['typeblog'] = 'المدوّنة'; $labels['typeprofile'] = 'الملف الشخصي'; $labels['addfield'] = 'إضافة حقل...'; +$labels['addcontact'] = 'إضافة مراسل'; $labels['editcontact'] = 'تحرير بيانات المراسل'; $labels['contacts'] = 'المراسلين'; $labels['contactproperties'] = 'خواص جهة الإتصال'; @@ -331,6 +333,7 @@ $labels['uploadphoto'] = 'ارفع صورة'; $labels['choosefile'] = 'اختر ملفا...'; $labels['choosefiles'] = 'اختر ملفات...'; +$labels['newcontact'] = 'إنشاء مراسل جديد'; $labels['deletecontact'] = 'حذف المراسلين المحددين'; $labels['composeto'] = 'إنشاء رسالة إليه'; $labels['contactsfromto'] = 'المراسلون $from إلى $to من $count'; @@ -419,7 +422,6 @@ $labels['advancedoptions'] = 'خيارات متقدّمة'; $labels['focusonnewmessage'] = 'التركيز على نافذة المتصفح عند وجود رسالةجديدة'; $labels['checkallfolders'] = 'التحقق من وجود رسائل جديدة في جميعالمجلدات'; -$labels['displaynext'] = 'إظهار الرسالة التالية بعد حذف/نقلالرسالة الحالية'; $labels['mainoptions'] = 'الخيارات الأساسية'; $labels['browseroptions'] = 'خيارات المتصفح'; $labels['section'] = 'قسم'; @@ -438,6 +440,7 @@ $labels['reqmdn'] = 'طلب إشعار استلام دائماً'; $labels['reqdsn'] = 'طلب تنويه لحالة التوصيل دائماً'; $labels['replysamefolder'] = 'وضع الردود في المجلد الذي يحوي الرسالةالمردود عليها'; +$labels['defaultabook'] = 'دفتر العناوين الافتراضي'; $labels['autocompletesingle'] = 'تجاهل عنوان البريد الإلكتروني البديل فيالتكملة التلقائية'; $labels['spellcheckbeforesend'] = 'تحقق من الإملاء قبل إرسال الرسائل'; $labels['spellcheckoptions'] = 'خيارات التدقيق الإملاءي';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ar_SA/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ar_SA/labels.inc
Changed
@@ -399,7 +399,6 @@ $labels['advancedoptions'] = 'خيارات متقدّمة'; $labels['focusonnewmessage'] = 'التركيز على نافذة المتصفح عند وجود رسالةجديدة'; $labels['checkallfolders'] = 'التحقق من وجود رسائل جديدة في جميعالمجلدات'; -$labels['displaynext'] = 'إظهار الرسالة التالية بعد حذف/نقلالرسالة الحالية'; $labels['defaultfont'] = 'الخط الافتراضي لـ رسائل HTML'; $labels['mainoptions'] = 'الخيارات الأساسية'; $labels['browseroptions'] = 'خيارات المتصفح';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ast/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ast/labels.inc
Changed
@@ -426,7 +426,6 @@ $labels['toggleadvancedoptions'] = 'Camudar opciones avanzaes'; $labels['focusonnewmessage'] = 'Enfocar la ventana de restolación en mensaxes nuevos'; $labels['checkallfolders'] = 'Comprobar en toles carpetes mensaxes nuevos'; -$labels['displaynext'] = 'Depués de mover/desaniciar amosar el mensaxe siguiente'; $labels['defaultfont'] = 'Triba de fonte por defeutu del mensaxe HTML'; $labels['mainoptions'] = 'Opciones principales'; $labels['browseroptions'] = 'Opciones del restolador';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/az_AZ/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/az_AZ/labels.inc
Changed
@@ -430,7 +430,6 @@ $labels['advancedoptions'] = 'Ətraflı nizamlama'; $labels['focusonnewmessage'] = 'Yeni məktub zamanı brauzerin pəncərəsini fokusla'; $labels['checkallfolders'] = 'Bütün qovluqlarda yeni məktubları yoxla'; -$labels['displaynext'] = 'Hazırkini sildikdə/köçürdükdə növbəti məktubu göstər'; $labels['defaultfont'] = 'HTML məktubun default şrifti'; $labels['mainoptions'] = 'Əsas nizamlamalar'; $labels['browseroptions'] = 'Brauzer ayarları';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/be_BE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/be_BE/labels.inc
Changed
@@ -420,7 +420,6 @@ $labels['advancedoptions'] = 'Дадатковыя параметры'; $labels['focusonnewmessage'] = 'Актываваць акно браўзера пры новым паведамленні'; $labels['checkallfolders'] = 'Правяраць усе папкі на новыя паведамленні'; -$labels['displaynext'] = 'Па выдаленні/перамяшчэнні паведамлення паказваць наступнае паведамленне'; $labels['defaultfont'] = 'Стандартны шрыфт паведамлення ў HTML'; $labels['mainoptions'] = 'Асноўныя параметры'; $labels['browseroptions'] = 'Параметры браўзера';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/bg_BG/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/bg_BG/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Разгъни непрочетените'; $labels['collapse-all'] = 'Сгъни всички'; $labels['threaded'] = 'Групирани по кореспонденции'; +$labels['showunread'] = 'Покажи непрочетените писма'; $labels['autoexpand_threads'] = 'Разгъни кореспонденции'; $labels['do_expand'] = 'всички кореспонденции'; $labels['expand_only_unread'] = 'само с непрочетени писма'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Превключване на разширени опции'; $labels['focusonnewmessage'] = 'Премигване на прозореца при ново писмо'; $labels['checkallfolders'] = 'Проверка за нови писма във всички папки '; -$labels['displaynext'] = 'След изтриване/преместване на писмо покажи следващото в списъка'; +$labels['displaynext'] = 'Покажи следващия запис от списъка след изтриване/преместване'; $labels['defaultfont'] = 'Шрифт по подразбиране за HTML писма'; $labels['mainoptions'] = 'Основни настройки'; $labels['browseroptions'] = 'Настройки на текущ браузър';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/bg_BG/timezones.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/bg_BG/timezones.inc
Changed
@@ -16,13 +16,140 @@ $labels['tz:utc'] = 'UTC'; $labels['tz:africa'] = 'Африка'; +$labels['tz:africa:abidjan'] = 'Абиджан'; +$labels['tz:africa:accra'] = 'Акра'; +$labels['tz:africa:addis_ababa'] = 'Адис Абеба'; +$labels['tz:africa:algiers'] = 'Алжир'; +$labels['tz:africa:asmara'] = 'Асмара'; +$labels['tz:africa:cairo'] = 'Кайро'; +$labels['tz:africa:casablanca'] = 'Казабланка'; +$labels['tz:africa:ceuta'] = 'Сеута'; +$labels['tz:africa:conakry'] = 'Конакри'; +$labels['tz:africa:dakar'] = 'Дакар'; +$labels['tz:africa:lagos'] = 'Лагос'; +$labels['tz:africa:tripoli'] = 'Триполи'; +$labels['tz:africa:tunis'] = 'Тунис'; $labels['tz:america'] = 'Америка'; +$labels['tz:america:argentina'] = 'Аржентина'; +$labels['tz:america:argentina:buenos_aires'] = 'Буенос Айрес'; +$labels['tz:america:argentina:catamarca'] = 'Катамарка'; +$labels['tz:america:argentina:cordoba'] = 'Кордоба'; +$labels['tz:america:argentina:salta'] = 'Салта'; +$labels['tz:america:aruba'] = 'Аруба'; +$labels['tz:america:barbados'] = 'Барбадос'; +$labels['tz:america:bogota'] = 'Богота'; +$labels['tz:america:chicago'] = 'Чикаго'; +$labels['tz:america:chihuahua'] = 'Чиуауа'; +$labels['tz:america:costa_rica'] = 'Коста Рика'; +$labels['tz:america:denver'] = 'Денвър'; +$labels['tz:america:detroit'] = 'Детройт'; +$labels['tz:america:el_salvador'] = 'Ел Салвадор'; +$labels['tz:america:grenada'] = 'Гренада'; +$labels['tz:america:guadeloupe'] = 'Гваделупа'; +$labels['tz:america:guatemala'] = 'Гватемала'; +$labels['tz:america:halifax'] = 'Halifax'; +$labels['tz:america:havana'] = 'Хавана'; +$labels['tz:america:indiana:indianapolis'] = 'Индианаполис'; +$labels['tz:america:jamaica'] = 'Ямайка'; +$labels['tz:america:lima'] = 'Лима'; +$labels['tz:america:los_angeles'] = 'Лос Анжелис'; +$labels['tz:america:mexico_city'] = 'Мексико сити'; +$labels['tz:america:monterrey'] = 'Монтерей'; +$labels['tz:america:montevideo'] = 'Монтевидео'; +$labels['tz:america:montserrat'] = 'Монсерат'; +$labels['tz:america:new_york'] = 'Ню Йорк'; +$labels['tz:america:north_dakota'] = 'Северна Дакота'; +$labels['tz:america:panama'] = 'Панама'; +$labels['tz:america:sao_paulo'] = 'Сао Пауло'; +$labels['tz:america:toronto'] = 'Торонто'; +$labels['tz:america:vancouver'] = 'Ванкувър'; +$labels['tz:america:winnipeg'] = 'Уинипег'; $labels['tz:antarctica'] = 'Антарктида'; $labels['tz:arctic'] = 'Арктика'; $labels['tz:asia'] = 'Азия'; +$labels['tz:asia:baku'] = 'Баку'; +$labels['tz:asia:beirut'] = 'Бейрут'; +$labels['tz:asia:dubai'] = 'Дубай'; +$labels['tz:asia:hong_kong'] = 'Хонг Конг'; +$labels['tz:asia:jakarta'] = 'Джакарта'; +$labels['tz:asia:nicosia'] = 'Никозия'; +$labels['tz:asia:seoul'] = 'Сеул'; +$labels['tz:asia:shanghai'] = 'Шанхай'; +$labels['tz:asia:singapore'] = 'Сингапур'; +$labels['tz:asia:taipei'] = 'Тайпе'; +$labels['tz:asia:tokyo'] = 'Токио'; +$labels['tz:asia:vladivostok'] = 'Владивосток'; $labels['tz:atlantic'] = 'Атлантическа'; +$labels['tz:atlantic:cape_verde'] = 'Кабо Верде'; +$labels['tz:atlantic:reykjavik'] = 'Рейкявик'; $labels['tz:australia'] = 'Австралия'; +$labels['tz:australia:adelaide'] = 'Аделаида'; +$labels['tz:australia:brisbane'] = 'Бризбейн'; +$labels['tz:australia:melbourne'] = 'Мелбърн'; +$labels['tz:australia:perth'] = 'Пърт'; +$labels['tz:australia:sydney'] = 'Сидни'; $labels['tz:europe'] = 'Европа'; +$labels['tz:europe:amsterdam'] = 'Амстердам'; +$labels['tz:europe:andorra'] = 'Андора'; +$labels['tz:europe:athens'] = 'Атина'; +$labels['tz:europe:belgrade'] = 'Белград'; +$labels['tz:europe:berlin'] = 'Берлин'; +$labels['tz:europe:bratislava'] = 'Братислава'; +$labels['tz:europe:brussels'] = 'Брюксел'; +$labels['tz:europe:bucharest'] = 'Букурещ'; +$labels['tz:europe:budapest'] = 'Будапеща'; +$labels['tz:europe:copenhagen'] = 'Копенхаген'; +$labels['tz:europe:dublin'] = 'Дъблин'; +$labels['tz:europe:gibraltar'] = 'Гибралтар'; +$labels['tz:europe:helsinki'] = 'Хелзинки'; +$labels['tz:europe:isle_of_man'] = 'Остров Ман'; +$labels['tz:europe:istanbul'] = 'Истанбул'; +$labels['tz:europe:jersey'] = 'Джърси'; +$labels['tz:europe:kaliningrad'] = 'Калининград'; +$labels['tz:europe:kiev'] = 'Киев'; +$labels['tz:europe:kirov'] = 'Киров'; +$labels['tz:europe:lisbon'] = 'Лисабон'; +$labels['tz:europe:ljubljana'] = 'Любляна'; +$labels['tz:europe:london'] = 'Лондон'; +$labels['tz:europe:luxembourg'] = 'Люксембург'; +$labels['tz:europe:madrid'] = 'Мадрид'; +$labels['tz:europe:malta'] = 'Малта'; +$labels['tz:europe:minsk'] = 'Минск'; +$labels['tz:europe:monaco'] = 'Монако'; +$labels['tz:europe:moscow'] = 'Москва'; +$labels['tz:europe:oslo'] = 'Осло'; +$labels['tz:europe:paris'] = 'Париж'; +$labels['tz:europe:podgorica'] = 'Подгорица'; +$labels['tz:europe:prague'] = 'Прага'; +$labels['tz:europe:riga'] = 'Рига'; +$labels['tz:europe:rome'] = 'Рим'; +$labels['tz:europe:samara'] = 'Самара'; +$labels['tz:europe:san_marino'] = 'Сан Марино'; +$labels['tz:europe:sarajevo'] = 'Сараево'; +$labels['tz:europe:saratov'] = 'Саратов'; +$labels['tz:europe:simferopol'] = 'Симферопол'; +$labels['tz:europe:skopje'] = 'Скопие'; $labels['tz:europe:sofia'] = 'София'; +$labels['tz:europe:stockholm'] = 'Стокхолм'; +$labels['tz:europe:tallinn'] = 'Талин'; +$labels['tz:europe:tirane'] = 'Тирана'; +$labels['tz:europe:ulyanovsk'] = 'Уляновск'; +$labels['tz:europe:uzhgorod'] = 'Ужгород'; +$labels['tz:europe:vaduz'] = 'Вадуц'; +$labels['tz:europe:vatican'] = 'Ватикана'; +$labels['tz:europe:vienna'] = 'Виена'; +$labels['tz:europe:vilnius'] = 'Вилнюс'; +$labels['tz:europe:volgograd'] = 'Волгоград'; +$labels['tz:europe:warsaw'] = 'Варшава'; +$labels['tz:europe:zagreb'] = 'Загреб'; +$labels['tz:europe:zaporozhye'] = 'Запорожие'; +$labels['tz:europe:zurich'] = 'Цюрих'; $labels['tz:indian'] = 'Индийски океан'; +$labels['tz:indian:maldives'] = 'Малдиви'; $labels['tz:pacific'] = 'Тихоокеанска'; +$labels['tz:pacific:fiji'] = 'Фиджи'; +$labels['tz:pacific:galapagos'] = 'Галапагос'; +$labels['tz:pacific:guam'] = 'Гуам'; +$labels['tz:pacific:honolulu'] = 'Хонолулу'; +$labels['tz:pacific:midway'] = 'Мидуей'; +$labels['tz:pacific:norfolk'] = 'Норфолк';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/br/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/br/labels.inc
Changed
@@ -456,7 +456,6 @@ $labels['toggleadvancedoptions'] = 'Trec\'haoliñ an dibarzhioù araoket'; $labels['focusonnewmessage'] = 'Stiañ prenestr ar merdeer pa \'z eus ur gemennadenn nevez'; $labels['checkallfolders'] = 'Gwiriañ an holl deuliadoù evit kemennadennoù nevez'; -$labels['displaynext'] = 'Diskouez ar gemennadenn war-lerc\'h goude ma vefe bet lamet kuit bet dilec\'hiet ur gemennadenn.'; $labels['defaultfont'] = 'Nodrezh dre ziouer ar c\'hemennadennoù HTML'; $labels['mainoptions'] = 'Dibarzhioù dre ziouer'; $labels['browseroptions'] = 'Dibarzhioù ar merdeer';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/bs_BA/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/bs_BA/labels.inc
Changed
@@ -439,7 +439,6 @@ $labels['toggleadvancedoptions'] = '(De)aktivacija naprednih opcija'; $labels['focusonnewmessage'] = 'Fokusiraj prozor preglednika na novu poruku'; $labels['checkallfolders'] = 'Provjeri ima li novih poruka u svim folderima'; -$labels['displaynext'] = 'Aakon brisanja/premještanja poruke, prikaži slijedeću poruku'; $labels['defaultfont'] = 'Osnovni font za HTML poruke'; $labels['mainoptions'] = 'Glavne opcije'; $labels['browseroptions'] = 'Opcije preglednika';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ca_ES/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ca_ES/labels.inc
Changed
@@ -467,7 +467,6 @@ $labels['toggleadvancedoptions'] = 'Commuta les opcions avançades'; $labels['focusonnewmessage'] = 'Activa la finestra del navegador quan hi hagi un nou missatge'; $labels['checkallfolders'] = 'Comprova totes les carpetes per missatges nous'; -$labels['displaynext'] = 'Mostra el missatge següent després de suprimir-ne o moure\'n un'; $labels['defaultfont'] = 'Font de lletra per defecte de missatge en HTML'; $labels['mainoptions'] = 'Opcions principals'; $labels['browseroptions'] = 'Opcions del navegador';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/cs_CZ/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/cs_CZ/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Rozbalit nepřečtené'; $labels['collapse-all'] = 'Sbalit všechny'; $labels['threaded'] = 'Spojovat do konverzací'; +$labels['showunread'] = 'Zobrazit nepřečtené zprávy'; $labels['autoexpand_threads'] = 'Rozbalit konverzace'; $labels['do_expand'] = 'všechny konverzace'; $labels['expand_only_unread'] = 'pouze s nepřečtenými zprávami'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Přepnout pokročilé možnosti'; $labels['focusonnewmessage'] = 'Aktivovat okno prohlížeče při příchozí zprávě'; $labels['checkallfolders'] = 'Kontrolovat nové zprávy ve všech složkách'; -$labels['displaynext'] = 'Zobrazit další zprávu po smazání/přesunu zprávy'; +$labels['displaynext'] = 'Zobrazit další záznam po smazání/přesunutí'; $labels['defaultfont'] = 'Výchozí písmo zprávy HTML'; $labels['mainoptions'] = 'Hlavní nastavení'; $labels['browseroptions'] = 'Možnosti prohlížeče';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/cy_GB/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/cy_GB/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Ehangu Negeseuon Heb eu darllen'; $labels['collapse-all'] = 'Crebachu Popeth'; $labels['threaded'] = 'Edafedd'; +$labels['showunread'] = 'Dangos negeseuon heb eu darllen'; $labels['autoexpand_threads'] = 'Ehangu edefau neges'; $labels['do_expand'] = 'pob edefyn'; $labels['expand_only_unread'] = 'dim ond gyda negeseuon heb eu darllen'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Newid dewisiadau uwch'; $labels['focusonnewmessage'] = 'Ffocysu\'r porwr ar y neges newydd'; $labels['checkallfolders'] = 'Chwilio pob ffolder am negeseuon newydd'; -$labels['displaynext'] = 'Ar ôl dileu/symud neges dangos y neges nesaf'; +$labels['displaynext'] = 'Dangos cofnod rhestr nesaf ar ôl dileu/symud'; $labels['defaultfont'] = 'Ffont arferol ar gyfer negeseuon HTML'; $labels['mainoptions'] = 'Prif Ddewisiadau'; $labels['browseroptions'] = 'Dewisiadau Porwr';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/cy_GB/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/cy_GB/messages.inc
Changed
@@ -64,8 +64,11 @@ $messages['encryptnoattachments'] = 'Nid yw\'n bosib amgryptio atodiadau wedi uwchlwytho yn barod. Ychwanegwch nhw eto yn y golygydd amgryptio.'; $messages['searchpubkeyservers'] = 'Hoffech chi chwilio y gweinyddwyr allweddi cyhoeddus ar gyfer yr allweddi sy ar goll?'; $messages['encryptpubkeysfound'] = 'Cafwyd hyd i\'r allweddi cyhoeddus canlynol:'; +$messages['keyservererror'] = 'Methwyd cael yr allwedd o\'r gweinydd allweddi.'; +$messages['keyimportsuccess'] = 'Mewnforiwyd yr allwedd cyhoeddus $key i\'ch cylch allweddi yn llwyddiannus'; $messages['nocontactsfound'] = 'Ni gafwyd hyd i unrhyw gysylltiadau'; $messages['contactnotfound'] = 'Ni gafwyd hyd i\'r cysylltiad gofynnwyd amdano'; +$messages['contactsearchonly'] = 'Rhaid i chi ddefnyddio\'r ffurflen chwilio i weld cysylltiadau o\'ch llyfr cyfeiriadau dewisol.'; $messages['sendingfailed'] = 'Methwyd danfon y neges'; $messages['senttooquickly'] = 'Arhoswch $sec eiliad cyn danfon y neges'; $messages['errorsavingsent'] = 'Fe gafwyd gwall wrth gadw\'r neges ddanfonwyd.';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/da_DK/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/da_DK/labels.inc
Changed
@@ -505,7 +505,6 @@ $labels['toggleadvancedoptions'] = 'Skift avancerede indstillinger'; $labels['focusonnewmessage'] = 'Fokusér browservindue når der kommer en ny besked'; $labels['checkallfolders'] = 'Tjek alle mapper for nye beskeder'; -$labels['displaynext'] = 'Efter slet/flyt besked, vis næste besked'; $labels['defaultfont'] = 'Standard font ved HTML besked'; $labels['mainoptions'] = 'Generelle indstillinger'; $labels['browseroptions'] = 'Browserindstillinger';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/de_CH/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/de_CH/labels.inc
Changed
@@ -507,7 +507,6 @@ $labels['toggleadvancedoptions'] = 'Erweiterte Einstellungen ein-/ausblenden'; $labels['focusonnewmessage'] = 'Fokussiere Browserfenster bei neuen Nachrichten'; $labels['checkallfolders'] = 'Alle Ordner auf neue Nachrichten prüfen'; -$labels['displaynext'] = 'Zeige nächste Nachricht nach verschieben/löschen'; $labels['defaultfont'] = 'Standardschrift in HTML-Nachrichten'; $labels['mainoptions'] = 'Allgemein'; $labels['browseroptions'] = 'Browsereinstellungen';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/de_DE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/de_DE/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Ungelesene aufklappen'; $labels['collapse-all'] = 'Alle zuklappen'; $labels['threaded'] = 'Gruppiert'; +$labels['showunread'] = 'Ungelesene Nachrichten anzeigen'; $labels['autoexpand_threads'] = 'Konversationen aufklappen'; $labels['do_expand'] = 'alle'; $labels['expand_only_unread'] = 'nur ungelesene'; @@ -510,7 +511,6 @@ $labels['toggleadvancedoptions'] = 'Erweiterte Optionen auswählen'; $labels['focusonnewmessage'] = 'Fokussiere Browserfenster bei neuen Nachrichten'; $labels['checkallfolders'] = 'Alle Ordner auf neue Nachrichten prüfen'; -$labels['displaynext'] = 'Nächste Nachricht nach verschieben/löschen anzeigen'; $labels['defaultfont'] = 'Standardschrift von HTML-Nachrichten'; $labels['mainoptions'] = 'Allgemein'; $labels['browseroptions'] = 'Browsereinstellungen';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/el_GR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/el_GR/labels.inc
Changed
@@ -468,7 +468,6 @@ $labels['toggleadvancedoptions'] = 'Εναλλαγή προχωρημένων επιλογών'; $labels['focusonnewmessage'] = 'Τα νέα μηνύματα να επιλέγονται αυτόματα'; $labels['checkallfolders'] = 'Να γίνεται έλεγχος σε όλους τους φακέλους για νέα μηνύματα'; -$labels['displaynext'] = 'Μετά από κάθε μετακίνηση/διαγραφή μηνήματος να εμφανίζεται το επόμενο'; $labels['defaultfont'] = 'Προεπιλεγμένη γραμματοσειρά για τα μηνύματα μορφής HTML'; $labels['mainoptions'] = 'Βασικές επιλογές'; $labels['browseroptions'] = 'Επιλογές περιηγητή';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/en_CA/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/en_CA/labels.inc
Changed
@@ -400,7 +400,6 @@ $labels['advancedoptions'] = 'Advanced options'; $labels['focusonnewmessage'] = 'Focus browser window on new message'; $labels['checkallfolders'] = 'Check all folders for new messages'; -$labels['displaynext'] = 'After message delete/move display the next message'; $labels['defaultfont'] = 'Default font of HTML message'; $labels['mainoptions'] = 'Main Options'; $labels['browseroptions'] = 'Browser Options';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/en_GB/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/en_GB/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Expand Unread'; $labels['collapse-all'] = 'Collapse All'; $labels['threaded'] = 'Threaded'; +$labels['showunread'] = 'Show unread messages'; $labels['autoexpand_threads'] = 'Expand message threads'; $labels['do_expand'] = 'all threads'; $labels['expand_only_unread'] = 'only with unread messages'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Toggle advanced options'; $labels['focusonnewmessage'] = 'Focus browser window on new message'; $labels['checkallfolders'] = 'Check all folders for new messages'; -$labels['displaynext'] = 'After message delete/move display the next message'; +$labels['displaynext'] = 'Display next list entry after delete/move'; $labels['defaultfont'] = 'Default font for HTML message'; $labels['mainoptions'] = 'Main Options'; $labels['browseroptions'] = 'Browser Options';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/en_US/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/en_US/labels.inc
Changed
@@ -193,6 +193,7 @@ $labels['expand-unread'] = 'Expand Unread'; $labels['collapse-all'] = 'Collapse All'; $labels['threaded'] = 'Threaded'; +$labels['showunread'] = 'Show unread messages'; $labels['autoexpand_threads'] = 'Expand message threads'; $labels['do_expand'] = 'all threads'; @@ -566,7 +567,7 @@ $labels['toggleadvancedoptions'] = 'Toggle advanced options'; $labels['focusonnewmessage'] = 'Focus browser window on new message'; $labels['checkallfolders'] = 'Check all folders for new messages'; -$labels['displaynext'] = 'Display next record after delete/move'; +$labels['displaynext'] = 'Display next list entry after delete/move'; $labels['defaultfont'] = 'Default font of HTML message'; $labels['mainoptions'] = 'Main Options'; $labels['browseroptions'] = 'Browser Options';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/eo/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/eo/messages.inc
Changed
@@ -25,8 +25,12 @@ $messages['errorreadonly'] = 'Ne povis fari agon. Dosierujo estas nurlega'; $messages['errornoperm'] = 'Ne povis fari agon. Ne havas permeson.'; $messages['invalidrequest'] = 'Nevalida peto'; +$messages['invalidhost'] = 'Nevalida servilo-nomo'; $messages['nomessagesfound'] = 'Neniu mesaĝo en ĉi tiu dosierujo'; +$messages['nomessages'] = 'Neniu mesaĝo'; $messages['loading'] = 'Ŝarganta...'; +$messages['uploading'] = 'Alŝutanta dosieron...'; +$messages['uploadingmany'] = 'Alŝutanta dosierojn...'; $messages['loadingdata'] = 'Ŝarganta datumojn...'; $messages['checkingmail'] = 'Kontrolanta, ĉu novaj mesaĝoj...'; $messages['sendingmessage'] = 'Sedanta mesaĝon...';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/es_419/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/es_419/labels.inc
Changed
@@ -435,7 +435,6 @@ $labels['toggleadvancedoptions'] = 'Cambiar opciones avanzadas'; $labels['focusonnewmessage'] = 'Enfocar la ventana del navegador en el nuevo mensaje'; $labels['checkallfolders'] = 'Buscar nuevos mensajes en todas las carpetas'; -$labels['displaynext'] = 'Luego de eliminar/mover mensajes, mostrar el próximo'; $labels['defaultfont'] = 'Tipo de letra predeterminado en mensajes HTML'; $labels['mainoptions'] = 'Opciones principales'; $labels['browseroptions'] = 'Opciones del navegador';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/es_AR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/es_AR/labels.inc
Changed
@@ -20,6 +20,7 @@ $labels['password'] = 'Contraseña'; $labels['server'] = 'Servidor'; $labels['login'] = 'Entrar'; +$labels['menu'] = 'Menu'; $labels['logout'] = 'Cerrar sesión'; $labels['mail'] = 'Correo'; $labels['settings'] = 'Configuración'; @@ -37,13 +38,14 @@ $labels['cc'] = 'Copia'; $labels['bcc'] = 'Cco'; $labels['replyto'] = 'Responder a'; -$labels['followupto'] = 'Seguir-A'; +$labels['followupto'] = 'Seguimiento-a'; $labels['date'] = 'Fecha'; $labels['size'] = 'Tamaño'; $labels['priority'] = 'Prioridad'; $labels['organization'] = 'Organización'; $labels['readstatus'] = 'Leer estado'; $labels['listoptions'] = 'Listar opciones...'; +$labels['listoptionstitle'] = 'Listar opciones'; $labels['mailboxlist'] = 'Carpetas'; $labels['messagesfromto'] = 'Mensajes $from a $to de $count'; $labels['threadsfromto'] = '$from a $to de $count conversaciones'; @@ -59,7 +61,7 @@ $labels['showanyway'] = 'Mostrar esto siempre'; $labels['filename'] = 'Nombre del archivo'; $labels['filesize'] = 'Tamaño del archivo'; -$labels['addtoaddressbook'] = 'Añadir a contactos'; +$labels['addtoaddressbook'] = 'Agregar a contactos'; $labels['sun'] = 'Dom'; $labels['mon'] = 'Lun'; $labels['tue'] = 'Mar'; @@ -78,7 +80,7 @@ $labels['feb'] = 'Feb'; $labels['mar'] = 'Mar'; $labels['apr'] = 'Abr'; -$labels['may'] = 'Mayo'; +$labels['may'] = 'May'; $labels['jun'] = 'Jun'; $labels['jul'] = 'Jul'; $labels['aug'] = 'Ago'; @@ -101,7 +103,7 @@ $labels['today'] = 'Hoy'; $labels['refresh'] = 'Actualizar'; $labels['checkmail'] = 'Revisar si hay nuevos mensajes'; -$labels['compose'] = 'Escribir un mensaje'; +$labels['compose'] = 'Redactar'; $labels['writenewmessage'] = 'Crear nuevo mensaje'; $labels['reply'] = 'Responder'; $labels['replytomessage'] = 'Responder mensaje'; @@ -112,6 +114,8 @@ $labels['forwardinline'] = 'Reenviar en linea'; $labels['forwardattachment'] = 'Reenviar como adjunto'; $labels['forwardmessage'] = 'Reenviar mensaje'; +$labels['bouncemsg'] = 'Volver a enviar (rebote)'; +$labels['bounce'] = 'Volver a enviar'; $labels['deletemessage'] = 'Eliminar mensaje'; $labels['movemessagetotrash'] = 'Mover mensaje a la papelera'; $labels['printmessage'] = 'Imprimir este mensaje'; @@ -128,15 +132,22 @@ $labels['markflagged'] = 'Como marcado'; $labels['markunflagged'] = 'Como no marcado'; $labels['moreactions'] = 'Mas acciones...'; +$labels['markallread'] = 'Marcar todos como leídos'; +$labels['folders-cur'] = 'Solo carpetas seleccionadas'; +$labels['folders-sub'] = 'La carpeta seleccionada y sus subcarpetas'; $labels['folders-all'] = 'Todas las carpetas'; $labels['more'] = 'Más'; $labels['back'] = 'Atrás'; $labels['options'] = 'Opciones'; +$labels['composeoptions'] = 'Opciones de composición'; +$labels['optionsandattachments'] = 'Opciones y adjuntos'; +$labels['actions'] = 'Acciones'; $labels['first'] = 'Primero'; $labels['last'] = 'Último'; $labels['previous'] = 'Anterior'; $labels['next'] = 'Siguiente'; -$labels['select'] = 'Elija'; +$labels['select'] = 'Seleccionar'; +$labels['selection'] = 'Selección'; $labels['all'] = 'Todos'; $labels['none'] = 'Ninguno'; $labels['currpage'] = 'Página actual'; @@ -173,11 +184,20 @@ $labels['listsorting'] = 'Ordenar por'; $labels['listorder'] = 'Ordenado por'; $labels['listmode'] = 'Modo vista en lista'; +$labels['lmode'] = 'Modo de lista'; +$labels['layout'] = 'Disposición'; +$labels['layoutwidescreen'] = 'Pantalla ancha'; +$labels['layoutdesktop'] = 'Escritorio'; $labels['layoutlist'] = 'Lista'; +$labels['layoutwidescreendesc'] = 'Pantalla ancha (vista de 3 columas)'; +$labels['layoutdesktopdesc'] = 'Escritorio (lista ancha y previsualización de mensajes inferior)'; +$labels['layoutlistdesc'] = 'Lista (sin previsualización de mensajes)'; $labels['folderactions'] = 'Acciones de carpeta...'; $labels['compact'] = 'Compactar'; $labels['empty'] = 'Vaciar'; $labels['importmessages'] = 'Importar mensajes'; +$labels['mailimportdesc'] = 'Podés subir correo usando archivos en formato <a href="https://en.wikipedia.org/wiki/Email#Message_format">MIME</a> o <a href="https://en.wikipedia.org/wiki/Mbox">Mbox</a>.'; +$labels['mailimportzip'] = 'Se pueden comprimir múltiples archivos como zip.'; $labels['quota'] = 'Uso de disco'; $labels['unknown'] = 'desconocido'; $labels['unlimited'] = 'sin límite'; @@ -186,8 +206,12 @@ $labels['quotaused'] = 'Usado'; $labels['quotastorage'] = 'Espacio de disco'; $labels['quotamessage'] = 'Cantidad de mensajes'; +$labels['shortheaderdate'] = 'El $date'; +$labels['shortheaderto'] = 'Para $to el $date'; +$labels['shortheaderfrom'] = 'De $from el $date'; $labels['quicksearch'] = 'Búsqueda rápida'; -$labels['resetsearch'] = 'Reajustar la búsqueda'; +$labels['searchplaceholder'] = 'Buscar...'; +$labels['resetsearch'] = 'Restablecer la búsqueda'; $labels['searchmod'] = 'Opciones de búsqueda'; $labels['msgtext'] = 'Mensaje completo'; $labels['body'] = 'Cuerpo'; @@ -197,7 +221,13 @@ $labels['currentfolder'] = 'Carpeta actual'; $labels['subfolders'] = 'Este y subcarpetas'; $labels['allfolders'] = 'Todas las carpetas'; -$labels['openinextwin'] = 'Abrir en ventana nueva'; +$labels['searchinterval-1W'] = 'de más de una semana'; +$labels['searchinterval-1M'] = 'de más de un mes'; +$labels['searchinterval-1Y'] = 'de más de un año'; +$labels['searchinterval1W'] = 'de menos de una semana'; +$labels['searchinterval1M'] = 'de menos de un mes'; +$labels['searchinterval1Y'] = 'de menos de un año'; +$labels['openinextwin'] = 'Abrir en una ventana nueva'; $labels['emlsave'] = 'Guardar (.eml)'; $labels['changeformattext'] = 'Mostrar en formato de texto plano'; $labels['changeformathtml'] = 'Mostrar en formato HTML'; @@ -216,15 +246,30 @@ $labels['addimage'] = 'Agregar imagen'; $labels['selectmedia'] = 'Seleccionar película'; $labels['addmedia'] = 'Agregar película'; +$labels['encrypt'] = 'Encriptar'; +$labels['encryptmessage'] = 'Encriptar mensaje'; +$labels['encryptmessagemailvelope'] = 'Encriptar mensaje con Mailvelope'; +$labels['importpubkeys'] = 'Importar claves públicas'; +$labels['encryptedsendialog'] = 'Enviando mensaje encriptado'; +$labels['encryptandsign'] = 'Encriptar y firmar'; +$labels['keyid'] = 'ID de clave'; +$labels['keylength'] = 'Bits'; +$labels['keyexpired'] = 'Expirado'; +$labels['keyrevoked'] = 'Revocado'; +$labels['bccinstead'] = 'Usar Cco'; +$labels['addheader'] = 'Agregar destinatario (encabezado)'; $labels['insert'] = 'Insertar'; +$labels['insertcontact'] = 'Insertar contacto(s)'; $labels['recipient'] = 'Destinatario'; +$labels['recipientedit'] = 'Editar destinatario'; $labels['editidents'] = 'Editar identidades'; -$labels['spellcheck'] = 'Gramática'; +$labels['spellcheck'] = 'Ortografía'; $labels['checkspelling'] = 'Revisar ortografía'; $labels['resumeediting'] = 'Continuar edición'; $labels['revertto'] = 'Revertir a'; $labels['restore'] = 'Restaurar'; $labels['restoremessage'] = '¿Restaurar mensaje?'; +$labels['ignore'] = 'Ignorar'; $labels['responses'] = 'Respuestas'; $labels['insertresponse'] = 'Insertar una respuesta'; $labels['manageresponses'] = 'Administrar respuestas'; @@ -241,6 +286,7 @@ $labels['close'] = 'Cerrar'; $labels['messageoptions'] = 'Opciones de mensaje...'; $labels['togglecomposeoptions'] = 'Activar opciones de composición'; +$labels['attachmentrename'] = 'Renombrar adjunto'; $labels['low'] = 'Bajo'; $labels['lowest'] = 'Bajísimo'; $labels['normal'] = 'Normal'; @@ -248,30 +294,43 @@ $labels['highest'] = 'Altísimo'; $labels['nosubject'] = '(sin asunto)'; $labels['showimages'] = 'Mostrar imágenes'; +$labels['allow'] = 'Permitir'; $labels['alwaysshow'] = 'Siempre mostrar imágenes de $sender'; +$labels['alwaysallow'] = 'Siempre permitir de $sender'; $labels['isdraft'] = 'Este es un borrador.'; $labels['andnmore'] = '$nr más...'; -$labels['togglemoreheaders'] = 'Mostrarme más encabezados de mensaje'; -$labels['togglefullheaders'] = 'Activar encabezados en crudo'; +$labels['details'] = 'Detalles'; +$labels['headers'] = 'Encabezados'; +$labels['allheaders'] = 'Todos los encabezados...'; +$labels['togglemoreheaders'] = 'Mostrar más encabezados del mensaje'; +$labels['togglefullheaders'] = 'Activar encabezados del mensaje en bruto'; $labels['htmltoggle'] = 'HTML'; $labels['plaintoggle'] = 'Texto'; $labels['savesentmessagein'] = 'Guardar mensaje enviado en'; $labels['dontsave'] = 'no guardar'; $labels['maxuploadsize'] = 'El tamaño maximo permitido por archivo es $size'; -$labels['addcc'] = 'Añadir Cc'; -$labels['addbcc'] = 'Añadir Cco'; -$labels['addreplyto'] = 'Añadir Respuesta a'; -$labels['addfollowupto'] = 'Agregar Seguir-A'; -$labels['mdnrequest'] = 'El emisor de este mensaje desea ser notificado cuando usted lo lea. ¿Quiere enviar esta notificación?'; +$labels['addcc'] = 'Agregar Cc'; +$labels['addbcc'] = 'Agregar Cco'; +$labels['addreplyto'] = 'Agregar respuesta a'; +$labels['addfollowupto'] = 'Agregar seguimiento-a'; +$labels['mdnrequest'] = 'El remitente de este mensaje desea ser notificado cuando lo leas. ¿Querés enviar esta notificación?'; $labels['receiptread'] = 'Notificación de lectura'; -$labels['yourmessage'] = 'Esta es una notificación de lectura de su mensaje'; -$labels['receiptnote'] = 'Nota: Esta notificación sólo significa que su mensaje fue mostrado en la computadora del receptor. No hay garantía de que el receptor haya leído o entendido el contenido del mensaje.'; +$labels['yourmessage'] = 'Esta es una notificación de lectura de tu mensaje'; +$labels['receiptnote'] = 'Nota: Esta notificación sólo significa que tu mensaje fue mostrado en el dispositivo del destinatario. No hay garantía de que el destinatario haya leído o entendido su contenido.'; +$labels['zoomin'] = 'Agrandar'; +$labels['zoomout'] = 'Achicar'; +$labels['rotate'] = 'Rotar'; +$labels['increaseimage'] = 'Aumentar tamaño de imagen'; +$labels['decreaseimage'] = 'Disminuir tamaño de imagen'; +$labels['rotateimage'] = 'Rotar imagen'; +$labels['showtools'] = 'Mostrar herramientas de imagen'; +$labels['hidetools'] = 'Ocultar herramientas de imagen'; $labels['name'] = 'Nombre completo'; $labels['firstname'] = 'Nombre'; $labels['surname'] = 'Apellido'; $labels['middlename'] = 'Segundo nombre'; $labels['nameprefix'] = 'Prefijo'; -$labels['namesuffix'] = 'Subfijo'; +$labels['namesuffix'] = 'Sufijo'; $labels['nickname'] = 'Sobre nombre'; $labels['jobtitle'] = 'Puesto'; $labels['department'] = 'Departamento'; @@ -283,7 +342,7 @@ $labels['street'] = 'Calle'; $labels['locality'] = 'Ciudad'; $labels['zipcode'] = 'Código Postal'; -$labels['region'] = 'Estado/Provincia'; +$labels['region'] = 'Estado/Provincia/Departamento'; $labels['country'] = 'País'; $labels['birthday'] = 'Cumpleaños'; $labels['anniversary'] = 'Aniversario'; @@ -294,13 +353,15 @@ $labels['female'] = 'femenino'; $labels['manager'] = 'Administrador'; $labels['assistant'] = 'Asistente'; -$labels['spouse'] = 'Cónygue'; +$labels['spouse'] = 'Cónyuge'; $labels['allfields'] = 'Todos los campos'; $labels['search'] = 'Buscar'; $labels['searchresult'] = 'Resultado de búsqueda'; $labels['advsearch'] = 'Búsqueda Avanzada'; $labels['advanced'] = 'Avanzado'; $labels['other'] = 'Otro'; +$labels['printcontact'] = 'Imprimir contacto'; +$labels['qrcode'] = 'Código QR'; $labels['typehome'] = 'Particular'; $labels['typework'] = 'Laboral'; $labels['typeother'] = 'Otro'; @@ -329,10 +390,15 @@ $labels['save'] = 'Guardar'; $labels['delete'] = 'Eliminar'; $labels['discard'] = 'Descartar'; +$labels['continue'] = 'Continuar'; +$labels['ok'] = 'Aceptar'; $labels['rename'] = 'Renombrar'; $labels['addphoto'] = 'Agregar'; $labels['replacephoto'] = 'Reemplazar'; $labels['uploadphoto'] = 'Subir foto'; +$labels['choosefile'] = 'Elegir archivo...'; +$labels['choosefiles'] = 'Elegir archivos...'; +$labels['browse'] = 'Explorar'; $labels['newcontact'] = 'Crear nuevo contacto'; $labels['deletecontact'] = 'Eliminar contactos seleccionados'; $labels['composeto'] = 'Enviar mensaje a'; @@ -346,6 +412,8 @@ $labels['addgroup'] = 'Agregar grupo'; $labels['grouprename'] = 'Renombrar grupo'; $labels['groupdelete'] = 'Eliminar grupo'; +$labels['groupassign'] = 'Asignar a grupo...'; +$labels['groupremove'] = 'Eliminar del grupo'; $labels['groupremoveselected'] = 'Remover del grupo los contactos seleccionados'; $labels['uponelevel'] = 'Subir un nivel'; $labels['previouspage'] = 'Mostrar grupo anterior'; @@ -360,13 +428,15 @@ $labels['searchdelete'] = 'Eliminar búsqueda'; $labels['import'] = 'Importar'; $labels['importcontacts'] = 'Importar contactos'; +$labels['importfromfile'] = 'Importar desde archivo'; $labels['importtarget'] = 'Agregar contactos a'; $labels['importreplace'] = 'Reemplazar completamente la lista de contactos'; $labels['importgroups'] = 'Importar asignaciones de grupo'; $labels['importgroupsall'] = 'Todo (crea grupos si es necesario)'; $labels['importgroupsexisting'] = 'Sólo para grupos existentes'; +$labels['importdesc'] = 'Podés subir contactos desde una libreta de direcciones existente.<br/>Actualmente es soportada la importación de direcciones desde los formatos <a href="https://en.wikipedia.org/wiki/VCard">vCard</a> o CSV (valores separados por coma).'; $labels['done'] = 'Hecho'; -$labels['settingsfor'] = 'Configuración para'; +$labels['settingsfor'] = 'Ajustes para'; $labels['about'] = 'Acerca de'; $labels['preferences'] = 'Preferencias'; $labels['userpreferences'] = 'Preferencias de usuario'; @@ -376,15 +446,16 @@ $labels['newidentity'] = 'Crear nueva identidad'; $labels['addidentity'] = 'Agregar identidad'; $labels['editidentity'] = 'Editar identidad'; -$labels['preferhtml'] = 'Prefiero HTML'; -$labels['defaultcharset'] = 'Juego de Caracteres por Defecto'; +$labels['identityencryption'] = 'Encriptación'; +$labels['preferhtml'] = 'Mostrar HTML'; +$labels['defaultcharset'] = 'Juego de Caracteres predeterminados'; $labels['htmlmessage'] = 'Mensaje HTML'; $labels['messagepart'] = 'Parte'; $labels['digitalsig'] = 'Firma digital'; $labels['dateformat'] = 'Formato de fecha'; -$labels['timeformat'] = 'Formato de tiempo'; +$labels['timeformat'] = 'Formato de hora'; $labels['prettydate'] = 'Fecha detallada'; -$labels['setdefault'] = 'Seleccionar opción por defecto'; +$labels['setdefault'] = 'Establecer como predeterminada'; $labels['autodetect'] = 'Automático'; $labels['language'] = 'Idioma'; $labels['timezone'] = 'Zona horaria'; @@ -406,18 +477,21 @@ $labels['serversettings'] = 'Configuración del servidor'; $labels['mailboxview'] = 'Vista de buzón'; $labels['mdnrequests'] = 'Notificaciones de envío'; -$labels['askuser'] = 'preguntar al usuario'; -$labels['autosend'] = 'enviar automáticamente'; +$labels['askuser'] = 'preguntame'; +$labels['autosend'] = 'enviar acuse de recibo'; $labels['autosendknown'] = 'enviar acuse de recibo a mis contactos, sino preguntarme'; $labels['autosendknownignore'] = 'enviar acuse de recibo a mis contactos, sino ignorar'; -$labels['readwhendeleted'] = 'Marcar el mensage como leído al borrarlo'; -$labels['flagfordeletion'] = 'Marcar el mensage para borrarse en vez de borrarlo'; +$labels['ignorerequest'] = 'Ignorar solicitud'; +$labels['readwhendeleted'] = 'Marcar el mensaje como leído al borrarlo'; +$labels['flagfordeletion'] = 'Marcar el mensaje para borrarse en vez de borrarlo'; $labels['skipdeleted'] = 'No mostrar mensajes eliminados'; $labels['deletealways'] = 'Cuando no se pueda mover un mensaje a la papelera, eliminarlo'; $labels['deletejunk'] = 'Eliminar directamente mensajes en No deseado'; $labels['showremoteimages'] = 'Mostrar imágenes remotas'; +$labels['allowremoteresources'] = 'Permitir contenido remoto (imágenes, estilos)'; $labels['fromknownsenders'] = 'de remitentes conocidos'; $labels['always'] = 'siempre'; +$labels['alwaysbutplain'] = 'siempre, excepto al responder un mensaje en texto plano'; $labels['showinlineimages'] = 'Mostrar imágenes adjuntas debajo del mensaje'; $labels['autosavedraft'] = 'Guardar borrador automáticamente'; $labels['everynminutes'] = 'cada $n minuto(s)'; @@ -426,7 +500,7 @@ $labels['immediately'] = 'inmediatamente'; $labels['messagesdisplaying'] = 'Vista de mensajes'; $labels['messagescomposition'] = 'Composición de mensajes'; -$labels['mimeparamfolding'] = 'Nombre de adjuntos'; +$labels['mimeparamfolding'] = 'Nombres de adjuntos'; $labels['2231folding'] = 'RFC 2231 (Thunderbird)'; $labels['miscfolding'] = 'RFC 2047/2231 (MS Outlook)'; $labels['2047folding'] = 'RFC 2047 (Otro)'; @@ -436,29 +510,32 @@ $labels['toggleadvancedoptions'] = 'Activar opciones avanzadas'; $labels['focusonnewmessage'] = 'Traer al frente la ventana del navegador cuando haya nuevos mensajes'; $labels['checkallfolders'] = 'Verificar todas las carpetas por nuevos mensajes'; -$labels['displaynext'] = 'Luedo de eliminar/mover, mostrar el próximo mensaje'; $labels['defaultfont'] = 'Fuente por defecto para mensajes HTML'; -$labels['mainoptions'] = 'Opciones Principales'; +$labels['mainoptions'] = 'Opciones principales'; $labels['browseroptions'] = 'Opciones de navegador'; $labels['section'] = 'Selección'; $labels['maintenance'] = 'Mantenimiento'; -$labels['newmessage'] = 'Nuevo Mensaje'; -$labels['signatureoptions'] = 'Opciones de Firma'; -$labels['whenreplying'] = 'Al Responder'; +$labels['newmessage'] = 'Nuevo mensaje'; +$labels['signatureoptions'] = 'Opciones de firma'; +$labels['whenreplying'] = 'Al responder'; $labels['replyempty'] = 'no citar el mensaje original'; $labels['replytopposting'] = 'iniciar el nuevo mensaje sobre el original'; +$labels['replytoppostingnoindent'] = 'iniciar el nuevo mensaje sobre el original (sin sangría)'; $labels['replybottomposting'] = 'iniciar el nuevo mensaje debajo del original'; $labels['replyremovesignature'] = 'Al responder, eliminar la firma del mensaje original'; $labels['autoaddsignature'] = 'Agregar la firma automáticamente'; $labels['newmessageonly'] = 'nuevos mensajes solamente'; $labels['replyandforwardonly'] = 'respuestas o reenvios solamente'; $labels['insertsignature'] = 'Insertar firma'; +$labels['sigbelow'] = 'Agregar la firma debajo del mensaje citado'; +$labels['sigseparator'] = 'Forzar separador estándar en las firmas'; +$labels['automarkread'] = 'Marcar mensajes como leídos'; $labels['afternseconds'] = 'despues de $n segundos'; $labels['reqmdn'] = 'Siempre solicitar acuse de recibo'; $labels['reqdsn'] = 'Siempre solicitar notificación de estado de envío'; $labels['replysamefolder'] = 'Colocar respuestas en la carpeta del mensaje siendo respondido'; $labels['defaultabook'] = 'Libreta de direcciones por defecto'; -$labels['autocompletesingle'] = 'Saltar dirección de correo electrónico alternativo al autocompletar'; +$labels['autocompletesingle'] = 'Omitir dirección de correo electrónico alternativo al autocompletar'; $labels['listnamedisplay'] = 'Listar contactos como'; $labels['spellcheckbeforesend'] = 'Verificar la ortografía antes de enviar un mensaje'; $labels['spellcheckoptions'] = 'Opciones del verificador de ortografía'; @@ -468,7 +545,7 @@ $labels['addtodict'] = 'Agregar al diccionario'; $labels['mailtoprotohandler'] = 'Registrar protocolo para manejar enlaces mailto:'; $labels['standardwindows'] = 'Manejar emergentes como ventanas estándar'; -$labels['forwardmode'] = 'Mensajes redireccionando'; +$labels['forwardmode'] = 'Reenvío de mensajes'; $labels['inline'] = 'en línea'; $labels['asattachment'] = 'como adjunto'; $labels['replyallmode'] = 'Acción por defecto del botón [Responder a todos]'; @@ -485,7 +562,7 @@ $labels['specialfolders'] = 'Carpetas Especiales'; $labels['properties'] = 'Propiedades'; $labels['folderproperties'] = 'Propiedades de carpeta'; -$labels['parentfolder'] = 'Carpeta pariente'; +$labels['parentfolder'] = 'Carpeta principal'; $labels['location'] = 'Ubicación'; $labels['info'] = 'Información'; $labels['getfoldersize'] = 'Clic para obtener el tamaño de la carpeta'; @@ -495,9 +572,19 @@ $labels['otherfolder'] = 'Carpeta de otros usuarios'; $labels['sharedfolder'] = 'Carpeta pública'; $labels['findfolders'] = 'Buscar carpetas'; +$labels['findcontacts'] = 'Buscar contactos'; +$labels['findmail'] = 'Buscar mensajes de correo'; $labels['namespace.personal'] = 'Personal'; $labels['namespace.other'] = 'Otros usuarios'; $labels['namespace.shared'] = 'Compartido'; +$labels['dualuselabel'] = 'Solo pueden contener'; +$labels['dualusemail'] = 'mensajes'; +$labels['dualusefolder'] = 'carpetas'; +$labels['generate'] = 'Generar'; +$labels['encryptioncreatekey'] = 'Crear un nuevo par de claves'; +$labels['openmailvelopesettings'] = 'Abrir ajustes de Mailvelope'; +$labels['encryptionprivkeysinmailvelope'] = 'Tenés $nr claves privadas coincidentes, guardadas en tu almacén de claves de Mailvelope:'; +$labels['encryptionnoprivkeysinmailvelope'] = 'Esta identidad del remitente aún no tiene una clave privada PGP almacenada en tu extensión Mailvelope. ¿Querés crear una para habilitar la mensajería cifrada?'; $labels['sortby'] = 'Ordenar por'; $labels['sortasc'] = 'Orden ascendente'; $labels['sortdesc'] = 'Orden descendente'; @@ -508,12 +595,19 @@ $labels['source'] = 'Fuente'; $labels['license'] = 'Licencia'; $labels['support'] = 'Obtener soporte'; +$labels['savedsearches'] = 'Búsquedas guardadas'; +$labels['dateformatY'] = 'YYYY'; +$labels['dateformaty'] = 'YY'; +$labels['dateformatm'] = 'MM'; +$labels['dateformatd'] = 'DD'; +$labels['dateformatj'] = 'D'; +$labels['dateformatn'] = 'M'; $labels['B'] = 'B'; $labels['KB'] = 'KB'; $labels['MB'] = 'MB'; $labels['GB'] = 'GB'; $labels['unicode'] = 'Unicode'; -$labels['english'] = 'Ingles'; +$labels['english'] = 'Inglés'; $labels['westerneuropean'] = 'Europa Occidental'; $labels['easterneuropean'] = 'Europa del Este'; $labels['southeasterneuropean'] = 'Sudeste de Europa'; @@ -558,11 +652,14 @@ $labels['arialabelforwardingoptions'] = 'Opciones de reenvío'; $labels['arialabelreplyalloptions'] = 'Opciones de Responder a todos'; $labels['arialabelmoremessageactions'] = 'Más acciones de mensaje'; +$labels['arialabelmorecontactactions'] = 'Más acciones de contacto'; $labels['arialabelmarkmessagesas'] = 'Marcar mensaje seleccionado como...'; $labels['arialabelcomposeoptions'] = 'Opciones de composición'; $labels['arialabelresponsesmenu'] = 'Menú de respuestas enlatadas'; $labels['arialabelattachmentuploadform'] = 'Formulario para subir adjuntos'; -$labels['arialabelattachmentpreview'] = 'Previsualización de adjunto'; +$labels['arialabelattachmentmenu'] = 'Opciones de adjuntos'; +$labels['arialabelmailtomenu'] = 'Opciones de direcciones de correo'; +$labels['arialabelattachmentpreview'] = 'Previsualización del adjunto'; $labels['ariasummarycomposecontacts'] = 'Listar los contactos y grupos para seleccionar como destinatarios'; $labels['arialabelcontactexportoptions'] = 'Opciones de exportación de mensajes'; $labels['arialabelabookgroupoptions'] = 'Opciones de libreta de direcciones/grupo'; @@ -570,6 +667,9 @@ $labels['arialabelidentityeditfrom'] = 'Formulario de edición de identidades'; $labels['arialabelresonseeditfrom'] = 'Formulario de edición de respuesta'; $labels['arialabelsearchterms'] = 'Términos de búsqueda'; +$labels['arialabeldropactionmenu'] = 'Menú de acciones de arrastrar y soltar'; +$labels['arialabelheadersmenu'] = 'Menú de agregado de destinatario (encabezado)'; +$labels['arialabelimagetools'] = 'Herramientas de imagen'; $labels['helplistnavigation'] = 'Listar navegación por teclado'; $labels['helplistkeyboardnavigation'] = "Flechas arriba/abajo: Mueve el foco de la fila/selección. Espacio: Selecciona la fila en foco.
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/es_AR/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/es_AR/messages.inc
Changed
@@ -14,29 +14,33 @@ For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/messages/ */ -$messages['errortitle'] = 'Ha ocurrido un error!'; +$messages['errortitle'] = '¡Ha ocurrido un error!'; $messages['loginfailed'] = 'Contraseña o nombre de usuario incorrecto'; -$messages['cookiesdisabled'] = 'Su navegador no acepta cookies'; -$messages['sessionerror'] = 'Su sesión no existe o ha expirado'; -$messages['storageerror'] = 'Error de conexión con el servidor IMAP'; +$messages['cookiesdisabled'] = 'Tu navegador no acepta cookies.'; +$messages['sessionerror'] = 'Tu sesión no es válida o ha expirado.'; +$messages['cookiesmismatch'] = 'Se encontró una discordancia de cookies. Por favor, borrá las cookies de tu navegador.'; +$messages['storageerror'] = 'Error de conexión con el servidor IMAP.'; $messages['servererror'] = '¡Error en el servidor!'; $messages['servererrormsg'] = 'Error en servidor: $msg'; -$messages['connerror'] = 'Error de conexión (No se pudo conectar con el servidor)!'; -$messages['dberror'] = 'Error en base de datos!'; -$messages['windowopenerror'] = 'La ventana emergente ha sido bloqueada!'; +$messages['accountlocked'] = 'Demasiados errores de inicio de sesión. Intentá de nuevo más tarde.'; +$messages['connerror'] = 'Error de conexión (No se pudo conectar con el servidor)'; +$messages['dberror'] = '¡Error en base de datos!'; +$messages['windowopenerror'] = '¡La ventana emergente ha sido bloqueada!'; $messages['requesttimedout'] = 'Tiempo de espera agotado'; $messages['errorreadonly'] = 'No se pudo realizar la operación. La carpeta es de sólo lectura.'; $messages['errornoperm'] = 'No se pudo realizar la operación. Permiso denegado.'; $messages['erroroverquota'] = 'No se pudo realizar la operación. Espacio en disco insuficiente.'; -$messages['erroroverquotadelete'] = 'Espacio en disco insuficiente. Utilice SHIFT+DEL para eliminar un mensaje.'; -$messages['invalidrequest'] = 'Peteción invalida! No se guardó nada.'; -$messages['invalidhost'] = 'Nombre de servidor inválido.'; -$messages['nomessagesfound'] = 'No se han encontrado mensajes en esta casilla'; +$messages['erroroverquotadelete'] = 'Espacio en disco insuficiente. Usá SHIFT+DEL para eliminar un mensaje.'; +$messages['invalidrequest'] = '¡Peteción no válida! No se guardó ningún dato.'; +$messages['invalidhost'] = 'Nombre de servidor no válido.'; +$messages['nomessagesfound'] = 'No se han encontrado mensajes en esta casilla.'; +$messages['loggedout'] = 'Terminaste la sesión satisfactoriamente. ¡Hasta luego!'; $messages['mailboxempty'] = 'La casilla está vacía'; -$messages['nomessages'] = '0 mensajes'; +$messages['nomessages'] = 'No hay mensajes'; $messages['refreshing'] = 'Actualizando...'; $messages['loading'] = 'Cargando...'; $messages['uploading'] = 'Subiendo archivo...'; +$messages['attaching'] = 'Adjuntando archivo...'; $messages['uploadingmany'] = 'Subiendo archivos...'; $messages['loadingdata'] = 'Cargando datos...'; $messages['checkingmail'] = 'Verificando si hay nuevos mensajes...'; @@ -46,25 +50,40 @@ $messages['messagesaved'] = 'Mensaje guardado en borradores'; $messages['successfullysaved'] = 'Guardado correctamente'; $messages['savingresponse'] = 'Guardando texto de respuesta...'; -$messages['deleteresponseconfirm'] = 'Realmente deseas eliminar este texto de respuesta?'; -$messages['addedsuccessfully'] = 'Contacto añadido correctamente a la libreta de direcciones'; +$messages['deleteresponseconfirm'] = '¿Realmente deseás eliminar este texto de respuesta?'; +$messages['nocontactselected'] = 'Todavía no seleccionaste un contacto.'; +$messages['addedsuccessfully'] = 'Contacto agregado correctamente a la libreta de direcciones.'; +$messages['contactexists'] = 'Ya existe un contacto con la misma dirección de correo electrónico.'; $messages['contactnameexists'] = 'Ya existe un contacto con el mismo nombre.'; -$messages['blockedimages'] = 'Para proteger su privacidad, las imágenes externas han sido bloqueadas en este mensaje'; -$messages['encryptedmessage'] = 'Este es un mensaje cifrado y no puede ser mostrado. ¡Lo siento!'; -$messages['nocontactsfound'] = 'No hay contactos'; -$messages['contactnotfound'] = 'El contacto solicitado no existe'; -$messages['sendingfailed'] = 'Error al enviar mensaje'; -$messages['senttooquickly'] = 'Por favor, espere $sec segundo(s) antes de enviar este mensaje'; -$messages['errorsavingsent'] = 'Ocurrió un error al guardar el mensaje enviado'; -$messages['errorsaving'] = 'Ocurrió un error al guardar'; -$messages['errormoving'] = 'No se pudo mover el mensaje'; -$messages['errorcopying'] = 'No se pudo copiar el mensaje'; -$messages['errordeleting'] = 'No se ha podido eliminar el mensaje'; -$messages['errormarking'] = 'No se puede marcar el mensaje.'; +$messages['blockedimages'] = 'Para proteger tu privacidad, las imágenes externas han sido bloqueadas en este mensaje.'; +$messages['blockedresources'] = 'Para proteger tu privacidad los recursos remotos han sido bloqueados.'; +$messages['encryptedmessage'] = 'Lo siento, este es un mensaje cifrado y no puede ser mostrado.'; +$messages['externalmessagedecryption'] = 'Este es un mensaje cifrado y se puede descifrar con una extensión de tu navegador.'; +$messages['nopubkeyfor'] = 'No se encontró una clave pública para $email'; +$messages['nopubkeyforsender'] = 'No se encontró una clave pública para tu identidad remitente. ¿Querés encriptar el mensaje solo para los destinatarios?'; +$messages['encryptnoattachments'] = 'Los adjuntos ya subidos no pueden ser encriptados. Volvé a agregarlos en el editor de encriptación.'; +$messages['searchpubkeyservers'] = '¿Deseás buscar las claves faltantes en servidores de claves públicas?'; +$messages['encryptpubkeysfound'] = 'Se han encontrado las siguientes claves públicas:'; +$messages['keyservererror'] = 'Error al obtener la clave del servidor de claves.'; +$messages['keyimportsuccess'] = 'La clave pública $key fue importada satisfactoriamente a tu almacén de claves.'; +$messages['nocontactsfound'] = 'No se encontraron contactos.'; +$messages['contactnotfound'] = 'No se encontró el contacto solicitado.'; +$messages['contactsearchonly'] = 'Necesitás usar un formulario de búsqueda para ver contactos de la libreta de direcciones seleccionada.'; +$messages['sendingfailed'] = 'Error al enviar mensaje.'; +$messages['senttooquickly'] = 'Por favor, esperá $sec segundo(s) antes de enviar este mensaje.'; +$messages['errorsavingsent'] = 'Ocurrió un error al guardar el mensaje enviado.'; +$messages['errorsaving'] = 'Ocurrió un error al guardar.'; +$messages['errormoving'] = 'No se pudo mover el/los mensaje(s)'; +$messages['errorcopying'] = 'No se pudo copiar el/los mensaje(s).'; +$messages['errordeleting'] = 'No se ha podido eliminar el/los mensaje(s).'; +$messages['errormarking'] = 'No se puede marcar el/los mensaje(s).'; +$messages['alerttitle'] = 'Atención'; +$messages['confirmationtitle'] = 'Estás seguro...'; $messages['deletecontactconfirm'] = '¿Realmente quiere eliminar los contactos seleccionados?'; $messages['deletegroupconfirm'] = 'Realmente deseas eliminar el grupo seleccionado?'; $messages['deletemessagesconfirm'] = '¿Realmente quiere eliminar los mensajes seleccionados?'; $messages['deletefolderconfirm'] = '¿Realmente quiere eliminar esta carpeta?'; +$messages['movefolderconfirm'] = '¿Realmente deseás mover esta carpeta?'; $messages['purgefolderconfirm'] = '¿Realmente quiere eliminar todos los mensajes de esta carpeta?'; $messages['contactdeleting'] = 'Eliminando contacto(s)...'; $messages['groupdeleting'] = 'Eliminando grupo...'; @@ -76,9 +95,15 @@ $messages['noemailwarning'] = 'Por favor, introduzca un e-mail válido'; $messages['nonamewarning'] = 'Por favor, introduzca su nombre'; $messages['nopagesizewarning'] = 'Por favor, introduzca un tamaño de página'; +$messages['nosenderwarning'] = 'Por favor, Ingresá la dirección de correo electrónico del remitente.'; +$messages['recipientsadded'] = 'Destinatario(s) agregado(s) satisfactoriamente.'; $messages['norecipientwarning'] = 'Por favor, introduzca al menos un destinatario'; +$messages['disclosedrecipwarning'] = 'Todos los destinatarios verán las direcciones de correo electrónico de los demás. Para evitar esto y proteger su privacidad, podés utilizar el campo CCO.'; +$messages['disclosedreciptitle'] = 'Demasiados destinatarios públicos'; $messages['nosubjectwarning'] = 'El campo "Asunto" esta vacío. ¿Desea completarlo en este momento?'; +$messages['nosubjecttitle'] = 'Sin asunto'; $messages['nobodywarning'] = '¿Quiere enviar este mensaje sin texto?'; +$messages['notsentwarning'] = 'El mensaje no se ha enviado y tiene cambios sin guardar. ¿Querés descartar los cambios?'; $messages['restoresavedcomposedata'] = 'Se ha encontrado un mensaje redactado anteriormente que no ha sido enviado.\n\nAsunto: $subject\nGuardado: $date\n\nDeseas recuperar este mensaje?'; $messages['nosearchname'] = 'Por favor, introduzca un nombre o la dirección de e-mail'; $messages['notuploadedwarning'] = 'Todavia no se subieron todos los archivos adjuntos. Por favor aguarde o cancele la subida.'; @@ -97,8 +122,12 @@ $messages['deletedsuccessfully'] = 'Eliminado exitosamente'; $messages['converting'] = 'Removiendo el formato del mensaje...'; $messages['messageopenerror'] = 'No puedo descargar el mensaje del servidor'; +$messages['filelinkerror'] = 'Error al adjuntar archivo.'; $messages['fileuploaderror'] = 'Error al subir archivos'; $messages['filesizeerror'] = 'El archivo excede el tamaño maximo ($size)'; +$messages['filecounterror'] = 'Podés subir un máximo de $count archivos a la vez.'; +$messages['msgsizeerror'] = 'Error al adjuntar un archivo. Se excedió el tamaño máximo ($size) del mensaje.'; +$messages['msgsizeerrorfwd'] = 'Tamaño máximo del mensaje ($size) excedido. $num mensaje(s) no ha(n) sido ajuntado(s).'; $messages['copysuccess'] = '$nr contactos copiados exitosamente.'; $messages['movesuccess'] = '$nr contactos movidos exitosamente.'; $messages['copyerror'] = 'No se pudo copiar ningún contacto.'; @@ -130,17 +159,21 @@ $messages['importmessagesuccess'] = '$nr mensajes importados exitosamente'; $messages['importmessageerror'] = 'Importación fallida! El archivo subido no es un mensaje o archivo mailbox válido'; $messages['opnotpermitted'] = 'Operación no permitida!'; +$messages['nofromaddress'] = 'A la identidad seleccionada le falta la dirección de correo electrónico.'; $messages['editorwarning'] = 'Cambiar el tipo de editor puede causar la pérdida del formato. Deseas continuar?'; -$messages['httpreceivedencrypterror'] = 'Ha ocurrido un error fatal de configuración. Contacte inmediatamente a su administrador. <b>Su mensaje no ha sido enviado.</b>'; +$messages['httpreceivedencrypterror'] = 'Ha ocurrido un error fatal de configuración. Contactá inmediatamente al administrador. <b>Tu mensaje no pudo ser enviado.</b>'; $messages['smtpconnerror'] = 'Error SMTP ($code): Conexión al servidor falló'; $messages['smtpautherror'] = 'Error SMTP ($code): Falló la autentificación'; $messages['smtpfromerror'] = 'Error SMTP ($code): No se pudo establecer el remitente "$from" ($msg)'; $messages['smtptoerror'] = 'Error SMTP ($code): No se puedo agregar el destinatario "$to" ($msg)'; $messages['smtprecipientserror'] = 'Error SMTP: No se pudo leer la lista de destinatarios'; +$messages['smtputf8error'] = 'Error SMTP: El servidor no soporta Unicode en las direcciones de correo.'; +$messages['smtpsizeerror'] = 'Error SMTP: El mensaje excede el límite del servidor ($limit)'; $messages['smtperror'] = 'Error SMTP: $msg'; -$messages['toomanyrecipients'] = 'Demasiados destinatarios. Reduzca la cantidad a un máximo de $max.'; +$messages['emailformaterror'] = 'Dirección de correo electrónico no válida: $email'; +$messages['toomanyrecipients'] = 'Demasiados destinatarios. Reducí la cantidad a un máximo de $max.'; $messages['maxgroupmembersreached'] = 'El número de miembros del grupo excede el máximo de $max'; -$messages['internalerror'] = 'Ocurrió un error interno. Por favor, intenta nuevamente.'; +$messages['internalerror'] = 'Ocurrió un error interno. Por favor, intentá nuevamente.'; $messages['contactdelerror'] = 'No se pudo eliminar el/los contactos(s).'; $messages['contactdeleted'] = 'Contacto(s) eliminado/s exitosamente.'; $messages['contactrestoreerror'] = 'No se pudo recuperar el/los contacto/s eliminado(s).'; @@ -154,16 +187,38 @@ $messages['savedsearchcreateerror'] = 'No se pudo guardar la búsqueda.'; $messages['messagedeleted'] = 'Mensaje(s) eliminado/s satisfactoriamente.'; $messages['messagemoved'] = 'Mensaje(s) movidos correctamente.'; +$messages['messagemovedtotrash'] = 'Mensaje(s) movido(s) a la Papelera satisfactoriamente.'; $messages['messagecopied'] = 'Mensaje(s) copiados correctamente.'; $messages['messagemarked'] = 'Mensaje(s) marcados satisfactoriamente.'; $messages['autocompletechars'] = 'Ingresá por lo menos $min caracteres para autocompletar.'; $messages['autocompletemore'] = 'Se encontraron mas coincidencias. Por favor, escribí mas caracteres.'; $messages['namecannotbeempty'] = 'El nombre no puede estar vacio.'; $messages['nametoolong'] = 'El nombre es demasiado largo.'; +$messages['namedotforbidden'] = 'El nombre de la carpeta no puede comenzar con un punto.'; $messages['folderupdated'] = 'Carpeta actualizada correctamente.'; $messages['foldercreated'] = 'Carpeta creada satisfactoriamente.'; $messages['invalidimageformat'] = 'No es un formato de imágen válido.'; $messages['mispellingsfound'] = 'Errores de ortografía encontrados en el mensaje.'; $messages['parentnotwritable'] = 'No se pudo crear/mover la carpeta dentro de la carpeta superior seleccionada. No tiene permiso para acceder a ella.'; $messages['messagetoobig'] = 'El mensaje es demasiado grande para ser procesado.'; +$messages['attachmentvalidationerror'] = 'Este adjunto es sospechoso porque su tipo no coinciden con el tipo declarado en el mensaje. Si no confiás en el remitente no deberías abrir el mensaje en el navegador porque podría tener contenido malicioso.<br/><br/><em>Esperado: $expected; encontrado: $detected</em>'; $messages['noscriptwarning'] = 'Advertencia: Este servicio de webmail requiere Javascript! Para usarlo, por favor, habilite Javascript en las preferencia de tu navegador.'; +$messages['messageissent'] = 'El mensaje se envió pero todavía no fue guardado. ¿Querés guardarlo ahora?'; +$messages['errnotfound'] = 'Archivo no encontrado'; +$messages['errnotfoundexplain'] = '¡No se encontró el recurso solicitado!'; +$messages['errfailedrequest'] = 'Error en la solicitud'; +$messages['errauthorizationfailed'] = 'Falló la autorización'; +$messages['errunauthorizedexplain'] = '¡No pudimos verificar que estuvieses autorizado a acceder a este servicio!'; +$messages['errrequestcheckfailed'] = 'Verificación de la solicitud fallida'; +$messages['errcsrfprotectionexplain'] = "El acceso a este recurso está protegido contra CSRF.\nSi ves esto probablemente no cerrarste la sesión antes de salir de la aplicación web.\nSe necesita interacción humana para continuar."; +$messages['errcontactserveradmin'] = 'Por favor, contactate con el administrador del servidor.'; +$messages['clicktoresumesession'] = 'Hacé clic acá para continuar la sesión previa'; +$messages['errcomposesession'] = 'Error al componer la sesión'; +$messages['errcomposesessionexplain'] = 'No se encontró la composición de sesión solicitada.'; +$messages['clicktocompose'] = 'Hacé clic aquí para componer un nuevo mensaje'; +$messages['nosupporterror'] = 'Tu navegador no tiene soporte para esta función.'; +$messages['siginserted'] = 'Firma insertada satisfactoriamente.'; +$messages['responseinserted'] = 'Respuesta insertada satisfactoriamente.'; +$messages['listempty'] = 'La lista está vacía.'; +$messages['listusebutton'] = 'Usá el botón Crear para agregar un nuevo registro.'; +$messages['keypaircreatesuccess'] = 'Un nuevo par de claves ha sido creado satisfactoriamente para $identity.';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/es_ES/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/es_ES/labels.inc
Changed
@@ -482,7 +482,6 @@ $labels['toggleadvancedoptions'] = 'Desplegar opciones avanzadas'; $labels['focusonnewmessage'] = 'Enfocar ventana del navegador al recibir nuevo mensaje'; $labels['checkallfolders'] = 'Revisar todas las carpetas por nuevos mensajes'; -$labels['displaynext'] = 'Después de borrar/mover un mensaje, mostrar el siguiente'; $labels['defaultfont'] = 'Tipo de letra predeterminada de mensaje HTML'; $labels['mainoptions'] = 'Opciones Principales'; $labels['browseroptions'] = 'Opciones del Navegador';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/et_EE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/et_EE/labels.inc
Changed
@@ -502,7 +502,6 @@ $labels['toggleadvancedoptions'] = 'Näita lisaseadistusi'; $labels['focusonnewmessage'] = 'Fookusta brauseri aken uue kirja korral'; $labels['checkallfolders'] = 'Kontrolli uusi kirju kõigist kaustadest'; -$labels['displaynext'] = 'Pärast kirja kustutamist/liigutamist näita järgmist kirja'; $labels['defaultfont'] = 'HTML kirjade vaikefont'; $labels['mainoptions'] = 'Peamised valikud'; $labels['browseroptions'] = 'Sirvimis valikud';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/eu_ES/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/eu_ES/labels.inc
Changed
@@ -139,11 +139,15 @@ $labels['more'] = 'Gehiago'; $labels['back'] = 'Atzera'; $labels['options'] = 'Aukerak'; +$labels['composeoptions'] = 'Aukerak konposatzea'; +$labels['optionsandattachments'] = 'Aukerak eta eranskinak'; +$labels['actions'] = 'Ekintzak'; $labels['first'] = 'Lehenengoa'; $labels['last'] = 'Azkena'; $labels['previous'] = 'Aurrekoa'; $labels['next'] = 'Hurrengoa'; $labels['select'] = 'Hautatu'; +$labels['selection'] = 'Hautapena'; $labels['all'] = 'Denak'; $labels['none'] = 'Bat ere ez'; $labels['currpage'] = 'Uneko orrialdea'; @@ -179,7 +183,8 @@ $labels['listcolumns'] = 'Zerrenda-zutabeak'; $labels['listsorting'] = 'Zutabea ordenatzen'; $labels['listorder'] = 'Ordenatze era'; -$labels['listmode'] = 'Zerrenda ikuspegia'; +$labels['listmode'] = 'Zerrenda ikuspegiko modua'; +$labels['lmode'] = 'Zerrenda modua'; $labels['layout'] = 'Diseinua'; $labels['layoutwidescreen'] = 'Panoramikoa'; $labels['layoutdesktop'] = 'Mahaigaina'; @@ -191,6 +196,8 @@ $labels['compact'] = 'Trinkotu'; $labels['empty'] = 'Hustu'; $labels['importmessages'] = 'Inportatu mezuak'; +$labels['mailimportdesc'] = 'Kargatu dezakezu mezua fitxategiak erabiliaz <a href="https://en.wikipedia.org/wiki/Email#Message_format">MIME</a> edo <a href="https://en.wikipedia.org/wiki/Mbox">Mbox</a> formatuetan.'; +$labels['mailimportzip'] = 'Hainbat fitxategi konprimatu daiteke zip fitxategietan.'; $labels['quota'] = 'Disko erabilera'; $labels['unknown'] = 'ezezaguna'; $labels['unlimited'] = 'mugagabea'; @@ -199,6 +206,9 @@ $labels['quotaused'] = 'Erabilita'; $labels['quotastorage'] = 'Diskoko tokia'; $labels['quotamessage'] = 'Mezu kopurua'; +$labels['shortheaderdate'] = '$date egunean'; +$labels['shortheaderto'] = ' $date -ko $to -etara'; +$labels['shortheaderfrom'] = '$date -ko $from -etatik'; $labels['quicksearch'] = 'Bilaketa azkarra'; $labels['searchplaceholder'] = 'Bilatu...'; $labels['resetsearch'] = 'Bilaketa berrabiarazi'; @@ -241,13 +251,17 @@ $labels['encryptmessagemailvelope'] = 'Zifratu mezua Mailvelope-ren bidez'; $labels['importpubkeys'] = 'Inportatu gako publikoak'; $labels['encryptedsendialog'] = 'Zifratutako mezua bidaltzen'; +$labels['encryptandsign'] = 'Zifratu eta sinatu'; $labels['keyid'] = 'Gakoaren IDa'; $labels['keylength'] = 'Bitak'; $labels['keyexpired'] = 'Iraungita'; $labels['keyrevoked'] = 'Errebokatuta'; $labels['bccinstead'] = 'Erabili Bcc'; +$labels['addheader'] = 'Gehitu hartzailea (goiburua)'; $labels['insert'] = 'Txertatu'; +$labels['insertcontact'] = 'Txertatu kontaktua(k)'; $labels['recipient'] = 'Hartzailea'; +$labels['recipientedit'] = 'Hartzailearen edizioa'; $labels['editidents'] = 'Editatu identitateak'; $labels['spellcheck'] = 'Ortografia-egiaztatu'; $labels['checkspelling'] = 'Egiaztaketa ortografikoa'; @@ -280,9 +294,14 @@ $labels['highest'] = 'Altuena'; $labels['nosubject'] = '(gairik gabea)'; $labels['showimages'] = 'Irudiak bistaratu'; +$labels['allow'] = 'Baimendu'; $labels['alwaysshow'] = 'Beti ikusi $sender -en irudiak'; +$labels['alwaysallow'] = 'Baimendu beti $sender -engandik'; $labels['isdraft'] = 'Hau zirriborro bat da'; $labels['andnmore'] = '$nr gehiago...'; +$labels['details'] = 'Zehaztasunak'; +$labels['headers'] = 'Goiburuak'; +$labels['allheaders'] = 'Goiburu guztiak...'; $labels['togglemoreheaders'] = 'Erakutsi mezu mezu-goiburu gehiago'; $labels['togglefullheaders'] = 'Erakutsi/Ezkutatu mezuen goiburuak'; $labels['htmltoggle'] = 'HTML'; @@ -298,6 +317,14 @@ $labels['receiptread'] = 'Bidali jasotze-agiria (irakurria)'; $labels['yourmessage'] = 'Hau zure mezuaren jasotze-agiria da'; $labels['receiptnote'] = 'Oharra: jasotze-agiri honek hartzailearen ordenagailuan mezua bistaratu dela adierazten du besterik gabe. Honek ez du esan nahi hartzaileak mezua irakurri edo/eta ulertu duenik:'; +$labels['zoomin'] = 'Handiagotu'; +$labels['zoomout'] = 'Txikiagotu'; +$labels['rotate'] = 'Biratu'; +$labels['increaseimage'] = 'Handiagotu irudiaren tamaina'; +$labels['decreaseimage'] = 'Txikiagotu irudiaren tamaina'; +$labels['rotateimage'] = 'Biratu irudia'; +$labels['showtools'] = 'Erakutsi irudi-tresnak'; +$labels['hidetools'] = 'Ezkutatu irudi-tresnak'; $labels['name'] = 'Bistaratu izena'; $labels['firstname'] = 'Izena'; $labels['surname'] = 'Abizena'; @@ -363,10 +390,15 @@ $labels['save'] = 'Gorde'; $labels['delete'] = 'Ezabatu'; $labels['discard'] = 'Baztertu'; +$labels['continue'] = 'Jarraitu'; +$labels['ok'] = 'Ados'; $labels['rename'] = 'Berrizendatu'; $labels['addphoto'] = 'Gehitu'; $labels['replacephoto'] = 'Ordeztu'; $labels['uploadphoto'] = 'Kargatu argazkia'; +$labels['choosefile'] = 'Aukeratu fitxategia...'; +$labels['choosefiles'] = 'Aukeratu fitxategiak...'; +$labels['browse'] = 'Arakatu'; $labels['newcontact'] = 'Sortu kontaktu berria'; $labels['deletecontact'] = 'Ezabatu hautatutako kontaktuak'; $labels['composeto'] = 'Idatzi mezua honi:'; @@ -380,6 +412,8 @@ $labels['addgroup'] = 'Gehitu taldea'; $labels['grouprename'] = 'Berrizendatu taldea'; $labels['groupdelete'] = 'Ezabatu taldea'; +$labels['groupassign'] = 'Gehitu taldean...'; +$labels['groupremove'] = 'Kendu taldetik'; $labels['groupremoveselected'] = 'Ezabatu taldetik hautatutako kontaktuak'; $labels['uponelevel'] = 'Igo maila bat'; $labels['previouspage'] = 'Aurreko orria ikusi'; @@ -400,6 +434,7 @@ $labels['importgroups'] = 'Inportatu talde-esleipenak'; $labels['importgroupsall'] = 'Dena (sortu taldeak behar izatekotan)'; $labels['importgroupsexisting'] = 'Existitzen diren taldeentzat soilik'; +$labels['importdesc'] = 'Kargatu ditzakezu kontaktuak dagoen helbide liburu batetik.<br/>Une honetan onartzen dugu helbideen inportazioa <a href="https://en.wikipedia.org/wiki/VCard">vCard</a> edo CSV (komaz bereizita) datu formatuetan.'; $labels['done'] = 'Egina'; $labels['settingsfor'] = 'Honen ezarpenak:'; $labels['about'] = 'Honi buruz'; @@ -454,6 +489,7 @@ $labels['deletejunk'] = 'Ezabatu zuzenean zabor-mezuak'; $labels['showremoteimages'] = 'Erakutsi konektatutako urrutiko irudiak'; +$labels['allowremoteresources'] = 'Baimendu urrutiko baliabideak (irudia, estiloak)'; $labels['fromknownsenders'] = 'bidaltzaile ezagunengandik'; $labels['always'] = 'beti'; $labels['alwaysbutplain'] = 'beti, testu lauari erantzutean izan ezik'; @@ -475,7 +511,6 @@ $labels['toggleadvancedoptions'] = 'Toggle aukera aurreratuak'; $labels['focusonnewmessage'] = 'Fokatu leihoa mezu berrian'; $labels['checkallfolders'] = 'Egiaztatu karpeta guztiak mezu berrien bila'; -$labels['displaynext'] = 'Mezu bat ezabatu/mugitzean erakutsi hurrengo mezua'; $labels['defaultfont'] = 'Lehenetsitako letra-mota HTML mezuetarako'; $labels['mainoptions'] = 'Aukera nagusiak'; $labels['browseroptions'] = 'Nabigatze-aukerak'; @@ -495,6 +530,7 @@ $labels['insertsignature'] = 'Txertatu sinadura'; $labels['sigbelow'] = 'Sinadura aipamenaren azpian jarri'; $labels['sigseparator'] = 'Behartu banatzaile estandarra sinaduretan'; +$labels['automarkread'] = 'Markatu mezuak irakurrita gisa'; $labels['afternseconds'] = '$n segundo eta gero'; $labels['reqmdn'] = 'Eskatu beti jasotze-agiria'; $labels['reqdsn'] = 'Eskatu beti entrega-egoeraren jakinarazpena'; @@ -545,7 +581,11 @@ $labels['dualuselabel'] = 'Bakarrik eduki dezake'; $labels['dualusemail'] = 'mezuak'; $labels['dualusefolder'] = 'karpetak'; +$labels['generate'] = 'Sortu'; $labels['encryptioncreatekey'] = 'Sortu gako pare berria'; +$labels['openmailvelopesettings'] = 'Ireki Mailvelope ezarpenak'; +$labels['encryptionprivkeysinmailvelope'] = ' Badaukazu bat datozen $nr gako pribatu zure Mailvelope giltzarrian gordeta:'; +$labels['encryptionnoprivkeysinmailvelope'] = 'Bidaltzaile identitate honek jada ez dauka PGP gako pribaturik gordeta zure Mailvelope gehigarrian. Nahi al duzu bat sortzea mezuak zifratu ahal izateko?'; $labels['sortby'] = 'Honela ordenatu'; $labels['sortasc'] = 'Goraka ordenatu'; $labels['sortdesc'] = 'Beheraka ordenatu'; @@ -557,6 +597,12 @@ $labels['license'] = 'Lizentzia'; $labels['support'] = 'Eskuratu laguntza'; $labels['savedsearches'] = 'Gordetako bilaketak'; +$labels['dateformatY'] = 'UUUU'; +$labels['dateformaty'] = 'UU'; +$labels['dateformatm'] = 'HH'; +$labels['dateformatd'] = 'EE'; +$labels['dateformatj'] = 'E'; +$labels['dateformatn'] = 'H'; $labels['B'] = 'B'; $labels['KB'] = 'KB'; $labels['MB'] = 'MB'; @@ -607,11 +653,13 @@ $labels['arialabelforwardingoptions'] = 'Birbidaltzeko aukerak'; $labels['arialabelreplyalloptions'] = 'Guztiei erantzuteko aukerak'; $labels['arialabelmoremessageactions'] = 'Mezu ekintza gehiago'; +$labels['arialabelmorecontactactions'] = 'Kontaktuen ekintza gehiago'; $labels['arialabelmarkmessagesas'] = 'Markatu hautatutako mezua gisa honetara...'; $labels['arialabelcomposeoptions'] = 'Konposizio aukerak'; $labels['arialabelresponsesmenu'] = 'Erantzun finkoen menua'; $labels['arialabelattachmentuploadform'] = 'Eranskinak kargatzeko formularioa'; $labels['arialabelattachmentmenu'] = 'Eranskinaren aukerak'; +$labels['arialabelmailtomenu'] = 'Helbide elektronikoaren aukerak'; $labels['arialabelattachmentpreview'] = 'Eranskinaren aurrebista'; $labels['ariasummarycomposecontacts'] = 'Kontaktuak eta taldeak hartzaile gisa hautatzeko zerrenda'; $labels['arialabelcontactexportoptions'] = 'Kontaktuak esportatzeko aukerak'; @@ -621,6 +669,8 @@ $labels['arialabelresonseeditfrom'] = 'Erantzuna editatzeko formularioa'; $labels['arialabelsearchterms'] = 'Bilatu terminoak'; $labels['arialabeldropactionmenu'] = 'Arrastatu eta jaregin ekintzaren menua'; +$labels['arialabelheadersmenu'] = 'Hartzailea (goiburua) menua gehituz'; +$labels['arialabelimagetools'] = 'Irudi-tresnak'; $labels['helplistnavigation'] = 'Zerrendatu teklatuaren nabigazioa'; $labels['helplistkeyboardnavigation'] = "Gezia gora/behera: Mugitu ilararen fokua/hautaketa. Zuriunea: Hautatu fokatutako ilara.
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/eu_ES/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/eu_ES/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'Saio hasierak huts egin du.'; $messages['cookiesdisabled'] = 'Zure nabigatzaileak ez ditu cookie-rik onartzen.'; $messages['sessionerror'] = 'Zure saioa baliogabea da edo iraungita dago.'; +$messages['cookiesmismatch'] = 'Cookieak ez datozela bat hauteman da. Garbitu zure nabigatzailearen cookieak.'; $messages['storageerror'] = 'Huts egin du biltegiratze-zerbitzarira konektatzean.'; $messages['servererror'] = 'Zerbitzari-errorea!'; $messages['servererrormsg'] = 'Zerbitzari-errorea: $msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = 'Dagoeneko kargatutako eranskinak ezin dira zifratu. Gehitu itzazu berriro zifratze editorera.'; $messages['searchpubkeyservers'] = 'Falta diren gakoak gako publikoen zerbitzarietan bilatzea nahi duzu?'; $messages['encryptpubkeysfound'] = 'Hurrengo gako publikoak aurkitu dira:'; +$messages['keyservererror'] = 'Huts egin du gakoa gako-zerbitzaritik eskuratzen.'; +$messages['keyimportsuccess'] = '$key gako publikoa zure gako-sortan sartu da.'; $messages['nocontactsfound'] = 'Ez da kontakturik aurkitu.'; $messages['contactnotfound'] = 'Eskatutako kontaktua ez da aurkitu.'; +$messages['contactsearchonly'] = 'Bilaketa inprimaki bat erabili behar duzu hautatutako helbide-liburutik kontaktuak ikusteko.'; $messages['sendingfailed'] = 'Huts mezua bidaltzerakoan.'; $messages['senttooquickly'] = 'Itxaron $sec segundo mezua bidali aurretik, mesedez.'; $messages['errorsavingsent'] = 'Errore bat gertatu da bidalitako mezua gordetzean.'; @@ -123,6 +127,7 @@ $messages['filesizeerror'] = 'Erantsi nahi duzun fitxategian $size tamaina muga gainditzen du'; $messages['filecounterror'] = 'Gehienez jota $count fitxategi kargatu daitezke aldi berean.'; $messages['msgsizeerror'] = 'Huts egin du fitxategia eransten. Mezu baten gehienezko tamaina ($size) gainditu da.'; +$messages['msgsizeerrorfwd'] = 'Mezuaren gehienezko tamaina ($size) gainditu da. $num mezu ez dira erantsi.'; $messages['copysuccess'] = '$nr kontaktu ongi kopiatu dira.'; $messages['movesuccess'] = '$nr kontaktu ongi mugitu dira.'; $messages['copyerror'] = 'Ezin da kontakturik kopiatu.';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/fa_IR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/fa_IR/labels.inc
Changed
@@ -469,7 +469,6 @@ $labels['advancedoptions'] = 'گزینههای پیشرفته'; $labels['focusonnewmessage'] = 'مشخص نمودن پیام جدید'; $labels['checkallfolders'] = 'همه پوشهها را برای مشاهده پیامهای جدید بررسی کن'; -$labels['displaynext'] = 'بعد از انتقال/حذف پیام، پیام بعدی نمایش داده شود'; $labels['defaultfont'] = 'فونت پیش فرض برای پیام HTML'; $labels['mainoptions'] = 'گزینههای اصلی'; $labels['browseroptions'] = 'گزینههای مرورگر';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/fi_FI/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/fi_FI/labels.inc
Changed
@@ -497,7 +497,6 @@ $labels['toggleadvancedoptions'] = 'Vaihda edistyneemmät valinnat'; $labels['focusonnewmessage'] = 'Tarkenna selainikkuna uuteen viestiin'; $labels['checkallfolders'] = 'Tarkista kaikki kansiot uusien viestien varalta'; -$labels['displaynext'] = 'Viestin siirron tai poiston jälkeen, näytä seuraava viesti'; $labels['defaultfont'] = 'HTML-viestin oletuskirjasin'; $labels['mainoptions'] = 'Pääasetukset'; $labels['browseroptions'] = 'Selainasetukset';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/fo_FO/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/fo_FO/labels.inc
Changed
@@ -187,6 +187,7 @@ $labels['quotastorage'] = 'Driv pláss'; $labels['quotamessage'] = 'Tal av boðum'; $labels['quicksearch'] = 'Skjót leiting'; +$labels['searchplaceholder'] = 'Leita...'; $labels['resetsearch'] = 'Nulstilla leiting'; $labels['searchmod'] = 'Leiti minkarir'; $labels['msgtext'] = 'Øll boðini'; @@ -264,9 +265,12 @@ $labels['highest'] = 'Hagst'; $labels['nosubject'] = '(einki evni)'; $labels['showimages'] = 'Vís myndir'; +$labels['allow'] = 'Loyv'; $labels['alwaysshow'] = 'Vís altíð myndir frá $sender'; +$labels['alwaysallow'] = 'Loyv altíð frá $sender'; $labels['isdraft'] = 'Hetta er eini skitsu boð.'; $labels['andnmore'] = '$nr meir...'; +$labels['details'] = 'Upplýsingar'; $labels['togglemoreheaders'] = 'Vís meiri boð teksthøvd '; $labels['togglefullheaders'] = 'Vel ráðan boð teksthøvd'; $labels['htmltoggle'] = 'HTML'; @@ -346,10 +350,14 @@ $labels['save'] = 'Goym'; $labels['delete'] = 'Strika'; $labels['discard'] = 'Strika'; +$labels['ok'] = 'OK'; $labels['rename'] = 'Umdoyp'; $labels['addphoto'] = 'Legg aftrat'; $labels['replacephoto'] = 'Skift út'; $labels['uploadphoto'] = 'Uppsend mynd'; +$labels['choosefile'] = 'Vel fíl...'; +$labels['choosefiles'] = 'Vel fílar...'; +$labels['browse'] = 'Kaga'; $labels['newcontact'] = 'Stovna nýggjan persón'; $labels['deletecontact'] = 'Strika valdir persónar'; $labels['composeto'] = 'Skriva boð til'; @@ -363,6 +371,7 @@ $labels['addgroup'] = 'Stovna bólk'; $labels['grouprename'] = 'Umdoyp bólk'; $labels['groupdelete'] = 'Strika bólk'; +$labels['groupremove'] = 'Strika frá bólkið'; $labels['groupremoveselected'] = 'Strika valdar persónar frá bólki'; $labels['uponelevel'] = 'Upp eitt stig'; $labels['previouspage'] = 'Vís fyrrverandi síðu'; @@ -377,6 +386,7 @@ $labels['searchdelete'] = 'Strika leiting'; $labels['import'] = 'Innflyt'; $labels['importcontacts'] = 'Innflyt persónar'; +$labels['importfromfile'] = 'Inflyt frá fílu'; $labels['importtarget'] = 'Legg persón til'; $labels['importreplace'] = 'Skift út alt búðstaðarsavni'; $labels['importgroups'] = 'Innflyt bólka ásetan'; @@ -456,7 +466,6 @@ $labels['toggleadvancedoptions'] = 'Skift víðkaðar møguleikar'; $labels['focusonnewmessage'] = 'Legg dent á kaga vindeyga tá ið nýtt boð verður stovna'; $labels['checkallfolders'] = 'Kannað allar mappur fyri nýggj boð'; -$labels['displaynext'] = 'Eftir striking/flyting av boði, vís so næsta boð'; $labels['defaultfont'] = 'Vanligi stavsnið av HTML boði'; $labels['mainoptions'] = 'Høvuðs Vælmøguleikar'; $labels['browseroptions'] = 'Kaga Valmøguleikar'; @@ -520,6 +529,9 @@ $labels['namespace.personal'] = 'Persónlig'; $labels['namespace.other'] = 'Aðrir brúkarir'; $labels['namespace.shared'] = 'Deilt'; +$labels['dualusemail'] = 'boð'; +$labels['dualusefolder'] = 'mappur'; +$labels['generate'] = 'Framleið'; $labels['encryptioncreatekey'] = 'Skapa nýtt lykla par'; $labels['sortby'] = 'Sortera eftir'; $labels['sortasc'] = 'Sortera hækkandi'; @@ -531,6 +543,12 @@ $labels['source'] = 'Kelda'; $labels['license'] = 'Heimildarskjal'; $labels['support'] = 'Fá hjálp'; +$labels['dateformatY'] = 'ÁÁÁÁ'; +$labels['dateformaty'] = 'ÁÁ'; +$labels['dateformatm'] = 'MM'; +$labels['dateformatd'] = 'DD'; +$labels['dateformatj'] = 'D'; +$labels['dateformatn'] = 'M'; $labels['B'] = 'B'; $labels['KB'] = 'KB'; $labels['MB'] = 'MB'; @@ -585,6 +603,8 @@ $labels['arialabelcomposeoptions'] = 'Stovningar møguleikar'; $labels['arialabelresponsesmenu'] = 'Skapilón svar valmynd'; $labels['arialabelattachmentuploadform'] = 'Viðheftingar uppsendingar frymil'; +$labels['arialabelattachmentmenu'] = 'Viðheftingar valmøguleikar'; +$labels['arialabelmailtomenu'] = 'Teldupost búðstaðar valmøguleikar'; $labels['arialabelattachmentpreview'] = 'Brot av víðheftingum'; $labels['ariasummarycomposecontacts'] = 'Listi av persónum og bólkum at velja sum móttakarar'; $labels['arialabelcontactexportoptions'] = 'Valmøguleikar fyri persóna útflytan'; @@ -593,6 +613,7 @@ $labels['arialabelidentityeditfrom'] = 'Samleika broytingar formur'; $labels['arialabelresonseeditfrom'] = 'Svar broytingar frymil'; $labels['arialabelsearchterms'] = 'Leiti orð'; +$labels['arialabelimagetools'] = 'Mynda tól'; $labels['helplistnavigation'] = 'Vís knappaborð sniðvegir'; $labels['helplistkeyboardnavigation'] = "Pílar upp/niður: Flyt rekkju Millumglopp: Vel verandi rekkju
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/fr_FR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/fr_FR/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Afficher les non lus'; $labels['collapse-all'] = 'Fermer tous'; $labels['threaded'] = 'Par fil'; +$labels['showunread'] = 'Afficher les courriels non lus'; $labels['autoexpand_threads'] = 'Développer les fils de courriel'; $labels['do_expand'] = 'Tous les fils'; $labels['expand_only_unread'] = 'seulement avec des courriels non lus'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Activer/désactiver les options avancées'; $labels['focusonnewmessage'] = 'Cibler la fenêtre du navigateur quand un nouveau courriel arrive'; $labels['checkallfolders'] = 'Vérifier les nouveaux courriels dans tous les dossiers'; -$labels['displaynext'] = 'Après avoir supprimé/déplacé un courriel, afficher le suivant'; +$labels['displaynext'] = 'Afficher la prochaine entrée de la liste après suppression/déplacement'; $labels['defaultfont'] = 'Police par défaut des courriels HTML'; $labels['mainoptions'] = 'Options principales'; $labels['browseroptions'] = 'Options du navigateur';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/fy_NL/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/fy_NL/labels.inc
Changed
@@ -462,7 +462,6 @@ $labels['toggleadvancedoptions'] = 'Avansearre opsjes skeakelje'; $labels['focusonnewmessage'] = 'Fokus browser finster by nij berjocht'; $labels['checkallfolders'] = 'Kontrolearje alle mappen op nije berjochten'; -$labels['displaynext'] = 'Nij wiskjen/ferpleatsen fan berjocht, toan folgjende berjocht'; $labels['defaultfont'] = 'Standert lettertype fan HTML berjocht'; $labels['mainoptions'] = 'Haad Opsjes'; $labels['browseroptions'] = 'Browser Opsjes';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ga_IE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ga_IE/labels.inc
Changed
@@ -434,7 +434,6 @@ $labels['toggleadvancedoptions'] = 'Scoránaigh na hardroghanna'; $labels['focusonnewmessage'] = 'Dírigh fuinneog an líonléitheora ar theachtaireacht nua'; $labels['checkallfolders'] = 'Dearbháil gach fillteán do theachtaireachtaí nua'; -$labels['displaynext'] = 'Tar éis teachtaireacht a scriosadh/a bhogadh, taispeáin an chéad teachtaireacht eile'; $labels['mainoptions'] = 'Príomhroghanna'; $labels['browseroptions'] = 'Roghanna líonléitheora'; $labels['section'] = 'Roinn';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/gl_ES/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/gl_ES/labels.inc
Changed
@@ -431,7 +431,6 @@ $labels['toggleadvancedoptions'] = 'Amosar opcións avanzadas'; $labels['focusonnewmessage'] = 'Centrar a xanela do navegador en novas mensaxes'; $labels['checkallfolders'] = 'Procurar novas mensaxes en todos os cartafoles'; -$labels['displaynext'] = 'Logo de eliminar ou mover unha mensaxe ir á mensaxe seguinte'; $labels['defaultfont'] = 'Fonte por defecto da mensaxe HTML'; $labels['mainoptions'] = 'Opcións principais'; $labels['browseroptions'] = 'Opcións do navegador';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/he_IL/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/he_IL/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'הרחבה טרם נקרא'; $labels['collapse-all'] = 'כינוס כללי'; $labels['threaded'] = 'משורשר'; +$labels['showunread'] = 'הצגת הודעות שלא נקראו'; $labels['autoexpand_threads'] = 'הרחבת הודעות משורשרות'; $labels['do_expand'] = 'כל השרשורים'; $labels['expand_only_unread'] = 'רק עם הודעות שטרם נקראו'; @@ -510,7 +511,6 @@ $labels['toggleadvancedoptions'] = 'בחירה בין הגדרות בסיסיות או מתקדמות'; $labels['focusonnewmessage'] = 'מיקוד הסמן על החלון עם ההודעה החדשה'; $labels['checkallfolders'] = 'בדיקת הודעות חדשות בכל התיקיות'; -$labels['displaynext'] = 'מעבר להודעה הבאה לאחר מחיקה או תיוק'; $labels['defaultfont'] = 'גופן ברירת מחדל להודעה בפורמט HTML'; $labels['mainoptions'] = 'אפשרויות עיקריות'; $labels['browseroptions'] = 'אפשרויות דפדפן';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/he_IL/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/he_IL/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'הכניסה נכשלה'; $messages['cookiesdisabled'] = 'הדפדפן אינו מקבל עוגיות'; $messages['sessionerror'] = 'כניסתך למערכת אינה חוקית או שפג תוקפה'; +$messages['cookiesmismatch'] = 'קיימת אי התאמה בין בעוגיות. יש לנקות עוגיות השמורות בדפדפן'; $messages['storageerror'] = 'הקשר לשרת הדואר נכשל'; $messages['servererror'] = '! שגיאת שרת'; $messages['servererrormsg'] = '$msg שגיאת שרת'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = 'לא ניתן להצפין צרופות שכבר הועלו. נא להוסיפן מחדש בעורך ההצפנה.'; $messages['searchpubkeyservers'] = 'האם ברצונך לחפש בשרתים של מפתחות ציבוריים אחר המפתחות החסרים?'; $messages['encryptpubkeysfound'] = 'נמצאו המפתחות הציבוריים שלהלן'; +$messages['keyservererror'] = 'שליפת מפתח מהשרת נכשלה'; +$messages['keyimportsuccess'] = 'מפתח ציבורי $key יובא בהצלחה לצרור המפתחות שלך'; $messages['nocontactsfound'] = 'לא נמצאו אנשי קשר'; $messages['contactnotfound'] = 'איש הקשר המבוקש לא נמצא'; +$messages['contactsearchonly'] = 'יש להתשמש במסך חיפוש כדי לראות אנשי קשר מספר הכתובות'; $messages['sendingfailed'] = 'שליחת ההודעה נכשלה'; $messages['senttooquickly'] = 'נא להמתין $sec שניות לפני מסירת הודעה זו'; $messages['errorsavingsent'] = 'אירעה שגיאה בזמן שמירת ההודעה שנשלחה';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/hr_HR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/hr_HR/labels.inc
Changed
@@ -405,7 +405,6 @@ $labels['advancedoptions'] = 'Napredne postavke'; $labels['focusonnewmessage'] = 'Fokusiraj prozor preglednika pri primitku nove poruke'; $labels['checkallfolders'] = 'Provjeri nove poruke u svim mapama'; -$labels['displaynext'] = 'Nakon brisanja/micanja poruke, prikaži slijedeću'; $labels['defaultfont'] = 'Zadani font HTML poruke'; $labels['mainoptions'] = 'Glavne postavke'; $labels['browseroptions'] = 'Postavke preglednika';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/hu_HU/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/hu_HU/labels.inc
Changed
@@ -30,7 +30,7 @@ $labels['sent'] = 'Küldöttek'; $labels['trash'] = 'Kuka'; $labels['junk'] = 'Kéretlen'; -$labels['show_real_foldernames'] = 'Valós nevek megjelenítése a speciális mappáknál'; +$labels['show_real_foldernames'] = 'Valódi nevek megjelenítése a speciális mappáknál'; $labels['subject'] = 'Tárgy'; $labels['from'] = 'Feladó'; $labels['sender'] = 'Feladó'; @@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Olvasatlanok kibontása'; $labels['collapse-all'] = 'Összes összecsukása'; $labels['threaded'] = 'Témák szerinti csoportosítás'; +$labels['showunread'] = 'Olvasatlan üzenetek megjelenítése'; $labels['autoexpand_threads'] = 'Témacsoportok kibontása'; $labels['do_expand'] = 'minden téma'; $labels['expand_only_unread'] = 'csak ahol van olvasatlan üzenet'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Haladó beállítások kapcsolása'; $labels['focusonnewmessage'] = 'Beérkező új üzenet ablakának fókuszba hozása'; $labels['checkallfolders'] = 'Új üzenetek ellenőrzése minden mappában'; -$labels['displaynext'] = 'Levél törlése/áthelyezése után jelenjen meg a következő üzenet'; +$labels['displaynext'] = 'A következő elem megjelenítése törlés/áthelyezés után'; $labels['defaultfont'] = 'HTML üzenet alap karakterkészlete'; $labels['mainoptions'] = 'Általános beállítások'; $labels['browseroptions'] = 'Böngésző beállításai';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/hu_HU/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/hu_HU/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'Sikertelen bejelentkezés.'; $messages['cookiesdisabled'] = 'A böngésző nem támogatja a sütik használatát'; $messages['sessionerror'] = 'Érvénytelen vagy lejárt munkamenet'; +$messages['cookiesmismatch'] = 'A cookie-k nem egyeznek meg. Kérjük, töröljed a böngészőből a cookie-kat.'; $messages['storageerror'] = 'Nem sikerült csatlakozni az IMAP szerverhez'; $messages['servererror'] = 'Szerverhiba!'; $messages['servererrormsg'] = 'Szerverhiba: $msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = 'A már feltőltött csatolmányokat nem lehet titkosítani. Kérlek csatold újra azokat a titkosító szerkesztőben.'; $messages['searchpubkeyservers'] = 'Szeretnéd megkeresni a hiányzó kulcsokat publius kulcs szervereken?'; $messages['encryptpubkeysfound'] = 'A következő publikus kulcs lett megtalálva:'; +$messages['keyservererror'] = 'Nem sikerült kulcsot kapni a kulcskiszolgálóról.'; +$messages['keyimportsuccess'] = 'A nyilvános kulcsot $key sikeresen importálva a kulcstartódba.'; $messages['nocontactsfound'] = 'Nem találhatóak kapcsolatok'; $messages['contactnotfound'] = 'A kiválasztott kapcsolat nem található'; +$messages['contactsearchonly'] = 'A keresési űrlapot kell használni a partnerek megjelenítéséhez a kiválasztott címjegyzékből.'; $messages['sendingfailed'] = 'Az üzenet elküldése nem sikerült'; $messages['senttooquickly'] = 'Kérem várjon még $sec másodpercet az üzenet elküldése előtt'; $messages['errorsavingsent'] = 'Hiba történt az elküldött üzenet mentése közben';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/hy_AM/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/hy_AM/labels.inc
Changed
@@ -378,7 +378,6 @@ $labels['advancedoptions'] = 'Հավելյալ կարգավորումներ'; $labels['focusonnewmessage'] = 'Առաջ բերել պատուհանը նոր նամակ ստանալիս'; $labels['checkallfolders'] = 'Ստուգել բոլոր դարակները նոր նամակների համար'; -$labels['displaynext'] = 'Հաղորդագրությունը ջնջելուց կամ տեղափոխելուց հետո ցուցադրել հաջորդը'; $labels['defaultfont'] = 'HTML հաղորդագրության լռելյալ տառատեսակ'; $labels['mainoptions'] = 'Գլխավոր ընտրանքներ'; $labels['browseroptions'] = 'Զննարկչի ընտրանքներ';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ia/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ia/labels.inc
Changed
@@ -474,7 +474,6 @@ $labels['toggleadvancedoptions'] = 'Monstrar/celar optiones avantiate'; $labels['focusonnewmessage'] = 'Focalisar le fenestra del navigator sur le nove message'; $labels['checkallfolders'] = 'Verificar in tote le dossieres si il ha nove messages'; -$labels['displaynext'] = 'Post deler/displaciar un message, monstrar le proxime message'; $labels['defaultfont'] = 'Typo de litteras predefinite pro messages HTML'; $labels['mainoptions'] = 'Optiones principal'; $labels['browseroptions'] = 'Optiones de navigator';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/id_ID/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/id_ID/labels.inc
Changed
@@ -467,7 +467,6 @@ $labels['toggleadvancedoptions'] = 'Jungkitkan opsi tingkat lanjut'; $labels['focusonnewmessage'] = 'Pusatkan jendela broswer saat ada pesan baru'; $labels['checkallfolders'] = 'Periksa semua folder untuk pesan baru'; -$labels['displaynext'] = 'Setelah menghapus/memindahkan, tampilkan pesan berikutnya'; $labels['defaultfont'] = 'Huruf standar untuk pesan HTML'; $labels['mainoptions'] = 'Pilihan Utama'; $labels['browseroptions'] = 'Pilihan peramban web';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/is_IS/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/is_IS/labels.inc
Changed
@@ -510,7 +510,6 @@ $labels['toggleadvancedoptions'] = 'Víxla ítarlegum valkostum af/á'; $labels['focusonnewmessage'] = 'Láta vafraglugga vera virkan á nýjum skilaboðum'; $labels['checkallfolders'] = 'Athuga með ný skilaboð í öllum möppum'; -$labels['displaynext'] = 'Að eyðingu/færslu lokinni skal birta næstu skilaboð'; $labels['defaultfont'] = 'Sjálfgefið letur HTML-skilaboða'; $labels['mainoptions'] = 'Aðalstillingar'; $labels['browseroptions'] = 'Valkostir vafra';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/is_IS/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/is_IS/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'Innskráning mistókst.'; $messages['cookiesdisabled'] = 'Vafrinn þinn samþykkir ekki vefkökur.'; $messages['sessionerror'] = 'Innskráningin þín er ógild eða útrunnin.'; +$messages['cookiesmismatch'] = 'Fann misræmi í vefkökum. Endilega hreinsaðu skyndiminni vafrans af vefkökum.'; $messages['storageerror'] = 'Tenging við geymsluþjón mistókst.'; $messages['servererror'] = 'Villa í þjóni!'; $messages['servererrormsg'] = 'Villa í þjóni: $msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = 'Viðhengi sem þegar er búið að senda inn er ekki hægt að dulrita. Bættu þeim við aftur í dulritunarritlinum.'; $messages['searchpubkeyservers'] = 'Viltu leita að þeim lyklum sem vantar á opinberum lyklaþjónum?'; $messages['encryptpubkeysfound'] = 'Eftirfarandi dreifilyklar fundust:'; +$messages['keyservererror'] = 'Mistókst að nálgast lykil á lyklaþjóni.'; +$messages['keyimportsuccess'] = 'Það tókst að flytja $key dreifilykilinn inn í lyklakippuna þína.'; $messages['nocontactsfound'] = 'Engir tengiliðir fundust.'; $messages['contactnotfound'] = 'Umbeðinn tengiliður fannst ekki.'; +$messages['contactsearchonly'] = 'Þú verður að nota leitarform til að sjá tengiliði úr völdu nafnaskránni.'; $messages['sendingfailed'] = 'Sending skilaboðanna misheppnaðist.'; $messages['senttooquickly'] = 'Bíða í $sec sekúndu(r) áður en þessi skilaboð eru send.'; $messages['errorsavingsent'] = 'Villa kom upp við vistun sendra skilaboða.';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/it_IT/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/it_IT/labels.inc
Changed
@@ -506,7 +506,6 @@ $labels['toggleadvancedoptions'] = 'Passa alle impostazioni avanzate'; $labels['focusonnewmessage'] = 'Attiva la finestra del browser all\'arrivo di un nuovo messaggio'; $labels['checkallfolders'] = 'Controlla tutte le cartelle per la presenza di nuovi messaggi'; -$labels['displaynext'] = 'Dopo aver eliminato/spostato il messaggio mostra quello successivo'; $labels['defaultfont'] = 'Carattere standard per messaggi in HTML'; $labels['mainoptions'] = 'Opzioni principali'; $labels['browseroptions'] = 'Opzioni del browser';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ja_JP/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ja_JP/labels.inc
Changed
@@ -259,6 +259,7 @@ $labels['bccinstead'] = 'Bccを使用'; $labels['addheader'] = '宛先を追加(ヘッダー)'; $labels['insert'] = '挿入'; +$labels['insertcontact'] = '連絡先を挿入'; $labels['recipient'] = '宛先'; $labels['recipientedit'] = '宛先編集'; $labels['editidents'] = '識別情報を編集'; @@ -395,6 +396,9 @@ $labels['addphoto'] = '追加'; $labels['replacephoto'] = '置き換え'; $labels['uploadphoto'] = '写真をアップロード'; +$labels['choosefile'] = 'ファイルを選択...'; +$labels['choosefiles'] = 'ファイルを選択...'; +$labels['browse'] = '閲覧'; $labels['newcontact'] = '新しい連絡先を作成'; $labels['deletecontact'] = '選択した連絡先を削除'; $labels['composeto'] = 'この連絡先宛にメッセージを作成'; @@ -506,7 +510,6 @@ $labels['toggleadvancedoptions'] = '詳細なオプションの表示を切り替え'; $labels['focusonnewmessage'] = '新しいメッセージが届いたらブラウザーをアクティブ'; $labels['checkallfolders'] = 'すべてのフォルダーで新着メールを表示'; -$labels['displaynext'] = 'メッセージを削除や移動した後で次のメッセージを表示'; $labels['defaultfont'] = 'HTMLメッセージの初期フォント'; $labels['mainoptions'] = '基本的な設定'; $labels['browseroptions'] = 'ブラウザーのオプション'; @@ -580,6 +583,8 @@ $labels['generate'] = '生成'; $labels['encryptioncreatekey'] = '新しい鍵ペアを作成'; $labels['openmailvelopesettings'] = 'Mailvelopeの設定を表示'; +$labels['encryptionprivkeysinmailvelope'] = 'Mailvelopeのキーリングに$nr個の一致する秘密鍵:'; +$labels['encryptionnoprivkeysinmailvelope'] = 'この送信者の識別情報へのPGP秘密鍵がMailvelope拡張にまだありません。メッセージの暗号化を有効にするためにPGP秘密鍵を作成しますか?'; $labels['sortby'] = '並べ替え'; $labels['sortasc'] = '昇順で並べ替え'; $labels['sortdesc'] = '降順で並べ替え';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ja_JP/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ja_JP/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'ログインできませんでした。'; $messages['cookiesdisabled'] = 'ブラウザーがCookieを受け付けません。'; $messages['sessionerror'] = 'セッションが正しくないか期限が切れています。'; +$messages['cookiesmismatch'] = 'クッキーの不一致を検出しました。ブラウザーのクッキを消去してください。'; $messages['storageerror'] = 'IMAP サーバーへの接続に失敗しました。'; $messages['servererror'] = 'サーバーでエラーです!'; $messages['servererrormsg'] = 'サーバーエラー: $msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = '既にアップロードした添付ファイルは暗号化できません。暗号化のエディター内で再度追加してください。'; $messages['searchpubkeyservers'] = '欠けている鍵を公開なキーサーバーで検索しますか?'; $messages['encryptpubkeysfound'] = '以下のキーサーバーが見つかりました:'; +$messages['keyservererror'] = 'キーサーバーからキーを取得できませんでした。'; +$messages['keyimportsuccess'] = '公開鍵: $keyをキーリングにインポートしました。'; $messages['nocontactsfound'] = '連絡先がありません。'; $messages['contactnotfound'] = '連絡先が見つかりません。'; +$messages['contactsearchonly'] = '選択したアドレス帳の連絡先を見るには検索欄を使用しなければなりません。'; $messages['sendingfailed'] = 'メッセージを送信できませんでした。'; $messages['senttooquickly'] = 'このメッセージを送信するまで、$sec秒お待ちください。'; $messages['errorsavingsent'] = '送信したメッセージの保存中にエラーが発生しました。'; @@ -123,6 +127,7 @@ $messages['filesizeerror'] = 'アップロードするファイルのサイズが上限($size)を超えました。'; $messages['filecounterror'] = '一度に最大で$count個のファイルをアップロードできます。'; $messages['msgsizeerror'] = 'ファイルを添付できませんでした。メッセージの最大サイズ($size)を超えています。'; +$messages['msgsizeerrorfwd'] = 'メッセージの最大サイズ($size)を超過しました。$num個のメッセージを添付していません。'; $messages['copysuccess'] = '$nr個の連絡先をコピーしました。'; $messages['movesuccess'] = '$nr個の連絡先を移動しました。'; $messages['copyerror'] = 'どの連絡先もコピーできませんでした。';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ka_GE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ka_GE/labels.inc
Changed
@@ -368,7 +368,6 @@ $labels['advancedoptions'] = 'დამატებითი პარამეტრები'; $labels['focusonnewmessage'] = 'ფოკუსირება ახალ შეტყობინებებზე'; $labels['checkallfolders'] = 'შეამოწმე ყველა საქაღალდე ახალ შეტყობინებაზე'; -$labels['displaynext'] = 'შეტყობინების წაშლის ან გადატანის შემდეგ გამოჩნდეს შემდეგი შეტყობინება'; $labels['mainoptions'] = 'ძირითადი პარამეტრები'; $labels['section'] = 'განყოფილება'; $labels['maintenance'] = 'მომსახურება';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/km_KH/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/km_KH/labels.inc
Changed
@@ -363,7 +363,6 @@ $labels['advancedoptions'] = 'ការកំណត់ពឹស្តារ'; $labels['focusonnewmessage'] = 'ផ្តោតលើវីនដូវដែលកំពុងសរសេរសំបុត្រថ្មី'; $labels['checkallfolders'] = 'ពិនិត្យសំបុត្រថ្មីនៅគ្រប់ថតទាំងអស់'; -$labels['displaynext'] = 'បន្ទាប់ពីសំបុត្រត្រូវបានលុបឬផ្ទេរបង្ហាញសំបុត្របន្ទាប់'; $labels['mainoptions'] = 'ជំរើសដែលជាគោល'; $labels['section'] = 'ផ្នែក'; $labels['maintenance'] = 'ការថែរក្សា';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ko_KR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ko_KR/labels.inc
Changed
@@ -466,7 +466,6 @@ $labels['toggleadvancedoptions'] = '고급 옵션 표시/숨기기'; $labels['focusonnewmessage'] = '새 메시지가 있을 경우 브라우저 창으로 포커스 이동'; $labels['checkallfolders'] = '모든 폴더에서 새로운 메시지 확인'; -$labels['displaynext'] = '메시지 삭제/이동 후 다음 메시지 표시'; $labels['defaultfont'] = 'HTML 메시지의 기본 글꼴'; $labels['mainoptions'] = '메인 옵션'; $labels['browseroptions'] = '브라우저 옵션';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/lb_LU/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/lb_LU/labels.inc
Changed
@@ -411,7 +411,6 @@ $labels['advancedoptions'] = 'Avancéiert Optiounen'; $labels['focusonnewmessage'] = 'Browser-Fënster fokusséiere wann en neie Message ukënnt'; $labels['checkallfolders'] = 'Nei Messagen an allen Dossieren opruffen'; -$labels['displaynext'] = 'Nom Réckelen/Läsche vun engem Message deen nächsten uweisen'; $labels['defaultfont'] = 'Standard-Schrëft fir e Message mat Formatéierungen'; $labels['mainoptions'] = 'Haapt-Optiounen'; $labels['browseroptions'] = 'Browser-Optiounen';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/lt_LT/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/lt_LT/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'išskleisti turinčias neskaitytų laiškų'; $labels['collapse-all'] = 'suskleisti visas'; $labels['threaded'] = 'Rodyti gijas'; +$labels['showunread'] = 'Rodyti neskaitytus laiškus'; $labels['autoexpand_threads'] = 'Išskleisti gijas'; $labels['do_expand'] = 'visas'; $labels['expand_only_unread'] = 'tik turinčias neskaitytų laiškų'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Rodyti/slėpti papildomus nustatymus'; $labels['focusonnewmessage'] = 'Fokusuoti naršyklės langą gavus naują laišką'; $labels['checkallfolders'] = 'Naujų laiškų ieškoti visuose aplankuose'; -$labels['displaynext'] = 'Rodyti pranešimą pašalinus/perkėlus laišką'; +$labels['displaynext'] = 'Rodyti kitą sąrašo įrašą ištrinus/perkėlus'; $labels['defaultfont'] = 'Numatytasis HTML laiškų šriftas'; $labels['mainoptions'] = 'Pagrindinės nuostatos'; $labels['browseroptions'] = 'Naršyklės nuostatos';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/lv_LV/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/lv_LV/labels.inc
Changed
@@ -488,7 +488,6 @@ $labels['toggleadvancedoptions'] = 'Parādīt paplašinātos iestatījumus'; $labels['focusonnewmessage'] = 'Uzstādīt pārlūka fokusu uz jaunu vēstuli'; $labels['checkallfolders'] = 'Meklēt visās mapēs jaunās vēstules'; -$labels['displaynext'] = 'Pēc vēstules dzēšanas/pārvietošanas rādīt nākamo vēstuli'; $labels['defaultfont'] = 'Noklusētais fonts vēstulēm HTML formātā'; $labels['mainoptions'] = 'Galvenie iestatījumi'; $labels['browseroptions'] = 'Pārlūka iestatījumi';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/mk_MK/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/mk_MK/labels.inc
Changed
@@ -464,7 +464,6 @@ $labels['toggleadvancedoptions'] = 'Вклучи напредни опции '; $labels['focusonnewmessage'] = 'Фокусирај го прозорецот на прелистувачот на новото писмо'; $labels['checkallfolders'] = 'Провери ги сите папки за нови писма'; -$labels['displaynext'] = 'По бришење/преместување на писмото прикажи го следното писмо'; $labels['defaultfont'] = 'Стандарден фонд на HTML пораки '; $labels['mainoptions'] = 'Главни можности'; $labels['browseroptions'] = 'Опции на прелистувач';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/mr_IN/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/mr_IN/labels.inc
Changed
@@ -320,7 +320,6 @@ $labels['advancedoptions'] = 'अधिक पर्याय'; $labels['focusonnewmessage'] = 'ब्राऊझर खिडकी नवीन संदेशावर केंद्रित करा'; $labels['checkallfolders'] = 'सर्व फोल्डरमधे नवीन संदेश शोधा'; -$labels['displaynext'] = 'संदेश काढल्यानंतर किंवा हलवल्यानंतर पुढचा संदेश दाखवा'; $labels['mainoptions'] = 'मुख्य पर्याय'; $labels['section'] = 'भाग'; $labels['maintenance'] = 'देखभाल';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/nb_NO/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/nb_NO/labels.inc
Changed
@@ -501,7 +501,6 @@ $labels['advancedoptions'] = 'Avanserte alternativer'; $labels['focusonnewmessage'] = 'Gi nettleservindu fokus ved nye meldinger'; $labels['checkallfolders'] = 'Kontroller alle mapper for nye meldinger'; -$labels['displaynext'] = 'Vis neste melding etter sletting/flytting av en melding'; $labels['defaultfont'] = 'Standard skrifttype i HTML-melding'; $labels['mainoptions'] = 'Hovedinnstillinger'; $labels['browseroptions'] = 'Alternativer for nettleser';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/nl_BE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/nl_BE/labels.inc
Changed
@@ -378,7 +378,6 @@ $labels['advancedoptions'] = 'Geavanceerde opties'; $labels['focusonnewmessage'] = 'Focus browserscherm bij nieuw bericht'; $labels['checkallfolders'] = 'Controleer alle mappen op nieuwe berichten'; -$labels['displaynext'] = 'Na verplaatsen/verwijderen het volgende bericht tonen'; $labels['mainoptions'] = 'Hoofdopties'; $labels['section'] = 'Sectie'; $labels['maintenance'] = 'Onderhoud';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/nl_NL/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/nl_NL/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Ongelezen uitklappen'; $labels['collapse-all'] = 'Alles inklappen'; $labels['threaded'] = 'Conversaties'; +$labels['showunread'] = 'Toon ongelezen berichten'; $labels['autoexpand_threads'] = 'Klap alle conversaties uit'; $labels['do_expand'] = 'alle conversaties'; $labels['expand_only_unread'] = 'alleen met ongelezen berichten'; @@ -259,6 +260,7 @@ $labels['bccinstead'] = 'Bcc gebruiken'; $labels['addheader'] = 'Ontvanger toevoegen (header)'; $labels['insert'] = 'Invoegen'; +$labels['insertcontact'] = 'Contact(en) invoegen'; $labels['recipient'] = 'Ontvanger'; $labels['recipientedit'] = 'Ontvanger aanpassen'; $labels['editidents'] = 'Identiteiten bewerken'; @@ -360,7 +362,7 @@ $labels['advanced'] = 'Geavanceerd'; $labels['other'] = 'Anders'; $labels['printcontact'] = 'Contactpersoon printen'; -$labels['qrcode'] = 'QR code'; +$labels['qrcode'] = 'QR-code'; $labels['typehome'] = 'Thuis'; $labels['typework'] = 'Werk'; $labels['typeother'] = 'Anders'; @@ -395,6 +397,9 @@ $labels['addphoto'] = 'Toevoegen'; $labels['replacephoto'] = 'Vervangen'; $labels['uploadphoto'] = 'Foto uploaden'; +$labels['choosefile'] = 'Kies bestand...'; +$labels['choosefiles'] = 'Kies bestanden...'; +$labels['browse'] = 'Blader'; $labels['newcontact'] = 'Nieuw contact aanmaken'; $labels['deletecontact'] = 'Verwijder geselecteerde contactpersonen'; $labels['composeto'] = 'Stuur een bericht naar'; @@ -506,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Geavanceerde opties inschakelen'; $labels['focusonnewmessage'] = 'Focus browserscherm bij nieuw bericht'; $labels['checkallfolders'] = 'In alle mappen op nieuwe berichten controleren'; -$labels['displaynext'] = 'Ga naar volgend bericht na verwijderen of verplaatsen'; +$labels['displaynext'] = 'Laat volgende item in lijst zien na wissen/verplaatsen'; $labels['defaultfont'] = 'Standaardlettertype voor HTML-berichten'; $labels['mainoptions'] = 'Hoofdopties'; $labels['browseroptions'] = 'Browserinstellingen'; @@ -580,8 +585,8 @@ $labels['generate'] = 'Aanmaken'; $labels['encryptioncreatekey'] = 'Maak een nieuw sleutelpaar aan'; $labels['openmailvelopesettings'] = 'open Mailvelope Instellingen'; -$labels['encryptionprivkeysinmailvelope'] = 'U heeft $nr overeenkomende privé sleutels opgeslagen in Mailvelope'; -$labels['encryptionnoprivkeysinmailvelope'] = 'Deze afzender zijn indentiteit heeft (nog) geen PGP privé sleutels opgeslagen in uw Mailvelope extensie. Wilt u deze aanmaken om versleuteling van berichten in te kunnen schakelen?'; +$labels['encryptionprivkeysinmailvelope'] = 'U heeft $nr overeenkomende privésleutels opgeslagen in Mailvelope'; +$labels['encryptionnoprivkeysinmailvelope'] = 'Deze afzender zijn indentiteit heeft (nog) geen PGP-privésleutels opgeslagen in uw Mailvelope extensie. Wilt u deze aanmaken om versleuteling van berichten in te kunnen schakelen?'; $labels['sortby'] = 'Sorteer op'; $labels['sortasc'] = 'Sorteer oplopend'; $labels['sortdesc'] = 'Sorteer aflopend';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/nl_NL/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/nl_NL/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'Aanmelden mislukt.'; $messages['cookiesdisabled'] = 'Uw browser accepteert geen cookies.'; $messages['sessionerror'] = 'Uw sessie is verlopen of ongeldig.'; +$messages['cookiesmismatch'] = 'Cookie komt niet overeen, verwijder de cookies van uw browser.'; $messages['storageerror'] = 'Verbinding met IMAP-server mislukt.'; $messages['servererror'] = 'Serverfout!'; $messages['servererrormsg'] = 'Serverfout: $msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = 'Al geüploade bijlagen kunnen niet worden versleuteld. Voeg ze alstublieft opnieuw toe aan de versleutelingsbewerker.'; $messages['searchpubkeyservers'] = 'Wilt u publieke sleutelservers doorzoeken voor de missende sleutels?'; $messages['encryptpubkeysfound'] = 'The volgende publieke sleutels zijn gevonden:'; +$messages['keyservererror'] = 'Sleutel van keyserver ophalen is mislukt.'; +$messages['keyimportsuccess'] = 'Publieke sleutel $key succesvol geïmporteerd in uw sleutelhanger.'; $messages['nocontactsfound'] = 'Geen contactpersonen gevonden.'; $messages['contactnotfound'] = 'Opgevraagde contactpersoon niet gevonden.'; +$messages['contactsearchonly'] = 'Voer enkele zoektermen in om contactpersonen te zoeken van het geselecteerde adresboek.'; $messages['sendingfailed'] = 'Verzenden van bericht is mislukt.'; $messages['senttooquickly'] = 'Wacht alstublieft $sec seconde(n) voordat u dit bericht verstuurt.'; $messages['errorsavingsent'] = 'Er is een fout opgetreden tijdens het opslaan van het verzonden bericht.';
View file
roundcubemail-1.4-rc2.12.tar.gz/program/localization/nl_NL/timezones.inc
Added
@@ -0,0 +1,455 @@ +<?php + +/* + +-----------------------------------------------------------------------+ + | Localization file of the Roundcube Webmail client | + | | + | Copyright (C) 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/timezones/ +*/ + +$labels['tz:utc'] = 'UTC'; +$labels['tz:africa'] = 'Afrika'; +$labels['tz:africa:abidjan'] = 'Abidjan'; +$labels['tz:africa:accra'] = 'Accra'; +$labels['tz:africa:addis_ababa'] = 'Addis Abbeba'; +$labels['tz:africa:algiers'] = 'Algiers'; +$labels['tz:africa:asmara'] = 'Asmara'; +$labels['tz:africa:bamako'] = 'Bamako'; +$labels['tz:africa:bangui'] = 'Bangui'; +$labels['tz:africa:banjul'] = 'Banjul'; +$labels['tz:africa:bissau'] = 'Bissau'; +$labels['tz:africa:blantyre'] = 'Blantyre'; +$labels['tz:africa:brazzaville'] = 'Brazzaville'; +$labels['tz:africa:bujumbura'] = 'Bujumbura'; +$labels['tz:africa:cairo'] = 'Cairo'; +$labels['tz:africa:casablanca'] = 'Casablanca'; +$labels['tz:africa:ceuta'] = 'Ceuta'; +$labels['tz:africa:conakry'] = 'Conakry'; +$labels['tz:africa:dakar'] = 'Dakar'; +$labels['tz:africa:dar_es_salaam'] = 'Dar es Salaam'; +$labels['tz:africa:djibouti'] = 'Djibouti'; +$labels['tz:africa:douala'] = 'Douala'; +$labels['tz:africa:el_aaiun'] = 'El Aaiun'; +$labels['tz:africa:freetown'] = 'Freetown'; +$labels['tz:africa:gaborone'] = 'Gaborone'; +$labels['tz:africa:harare'] = 'Harare'; +$labels['tz:africa:johannesburg'] = 'Johannesburg'; +$labels['tz:africa:juba'] = 'Juba'; +$labels['tz:africa:kampala'] = 'Kampala'; +$labels['tz:africa:khartoum'] = 'Khartoum'; +$labels['tz:africa:kigali'] = 'Kigali'; +$labels['tz:africa:kinshasa'] = 'Kinshasa'; +$labels['tz:africa:lagos'] = 'Lagos'; +$labels['tz:africa:libreville'] = 'Libreville'; +$labels['tz:africa:lome'] = 'Lomé'; +$labels['tz:africa:luanda'] = 'Luanda'; +$labels['tz:africa:lubumbashi'] = 'Lubumbashi'; +$labels['tz:africa:lusaka'] = 'Lusaka'; +$labels['tz:africa:malabo'] = 'Malabo'; +$labels['tz:africa:maputo'] = 'Maputo'; +$labels['tz:africa:maseru'] = 'Maseru'; +$labels['tz:africa:mbabane'] = 'Mbabane'; +$labels['tz:africa:mogadishu'] = 'Mogadishu'; +$labels['tz:africa:monrovia'] = 'Monrovia'; +$labels['tz:africa:nairobi'] = 'Nairobi'; +$labels['tz:africa:ndjamena'] = 'Ndjamena'; +$labels['tz:africa:niamey'] = 'Niamey'; +$labels['tz:africa:nouakchott'] = 'Nouakchott'; +$labels['tz:africa:ouagadougou'] = 'Ouagadougou'; +$labels['tz:africa:porto-novo'] = 'Porto-Novo'; +$labels['tz:africa:sao_tome'] = 'São Tomé'; +$labels['tz:africa:tripoli'] = 'Tripoli'; +$labels['tz:africa:tunis'] = 'Tunis'; +$labels['tz:africa:windhoek'] = 'Windhoek'; +$labels['tz:america'] = 'Amerika'; +$labels['tz:america:adak'] = 'Adak'; +$labels['tz:america:anchorage'] = 'Anchorage'; +$labels['tz:america:anguilla'] = 'Anguilla'; +$labels['tz:america:antigua'] = 'Antigua'; +$labels['tz:america:araguaina'] = 'Araguaina'; +$labels['tz:america:argentina'] = 'Argentinië'; +$labels['tz:america:argentina:buenos_aires'] = 'Buenos Aires'; +$labels['tz:america:argentina:catamarca'] = 'Catamarca'; +$labels['tz:america:argentina:cordoba'] = 'Cordoba'; +$labels['tz:america:argentina:jujuy'] = 'Jujuy'; +$labels['tz:america:argentina:la_rioja'] = 'La Rioja'; +$labels['tz:america:argentina:mendoza'] = 'Mendoza'; +$labels['tz:america:argentina:rio_gallegos'] = 'Rio Gallegos'; +$labels['tz:america:argentina:salta'] = 'Salta'; +$labels['tz:america:argentina:san_juan'] = 'San Juan'; +$labels['tz:america:argentina:san_luis'] = 'San Luis'; +$labels['tz:america:argentina:tucuman'] = 'Tucuman'; +$labels['tz:america:argentina:ushuaia'] = 'Ushuaia'; +$labels['tz:america:aruba'] = 'Aruba'; +$labels['tz:america:asuncion'] = 'Asunción'; +$labels['tz:america:atikokan'] = 'Atikokan'; +$labels['tz:america:bahia'] = 'Bahia'; +$labels['tz:america:bahia_banderas'] = 'Bahia Banderas'; +$labels['tz:america:barbados'] = 'Barbados'; +$labels['tz:america:belem'] = 'Belem'; +$labels['tz:america:belize'] = 'Belize'; +$labels['tz:america:blanc-sablon'] = 'Blanc-Sablon'; +$labels['tz:america:boa_vista'] = 'Boa Vista'; +$labels['tz:america:bogota'] = 'Bogota'; +$labels['tz:america:boise'] = 'Boise'; +$labels['tz:america:cambridge_bay'] = 'Cambridge Bay'; +$labels['tz:america:campo_grande'] = 'Campo Grande'; +$labels['tz:america:cancun'] = 'Cancun'; +$labels['tz:america:caracas'] = 'Caracas'; +$labels['tz:america:cayenne'] = 'Cayenne'; +$labels['tz:america:cayman'] = 'Cayman'; +$labels['tz:america:chicago'] = 'Chicago'; +$labels['tz:america:chihuahua'] = 'Chihuahua'; +$labels['tz:america:costa_rica'] = 'Costa Rica'; +$labels['tz:america:creston'] = 'Creston'; +$labels['tz:america:cuiaba'] = 'Cuiaba'; +$labels['tz:america:curacao'] = 'Curaçao'; +$labels['tz:america:danmarkshavn'] = 'Danmarkshavn'; +$labels['tz:america:dawson'] = 'Dawson'; +$labels['tz:america:dawson_creek'] = 'Dawson Creek'; +$labels['tz:america:denver'] = 'Denver'; +$labels['tz:america:detroit'] = 'Detroit'; +$labels['tz:america:dominica'] = 'Dominica'; +$labels['tz:america:edmonton'] = 'Edmonton'; +$labels['tz:america:eirunepe'] = 'Eirunepe'; +$labels['tz:america:el_salvador'] = 'El Salvador'; +$labels['tz:america:fort_nelson'] = 'Fort Nelson'; +$labels['tz:america:fortaleza'] = 'Fortaleza'; +$labels['tz:america:glace_bay'] = 'Glace Bay'; +$labels['tz:america:godthab'] = 'Godthab'; +$labels['tz:america:goose_bay'] = 'Goose Bay'; +$labels['tz:america:grand_turk'] = 'Grand Turk'; +$labels['tz:america:grenada'] = 'Grenada'; +$labels['tz:america:guadeloupe'] = 'Guadeloupe'; +$labels['tz:america:guatemala'] = 'Guatemala'; +$labels['tz:america:guayaquil'] = 'Guayaquil'; +$labels['tz:america:guyana'] = 'Guyana'; +$labels['tz:america:halifax'] = 'Halifax'; +$labels['tz:america:havana'] = 'Havana'; +$labels['tz:america:hermosillo'] = 'Hermosillo'; +$labels['tz:america:indiana'] = 'Indiana'; +$labels['tz:america:indiana:indianapolis'] = 'Indianapolis'; +$labels['tz:america:indiana:knox'] = 'Knox'; +$labels['tz:america:indiana:marengo'] = 'Marengo'; +$labels['tz:america:indiana:petersburg'] = 'Petersburg'; +$labels['tz:america:indiana:tell_city'] = 'Tell City'; +$labels['tz:america:indiana:vevay'] = 'Vevay'; +$labels['tz:america:indiana:vincennes'] = 'Vincennes'; +$labels['tz:america:indiana:winamac'] = 'Winamac'; +$labels['tz:america:inuvik'] = 'Inuvik'; +$labels['tz:america:iqaluit'] = 'Iqaluit'; +$labels['tz:america:jamaica'] = 'Jamaica'; +$labels['tz:america:juneau'] = 'Juneau'; +$labels['tz:america:kentucky'] = 'Kentucky'; +$labels['tz:america:kentucky:louisville'] = 'Louisville'; +$labels['tz:america:kentucky:monticello'] = 'Monticello'; +$labels['tz:america:kralendijk'] = 'Kralendijk'; +$labels['tz:america:la_paz'] = 'La Paz'; +$labels['tz:america:lima'] = 'Lima'; +$labels['tz:america:los_angeles'] = 'Los Angeles'; +$labels['tz:america:lower_princes'] = 'Lower Princes'; +$labels['tz:america:maceio'] = 'Maceio'; +$labels['tz:america:managua'] = 'Managua'; +$labels['tz:america:manaus'] = 'Manaus'; +$labels['tz:america:marigot'] = 'Marigot'; +$labels['tz:america:martinique'] = 'Martinique'; +$labels['tz:america:matamoros'] = 'Matamoros'; +$labels['tz:america:mazatlan'] = 'Mazatlan'; +$labels['tz:america:menominee'] = 'Menominee'; +$labels['tz:america:merida'] = 'Merida'; +$labels['tz:america:metlakatla'] = 'Metlakatla'; +$labels['tz:america:mexico_city'] = 'Mexico Stad'; +$labels['tz:america:miquelon'] = 'Miquelon'; +$labels['tz:america:moncton'] = 'Moncton'; +$labels['tz:america:monterrey'] = 'Monterrey'; +$labels['tz:america:montevideo'] = 'Montevideo'; +$labels['tz:america:montserrat'] = 'Montserrat'; +$labels['tz:america:nassau'] = 'Nassau'; +$labels['tz:america:new_york'] = 'New York'; +$labels['tz:america:nipigon'] = 'Nipigon'; +$labels['tz:america:nome'] = 'Nome'; +$labels['tz:america:noronha'] = 'Noronha'; +$labels['tz:america:north_dakota'] = 'North Dakota'; +$labels['tz:america:north_dakota:beulah'] = 'Beulah'; +$labels['tz:america:north_dakota:center'] = 'Center'; +$labels['tz:america:north_dakota:new_salem'] = 'New Salem'; +$labels['tz:america:ojinaga'] = 'Ojinaga'; +$labels['tz:america:panama'] = 'Panama'; +$labels['tz:america:pangnirtung'] = 'Pangnirtung'; +$labels['tz:america:paramaribo'] = 'Paramaribo'; +$labels['tz:america:phoenix'] = 'Phoenix'; +$labels['tz:america:port-au-prince'] = 'Port-au-Prince'; +$labels['tz:america:port_of_spain'] = 'Port of Spain'; +$labels['tz:america:porto_velho'] = 'Porto Velho'; +$labels['tz:america:puerto_rico'] = 'Puerto Rico'; +$labels['tz:america:rainy_river'] = 'Rainy River'; +$labels['tz:america:rankin_inlet'] = 'Rankin Inlet'; +$labels['tz:america:recife'] = 'Recife'; +$labels['tz:america:regina'] = 'Regina'; +$labels['tz:america:resolute'] = 'Resolute'; +$labels['tz:america:rio_branco'] = 'Rio Branco'; +$labels['tz:america:santarem'] = 'Santarem'; +$labels['tz:america:santiago'] = 'Santiago'; +$labels['tz:america:santo_domingo'] = 'Santo Domingo'; +$labels['tz:america:sao_paulo'] = 'Sao Paulo'; +$labels['tz:america:scoresbysund'] = 'Scoresbysund'; +$labels['tz:america:sitka'] = 'Sitka'; +$labels['tz:america:st_barthelemy'] = 'Saint Barthélemy'; +$labels['tz:america:st_johns'] = "Saint John's"; +$labels['tz:america:st_kitts'] = 'Saint Kitts'; +$labels['tz:america:st_lucia'] = 'Saint Lucia'; +$labels['tz:america:st_thomas'] = 'Saint Thomas'; +$labels['tz:america:st_vincent'] = 'Saint Vincent'; +$labels['tz:america:swift_current'] = 'Swift Current'; +$labels['tz:america:tegucigalpa'] = 'Tegucigalpa'; +$labels['tz:america:thule'] = 'Thule'; +$labels['tz:america:thunder_bay'] = 'Thunder Bay'; +$labels['tz:america:tijuana'] = 'Tijuana'; +$labels['tz:america:toronto'] = 'Toronto'; +$labels['tz:america:tortola'] = 'Tortola'; +$labels['tz:america:vancouver'] = 'Vancouver'; +$labels['tz:america:whitehorse'] = 'Whitehorse'; +$labels['tz:america:winnipeg'] = 'Winnipeg'; +$labels['tz:america:yakutat'] = 'Yakutat'; +$labels['tz:america:yellowknife'] = 'Yellowknife'; +$labels['tz:antarctica'] = 'Antarctica'; +$labels['tz:antarctica:casey'] = 'Casey'; +$labels['tz:antarctica:davis'] = 'Davis'; +$labels['tz:antarctica:dumontdurville'] = "Dumont d'Urville"; +$labels['tz:antarctica:macquarie'] = 'Macquarie'; +$labels['tz:antarctica:mawson'] = 'Mawson'; +$labels['tz:antarctica:mcmurdo'] = 'McMurdo'; +$labels['tz:antarctica:palmer'] = 'Palmer'; +$labels['tz:antarctica:rothera'] = 'Rothera'; +$labels['tz:antarctica:syowa'] = 'Syowa'; +$labels['tz:antarctica:troll'] = 'Troll'; +$labels['tz:antarctica:vostok'] = 'Vostok'; +$labels['tz:arctic'] = 'Noordpoolgebied'; +$labels['tz:arctic:longyearbyen'] = 'Longyearbyen'; +$labels['tz:asia'] = 'Azië'; +$labels['tz:asia:aden'] = 'Aden'; +$labels['tz:asia:almaty'] = 'Almaty'; +$labels['tz:asia:amman'] = 'Amman'; +$labels['tz:asia:anadyr'] = 'Anadyr'; +$labels['tz:asia:aqtau'] = 'Aqtau'; +$labels['tz:asia:aqtobe'] = 'Aqtobe'; +$labels['tz:asia:ashgabat'] = 'Ashgabat'; +$labels['tz:asia:atyrau'] = 'Atyrau'; +$labels['tz:asia:baghdad'] = 'Baghdad'; +$labels['tz:asia:bahrain'] = 'Bahrain'; +$labels['tz:asia:baku'] = 'Baku'; +$labels['tz:asia:bangkok'] = 'Bangkok'; +$labels['tz:asia:barnaul'] = 'Barnaul'; +$labels['tz:asia:beirut'] = 'Beiroet'; +$labels['tz:asia:bishkek'] = 'Bishkek'; +$labels['tz:asia:brunei'] = 'Brunei'; +$labels['tz:asia:chita'] = 'Chita'; +$labels['tz:asia:choibalsan'] = 'Choibalsan'; +$labels['tz:asia:colombo'] = 'Colombo'; +$labels['tz:asia:damascus'] = 'Damascus'; +$labels['tz:asia:dhaka'] = 'Dhaka'; +$labels['tz:asia:dili'] = 'Dili'; +$labels['tz:asia:dubai'] = 'Dubai'; +$labels['tz:asia:dushanbe'] = 'Dushanbe'; +$labels['tz:asia:famagusta'] = 'Famagusta'; +$labels['tz:asia:gaza'] = 'Gaza'; +$labels['tz:asia:hebron'] = 'Hebron'; +$labels['tz:asia:ho_chi_minh'] = 'Ho Chi Minh'; +$labels['tz:asia:hong_kong'] = 'Hong Kong'; +$labels['tz:asia:hovd'] = 'Hovd'; +$labels['tz:asia:irkutsk'] = 'Irkutsk'; +$labels['tz:asia:jakarta'] = 'Jakarta'; +$labels['tz:asia:jayapura'] = 'Jayapura'; +$labels['tz:asia:jerusalem'] = 'Jeruzalem'; +$labels['tz:asia:kabul'] = 'Kaboel'; +$labels['tz:asia:kamchatka'] = 'Kamchatka'; +$labels['tz:asia:karachi'] = 'Karachi'; +$labels['tz:asia:kathmandu'] = 'Kathmandu'; +$labels['tz:asia:khandyga'] = 'Khandyga'; +$labels['tz:asia:kolkata'] = 'Kolkata'; +$labels['tz:asia:krasnoyarsk'] = 'Krasnoyarsk'; +$labels['tz:asia:kuala_lumpur'] = 'Kuala Lumpur'; +$labels['tz:asia:kuching'] = 'Kuching'; +$labels['tz:asia:kuwait'] = 'Koeweit'; +$labels['tz:asia:macau'] = 'Macau'; +$labels['tz:asia:magadan'] = 'Magadan'; +$labels['tz:asia:makassar'] = 'Makassar'; +$labels['tz:asia:manila'] = 'Manila'; +$labels['tz:asia:muscat'] = 'Muscat'; +$labels['tz:asia:nicosia'] = 'Nicosia'; +$labels['tz:asia:novokuznetsk'] = 'Novokuznetsk'; +$labels['tz:asia:novosibirsk'] = 'Novosibirsk'; +$labels['tz:asia:omsk'] = 'Omsk'; +$labels['tz:asia:oral'] = 'Oral'; +$labels['tz:asia:phnom_penh'] = 'Phnom Penh'; +$labels['tz:asia:pontianak'] = 'Pontianak'; +$labels['tz:asia:pyongyang'] = 'Pyongyang'; +$labels['tz:asia:qatar'] = 'Qatar'; +$labels['tz:asia:qyzylorda'] = 'Qyzylorda'; +$labels['tz:asia:riyadh'] = 'Riyadh'; +$labels['tz:asia:sakhalin'] = 'Sakhalin'; +$labels['tz:asia:samarkand'] = 'Samarkand'; +$labels['tz:asia:seoul'] = 'Seoul'; +$labels['tz:asia:shanghai'] = 'Shanghai'; +$labels['tz:asia:singapore'] = 'Singapore'; +$labels['tz:asia:srednekolymsk'] = 'Srednekolymsk'; +$labels['tz:asia:taipei'] = 'Taipei'; +$labels['tz:asia:tashkent'] = 'Tashkent'; +$labels['tz:asia:tbilisi'] = 'Tbilisi'; +$labels['tz:asia:tehran'] = 'Teheran'; +$labels['tz:asia:thimphu'] = 'Thimphu'; +$labels['tz:asia:tokyo'] = 'Tokyo'; +$labels['tz:asia:tomsk'] = 'Tomsk'; +$labels['tz:asia:ulaanbaatar'] = 'Ulaanbaatar'; +$labels['tz:asia:urumqi'] = 'Urumqi'; +$labels['tz:asia:ust-nera'] = 'Ust-Nera'; +$labels['tz:asia:vientiane'] = 'Vientiane'; +$labels['tz:asia:vladivostok'] = 'Vladivostok'; +$labels['tz:asia:yakutsk'] = 'Yakutsk'; +$labels['tz:asia:yangon'] = 'Yangon'; +$labels['tz:asia:yekaterinburg'] = 'Yekaterinburg'; +$labels['tz:asia:yerevan'] = 'Yerevan'; +$labels['tz:atlantic'] = 'Atlantische oceaan'; +$labels['tz:atlantic:azores'] = 'Azoren'; +$labels['tz:atlantic:bermuda'] = 'Bermuda'; +$labels['tz:atlantic:canary'] = 'Canarische eilanden'; +$labels['tz:atlantic:cape_verde'] = 'Kaap Verdië'; +$labels['tz:atlantic:faroe'] = 'Faröer eilanden'; +$labels['tz:atlantic:madeira'] = 'Madeira'; +$labels['tz:atlantic:reykjavik'] = 'Reykjavik'; +$labels['tz:atlantic:south_georgia'] = 'South Georgia'; +$labels['tz:atlantic:st_helena'] = 'St Helena'; +$labels['tz:atlantic:stanley'] = 'Stanley'; +$labels['tz:australia'] = 'Australië'; +$labels['tz:australia:adelaide'] = 'Adelaide'; +$labels['tz:australia:brisbane'] = 'Brisbane'; +$labels['tz:australia:broken_hill'] = 'Broken Hill'; +$labels['tz:australia:currie'] = 'Currie'; +$labels['tz:australia:darwin'] = 'Darwin'; +$labels['tz:australia:eucla'] = 'Eucla'; +$labels['tz:australia:hobart'] = 'Hobart'; +$labels['tz:australia:lindeman'] = 'Lindeman'; +$labels['tz:australia:lord_howe'] = 'Lord Howe'; +$labels['tz:australia:melbourne'] = 'Melbourne'; +$labels['tz:australia:perth'] = 'Perth'; +$labels['tz:australia:sydney'] = 'Sydney'; +$labels['tz:europe'] = 'Europa'; +$labels['tz:europe:amsterdam'] = 'Amsterdam'; +$labels['tz:europe:andorra'] = 'Andorra'; +$labels['tz:europe:astrakhan'] = 'Astrakhan'; +$labels['tz:europe:athens'] = 'Athene'; +$labels['tz:europe:belgrade'] = 'Belgrado'; +$labels['tz:europe:berlin'] = 'Berlijn'; +$labels['tz:europe:bratislava'] = 'Bratislava'; +$labels['tz:europe:brussels'] = 'Brussel'; +$labels['tz:europe:bucharest'] = 'Boekarest'; +$labels['tz:europe:budapest'] = 'Boedapest'; +$labels['tz:europe:busingen'] = 'Busingen'; +$labels['tz:europe:chisinau'] = 'Chisinau'; +$labels['tz:europe:copenhagen'] = 'Kopenhagen'; +$labels['tz:europe:dublin'] = 'Dublin'; +$labels['tz:europe:gibraltar'] = 'Gibraltar'; +$labels['tz:europe:guernsey'] = 'Guernsey'; +$labels['tz:europe:helsinki'] = 'Helsinki'; +$labels['tz:europe:isle_of_man'] = 'Isle of Man'; +$labels['tz:europe:istanbul'] = 'Istanbul'; +$labels['tz:europe:jersey'] = 'Jersey'; +$labels['tz:europe:kaliningrad'] = 'Kaliningrad'; +$labels['tz:europe:kiev'] = 'Kiev'; +$labels['tz:europe:kirov'] = 'Kirov'; +$labels['tz:europe:lisbon'] = 'Lissabon'; +$labels['tz:europe:ljubljana'] = 'Ljubljana'; +$labels['tz:europe:london'] = 'Londen'; +$labels['tz:europe:luxembourg'] = 'Luxemburg'; +$labels['tz:europe:madrid'] = 'Madrid'; +$labels['tz:europe:malta'] = 'Malta'; +$labels['tz:europe:mariehamn'] = 'Mariehamn'; +$labels['tz:europe:minsk'] = 'Minsk'; +$labels['tz:europe:monaco'] = 'Monaco'; +$labels['tz:europe:moscow'] = 'Moskou'; +$labels['tz:europe:oslo'] = 'Oslo'; +$labels['tz:europe:paris'] = 'Parijs'; +$labels['tz:europe:podgorica'] = 'Podgorica'; +$labels['tz:europe:prague'] = 'Praag'; +$labels['tz:europe:riga'] = 'Riga'; +$labels['tz:europe:rome'] = 'Rome'; +$labels['tz:europe:samara'] = 'Samara'; +$labels['tz:europe:san_marino'] = 'San Marino'; +$labels['tz:europe:sarajevo'] = 'Sarajevo'; +$labels['tz:europe:saratov'] = 'Saratov'; +$labels['tz:europe:simferopol'] = 'Simferopol'; +$labels['tz:europe:skopje'] = 'Skopje'; +$labels['tz:europe:sofia'] = 'Sofia'; +$labels['tz:europe:stockholm'] = 'Stockholm'; +$labels['tz:europe:tallinn'] = 'Tallinn'; +$labels['tz:europe:tirane'] = 'Tirana'; +$labels['tz:europe:ulyanovsk'] = 'Ulyanovsk'; +$labels['tz:europe:uzhgorod'] = 'Uzhgorod'; +$labels['tz:europe:vaduz'] = 'Vaduz'; +$labels['tz:europe:vatican'] = 'Vaticaanstad'; +$labels['tz:europe:vienna'] = 'Wenen'; +$labels['tz:europe:vilnius'] = 'Vilnius'; +$labels['tz:europe:volgograd'] = 'Volgograd'; +$labels['tz:europe:warsaw'] = 'Warschau'; +$labels['tz:europe:zagreb'] = 'Zagreb'; +$labels['tz:europe:zaporozhye'] = 'Zaporozhye'; +$labels['tz:europe:zurich'] = 'Zürich'; +$labels['tz:indian'] = 'Indische oceaan'; +$labels['tz:indian:antananarivo'] = 'Antananarivo'; +$labels['tz:indian:chagos'] = 'Chagos'; +$labels['tz:indian:christmas'] = 'Christmas'; +$labels['tz:indian:cocos'] = 'Cocos'; +$labels['tz:indian:comoro'] = 'Comoro'; +$labels['tz:indian:kerguelen'] = 'Kerguelen'; +$labels['tz:indian:mahe'] = 'Mahe'; +$labels['tz:indian:maldives'] = 'Maldiven'; +$labels['tz:indian:mauritius'] = 'Mauritius'; +$labels['tz:indian:mayotte'] = 'Mayotte'; +$labels['tz:indian:reunion'] = 'Reunion'; +$labels['tz:pacific'] = 'Grote oceaan'; +$labels['tz:pacific:apia'] = 'Apia'; +$labels['tz:pacific:auckland'] = 'Auckland'; +$labels['tz:pacific:bougainville'] = 'Bougainville'; +$labels['tz:pacific:chatham'] = 'Chatham'; +$labels['tz:pacific:chuuk'] = 'Chuuk'; +$labels['tz:pacific:easter'] = 'Paaseiland'; +$labels['tz:pacific:efate'] = 'Efate'; +$labels['tz:pacific:enderbury'] = 'Enderbury'; +$labels['tz:pacific:fakaofo'] = 'Fakaofo'; +$labels['tz:pacific:fiji'] = 'Fiji'; +$labels['tz:pacific:funafuti'] = 'Funafuti'; +$labels['tz:pacific:galapagos'] = 'Galapagos'; +$labels['tz:pacific:gambier'] = 'Gambier'; +$labels['tz:pacific:guadalcanal'] = 'Guadalcanal'; +$labels['tz:pacific:guam'] = 'Guam'; +$labels['tz:pacific:honolulu'] = 'Honolulu'; +$labels['tz:pacific:johnston'] = 'Johnston'; +$labels['tz:pacific:kiritimati'] = 'Kiritimati'; +$labels['tz:pacific:kosrae'] = 'Kosrae'; +$labels['tz:pacific:kwajalein'] = 'Kwajalein'; +$labels['tz:pacific:majuro'] = 'Majuro'; +$labels['tz:pacific:marquesas'] = 'Marquesas'; +$labels['tz:pacific:midway'] = 'Midway'; +$labels['tz:pacific:nauru'] = 'Nauru'; +$labels['tz:pacific:niue'] = 'Niue'; +$labels['tz:pacific:norfolk'] = 'Norfolk'; +$labels['tz:pacific:noumea'] = 'Noumea'; +$labels['tz:pacific:pago_pago'] = 'Pago Pago'; +$labels['tz:pacific:palau'] = 'Palau'; +$labels['tz:pacific:pitcairn'] = 'Pitcairn'; +$labels['tz:pacific:pohnpei'] = 'Pohnpei'; +$labels['tz:pacific:port_moresby'] = 'Port Moresby'; +$labels['tz:pacific:rarotonga'] = 'Rarotonga'; +$labels['tz:pacific:saipan'] = 'Saipan'; +$labels['tz:pacific:tahiti'] = 'Tahiti'; +$labels['tz:pacific:tarawa'] = 'Tarawa'; +$labels['tz:pacific:tongatapu'] = 'Tongatapu'; +$labels['tz:pacific:wake'] = 'Wake'; +$labels['tz:pacific:wallis'] = 'Wallis';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/nn_NO/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/nn_NO/labels.inc
Changed
@@ -371,7 +371,6 @@ $labels['advancedoptions'] = 'Avanserte val'; $labels['focusonnewmessage'] = 'Fokuser nettlesarvindauge på ny epost'; $labels['checkallfolders'] = 'Sjekk alle mappar for nye epostar'; -$labels['displaynext'] = 'Etter sletting/flytting, vis neste epost'; $labels['defaultfont'] = 'Standard skrifttype i HTML-melding'; $labels['mainoptions'] = 'Hovudinnstillingar'; $labels['browseroptions'] = 'Alternativ for nettlesar';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/pl_PL/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/pl_PL/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Rozwiń nieprzeczytane'; $labels['collapse-all'] = 'Zwiń wszystkie'; $labels['threaded'] = 'Powątkowane'; +$labels['showunread'] = 'Pokaż nieprzeczytane'; $labels['autoexpand_threads'] = 'Rozwijaj wątki'; $labels['do_expand'] = 'wszystkie'; $labels['expand_only_unread'] = 'tylko nieprzeczytane'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Pokaż/ukryj opcje zaawansowane'; $labels['focusonnewmessage'] = 'Informuj przeglądarkę o nowej wiadomości'; $labels['checkallfolders'] = 'Sprawdzaj czy nadeszły nowe wiadomości we wszystkich folderach'; -$labels['displaynext'] = 'Po usunięciu/przeniesieniu wiadomości wyświetl następną'; +$labels['displaynext'] = 'Po usunięciu elementu listy wyświetl następny'; $labels['defaultfont'] = 'Czcionka wiadomości HTML'; $labels['mainoptions'] = 'Opcje główne'; $labels['browseroptions'] = 'Opcje przeglądarki';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/pt_BR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/pt_BR/labels.inc
Changed
@@ -510,7 +510,6 @@ $labels['toggleadvancedoptions'] = 'Ativar opções avançadas'; $labels['focusonnewmessage'] = 'Focar janela do navegador ao receber nova mensagem'; $labels['checkallfolders'] = 'Verificar se há novas mensagens em todas as pastas'; -$labels['displaynext'] = 'Exibir a mensagem seguinte após excluir/mover uma mensagem'; $labels['defaultfont'] = 'Fonte padrão para mensagens HTML'; $labels['mainoptions'] = 'Opções Principais'; $labels['browseroptions'] = 'Opções do navegador';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/pt_PT/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/pt_PT/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Expandir não lidas'; $labels['collapse-all'] = 'Recolher tudo'; $labels['threaded'] = 'Agrupar tópicos'; +$labels['showunread'] = 'Mostrar mensagens não lidas'; $labels['autoexpand_threads'] = 'Expandir tópicos das mensagens'; $labels['do_expand'] = 'todos os tópicos'; $labels['expand_only_unread'] = 'só com mensagens não lidas'; @@ -511,7 +512,7 @@ $labels['toggleadvancedoptions'] = 'Alternar opções de avançadas'; $labels['focusonnewmessage'] = 'Ativar a janela do navegador na nova mensagem'; $labels['checkallfolders'] = 'Verificar por novas mensagens em todas as pastas'; -$labels['displaynext'] = 'Depois de mover/eliminar uma mensagem, mostrar a próxima mensagem'; +$labels['displaynext'] = 'Mostrar próxima entrada da lista após eliminar/mover'; $labels['defaultfont'] = 'Tipo de letra padrão para mensagens HTML'; $labels['mainoptions'] = 'Opções'; $labels['browseroptions'] = 'Opções do browser';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ro_RO/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ro_RO/labels.inc
Changed
@@ -466,7 +466,6 @@ $labels['advancedoptions'] = 'Opţiuni avansate'; $labels['focusonnewmessage'] = 'Focalizare pe fereastra browser-ului la mesaje noi'; $labels['checkallfolders'] = 'Verifică toate dosarele pentru mesaje noi'; -$labels['displaynext'] = 'După ştergerea sau mutarea unui mesaj afişează-l pe următorul din listă'; $labels['defaultfont'] = 'Font-ul implicit al mesajului HTML'; $labels['mainoptions'] = 'Opţiuni principale'; $labels['browseroptions'] = 'Opțiuni browser';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ru_RU/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ru_RU/labels.inc
Changed
@@ -510,7 +510,6 @@ $labels['toggleadvancedoptions'] = 'Дополнительные параметры'; $labels['focusonnewmessage'] = 'Фокусировать окно браузера при новом сообщении'; $labels['checkallfolders'] = 'Проверять новые сообщения во всех папках'; -$labels['displaynext'] = 'Показать следующее сообщение, после удаления или перемещения данного'; $labels['defaultfont'] = 'Шрифт по умолчанию HTML сообщения'; $labels['mainoptions'] = 'Основные настройки'; $labels['browseroptions'] = 'Настройки обозревателя';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ru_RU/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ru_RU/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = 'Неудачная попытка входа.'; $messages['cookiesdisabled'] = 'Ваш браузер не принимает cookie.'; $messages['sessionerror'] = 'Ваша сессия устарела.'; +$messages['cookiesmismatch'] = 'Обнаружено несоответствие cookie. Очистите их в браузере.'; $messages['storageerror'] = 'Неудачное соединение с IMAP сервером'; $messages['servererror'] = 'Ошибка сервера!'; $messages['servererrormsg'] = 'Ошибка сервера: $msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = 'Уже загруженные вложения не могут быть зашифрованы. Пожалуйста, повторно добавьте их в редакторе шифрования.'; $messages['searchpubkeyservers'] = 'Вы хотите выполнить поиск серверов открытых ключей для отсутствующих ключей?'; $messages['encryptpubkeysfound'] = 'Следующие открытые ключи были найдены:'; +$messages['keyservererror'] = 'Не удалось получить ключ от сервера ключей.'; +$messages['keyimportsuccess'] = 'Открытый ключ $key успешно импортирован в хранилище ключей.'; $messages['nocontactsfound'] = 'Контакты не найдены.'; $messages['contactnotfound'] = 'Требуемый контакт не найден.'; +$messages['contactsearchonly'] = 'Для просмотра контактов из выбранной адресной книги необходимо использовать форму поиска.'; $messages['sendingfailed'] = 'Не удалось отправить сообщение.'; $messages['senttooquickly'] = 'Вы должны подождать $sec сек. для отправки сообщения.'; $messages['errorsavingsent'] = 'Произошла ошибка при сохранении отправленного сообщения.';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/sk_SK/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/sk_SK/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Rozbaliť neprečítané'; $labels['collapse-all'] = 'Zbaliť všetko'; $labels['threaded'] = 'Spojené do konverzácií'; +$labels['showunread'] = 'Zobraziť neprečítané správy'; $labels['autoexpand_threads'] = 'Rozbaliť konverzácie'; $labels['do_expand'] = 'všetky'; $labels['expand_only_unread'] = 'len s neprečítanými správami'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Prepnúť pokročilé nastavenia'; $labels['focusonnewmessage'] = 'Aktivovať okno prehliadača pri novej správe'; $labels['checkallfolders'] = 'Kontrolovať nové správy vo všetkých priečinkoch'; -$labels['displaynext'] = 'Zobraziť ďalšiu správu po vymazaní/presunutí správy'; +$labels['displaynext'] = 'Po vymazaní/presune zobraziť ďalší záznam v zozname'; $labels['defaultfont'] = 'Predvolené písmo pre HTML správu'; $labels['mainoptions'] = 'Hlavné nastavenia'; $labels['browseroptions'] = 'Nastavenia prehliadania';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/sl_SI/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/sl_SI/labels.inc
Changed
@@ -510,7 +510,6 @@ $labels['toggleadvancedoptions'] = 'Preklopi napredne nastavitve'; $labels['focusonnewmessage'] = 'Usmeri okno brskalnika na novo sporočilo'; $labels['checkallfolders'] = 'Preglej nova sporočila za vse mape'; -$labels['displaynext'] = 'Po izbrisu/premikanju sporočila prikaži naslednje sporočilo'; $labels['defaultfont'] = 'Privzeta pisava HTML sporočil'; $labels['mainoptions'] = 'Osnovne nastavitve'; $labels['browseroptions'] = 'Možnosti brskalnika';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/sq_AL/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/sq_AL/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Zgjero të Palexuarit'; $labels['collapse-all'] = 'Tkurri Krejt'; $labels['threaded'] = 'Me rrjedhë'; +$labels['showunread'] = 'Shfaq mesazhe të palexuar'; $labels['autoexpand_threads'] = 'Zgjero rrjedha mesazhesh'; $labels['do_expand'] = 'krejt rrjedhat'; $labels['expand_only_unread'] = 'vetëm ato me mesazhe të palexuar'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Shfaq/fshih mundësi të mëtejshme'; $labels['focusonnewmessage'] = 'Për mesazhe të rinj kaloje fokusin te dritarja e shfletuesit'; $labels['checkallfolders'] = 'Kontrollo krejt dosjet për mesazhe të rinj'; -$labels['displaynext'] = 'Pas fshirjes/lëvizjes së një mesazhi shfaq mesazhin pasues'; +$labels['displaynext'] = 'Pas fshirjesh/lëvizjesh, shfaq zërin pasues në listë'; $labels['defaultfont'] = 'Shkronja parazgjedhje për mesazhe HTML'; $labels['mainoptions'] = 'Mundësitë Kryesore'; $labels['browseroptions'] = 'Mundësi Shfletuesi';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/sr_CS/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/sr_CS/labels.inc
Changed
@@ -448,7 +448,6 @@ $labels['toggleadvancedoptions'] = 'Напредне опције'; $labels['focusonnewmessage'] = 'Фокусирај прозор претраживача на новој поруци'; $labels['checkallfolders'] = 'Провери све фасцикле за нове поруке'; -$labels['displaynext'] = 'Након брисања/премештења поруке прикажи следећу поруку'; $labels['defaultfont'] = 'Подразумевани фонт за ХТМЛ поруке'; $labels['mainoptions'] = 'Главне опције'; $labels['browseroptions'] = 'Опције претраживача'; @@ -502,6 +501,7 @@ $labels['otherfolder'] = 'Фасцикла других корисникa'; $labels['sharedfolder'] = 'Јавна фасцикла'; $labels['findfolders'] = 'Нађи фасцикле'; +$labels['findcontacts'] = 'Пронађи контакте'; $labels['namespace.personal'] = 'Лично'; $labels['namespace.other'] = 'Остали корисници'; $labels['sortby'] = 'Поређај';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/sv_SE/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/sv_SE/labels.inc
Changed
@@ -510,7 +510,6 @@ $labels['toggleadvancedoptions'] = 'Växla avancerade inställningar'; $labels['focusonnewmessage'] = 'Fokusera webbläsarens fönster vid nytt meddelande'; $labels['checkallfolders'] = 'Genomsök samtliga kataloger efter nya meddelanden'; -$labels['displaynext'] = 'Visa nästa meddelande efter borttagning/flyttning av meddelande'; $labels['defaultfont'] = 'Förvalt typsnitt i HTML-meddelande'; $labels['mainoptions'] = 'Huvudalternativ'; $labels['browseroptions'] = 'Webbläsaralternativ';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/sv_SE/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/sv_SE/messages.inc
Changed
@@ -64,8 +64,11 @@ $messages['encryptnoattachments'] = 'Redan uppladdade bilagor kan inte krypteras. Lägg till bilagorna i krypteringsredigeraren istället.'; $messages['searchpubkeyservers'] = 'Ska saknade nycklar sökas i offentliga nyckelservrar?'; $messages['encryptpubkeysfound'] = 'Följande offentliga nycklar hittades:'; +$messages['keyservererror'] = 'Nyckeln kunde inte hämtas från nyckelservern.'; +$messages['keyimportsuccess'] = 'Offentlig nyckel $key är tillagd i din nyckelring.'; $messages['nocontactsfound'] = 'Inga kontakter hittades.'; $messages['contactnotfound'] = 'Efterfrågad kontakt hittades inte.'; +$messages['contactsearchonly'] = 'Ange sökord för att hitta kontakter i vald adressbok.'; $messages['sendingfailed'] = 'Meddelandet kunde inte skickas.'; $messages['senttooquickly'] = 'Vänta ytterligare $sec sekunder med att skicka meddelandet.'; $messages['errorsavingsent'] = 'Det skickade meddelandet kunde inte sparas.';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/ta_IN/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/ta_IN/labels.inc
Changed
@@ -232,7 +232,6 @@ $labels['advancedoptions'] = 'மேம்பட்ட விருப்பங்கள்'; $labels['focusonnewmessage'] = 'உலாவி சாளரத்தை புது செய்திக்காக கவனி'; $labels['checkallfolders'] = 'புது செய்திகளுக்காக எல்லா அடைவுகளையும் சரிபார்'; -$labels['displaynext'] = 'செய்தியை நீக்கு/நகர் பிறகு அடுத்த செய்தியை காட்டு'; $labels['mainoptions'] = 'முக்கிய விருப்பங்கள்'; $labels['section'] = 'பிரிவு'; $labels['maintenance'] = 'பராமரிப்பு';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/tr_TR/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/tr_TR/labels.inc
Changed
@@ -169,6 +169,7 @@ $labels['expand-unread'] = 'Okunmamışları Genişlet'; $labels['collapse-all'] = 'Tümünü Daralt'; $labels['threaded'] = 'Sohbet Görünümü'; +$labels['showunread'] = 'Okunmamış iletileri görüntüle'; $labels['autoexpand_threads'] = 'Sohbet iletileri genişletilsin'; $labels['do_expand'] = 'tüm sohbetler'; $labels['expand_only_unread'] = 'yalnız okunmamış iletiler bulunan dizilimler'; @@ -510,7 +511,7 @@ $labels['toggleadvancedoptions'] = 'Gelişmiş ayarları görüntüle/gizle'; $labels['focusonnewmessage'] = 'Yeni İleti Geldiğinde Web Tarayıcı Penceresine Odaklanılsın'; $labels['checkallfolders'] = 'Tüm Klasörler İçin Yeni İletiler Denetlensin'; -$labels['displaynext'] = 'İleti Silindiğinde ya da Taşındığında Sonraki İleti Görüntülensin'; +$labels['displaynext'] = 'Silme ya da taşıma sonrası sonraki ileti görüntülensin'; $labels['defaultfont'] = 'HTML İletiler İçin Varsayılan Yazı Türü'; $labels['mainoptions'] = 'Temel Ayarlar'; $labels['browseroptions'] = 'Tarayıcı Ayarları';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/uk_UA/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/uk_UA/labels.inc
Changed
@@ -462,7 +462,6 @@ $labels['toggleadvancedoptions'] = 'Перемкнути додаткові параметри'; $labels['focusonnewmessage'] = 'Фокусувати вікно браузера при новому листі'; $labels['checkallfolders'] = 'Перевіряти нові листи у всіх теках'; -$labels['displaynext'] = 'Після видалення/переміщення листа відображати наступний'; $labels['defaultfont'] = 'Типовий шрифт HTML повідомлення'; $labels['mainoptions'] = 'Основні налаштування'; $labels['browseroptions'] = 'Налаштування браузера';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/uz/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/uz/labels.inc
Changed
@@ -469,7 +469,6 @@ $labels['toggleadvancedoptions'] = 'Qo`shimcha xossalar'; $labels['focusonnewmessage'] = 'Yangi xatda brauzer oynasini fokuslantirish'; $labels['checkallfolders'] = 'Barcha papkalarda yangi xabarlarni tekshirish'; -$labels['displaynext'] = 'Mazkur xatni o`chirgandan yoki qayta yuborishdan so`ng keyingisini ko`rsatish'; $labels['defaultfont'] = ' HTML xatda shrift'; $labels['mainoptions'] = 'Asosiy xossalar'; $labels['browseroptions'] = 'Brauzer sozlamalari';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/vi_VN/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/vi_VN/labels.inc
Changed
@@ -428,7 +428,6 @@ $labels['advancedoptions'] = 'Tùy chọn tính năng cao hơn'; $labels['focusonnewmessage'] = 'Tập trung khung cửa trình duyệt vào thư mới'; $labels['checkallfolders'] = 'Kiểm tra thư mới trong tất cả thư mục'; -$labels['displaynext'] = 'Sau khi "xóa/di chuyển" thư thì hiển thị thư kế tiếp'; $labels['defaultfont'] = 'Phông chữ mặc định của thư có mã HTML'; $labels['mainoptions'] = 'Tùy chọn chính'; $labels['browseroptions'] = 'Tùy chọn Trình duyệt';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/zh_CN/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/zh_CN/labels.inc
Changed
@@ -500,7 +500,6 @@ $labels['toggleadvancedoptions'] = '切换高级选项'; $labels['focusonnewmessage'] = '新邮件到达时将窗口提升为焦点窗口'; $labels['checkallfolders'] = '检查所有邮件夹里的新邮件'; -$labels['displaynext'] = '当邮件删除/移动后显示下一封邮件'; $labels['defaultfont'] = '默认的 HTML 格式字体'; $labels['mainoptions'] = '主要选项'; $labels['browseroptions'] = '浏览器选项';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/zh_TW/labels.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/zh_TW/labels.inc
Changed
@@ -510,7 +510,6 @@ $labels['toggleadvancedoptions'] = '切換高級選項'; $labels['focusonnewmessage'] = '收到新郵件時使瀏覽器獲得焦點'; $labels['checkallfolders'] = '對於所有資料夾,都要檢查有否新郵件'; -$labels['displaynext'] = '郵件刪除/移動時顯示下一封郵件'; $labels['defaultfont'] = 'HTML 郵件的預設字型'; $labels['mainoptions'] = '主要選項'; $labels['browseroptions'] = '瀏覽器選項';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/localization/zh_TW/messages.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/localization/zh_TW/messages.inc
Changed
@@ -18,6 +18,7 @@ $messages['loginfailed'] = '登入失敗'; $messages['cookiesdisabled'] = '你的瀏覽器不接受 cookies'; $messages['sessionerror'] = '你的工作階段已失效或過期'; +$messages['cookiesmismatch'] = '偵測到有不相符的 Cookie,請清理瀏覽器的 cookie。'; $messages['storageerror'] = '連線到 IMAP 伺服器失敗'; $messages['servererror'] = '伺服器出錯!'; $messages['servererrormsg'] = '伺服器出錯:$msg'; @@ -63,8 +64,11 @@ $messages['encryptnoattachments'] = '已上傳的附件無法加密。請在加密編輯器重新加入'; $messages['searchpubkeyservers'] = '是否在公鑰伺服器搜尋缺少的金鑰?'; $messages['encryptpubkeysfound'] = '找到以下公鑰:'; +$messages['keyservererror'] = '未能從金鑰伺服器取得金鑰。'; +$messages['keyimportsuccess'] = '成功將公鑰 $key 匯入到您的鎖匙圈。'; $messages['nocontactsfound'] = '找不到聯絡人'; $messages['contactnotfound'] = '找不到要求的聯絡人'; +$messages['contactsearchonly'] = '要使用搜尋表格,才能在所選的通訊錄看到聯絡人。'; $messages['sendingfailed'] = '郵件寄出失敗'; $messages['senttooquickly'] = '你寄出的郵件太過於頻繁,請稍候 $sec 秒後再試一次。'; $messages['errorsavingsent'] = '儲存郵件到寄件備份時發生錯誤。';
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/addressbook/print.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/addressbook/print.inc
Changed
@@ -81,8 +81,6 @@ return false; } - $i_size = $attrib['size'] ?: 40; - $form = array( 'contact' => array( 'name' => $RCMAIL->gettext('properties'),
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/addressbook/search.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/addressbook/search.inc
Changed
@@ -207,8 +207,8 @@ // search request ID $search_request = md5('addr' - .(is_array($fields) ? implode($fields, ',') : $fields) - .(is_array($search) ? implode($search, ',') : $search)); + .(is_array($fields) ? implode(',', $fields) : $fields) + .(is_array($search) ? implode(',', $search) : $search)); // save search settings in session $_SESSION['search'][$search_request] = $search_set;
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/addressbook/show.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/addressbook/show.inc
Changed
@@ -184,7 +184,6 @@ 'noclose' => true, ); - $list = array(); $members = $CONTACTS->get_record_groups($contact_id); $table = new html_table(array('tagname' => 'ul', 'cols' => 1, 'class' => 'proplist simplelist')); $checkbox = new html_checkbox(array('name' => '_gid[]',
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/mail/compose.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/mail/compose.inc
Changed
@@ -1197,7 +1197,7 @@ if (!$attrib['id']) $attrib['id'] = 'rcmAttachmentList'; - $out = "\n"; + $out = ""; $jslist = array(); $button = ''; @@ -1227,6 +1227,7 @@ 'href' => "#load", 'class' => 'filename', 'onclick' => sprintf("return %s.command('load-attachment','rcmfile%s', this, event)", rcmail_output::JS_OBJECT_NAME, $id), + 'tabindex' => $attrib['tabindex'] ?: '0', ), $link_content); $delete_link = html::a(array( @@ -1239,8 +1240,8 @@ ), $button); $out .= html::tag('li', array( - 'id' => 'rcmfile'.$id, - 'class' => rcube_utils::file2class($a_prop['mimetype'], $a_prop['name']), + 'id' => 'rcmfile' . $id, + 'class' => rcube_utils::file2class($a_prop['mimetype'], $a_prop['name']), ), $COMPOSE['icon_pos'] == 'left' ? $delete_link.$content_link : $content_link.$delete_link );
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/mail/func.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/mail/func.inc
Changed
@@ -36,18 +36,18 @@ // remove mbox part from _uid if (($_uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GPC)) && !is_array($_uid) && preg_match('/^\d+-.+/', $_uid)) { - list($_uid, $mbox) = explode('-', $_uid, 2); - if (isset($_GET['_uid'])) $_GET['_uid'] = $_uid; - if (isset($_POST['_uid'])) $_POST['_uid'] = $_uid; - $_REQUEST['_uid'] = $_uid; - unset($_uid); - - // override mbox - if (!empty($mbox)) { - $_GET['_mbox'] = $mbox; - $_POST['_mbox'] = $mbox; - $RCMAIL->storage->set_folder(($_SESSION['mbox'] = $mbox)); - } + list($_uid, $mbox) = explode('-', $_uid, 2); + if (isset($_GET['_uid'])) $_GET['_uid'] = $_uid; + if (isset($_POST['_uid'])) $_POST['_uid'] = $_uid; + $_REQUEST['_uid'] = $_uid; + unset($_uid); + + // override mbox + if (!empty($mbox)) { + $_GET['_mbox'] = $mbox; + $_POST['_mbox'] = $mbox; + $RCMAIL->storage->set_folder($_SESSION['mbox'] = $mbox); + } } if (!empty($_SESSION['browser_caps']) && !$OUTPUT->ajax_call) { @@ -1205,7 +1205,6 @@ 'c' => $washtml->get_config('container_id'), 'p' => $washtml->get_config('css_prefix'), )); - $end = ' />'; $content = null; } else if (preg_match('/^mailto:(.+)/i', $attrib['href'], $mailto)) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/mail/import.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/mail/import.inc
Changed
@@ -125,9 +125,8 @@ return; } - $rcmail = rcmail::get_instance(); - $zip = new ZipArchive; - $files = array(); + $zip = new ZipArchive; + $files = array(); if ($zip->open($path)) { for ($i = 0; $i < $zip->numFiles; $i++) { @@ -136,7 +135,7 @@ if (copy("zip://$path#$entry", $tmpfname)) { $ctype = rcube_mime::file_content_type($tmpfname, $entry); - list($mtype_primary, $mtype_secondary) = explode('/', $ctype); + list($mtype_primary, ) = explode('/', $ctype); if (in_array($mtype_primary, array('text', 'message'))) { $files[] = $tmpfname;
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/mail/mark.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/mail/mark.inc
Changed
@@ -134,21 +134,14 @@ $jump_back = true; } + foreach ($input as $mbox => $uids) { + rcmail_send_unread_count($mbox, true); + } + // update message count display $OUTPUT->set_env('messagecount', $msg_count); $OUTPUT->set_env('current_page', $page); $OUTPUT->set_env('pagecount', $pages); - - // update mailboxlist - $mbox = $RCMAIL->storage->get_folder(); - $unseen_count = $msg_count ? $RCMAIL->storage->count($mbox, 'UNSEEN') : 0; - $old_unseen = rcmail_get_unseen_count($mbox); - - if ($old_unseen != $unseen_count) { - $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); - rcmail_set_unseen_count($mbox, $unseen_count); - } - $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox); if ($threading) {
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/mail/move_del.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/mail/move_del.inc
Changed
@@ -29,7 +29,6 @@ if ($_POST['_from'] != 'show') { $old_count = $RCMAIL->storage->count(NULL, $threading ? 'THREADS' : 'ALL'); - $old_pages = ceil($old_count / $RCMAIL->storage->get_pagesize()); } // move messages @@ -135,25 +134,20 @@ $jump_back = true; } -// update message count display -$OUTPUT->set_env('messagecount', $msg_count); -$OUTPUT->set_env('current_page', $page); -$OUTPUT->set_env('pagecount', $pages); -$OUTPUT->set_env('exists', $exists); - -// update mailboxlist -$unseen_count = $msg_count ? $RCMAIL->storage->count($mbox, 'UNSEEN') : 0; -$old_unseen = rcmail_get_unseen_count($mbox); - -if ($old_unseen != $unseen_count) { - $OUTPUT->command('set_unread_count', $mbox, $unseen_count, ($mbox == 'INBOX')); - rcmail_set_unseen_count($mbox, $unseen_count); +// update unseen messages counts for all involved folders +foreach ($sources as $source) { + rcmail_send_unread_count($source, true); } if ($RCMAIL->action == 'move' && strlen($target)) { rcmail_send_unread_count($target, true); } +// update message count display +$OUTPUT->set_env('messagecount', $msg_count); +$OUTPUT->set_env('current_page', $page); +$OUTPUT->set_env('pagecount', $pages); +$OUTPUT->set_env('exists', $exists); $OUTPUT->command('set_quota', $RCMAIL->quota_content(null, $multifolder ? $sources[0] : 'INBOX')); $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count), $mbox);
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/mail/sendmail.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/mail/sendmail.inc
Changed
@@ -82,7 +82,7 @@ } // append doctype and html/body wrappers - $bstyle = !empty($bstyle) ? (" style='" . implode($bstyle, '; ') . "'") : ''; + $bstyle = !empty($bstyle) ? (" style='" . implode('; ', $bstyle) . "'") : ''; $message_body = '<html><head>' . '<meta http-equiv="Content-Type" content="text/html; charset=' . ($message_charset ?: RCUBE_CHARSET) . '" /></head>'
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/settings/func.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/settings/func.inc
Changed
@@ -1185,20 +1185,6 @@ ); } - if (!isset($no_override['delete_always'])) { - if (!$current) { - continue 2; - } - - $field_id = 'rcmfd_delete_always'; - $input = new html_checkbox(array('name' => '_delete_always', 'id' => $field_id, 'value' => 1)); - - $blocks['main']['options']['delete_always'] = array( - 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('deletealways'))), - 'content' => $input->show($config['delete_always']?1:0), - ); - } - if (!isset($no_override['delete_junk'])) { if (!$current) { continue 2;
View file
roundcubemail-1.4-rc1.221.tar.gz/program/steps/settings/save_prefs.inc -> roundcubemail-1.4-rc2.12.tar.gz/program/steps/settings/save_prefs.inc
Changed
@@ -113,7 +113,6 @@ 'read_when_deleted' => isset($_POST['_read_when_deleted']), 'skip_deleted' => isset($_POST['_skip_deleted']), 'flag_for_deletion' => isset($_POST['_flag_for_deletion']), - 'delete_always' => isset($_POST['_delete_always']), 'delete_junk' => isset($_POST['_delete_junk']), 'logout_purge' => isset($_POST['_logout_purge']), 'logout_expunge' => isset($_POST['_logout_expunge']),
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/classic/googiespell.css -> roundcubemail-1.4-rc2.12.tar.gz/skins/classic/googiespell.css
Changed
@@ -3,8 +3,6 @@ .googie_window { font-size: 11px; width: 185px; - margin: 0; - padding: 0; } .googie_edit_layer { @@ -26,14 +24,14 @@ .googie_list li { font-size: 11px; - padding-left: 10px; - padding-right: 10px; - padding-top: 2px; - padding-bottom: 2px; cursor: pointer; list-style-type: none; } +.googie_list form { + padding: 3px; +} + .googie_list_onhover { color: #FFFFFF; background-color: #CC3333; @@ -122,7 +120,7 @@ width: 32px; height: 16px; cursor: pointer; - padding: 0 2px; + margin: 0 5px; text-indent: -5000px; - border: 0; + border: 0 !important; }
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/colors.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/colors.less
Changed
@@ -93,6 +93,9 @@ @color-list-icon: fadeout(@color-list-secondary, 25%); @color-list-unread-status: @color-warning; +@color-attachmentlist-border: #f4f4f4; +@color-attachmentlist-background: #fcfcfc; + // Drag-n-drop layer @color-drag-layer: #fff; @color-drag-layer-background: @color-taskmenu-background; @@ -128,7 +131,7 @@ @color-popover-separator-background: @color-black-shade-bg; @color-popover-mobile-header: #fff; @color-popover-mobile-header-background: @color-main-dark; - +@color-popover-mobile-dropbutton-background: #f6f6f6; // Dialogs @color-dialog-overlay-background: fade(@color-font, 50%); @@ -195,7 +198,7 @@ // Datepicker @color-datepicker-border: @color-layout-border; @color-datepicker-font: @color-font; -@color-datepicker-highlight: !default; +@color-datepicker-highlight: @color-main; @color-datepicker-highlight-background: lighten(@color-main, 30%); @color-datepicker-active: #fff; @color-datepicker-active-background: @color-main;
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/embed.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/embed.less
Changed
@@ -35,7 +35,7 @@ margin: 0 0 .5em 0; opacity: .95; color: @color-message; - background-color: @color-message-background; + background-color: @color-message-warning-box-background; display: flex; align-items: center;
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/layout.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/layout.less
Changed
@@ -120,6 +120,7 @@ } #layout-sidebar { + position: relative; // e.g. for .column-resizer display: flex; flex-direction: column; flex: 2; @@ -127,9 +128,19 @@ min-width: 220px; border-right: 1px solid @color-layout-border; background-color: @color-layout-sidebar-background; + + &.sidebar-right { + order: 2; + border-right: 0; + border-left: 1px solid @color-layout-border; + // sidebar on right is unusual situation, probably there's no list in layout, + // in such a case we can make it a little bit wider + flex: 3; + } } #layout-list { + position: relative; // e.g. for .column-resizer display: flex; flex-direction: column; flex: 3; @@ -143,7 +154,6 @@ display: flex; flex: 6; flex-direction: column; - min-width: 50%; background-color: @color-layout-content-background; html.iframe & { @@ -232,6 +242,20 @@ } } +.column-resizer { + cursor: col-resize; + z-index: 1; + position: absolute; + top: 0; + right: -3px; + width: 6px; + height: 100%; + + .sidebar-right & { + left: -3px; + } +} + @media screen and (max-width: @screen-width-large) { #layout-sidebar, @@ -247,13 +271,22 @@ } @media screen and (max-width: @screen-width-medium) { + // Disable column resizing by hiding splitters and reseting columns width + .column-resizer { + display: none; + } + #layout-sidebar, + #layout-list { + width: auto !important; + flex: 3 !important; + } } @media screen and (max-width: @screen-width-small) { #layout-sidebar, #layout-list { max-width: none; - border: 0; + border: 0 !important; } #layout > div > .header {
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/widgets/buttons.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/widgets/buttons.less
Changed
@@ -114,15 +114,18 @@ &.folders:before { content: @fa-var-folder-open; } + &.options:before { + content: @fa-var-sliders-h; + } &.tools:before, &.settings:before { - content: @fa-var-wrench; + content: @fa-var-cog; } &.properties:before { content: @fa-var-info-circle; } - &.select:before { - .font-icon-regular(@fa-var-check-circle); + &.selection:before { + .font-icon-regular(@fa-var-check-square); } &.insert.recipient:before { content: @fa-var-user-plus; @@ -195,6 +198,12 @@ line-height: @floating-action-button-size; } + &.compose { + &:before { + content: @fa-var-pen; + } + } + .inner { display: none; }
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/widgets/dialogs.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/widgets/dialogs.less
Changed
@@ -55,36 +55,19 @@ display: none; } - .listing { - li:first-child { - border-radius: .25rem .25rem 0 0; - } + @media screen and (min-width: (@screen-width-small + 1px)) { + .listing { + li:first-child { + border-radius: .25rem .25rem 0 0; + } - li:last-child { - border-radius: 0 0 .25rem .25rem; + li:last-child { + border-radius: 0 0 .25rem .25rem; + } } } } -#rcmKSearchpane { - width: auto; - height: auto; - - li { - padding-right: .5rem; - } - - html.layout-small &, - html.layout-phone & { - bottom: auto; - border: 1px solid @color-input-border; - } - - html.layout-phone & { - max-width: 100% !important; - } -} - html.layout-small, html.layout-phone { .popover:not(.select-menu) { @@ -164,15 +147,36 @@ .select-menu { max-width: initial; margin: 0; - - .listing li a { - padding-left: .25rem; - outline: 0; // for Android browser - } + height: auto; .popover-header { border-radius: .25rem .25rem 0 0 !important; } + + .listing li { + a { + padding-left: .25rem; + outline: 0; // for Android browser + } + + &:last-child { + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; + } + } + + // Use 'inline' class for menus that have a list elements with no <a> inside + // and no header + &.inline { + .listing li { + padding-right: .5rem; + + &:first-child { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; + } + } + } } /** PGP Key search/import dialog **/
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/widgets/editor.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/widgets/editor.less
Changed
@@ -895,6 +895,7 @@ .googie_window { width: 16rem; + height: auto; } .googie_edit_layer { @@ -925,7 +926,7 @@ .googie_list_revert:before { &:extend(.font-icon-class); - content: @fa-var-plus-square; + content: @fa-var-undo; } .googie_add_to_dict:before { @@ -936,7 +937,6 @@ input { display: inline-block; - margin: .5rem .5rem .5rem 0 !important; - padding: .5rem .75rem !important; + margin: .25rem .5rem; } }
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/widgets/forms.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/widgets/forms.less
Changed
@@ -867,10 +867,14 @@ } .attachmentslist { + border: 0; + background: transparent; + li { position: relative; display: flex; padding-right: 1.5em; + margin: 0.15em 0; a.filename { flex: 1; @@ -879,12 +883,12 @@ a.delete, a.cancelupload { position: absolute; - right: 0; + right: 0.25em; width: auto; // fix button width if the widget is in a .popupmenu + } - &:before { - margin: 0; - } + a.dropdown { + margin-right: .5em; } .inner { @@ -1243,6 +1247,12 @@ &::placeholder { color: @color-input-placeholder; } + + // Note: This must be a separate rule + &::-ms-input-placeholder, + &::-webkit-input-placeholder { + color: @color-input-placeholder; + } } .invalid-feedback {
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/widgets/lists.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/widgets/lists.less
Changed
@@ -183,6 +183,10 @@ } } } + + html.touch & { + height: @listing-touch-line-height; + } } } @@ -807,17 +811,27 @@ padding: 0; margin: 0; + background-color: @color-attachmentlist-background; + border: 1px solid @color-attachmentlist-border; + + &:empty { + padding: 0; + border: 0; + } + li { list-style: none; display: inline-flex; white-space: nowrap; line-height: @attachmentslist-item-height; + padding: 0 .25em; max-width: 100%; &:before { &:extend(.font-icon-class); .font-icon-regular(@fa-var-file); height: @attachmentslist-item-height; + margin: 0; } &.txt:before, @@ -919,6 +933,11 @@ content: @fa-var-trash-alt; line-height: @attachmentslist-item-height; height: @attachmentslist-item-height; + margin: 0; + } + + a.dropdown:before { + margin: 0; } &.uploading:before { @@ -929,6 +948,7 @@ a.filename { display: flex; overflow: hidden; + padding: 0 .2em; } .attachment-name { @@ -938,7 +958,7 @@ .attachment-size { color: @color-list-secondary; - padding: 0 .25em; + padding-left: .25em; } } }
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/styles/widgets/menu.less -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/styles/widgets/menu.less
Changed
@@ -22,6 +22,7 @@ &:before { &:extend(.font-icon-class); + content: "\00a0"; // blank placeholder } &:hover, @@ -262,12 +263,44 @@ margin-right: .5rem !important; float: left !important; width: 1.18em !important; + min-width: 1.18em; } &:not(.disabled):hover { color: @color-menu-hover; background-color: @color-menu-hover-background; } + + &[aria-haspopup] { + display: flex; + + &:after { + &:extend(.font-icon-class); + color: @color-black-shade-text; + font-size: .9em; + margin: 0 0 0 .2em; + min-width: 1.18em; + content: @fa-var-chevron-right; + + html.layout-small & { + margin: 0 .2em; + } + } + + &.dropdown:after { + color: @color-list; + margin: 0 .6em !important; + } + + &:hover:after { + color: @color-menu-hover; + } + + & > span { + .overflow-ellipsis; + flex: 1; + } + } } span.inner { @@ -283,20 +316,31 @@ flex: 1; } + &:not(.disabled):hover { + background-color: @color-popover-mobile-dropbutton-background; + } + a.dropdown { - width: auto; + width: 3.5rem; + padding: 0 .5em; + background-color: @color-popover-mobile-dropbutton-background; - &:before { - content: @fa-var-angle-right; - line-height: inherit; - margin: 0; + &:hover { + background-color: @color-menu-hover-background; } + // Note: :before icon is replaced with :after icon by a[aria-haspopup] above + + &:before, span.inner { display: none; } } } + + &.no-icon a:before { + display: none; + } } } @@ -370,9 +414,12 @@ &.contacts:before { content: @fa-var-users; } - &.settings:before { + &.options:before { content: @fa-var-sliders-h; } + &.settings:before { + content: @fa-var-cog; + } &.help:before { content: @fa-var-life-ring; } @@ -469,10 +516,11 @@ &.expand:before { content: @fa-var-angle-right; } - &.expand.all:before, - &.expand.none:before, - &.expand.unread:before { - content: @fa-var-comments; + &.expand.all:before { + content: @fa-var-angle-double-down; + } + &.expand.none:before { + content: @fa-var-angle-double-up; } &.export:before, &.export.all:before, @@ -554,6 +602,7 @@ .font-icon-regular(@fa-var-envelope-open); } &.unread:before, + &.expand.unread:before, &.select.unread:before { .font-icon-solid(@fa-var-envelope); } @@ -596,13 +645,13 @@ content: @fa-var-trash-alt; } &.select:before { - .font-icon-regular(@fa-var-check-circle); + content: @fa-var-mouse-pointer; } &.select.all:before { - content: @fa-var-check-square; + content: @fa-var-asterisk; } &.select.invert:before { - content: @fa-var-square; + content: @fa-var-check-square; } &.select.none:before { .font-icon-solid(@fa-var-times); @@ -611,14 +660,11 @@ .font-icon-solid(@fa-var-bars); } &.selection:before { - content: @fa-var-mouse-pointer; + .font-icon-regular(@fa-var-check-square) !important; } &.send:before { content: @fa-var-paper-plane; } - &.settings:before { - content: @fa-var-sliders-h; - } &.showurl:before { content: @fa-var-link; } @@ -698,24 +744,27 @@ margin: 0; } - &.options { - &:before { - content: @fa-var-angle-down; - } + &.options:before { + content: @fa-var-angle-down; } - &.reset { - display: none; + &.reset:before { + content: @fa-var-times; + font-size: 1rem; + } - &:before { - content: @fa-var-times; - font-size: 1rem; - } + &.unread:before { + .font-icon-solid(@fa-var-envelope); } + &.reset, &.search { display: none; } + + &.selected { + color: @color-success; + } } span.inner {
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/templates/addressbook.html -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/templates/addressbook.html
Changed
@@ -101,7 +101,7 @@ <h3 id="aria-label-export-menu" class="voice"><roundcube:label name="arialabelcontactexportoptions" /></h3> <ul class="menu listing" role="menu" aria-labelledby="aria-label-export-menu"> <roundcube:button type="link-menuitem" command="export" label="exportall" prop="sub" class="export all disabled" classAct="export all active" /> - <roundcube:button type="link-menuitem" command="export-selected" label="exportsel" prop="sub" class="export selection disabled" classAct="export selection active" /> + <roundcube:button type="link-menuitem" command="export-selected" label="exportsel" prop="sub" class="export select disabled" classAct="export select active" /> </ul> </div>
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/templates/compose.html -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/templates/compose.html
Changed
@@ -10,7 +10,7 @@ <h1 class="voice"><roundcube:label name="compose" /></h1> <!-- compose options and attachments list --> -<div id="layout-sidebar" class="listbox"> +<div id="layout-sidebar" class="listbox sidebar-right"> <div class="header"> <a class="button icon back-content-button" href="#content" data-hidden="big"><span class="inner"><roundcube:label name="back" /></span></a> <span class="header-title all-sizes"><roundcube:label name="optionsandattachments" /></span> @@ -79,7 +79,7 @@ <span class="header-title"><roundcube:label name="compose" /></span> <!-- toolbar --> <div id="messagetoolbar" class="toolbar menu" role="toolbar" aria-labelledby="aria-label-toolbar"> - <a class="settings" href="#options" onclick="UI.show_sidebar()" data-hidden="big"> + <a class="options" href="#options" onclick="UI.show_sidebar()" data-hidden="big"> <span class="inner"><roundcube:label name="optionsandattachments"></span> </a> <roundcube:button command="savedraft" type="link" class="save draft disabled" classAct="save draft"
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/templates/mail.html -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/templates/mail.html
Changed
@@ -36,13 +36,14 @@ <roundcube:if condition="env:threads" /> <a href="#threads" class="threads disabled" data-popup="threadselect-menu" title="<roundcube:label name="threads" />"><span class="inner"><roundcube:label name="threads" /></span></a> <roundcube:endif /> - <roundcube:object name="listmenulink" class="settings active" label="options" innerclass="inner" /> + <roundcube:object name="listmenulink" class="options active" label="options" innerclass="inner" /> <roundcube:container name="listcontrols" id="listcontrols" /> </div> <roundcube:button command="checkmail" type="link" class="button icon toolbar-button refresh" label="refresh" title="checkmail" innerclass="inner" /> <a class="button icon toolbar-menu-button" href="#list-menu"><span class="inner"><roundcube:label name="menu" /></span></a> </div> + <roundcube:add_label name="showunread" /> <roundcube:object name="searchform" id="mailsearchform" wrapper="searchbar menu" label="mailquicksearchbox" buttontitle="findmail" options="searchmenu" ariatag="h2" /> <div id="searchmenu" class="hidden searchoptions scroller propform formcontainer" aria-labelledby="aria-label-search-menu" aria-controls="messagelist"> @@ -153,8 +154,8 @@ <div id="threadselect-menu" class="popupmenu"> <h3 id="aria-label-threadselectmenu" class="voice"><roundcube:label name="arialabelthreadselectmenu" /></h3> <ul class="menu listing" role="menu" aria-labelledby="aria-label-threadselectmenu"> - <roundcube:button command="expand-all" type="link-menuitem" label="expand-all" class="expand all disabled" classAct="expand all active" /> <roundcube:button command="expand-unread" type="link-menuitem" label="expand-unread" class="expand unread disabled" classAct="expand unread active" /> + <roundcube:button command="expand-all" type="link-menuitem" label="expand-all" class="expand all disabled" classAct="expand all active" /> <roundcube:button command="collapse-all" type="link-menuitem" label="collapse-all" class="expand none disabled" classAct="expand none active" /> </ul> </div>
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/templates/settingsedit.html -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/templates/settingsedit.html
Changed
@@ -3,7 +3,7 @@ <h1 class="voice"><roundcube:object name="sectionname" /></h1> <div class="formcontent"> - <roundcube:object name="userprefs" form="form" class="propform" /> + <roundcube:object name="userprefs" form="form" class="propform cols-sm-6-6" /> </div> <div class="formbuttons">
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/elastic/ui.js -> roundcubemail-1.4-rc2.12.tar.gz/skins/elastic/ui.js
Changed
@@ -15,7 +15,7 @@ function rcube_elastic_ui() { - var ref = this, + var prefs, ref = this, mode = 'normal', // one of: large, normal, small, phone touch = false, ios = false, @@ -491,6 +491,15 @@ (new MutationObserver(callback)).observe(document.body, {childList: true}); } + + // Initialize column resizers + if (layout.sidebar.length) { + splitter_init(layout.sidebar); + } + + if (layout.list.length) { + splitter_init(layout.list); + } }; /** @@ -522,7 +531,7 @@ // Add Select button to the list navigation bar if (!button) { - button = $('<a>').attr({'class': 'button select disabled', role: 'button', title: rcmail.gettext('select')}) + button = $('<a>').attr({'class': 'button selection disabled', role: 'button', title: rcmail.gettext('select')}) .on('click', function() { if ($(this).is('.active')) table.toggleClass('withselection'); }) .append($('<span class="inner">').text(rcmail.gettext('select'))); @@ -672,12 +681,6 @@ if (rcmail.task == 'mail') { if (rcmail.env.action == 'compose') { - // In compose window we do not provide "Back' button, instead - // we modify the Mail button in the task menu to act like it (i.e. calls 'list' command) - if (!rcmail.env.extwin) { - $('a.mail', layout.menu).attr('onclick', "return rcmail.command('list','',this,event)"); - } - rcmail.addEventListener('compose-encrypted', function(e) { $("a.mode-html, button.attach").prop('disabled', e.active); $('a.attach, a.responses')[e.active ? 'addClass' : 'removeClass']('disabled'); @@ -700,6 +703,12 @@ } } + // In compose/preview window we do not provide "Back' button, instead + // we modify the Mail button in the task menu to act like it (i.e. calls 'list' command) + if (!rcmail.env.extwin && (rcmail.env.action == 'compose' || rcmail.env.action == 'show')) { + $('a.mail', layout.menu).attr('onclick', "return rcmail.command('list','',this,event)"); + } + // Append contact menu to all mailto: links if (rcmail.env.action == 'preview' || rcmail.env.action == 'show') { $('a').filter('[href^="mailto:"]').each(function() { @@ -810,6 +819,11 @@ $('table.propform', context).each(function() { var text_rows = 0, form_rows = 0; + var col_sizes = ['sm', 4, 8]; + + if ($(this).attr('class').match(/cols-([a-z]+)-(\d)-(\d)/)) { + col_sizes = [RegExp.$1, RegExp.$2, RegExp.$3]; + } $(this).find('> tbody > tr, > tr').each(function() { var first, last, row = $(this), @@ -821,8 +835,8 @@ last = cells.last(); $('label', first).addClass('col-form-label'); - first.addClass('col-sm-4'); - last.addClass('col-sm-8'); + first.addClass('col-' + col_sizes[0] + '-' + col_sizes[1]); + last.addClass('col-' + col_sizes[0] + '-' + col_sizes[2]); if (last.find('[type=checkbox]').length == 1 && !last.find('.proplist').length) { row_classes.push('form-check'); @@ -1702,7 +1716,7 @@ app_menu(true); screen_resize_small_none(); - if (layout.list) { + if (layout.list.length) { $('.header > ul.menu', layout.list).addClass('popupmenu'); } }; @@ -1944,7 +1958,8 @@ */ function searchbar_init(bar) { - var options_button = $('a.button.options', bar), + var unread_button = $(), + options_button = $('a.button.options', bar), input = $('input:not([type=hidden])', bar), placeholder = input.attr('placeholder'), form = $('form', bar), @@ -1972,8 +1987,20 @@ }, update_func = function() { $(bar)[is_search_pending() ? 'addClass' : 'removeClass']('active'); + unread_button[rcmail.gui_objects.search_filter && $(rcmail.gui_objects.search_filter).val() == 'UNSEEN' ? 'addClass' : 'removeClass']('selected'); }; + // Add Unread filter button + if (input.is('#mailsearchform')) { + unread_button = $('<a>') + .attr({'class': 'button unread', href: '#', role: 'button', title: rcmail.gettext('showunread')}) + .on('click', function(e) { + $(rcmail.gui_objects.search_filter).val($(e.target).is('.selected') ? 'ALL' : 'UNSEEN'); + rcmail.command('search'); + }) + .insertBefore(options_button); + } + options_button.on('click', function(e) { var id = $(this).data('target'), options = $('#' + id), @@ -2855,20 +2882,27 @@ { item = $(item); - if (!item.is('.no-menu') && !item.children('.drop').length) { - var label = rcmail.gettext('options'); - var button = $('<a>') - .attr({ + if (!item.is('.no-menu') && !item.children('.dropdown').length) { + var label = rcmail.gettext('options'), + fname = item.find('a.filename'); + + var button = $('<a>').attr({ href: '#', - tabindex: 0, + tabindex: fname.attr('tabindex') || 0, title: label, 'class': 'button icon dropdown skip-content' }) .on('click', function(e) { return attachmentmenu($('#attachmentmenu'), button, e); }) - .append($('<span>').attr('class', 'inner').text(label)) - .appendTo(item); + .append($('<span>').attr('class', 'inner').text(label)); + + if (fname.length) { + button.insertAfter(fname); + } + else { + button.appendTo(item); + } } }; @@ -3102,20 +3136,26 @@ insert_recipient(this.name, this.email); }); - // setTimeout() here is needed for proper input reset on paste event - // This is also the reason why we need parse_lock - setTimeout(function() { - input.val(result.text); - apply_func(); - input_len_update(); - }, 1); + input.val(result.text); + apply_func(); + input_len_update(); return result.recipients.length > 0; }, parse_func = function(e) { + var paste, value = this.value; + // On paste the text is not yet in the input we have to use clipboard. // Also because on paste new-line characters are replaced by spaces (#6460) - update_func(e.type == 'paste' ? (e.originalEvent.clipboardData || window.clipboardData).getData('text') : this.value); + if (e.type == 'paste') { + // pasted text + paste = (e.originalEvent.clipboardData || window.clipboardData).getData('text') || ''; + // insert pasted text in place of the selection (or just cursor position) + value = value.substring(0, this.selectionStart) + paste + value.substring(this.selectionEnd); + e.preventDefault(); + } + + update_func(value); }, keydown_func = function(e) { // On Backspace remove the last recipient @@ -3142,7 +3182,7 @@ .on('blur', function() { list.removeClass('focus'); }) .on('focus mousedown', function() { list.addClass('focus'); }); - list = $('<ul>').addClass('form-control recipient-input') + list = $('<ul>').addClass('form-control recipient-input ac-input') .append($('<li>').append(input)) .on('click', function() { input.focus(); }); @@ -3840,6 +3880,75 @@ }; /** + * Create a splitter (resizing) element on a layout column + */ + function splitter_init(node) + { + var key = rcmail.env.task + rcmail.env.action + '.' + node.attr('id'), + pos = get_pref(key), + reverted = node.is('.sidebar-right'), + set_width = function(width) { + node.css({ + width: Math.max(100, width), + // reset default properties + // 'min-width': 100, + flex: 'none' + }); + }; + + if (!node[reverted ? 'prev' : 'next']().length) { + return; + } + + $('<div class="column-resizer">') + .appendTo(node) + .on('mousedown', function(e) { + var ts, splitter = $(this), offset = node.position().left; + + // Makes col-resize cursor follow the mouse pointer on dragging + // and fixes issues related to iframes + splitter.width(10000).css(reverted ? 'left' : 'right', -5000); + + // Disable selection on document while dragging + // It can happen when you move mouse out of window, on top + document.body.style.userSelect = 'none'; + + // Start listening to mousemove events + $(document) + .on('mousemove.resizer', function(e) { + // Use of timeouts makes the move more smooth in Chrome + clearTimeout(ts); + ts = setTimeout(function() { + // For left-side-splitter we need the current offset + if (reverted) { + offset = node.position().left; + } + var cursor_position = rcube_event.get_mouse_pos(e).x, + width = reverted ? node.width() + (offset - cursor_position) : cursor_position - offset; + + set_width(width); + }, 5); + }) + .on('mouseup.resizer', function() { + // Remove registered events + $(document).off('.resizer'); + $('iframe').off('.resizer'); + document.body.style.userSelect = 'auto'; + + // Set back the splitter width to normal + splitter.width(6).css(reverted ? 'left' : 'right', -3); + + // Save the current position (width) + save_pref(key, node.width()); + }); + }); + + if (pos) { + set_width(pos); + } + }; + + /** * Wrapper for rcmail.open_window to intercept window opening * and display a dialog with an iframe instead of a real window. */ @@ -3908,6 +4017,47 @@ return meta.touch; }; + + /** + * Get preference stored in browser + */ + function get_pref(key) + { + if (!prefs) { + prefs = rcmail.local_storage_get_item('prefs.elastic', {}); + } + + // fall-back to cookies + if (prefs[key] == null) { + var cookie = rcmail.get_cookie(key); + if (cookie != null) { + prefs[key] = cookie; + + // copy value to local storage and remove cookie (if localStorage is supported) + if (rcmail.local_storage_set_item('prefs.elastic', prefs)) { + rcmail.set_cookie(key, cookie, new Date()); // expire cookie + } + } + } + + return prefs[key]; + }; + + /** + * Saves preference value to browser storage + */ + function save_pref(key, val) + { + prefs[key] = val; + + // write prefs to local storage (if supported) + if (!rcmail.local_storage_set_item('prefs.elastic', prefs)) { + // store value in cookie + var exp = new Date(); + exp.setYear(exp.getFullYear() + 1); + rcmail.set_cookie(key, val, exp); + } + }; } if (window.rcmail) {
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/larry/googiespell.css -> roundcubemail-1.4-rc2.12.tar.gz/skins/larry/googiespell.css
Changed
@@ -35,6 +35,10 @@ background: #4db0d2; } +.googie_list form { + padding: 3px; +} + .googie_list_close { font-size: 11px; color: #b91414;
View file
roundcubemail-1.4-rc1.221.tar.gz/skins/larry/ui.js -> roundcubemail-1.4-rc2.12.tar.gz/skins/larry/ui.js
Changed
@@ -907,17 +907,26 @@ { item = $(item); - if (!item.children('.drop').length) - var label = rcmail.gettext('options'); - item.append($('<a>') - .attr({'class': 'drop skip-content', tabindex: 0, 'aria-haspopup': true, title: label}) + if (!item.children('.drop').length) { + var label = rcmail.gettext('options'), + fname = item.find('a.filename'), + tabindex = fname.attr('tabindex') || 0; + + var button = $('<a>') + .attr({'class': 'drop skip-content', tabindex: tabindex, 'aria-haspopup': true, title: label}) .text(label) .on('click keypress', function(e) { if (e.type != 'keypress' || rcube_event.get_keycode(e) == 13) { attachmentmenu(this, e); return false; } - })); + }); + + if (fname.length) + button.insertAfter(fname); + else + button.appendTo(item); + } } /**
View file
roundcubemail-1.4-rc1.221.tar.gz/tests/Framework/Browser.php -> roundcubemail-1.4-rc2.12.tar.gz/tests/Framework/Browser.php
Changed
@@ -21,15 +21,14 @@ /** * @dataProvider browsers */ - function test_browser($useragent, $opera, $chrome, $ie, $ns, $safari, $mz) + function test_browser($useragent, $opera, $chrome, $ie, $edge, $ns, $safari, $mz) { - $object = $this->getBrowser($useragent); $this->assertEquals($opera, $object->opera, 'Check for Opera failed'); $this->assertEquals($chrome, $object->chrome, 'Check for Chrome failed'); $this->assertEquals($ie, $object->ie, 'Check for IE failed'); - $this->assertEquals($ns, $object->ns, 'Check for NS failed'); + $this->assertEquals($edge, $object->edge, 'Check for Edge failed'); $this->assertEquals($safari, $object->safari, 'Check for Safari failed'); $this->assertEquals($mz, $object->mz, 'Check for MZ failed'); } @@ -57,47 +56,114 @@ $this->assertEquals($version, $object->ver); } - /** - * @dataProvider dom - */ - function test_dom($useragent, $dom) + function versions() { - $object = $this->getBrowser($useragent); - $this->assertEquals($dom, $object->dom); - + return $this->extractDataSet(array('version')); } - /** - * @dataProvider pngalpha - */ - function test_pngalpha($useragent, $pngalpha) + function browsers() { - $object = $this->getBrowser($useragent); - $this->assertEquals($pngalpha, $object->pngalpha); + return $this->extractDataSet(array('isOpera', 'isChrome', 'isIE', 'isEdge', 'isNS', 'isSafari', 'isMZ')); } - /** - * @dataProvider imgdata - */ - function test_imgdata($useragent, $imgdata) + function useragents() { - $object = $this->getBrowser($useragent); - $this->assertEquals($imgdata, $object->imgdata); - } + return array( + 'WIN: Mozilla Firefox ' => array( + 'useragent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1', + 'version' => '1.8', + 'isWin' => true, + 'isLinux' => false, + 'isMac' => false, + 'isUnix' => false, + 'isOpera' => false, + 'isChrome' => false, + 'isIE' => false, + 'isEdge' => false, + 'isSafari' => false, + 'isMZ' => true, + ), - function versions() - { - return $this->extractDataSet(array('version')); - } + 'LINUX: Bon Echo ' => array( + 'useragent' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20070222 BonEcho/2.0.0.1', + 'version' => '1.8', + 'isWin' => false, + 'isLinux' => true, + 'isMac' => false, + 'isUnix' => false, + 'isOpera' => false, + 'isChrome' => false, + 'isIE' => false, + 'isEdge' => false, + 'isSafari' => false, + 'isMZ' => true, + ), - function pngalpha() - { - return $this->extractDataSet(array('canPNGALPHA')); + 'Chrome Mac' => array( + 'useragent' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.461.0 Safari/534.3', + 'version' => '6', + 'isWin' => false, + 'isLinux' => false, + 'isMac' => true, + 'isUnix' => false, + 'isOpera' => false, + 'isChrome' => true, + 'isIE' => false, + 'isEdge' => false, + 'isSafari' => false, + 'isMZ' => false, + ), + + 'IE 11' => array( + 'useragent' => 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko', + 'version' => '11.0', + 'isWin' => true, + 'isLinux' => false, + 'isMac' => false, + 'isUnix' => false, + 'isOpera' => false, + 'isChrome' => false, + 'isIE' => true, + 'isEdge' => false, + 'isSafari' => false, + 'isMZ' => false, + ), + + 'Opera 15' => array( + 'useragent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.29 Safari/537.36 OPR/15.0.1147.24', + 'version' => '15.0', + 'isWin' => true, + 'isLinux' => false, + 'isMac' => false, + 'isUnix' => false, + 'isOpera' => true, + 'isChrome' => false, + 'isIE' => false, + 'isEdge' => false, + 'isSafari' => false, + 'isMZ' => false, + ), + + 'Edge 14' => array( + 'useragent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14931', + 'version' => '14.14931', + 'isWin' => true, + 'isLinux' => false, + 'isMac' => false, + 'isUnix' => false, + 'isOpera' => false, + 'isChrome' => false, + 'isIE' => false, + 'isEdge' => true, + 'isSafari' => false, + 'isMZ' => false, + ), + ); } - function imgdata() + function os() { - return $this->extractDataSet(array('canIMGDATA')); + return $this->extractDataSet(array('isWin', 'isLinux', 'isUnix', 'isMac')); } private function extractDataSet($keys) @@ -112,131 +178,11 @@ foreach($keys as $key) { $extracted[$data['useragent']][] = $data[$key]; } - } return $extracted; } - function lang() - { - return $this->extractDataSet(array('lang')); - } - - function dom() - { - return $this->extractDataSet(array('hasDOM')); - } - - function browsers() - { - return $this->extractDataSet(array('isOpera','isChrome','isIE','isNS','isSafari','isMZ')); - } - - function useragents() - { - return array( - 'WIN: Mozilla Firefox ' => array( - 'useragent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1', - 'version' => '1.8', //Version - 'isWin' => true, //isWindows - 'isLinux' => false, - 'isMac' => false, //isMac - 'isUnix' => false, //isUnix - 'isOpera' => false, //isOpera - 'isChrome' => false, //isChrome - 'isIE' => false, //isIE - 'isNS' => false, //isNS - 'isSafari' => false, //isSafari - 'isMZ' => true, //isMZ - 'lang' => 'en-US', //lang - 'hasDOM' => true, //hasDOM - 'canPNGALPHA' => true, //canPNGALPHA - 'canIMGDATA' => true, //canIMGDATA - ), - 'LINUX: Bon Echo ' => array( - 'useragent' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20070222 BonEcho/2.0.0.1', - 'version' => '1.8', //Version - 'isWin' => false, //isWindows - 'isLinux' => true, - 'isMac' => false, //isMac - 'isUnix' => false, //isUnix - 'isOpera' => false, //isOpera - 'isChrome' => false, //isChrome - 'isIE' => false, //isIE - 'isNS' => false, //isNS - 'isSafari' => false, //isSafari - 'isMZ' => true, //isMZ - 'lang' => 'en-US', //lang - 'hasDOM' => true, //hasDOM - 'canPNGALPHA' => true, //canPNGALPHA - 'canIMGDATA' => true, //canIMGDATA - ), - - 'Chrome Mac' => array( - 'useragent' => 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.461.0 Safari/534.3', - 'version' => '6', //Version - 'isWin' => false, //isWindows - 'isLinux' => false, - 'isMac' => true, //isMac - 'isUnix' => false, //isUnix - 'isOpera' => false, //isOpera - 'isChrome' => true, //isChrome - 'isIE' => false, //isIE - 'isNS' => false, //isNS - 'isSafari' => false, //isSafari - 'isMZ' => false, //isMZ - 'lang' => 'en-US', //lang - 'hasDOM' => false, //hasDOM - 'canPNGALPHA' => false, //canPNGALPHA - 'canIMGDATA' => true, //canIMGDATA - ), - - 'IE 11' => array( - 'useragent' => 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko', - 'version' => '11.0', //Version - 'isWin' => true, //isWindows - 'isLinux' => false, - 'isMac' => false, //isMac - 'isUnix' => false, //isUnix - 'isOpera' => false, //isOpera - 'isChrome' => false, //isChrome - 'isIE' => true, //isIE - 'isNS' => false, //isNS - 'isSafari' => false, //isSafari - 'isMZ' => false, //isMZ - 'lang' => '', //lang - 'hasDOM' => true, //hasDOM - 'canPNGALPHA' => true, //canPNGALPHA - 'canIMGDATA' => false, //canIMGDATA - ), - - 'Opera 15' => array( - 'useragent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.29 Safari/537.36 OPR/15.0.1147.24', - 'version' => '15.0', //Version - 'isWin' => true, //isWindows - 'isLinux' => false, - 'isMac' => false, //isMac - 'isUnix' => false, //isUnix - 'isOpera' => true, //isOpera - 'isChrome' => false, //isChrome - 'isIE' => false, //isIE - 'isNS' => false, //isNS - 'isSafari' => false, //isSafari - 'isMZ' => false, //isMZ - 'lang' => '', //lang - 'hasDOM' => true, //hasDOM - 'canPNGALPHA' => true, //canPNGALPHA - 'canIMGDATA' => true, //canIMGDATA - ), - ); - } - - function os() - { - return $this->extractDataSet(array('isWin','isLinux','isUnix','isMac')); - } - /** * @param string $useragent * @return rcube_browser
View file
roundcubemail-1.4-rc1.221.tar.gz/tests/Framework/Utils.php -> roundcubemail-1.4-rc2.12.tar.gz/tests/Framework/Utils.php
Changed
@@ -215,18 +215,28 @@ // position: fixed (#5264) $mod = rcube_utils::mod_css_styles(".test { position: fixed; }", 'rcmbody'); $this->assertEquals("#rcmbody .test { position: absolute; }", $mod, "Replace position:fixed with position:absolute (0)"); - $mod = rcube_utils::mod_css_styles(".test { position:\nfixed; }", 'rcmbody'); $this->assertEquals("#rcmbody .test { position: absolute; }", $mod, "Replace position:fixed with position:absolute (1)"); - $mod = rcube_utils::mod_css_styles(".test { position:/**/fixed; }", 'rcmbody'); $this->assertEquals("#rcmbody .test { position: absolute; }", $mod, "Replace position:fixed with position:absolute (2)"); + // position: fixed (#6898) + $mod = rcube_utils::mod_css_styles(".test { position : fixed; top: 0; }", 'rcmbody'); + $this->assertEquals("#rcmbody .test { position: absolute; top: 0; }", $mod, "Replace position:fixed with position:absolute (3)"); + $mod = rcube_utils::mod_css_styles(".test { position/**/: fixed; top: 0; }", 'rcmbody'); + $this->assertEquals("#rcmbody .test { position: absolute; top: 0; }", $mod, "Replace position:fixed with position:absolute (4)"); + $mod = rcube_utils::mod_css_styles(".test { position\n: fixed; top: 0; }", 'rcmbody'); + $this->assertEquals("#rcmbody .test { position: absolute; top: 0; }", $mod, "Replace position:fixed with position:absolute (5)"); + // allow data URIs with images (#5580) $mod = rcube_utils::mod_css_styles("body { background-image: url(data:image/png;base64,123); }", 'rcmbody'); $this->assertContains("#rcmbody { background-image: url(data:image/png;base64,123);", $mod, "Data URIs in url() allowed [1]"); $mod = rcube_utils::mod_css_styles("body { background-image: url(data:image/png;base64,123); }", 'rcmbody', true); $this->assertContains("#rcmbody { background-image: url(data:image/png;base64,123);", $mod, "Data URIs in url() allowed [2]"); + + // Allow strict url() + $mod = rcube_utils::mod_css_styles("body { background-image: url(http://example.com); }", 'rcmbody', true); + $this->assertContains("#rcmbody { background-image: url(http://example.com);", $mod, "Strict URIs in url() allowed with \$allow_remote=true"); } /** @@ -246,6 +256,8 @@ @media screen and (max-width: 699px) and (min-width: 520px) { li a.button { padding-left: 30px; } } + :root * { color: red; } + :root > * { top: 0; } '; $mod = rcube_utils::mod_css_styles($css, 'rc', true, 'test'); @@ -258,6 +270,9 @@ $this->assertContains('#rc p > i ', $mod); $this->assertContains('#rc div#testsome', $mod); $this->assertContains('#rc li a.testbutton', $mod); + $this->assertNotContains(':root', $mod); + $this->assertContains('#rc * ', $mod); + $this->assertContains('#rc > * ', $mod); } function test_xss_entity_decode()
View file
roundcubemail-1.4-rc1.221.tar.gz/tests/Framework/Washtml.php -> roundcubemail-1.4-rc2.12.tar.gz/tests/Framework/Washtml.php
Changed
@@ -19,19 +19,21 @@ /** * Test the elimination of some XSS vulnerabilities */ - function test_html_xss3() + function test_html_xss() { // #1488850 - $html = '<p><a href="data:text/html,<script>alert(document.cookie)</script>">Firefox</a>' + $html = '<a href="data:text/html,<script>alert(document.cookie)</script>">Firefox</a>' .'<a href="vbscript:alert(document.cookie)">Internet Explorer</a></p>' - .'<p><A href="data:text/html,<script>alert(document.cookie)</script>">Firefox</a>' - .'<A HREF="vbscript:alert(document.cookie)">Internet Explorer</a></p>'; + .'<A href="data:text/html,<script>alert(document.cookie)</script>">Firefox</a>' + .'<A HREF="vbscript:alert(document.cookie)">Internet Explorer</a>' + .'<a href="data:application/xhtml+xml;base64,PGh0bW">CLICK ME</a>'; // #6896 $washer = new rcube_washtml; $washed = $washer->wash($html); $this->assertNotRegExp('/data:text/', $washed, "Remove data:text/html links"); $this->assertNotRegExp('/vbscript:/', $washed, "Remove vbscript: links"); + $this->assertNotRegExp('/data:application/', $washed, "Remove data:application links"); } /**
View file
roundcubemail-1.4-rc2.12.tar.gz/tests/Rcmail
Added
+(directory)
View file
roundcubemail-1.4-rc2.12.tar.gz/tests/Rcmail/Rcmail.php
Added
@@ -0,0 +1,85 @@ +<?php + +/** + * Test class to test rcmail class + * + * @package Tests + */ +class Rcmail_Rcmail extends PHPUnit_Framework_TestCase +{ + function setUp() + { + // set some HTTP env vars + $_SERVER['HTTP_HOST'] = 'mail.example.org'; + $_SERVER['SERVER_PORT'] = '443'; + $_SERVER['SCRIPT_NAME'] = '/sub/index.php'; + $_SERVER['HTTPS'] = true; + + rcmail::get_instance()->filename = ''; + } + + /** + * Class constructor + */ + function test_class() + { + $object = rcmail::get_instance(); + $this->assertInstanceOf('rcmail', $object, "Class singleton"); + } + + /** + * Test rcmail::url() + */ + function test_url() + { + $rcmail = rcmail::get_instance(); + $this->assertEquals( + './?_task=cli&_action=test', + $rcmail->url('test'), + "Action only" + ); + $this->assertEquals( + './?_task=cli&_action=test&_a=AA', + $rcmail->url(array('action' => 'test', 'a' => 'AA')), + "Unprefixed parameters" + ); + $this->assertEquals( + './?_task=cli&_action=test&_b=BB', + $rcmail->url(array('_action' => 'test', '_b' => 'BB', '_c' => null)), + "Prefixed parameters (skip empty)" + ); + $this->assertEquals( + '/sub/?_task=cli&_action=test&_mode=ABS', + $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true), + "Absolute URL" + ); + + $this->assertEquals( + 'https://mail.example.org/sub/?_task=calendar&_action=test&_mode=FQ', + $rcmail->url(array('task' => 'calendar', '_action' => 'test', '_mode' => 'FQ'), true, true), + "Fully Qualified URL" + ); + + // with different SCRIPT_NAME values + $_SERVER['SCRIPT_NAME'] = 'index.php'; + $this->assertEquals( + '/?_task=cli&_action=test&_mode=ABS', + $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true), + "Absolute URL (root)" + ); + $_SERVER['SCRIPT_NAME'] = ''; + $this->assertEquals( + '/?_task=cli&_action=test&_mode=ABS', + $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true), + "Absolute URL (root)" + ); + + $_SERVER['HTTPS'] = false; + $_SERVER['SERVER_PORT'] = '8080'; + $this->assertEquals( + 'http://mail.example.org:8080/?_task=cli&_action=test&_mode=ABS', + $rcmail->url(array('_action' => 'test', '_mode' => 'ABS'), true, true), + "Full URL with port" + ); + } +}
View file
roundcubemail-1.4-rc1.221.tar.gz/tests/phpunit.xml -> roundcubemail-1.4-rc2.12.tar.gz/tests/phpunit.xml
Changed
@@ -51,7 +51,7 @@ <file>Framework/VCard.php</file> <file>Framework/Washtml.php</file> <file>MailFunc.php</file> - <file>RcmailFunc.php</file> + <file>Rcmail/Rcmail.php</file> </testsuite> <testsuite name="Plugins Tests"> <file>./../plugins/acl/tests/Acl.php</file>
View file
roundcubemail.dsc
Changed
@@ -2,7 +2,7 @@ Source: roundcubemail Binary: roundcubemail Architecture: all -Version: 1:1.4-0~kolab249 +Version: 1:1.4-0~kolab312 Maintainer: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Uploaders: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> Homepage: http://www.roundcube.net/ @@ -14,5 +14,5 @@ roundcubemail deb web extra roundcubemail-core deb web extra Files: - 00000000000000000000000000000000 0 roundcubemail-1.4-rc1.221.tar.gz + 00000000000000000000000000000000 0 roundcubemail-1.4-rc2.12.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.