]> git.donarmstrong.com Git - roundcube.git/commitdiff
Imported Upstream version 0.1.1
authorJérémy Bobbio <lunar@debian.org>
Sat, 18 Jun 2011 15:01:29 +0000 (17:01 +0200)
committerJérémy Bobbio <lunar@debian.org>
Sat, 18 Jun 2011 15:01:29 +0000 (17:01 +0200)
64 files changed:
CHANGELOG
INSTALL
README
SQL/mysql.initial.sql
SQL/mysql.update-0.1a.sql [deleted file]
SQL/mysql.update.sql
SQL/mysql5.initial.sql
SQL/postgres.initial.sql
SQL/postgres.update.sql
SQL/sqlite.initial.sql
SQL/sqlite.update.sql
UPGRADING
config/db.inc.php.dist
config/main.inc.php.dist
index.php
installer/check.php
installer/config.php
installer/index.php
installer/rcube_install.php
installer/test.php
installer/welcome.html
program/include/main.inc
program/include/rcube_db.inc
program/include/rcube_imap.inc
program/include/rcube_ldap.inc
program/include/rcube_mdb2.inc
program/include/rcube_shared.inc
program/include/rcube_user.inc
program/js/app.js
program/js/list.js
program/js/tiny_mce/themes/advanced/css/editor_content.css [new file with mode: 0644]
program/lib/imap.inc
program/localization/en_GB/labels.inc
program/localization/en_US/labels.inc
program/localization/fi/labels.inc
program/localization/fr/labels.inc
program/localization/fr/messages.inc
program/localization/ge/labels.inc
program/localization/ge/messages.inc
program/localization/hu/messages.inc
program/localization/index.inc
program/localization/ku/labels.inc [new file with mode: 0644]
program/localization/ku/messages.inc [new file with mode: 0644]
program/localization/nl_NL/labels.inc
program/localization/pl/labels.inc
program/localization/pl/messages.inc
program/localization/se/labels.inc
program/localization/zh_CN/labels.inc
program/localization/zh_CN/messages.inc
program/steps/mail/compose.inc
program/steps/mail/func.inc
program/steps/mail/sendmail.inc
program/steps/mail/show.inc
program/steps/mail/viewsource.inc
program/steps/settings/func.inc
program/steps/settings/manage_folders.inc
robots.txt [new file with mode: 0644]
skins/default/common.css
skins/default/editor_content.css
skins/default/includes/header.html
skins/default/mail.css
skins/default/settings.css
skins/default/templates/login.html
skins/default/templates/printmessage.html

index dbf986d9860ae6eb0b96ed2c12de1b6e0bd101ae..8093ccc69359b08d4aaf983e6586cadc2897a1fe 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,24 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+- Clear selection when selecting single item (#1484942)
+- Remove hard-coded image size in skin templates (#1484893)
+- Database schema improvements (dropped unnecessary indexes)
+- Fixed creating a new folder with a comma in its name (#1484681)
+- Fixed sorting of messages when default mailbox is empty (#1484317)
+- Improve message previewpane - less loading (#1484316)
+- Fixed login form autoompletion (#1484839)
+- Fixed virtuser_query option for mdb2 backend (#1484874)
+- Fixed attachment resoting from Drafts when message body was empty (#1484506)
+- Fixed usage of ob_gzhandler (#1484851)
+- Fixed message part window in IE6 (#1484610)
+- Fixed decoding of mime-encoded strings (#1484191)
+- Fixed some iconv/mb_string problems (#1484598)
+- Correctly quote mailbox name when using in URL (#1484313)
+- Fixed "headers already sent" errors (#1484860)
+
+RELEASE 0.1-STABLE
+
 - Added interactive installer script
 - Fix folder adding/renaming inspired by #1484800
 - Localize folder name in page title (#1484785)
diff --git a/INSTALL b/INSTALL
index ada9daa6d8f40fced18630eeb5b85fdbe0c29fda..2b8fb2efaac4b184b4c745124ccaf9ad0bec95e8 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -41,7 +41,7 @@ INSTALLATION
    - /temp
    - /logs
 3. Create a new database and a database user for RoundCube (see DATABASE SETUP)
-4. Point your browser to http:///url-to-roundcube/installer/
+4. Point your browser to http://url-to-roundcube/installer/
 5. Follow the instructions of the install script (or see MANUAL CONFINGURATION)
 6. After creating and testing the configuration, remove the installer directory
 7. Done!
diff --git a/README b/README
index e06318cdb090e7780b4c553781c97224c849499b..7aae054a0ca825689b3b1de8d9d66add79c07453 100644 (file)
--- a/README
+++ b/README
@@ -44,24 +44,6 @@ already have a corresponding entry in the user's table (username and hostname)
 will be allowed.
 
 
-Code Layout:
-------------
-Basic sequence (index.php):
-  - index.php -> rcmail_load_gui -> new rcmail_template -> rcmail_template::send
-  - authentication details in this sequence
-
-Tasks
-  - index.php limits tasks to set list
-  - can see task in roundcube link when you mouse over it
-  - task templates stored in skins/default/templates
-  - templates "roundcube:" tokens that get replaced in rcmail_template class
-
-program/include/rcube_shared.inc
-  - defines rcube_html_page, class that lays out a roundcube web page
-  - defines form control classes
-  - provides common functions
-
-
 Contact:
 --------
 For any bug reports or feature requests please refer to the tracking system
index 926a83eab4a9b1c9d1b7fc831a7552e5a9fccb33..ae195e4387ec8ac0d87df78041d3c51dc47b440c 100644 (file)
@@ -1,5 +1,5 @@
 -- RoundCube Webmail initial database structure
--- Version 0.1-rc1
+-- Version 0.1
 -- 
 
 -- --------------------------------------------------------
@@ -16,9 +16,7 @@ CREATE TABLE `cache` (
   `created` datetime NOT NULL default '0000-00-00 00:00:00',
   `data` longtext NOT NULL,
   PRIMARY KEY  (`cache_id`),
-  KEY `user_id` (`user_id`),
-  KEY `cache_key` (`cache_key`),
-  KEY `session_id` (`session_id`)
+  INDEX `user_cache_index` (`user_id`,`cache_key`)
 );
 
 -- --------------------------------------------------------
@@ -118,10 +116,7 @@ CREATE TABLE `messages` (
   `size` int(11) unsigned NOT NULL default '0',
   `headers` text NOT NULL,
   `structure` text,
-  PRIMARY KEY  (`message_id`),
-  KEY `user_id` (`user_id`),
-  KEY `idx` (`idx`),
-  KEY `uid` (`uid`),
+  PRIMARY KEY (`message_id`),
   UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`)
 );
 
diff --git a/SQL/mysql.update-0.1a.sql b/SQL/mysql.update-0.1a.sql
deleted file mode 100644 (file)
index 60f22b3..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
--- RoundCube Webmail update script for MySQL databases
--- Updates from version 0.1-20051007
-
-
-ALTER TABLE `session` ADD `ip` VARCHAR(40) NOT NULL AFTER changed;
-ALTER TABLE `users` ADD `alias` VARCHAR(128) NOT NULL AFTER mail_host;
-
-
-
--- RoundCube Webmail update script for MySQL databases
--- Updates from version 0.1-20051021
-
-ALTER TABLE `session` CHANGE `sess_id` `sess_id` VARCHAR(40) NOT NULL;
-
-ALTER TABLE `contacts` CHANGE `del` `del` TINYINT(1) NOT NULL;
-ALTER TABLE `contacts` ADD `changed` DATETIME NOT NULL AFTER `user_id`;
-
-UPDATE `contacts`  SET `del`=0 WHERE `del`=1;
-UPDATE `contacts`  SET `del`=1 WHERE `del`=2;
-
-ALTER TABLE `identities` CHANGE `default` `standard` TINYINT(1) NOT NULL;
-ALTER TABLE `identities` CHANGE `del` `del` TINYINT(1) NOT NULL;
-
-UPDATE `identities`  SET `del`=0 WHERE `del`=1;
-UPDATE `identities`  SET `del`=1 WHERE `del`=2;
-UPDATE `identities`  SET `standard`=0 WHERE `standard`=1;
-UPDATE `identities`  SET `standard`=1 WHERE `standard`=2;
-
-CREATE TABLE `messages` (
-  `message_id` int(11) unsigned NOT NULL auto_increment,
-  `user_id` int(11) unsigned NOT NULL default '0',
-  `del` tinyint(1) NOT NULL default '0',
-  `cache_key` varchar(128) NOT NULL default '',
-  `created` datetime NOT NULL default '0000-00-00 00:00:00',
-  `idx` int(11) unsigned NOT NULL default '0',
-  `uid` int(11) unsigned NOT NULL default '0',
-  `subject` varchar(255) NOT NULL default '',
-  `from` varchar(255) NOT NULL default '',
-  `to` varchar(255) NOT NULL default '',
-  `cc` varchar(255) NOT NULL default '',
-  `date` datetime NOT NULL default '0000-00-00 00:00:00',
-  `size` int(11) unsigned NOT NULL default '0',
-  `headers` text NOT NULL,
-  `structure` text,
-  PRIMARY KEY  (`message_id`),
-  KEY `user_id` (`user_id`),
-  KEY `idx` (`idx`),
-  KEY `uid` (`uid`),
-  UNIQUE `uniqueness` (`cache_key`, `uid`)
-) TYPE=MyISAM;
-
index e904be278a688ab2ba8f36d2cf8ead11a7446476..11e744cfa2a984cdefebfb3c4b95d951b9dc3c38 100644 (file)
@@ -1,21 +1,17 @@
 -- RoundCube Webmail update script for MySQL databases
--- Updates from version 0.1-beta and 0.1-beta2
+-- Updates from version 0.1-stable to 0.1.1
 
 TRUNCATE TABLE `messages`;
 
 ALTER TABLE `messages`
-  DROP `body`,
-  DROP INDEX `cache_key`,
-  ADD `structure` TEXT,
-  ADD UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`);
+  DROP INDEX `idx`,
+  DROP INDEX `uid`
 
-ALTER TABLE `identities`
-  ADD `html_signature` tinyint(1) default 0 NOT NULL;
+ALTER TABLE `cache`
+  DROP INDEX `cache_key`,
+  DROP INDEX `session_id`,
+  ADD INDEX `user_cache_index` (`user_id`,`cache_key`);
 
-ALTER TABLE `session` CHANGE `ip` `ip` VARCHAR(40) 
-  
--- Uncomment these lines if you're using MySQL 4.1 or higher
--- ALTER TABLE `users`
---  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci,
---  CHANGE `username` `username` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
---  CHANGE `alias` `alias` VARCHAR( 128 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;
+ALTER TABLE `users`
+    ADD INDEX `username_index` (`username`),
+    ADD INDEX `alias_index` (`alias`);
index 1a6ef1990f5ab96d004bf0d1f3a4bfa6cdc975aa..881344b985eecbace7d878b77194ea5c3a9e21fb 100644 (file)
@@ -1,5 +1,5 @@
 -- RoundCube Webmail initial database structure
--- Version 0.1-rc1
+-- Version 0.1
 
 -- --------------------------------------------------------
 
@@ -15,7 +15,7 @@ CREATE TABLE `session` (
  `ip` varchar(40) NOT NULL,
  `vars` text NOT NULL,
  PRIMARY KEY(`sess_id`)
-) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
 
 
 -- Table structure for table `users`
@@ -29,8 +29,10 @@ CREATE TABLE `users` (
  `last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `language` varchar(5) NOT NULL DEFAULT 'en',
  `preferences` text,
- PRIMARY KEY(`user_id`)
-) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+ PRIMARY KEY(`user_id`),
+ INDEX `username_index` (`username`),
+ INDEX `alias_index` (`alias`)
+) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
 
 
 -- Table structure for table `messages`
@@ -52,14 +54,12 @@ CREATE TABLE `messages` (
  `headers` text NOT NULL,
  `structure` text,
  PRIMARY KEY(`message_id`),
- INDEX `idx`(`idx`),
- INDEX `uid`(`uid`),
  UNIQUE `uniqueness` (`user_id`, `cache_key`, `uid`),
  CONSTRAINT `user_id_fk_messages` FOREIGN KEY (`user_id`)
    REFERENCES `users`(`user_id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
-) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
 
 
 -- Table structure for table `cache`
@@ -72,13 +72,12 @@ CREATE TABLE `cache` (
  `data` longtext NOT NULL,
  `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY(`cache_id`),
- INDEX `cache_key`(`cache_key`),
- INDEX `session_id`(`session_id`),
+ INDEX `user_cache_index` (`user_id`,`cache_key`),
  CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`)
    REFERENCES `users`(`user_id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
-) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
 
 
 -- Table structure for table `contacts`
@@ -98,7 +97,7 @@ CREATE TABLE `contacts` (
    REFERENCES `users`(`user_id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
-) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
 
 
 -- Table structure for table `identities`
@@ -120,7 +119,7 @@ CREATE TABLE `identities` (
    REFERENCES `users`(`user_id`)
      ON DELETE CASCADE
      ON UPDATE CASCADE
-) TYPE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
+) TYPE=INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
 
 
 SET FOREIGN_KEY_CHECKS=1;
index 356a579fc44c4ce351dcd08089fdd424cdea4394..ff239cbf80aecd4e3f839c769a805c0c1cd5a316 100644 (file)
@@ -26,7 +26,6 @@ CREATE TABLE users (
 );
 
 
-  
 --
 -- Table "session"
 -- Name: session; Type: TABLE; Schema: public; Owner: postgres
@@ -61,7 +60,7 @@ CREATE SEQUENCE identity_ids
 
 CREATE TABLE identities (
     identity_id integer DEFAULT nextval('identity_ids'::text) PRIMARY KEY,
-    user_id integer NOT NULL REFERENCES users (user_id),
+    user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     del integer DEFAULT 0 NOT NULL,
     standard integer DEFAULT 0 NOT NULL,
     name character varying(128) NOT NULL,
@@ -73,6 +72,7 @@ CREATE TABLE identities (
     html_signature integer DEFAULT 0 NOT NULL
 );
 
+CREATE INDEX identities_user_id_idx ON identities (user_id);
 
 
 --
@@ -94,7 +94,7 @@ CREATE SEQUENCE contact_ids
 
 CREATE TABLE contacts (
     contact_id integer DEFAULT nextval('contact_ids'::text) PRIMARY KEY,
-    user_id integer NOT NULL REFERENCES users (user_id),
+    user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     changed timestamp with time zone DEFAULT now() NOT NULL,
     del integer DEFAULT 0 NOT NULL,
     name character varying(128) DEFAULT ''::character varying NOT NULL,
@@ -104,7 +104,7 @@ CREATE TABLE contacts (
     vcard text
 );
 
-
+CREATE INDEX contacts_user_id_idx ON contacts (user_id);
 
 --
 -- Sequence "cache_ids"
@@ -124,14 +124,14 @@ CREATE SEQUENCE cache_ids
 
 CREATE TABLE "cache" (
     cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY,
-    user_id integer NOT NULL REFERENCES users (user_id),
+    user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     session_id character varying(40) REFERENCES "session" (sess_id),
     cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
     created timestamp with time zone DEFAULT now() NOT NULL,
     data text NOT NULL
 );
 
-
+CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key);
 
 --
 -- Sequence "message_ids"
@@ -151,7 +151,7 @@ CREATE SEQUENCE message_ids
 
 CREATE TABLE "messages" (
     message_id integer DEFAULT nextval('message_ids'::text) PRIMARY KEY,
-    user_id integer NOT NULL REFERENCES users (user_id),
+    user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE,
     del integer DEFAULT 0 NOT NULL,
     cache_key character varying(128) DEFAULT ''::character varying NOT NULL,
     created timestamp with time zone DEFAULT now() NOT NULL,
index 0d63cf93426497b3d7317f4751bfcbae4647fb5e..ff1ce12e404b1e64cb1fb22319b6588b72aa30be 100644 (file)
@@ -1,12 +1,16 @@
--- RoundCube Webmail update script for Postres databases
--- Updates from version 0.1-beta and older
+-- RoundCube Webmail update script for Postgres databases
+-- Updates from version 0.1-stable to 0.1.1
 
-ALTER TABLE "messages" DROP body;
-ALTER TABLE "messages" ADD structure TEXT;
-ALTER TABLE "messages" ADD UNIQUE (user_id, cache_key, uid);
-
-ALTER TABLE "identities" ADD html_signature INTEGER;
-ALTER TABLE "identities" ALTER html_signature SET DEFAULT 0;
-UPDATE identities SET html_signature = 0;
-ALTER TABLE "identities" ALTER html_signature SET NOT NULL;
+CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
+CREATE INDEX contacts_user_id_idx ON contacts (user_id);
+CREATE INDEX identities_user_id_idx ON identities (user_id);
 
+-- added ON DELETE/UPDATE actions
+ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
+ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE identities DROP CONSTRAINT identities_user_id_fkey;
+ALTER TABLE identities ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE contacts DROP CONSTRAINT contacts_user_id_fkey;
+ALTER TABLE contacts ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
+ALTER TABLE cache DROP CONSTRAINT cache_user_id_fkey;
+ALTER TABLE cache ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
index 4ae752983652d479290231d57fb0743f9fe0e58c..041696b1d878b4d365e2af38e4f49b86f3b21378 100644 (file)
@@ -1,5 +1,5 @@
 -- RoundCube Webmail initial database structure
--- Version 0.1-rc1
+-- Version 0.1
 -- 
 
 -- --------------------------------------------------------
@@ -17,9 +17,7 @@ CREATE TABLE cache (
   data longtext NOT NULL
 );
 
-CREATE INDEX ix_cache_user_id ON cache(user_id);
-CREATE INDEX ix_cache_cache_key ON cache(cache_key);
-CREATE INDEX ix_cache_session_id ON cache(session_id);
+CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key);
 
 
 -- --------------------------------------------------------
@@ -82,7 +80,6 @@ CREATE TABLE users (
   preferences text NOT NULL default ''
 );
 
-
 -- --------------------------------------------------------
 
 -- 
@@ -115,14 +112,11 @@ CREATE TABLE messages (
   subject varchar(255) NOT NULL default '',
   "from" varchar(255) NOT NULL default '',
   "to" varchar(255) NOT NULL default '',
-  cc varchar(255) NOT NULL default '',
-  date datetime NOT NULL default '0000-00-00 00:00:00',
+  "cc" varchar(255) NOT NULL default '',
+  "date" datetime NOT NULL default '0000-00-00 00:00:00',
   size integer NOT NULL default '0',
   headers text NOT NULL,
   structure text
 );
 
-CREATE INDEX ix_messages_user_id ON messages(user_id);
-CREATE INDEX ix_messages_cache_key ON messages(cache_key);
-CREATE INDEX ix_messages_idx ON messages(idx);
-CREATE INDEX ix_messages_uid ON messages(uid);
+CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
index e725729adeeab6fb686059c87b23197d0938ff4c..f609a3693db6d82647bd20a4256f02045ba15f19 100644 (file)
@@ -1,5 +1,5 @@
 -- RoundCube Webmail update script for SQLite databases
--- Updates from version 0.1-beta2 and older
+-- Updates from version 0.1-stable to 0.1.1
 
 DROP TABLE messages;
 
@@ -14,14 +14,11 @@ CREATE TABLE messages (
   subject varchar(255) NOT NULL default '',
   "from" varchar(255) NOT NULL default '',
   "to" varchar(255) NOT NULL default '',
-  cc varchar(255) NOT NULL default '',
-  date datetime NOT NULL default '0000-00-00 00:00:00',
+  "cc" varchar(255) NOT NULL default '',
+  "date" datetime NOT NULL default '0000-00-00 00:00:00',
   size integer NOT NULL default '0',
   headers text NOT NULL,
   structure text
 );
 
-CREATE INDEX ix_messages_user_id ON messages(user_id);
-CREATE INDEX ix_messages_cache_key ON messages(cache_key);
-CREATE INDEX ix_messages_idx ON messages(idx);
-CREATE INDEX ix_messages_uid ON messages(uid);
+CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
index 9d87a1e38e91321a415349c11ab6c91ac9875c9b..9b5ac453264856071d04ddc19619088abf056119 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -4,12 +4,22 @@ UPDATE instructions
 Follow these instructions if upgrading from a previous version
 of RoundCube Webmail.
 
+from version 0.1-stable
+----------------------------------------
+* replace index.php
+* replace all files in folder /bin/
+* replace all files in folder /program/
+* replace all files in folder /skins/default/
+* run all commands in SQL/[yourdbtype].update.sql
+
+
 from version 0.1-rc2
 ----------------------------------------
 * replace index.php
 * replace all files in folder /bin/
 * replace all files in folder /program/
 * replace all files in folder /skins/default/
+* run all commands in SQL/[yourdbtype].update.sql
 
 
 from version 0.1-rc1
@@ -18,6 +28,7 @@ from version 0.1-rc1
 * replace all files in folder /bin/
 * replace all files in folder /program/
 * replace all files in folder /skins/default/
+* run all commands in SQL/[yourdbtype].update.sql
 * If you have LDAP servers configured you should re-configure
   the config entries using the template given in /config/main.inc.php.dist
 
@@ -28,8 +39,7 @@ from version 0.1-beta2
 * replace all files in folder /bin/
 * replace all files in folder /program/
 * replace all files in folder /skins/default/
-* run all commands in SQL/[yourdbtype].update.sql or
-  re-initalize the database with [yourdbtype].initial.sql
+* re-initalize the database with [yourdbtype].initial.sql
 * add these lines to /config/main.inc.php
    $rcmail_config['draft_autosave'] = 300;
    $rcmail_config['date_today'] = 'H:i';
@@ -43,8 +53,7 @@ form version 0.1-beta
 * replace all files in folder /bin/
 * replace all files in folder /program/
 * replace all files in folder /skins/default/
-* run all commands in SQL/[yourdbtype].update.sql or
-  re-initalize the database with [yourdbtype].initial.sql
+* re-initalize the database with [yourdbtype].initial.sql
 * add this line to /config/db.inc.php
    $rcmail_config['db_persistent'] = false;
 * add these lines to /config/main.inc.php
index 442ef6ed41c12242625d0196a555f02e6a29f191..151439a54fa7ce78beae44d8ab280af2e285f3bb 100644 (file)
@@ -15,7 +15,7 @@
 $rcmail_config = array();
 
 // PEAR database DSN for read/write operations
-// format is db_provider://user:password@host/databse
+// format is db_provider://user:password@host/database 
 // currently supported db_providers: mysql, mysqli, pgsql, sqlite, mssql
 
 $rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
index 8475c816dd36c93fe64477d0cb296f921196b360..962fb4e2f32f83ce2c312a6a05f37d1d6b79af7d 100644 (file)
@@ -180,6 +180,9 @@ $rcmail_config['flag_for_deletion'] = TRUE;
 // 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask)
 $rcmail_config['mdn_requests'] = 0;
 
+// Use this charset as fallback for message decoding
+$rcmail_config['default_charset'] = 'ISO-8859-1';
+
 // Make use of the built-in spell checker. It is based on GoogieSpell.
 // Since Google only accepts connections over https your PHP installatation
 // requires to be compiled with Open SSL support
@@ -200,6 +203,9 @@ $rcmail_config['spellcheck_languages'] = NULL;
 // paths are relative to the RoundCube root folder
 $rcmail_config['generic_message_footer'] = '';
 
+// add a received header to outgoing mails containing the creators IP and hostname
+$rcmail_config['http_received_header'] = false;
+
 // this string is used as a delimiter for message headers when sending
 // leave empty for auto-detection
 $rcmail_config['mail_header_delimiter'] = NULL;
@@ -238,7 +244,11 @@ $rcmail_config['dont_override'] = array();
 $rcmail_config['javascript_config'] = array('read_when_deleted', 'flag_for_deletion');
 
 // try to load host-specific configuration
-$rcmail_config['include_host_config'] = FALSE;
+$rcmail_config['include_host_config'] = false;
+
+// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
+// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!
+$rcmail_config['enable_installer'] = false;
 
 
 /***** these settings can be overwritten by user's preferences *****/
index b83ef45c6e34ccb4bcee96bc739883624746bdbe..02a6201b78473f73b88ffa516082375fdab48ff3 100644 (file)
--- a/index.php
+++ b/index.php
@@ -2,9 +2,9 @@
 /*
  +-----------------------------------------------------------------------+
  | RoundCube Webmail IMAP Client                                         |
- | Version 0.1-20080302                                                  |
+ | Version 0.1.1                                                         |
  |                                                                       |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland                 |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | Redistribution and use in source and binary forms, with or without    |
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: index.php 1162 2008-03-02 13:20:21Z thomasb $
+ $Id: index.php 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
 // application constants
-define('RCMAIL_VERSION', '0.1-trunk');
+define('RCMAIL_VERSION', '0.1.1');
 define('RCMAIL_CHARSET', 'UTF-8');
 define('JS_OBJECT_NAME', 'rcmail');
 
@@ -103,8 +103,12 @@ if (empty($_task) || !in_array($_task, $MAIN_TASKS))
 if ($_action != 'get' && $_action != 'viewsource')
 {
   // use gzip compression if supported
-  if (function_exists('ob_gzhandler') && !ini_get('zlib.output_compression'))
+  if (function_exists('ob_gzhandler')
+    && !ini_get('zlib.output_compression')
+    && ini_get('output_handler') != 'ob_gzhandler')
+  {
     ob_start('ob_gzhandler');
+  }
   else
     ob_start();
 }
@@ -156,7 +160,7 @@ if ($_action=='login' && $_task=='mail')
     $OUTPUT->show_message("cookiesdisabled", 'warning');
   }
   else if ($_SESSION['temp'] && !empty($_POST['_user']) && isset($_POST['_pass']) &&
-           rcmail_login(get_input_value('_user', RCUBE_INPUT_POST),
+           rcmail_login(trim(get_input_value('_user', RCUBE_INPUT_POST), ' '),
               get_input_value('_pass', RCUBE_INPUT_POST, true, 'ISO-8859-1'), $host))
   {
     // create new session ID
@@ -241,7 +245,7 @@ if (!empty($_action))
 if (empty($USER->ID))
 {
   // check if installer is still active
-  if (is_file('./installer/index.php'))
+  if ($CONFIG['enable_installer'] && is_readable('./installer/index.php'))
     $OUTPUT->add_footer('
   <div style="background:#ef9398; border:2px solid #dc5757; padding:0.5em; margin:2em auto; width:50em">
   <h2 style="margin-top:0.2em">Installer script is still accessible</h2>
index 8352364f588348ec187f3acb42a587f9fd8f7ddf..e671c06bd901b5da2901b79657fe3465f237d2a8 100644 (file)
@@ -1,7 +1,7 @@
 <form action="index.php" method="get">
 <?php
 
-$required_php_exts = array('PCRE' => 'pcre', 'Session' => 'session', 'Sockets' => 'sockets');
+$required_php_exts = array('PCRE' => 'pcre', 'Session' => 'session');
 
 $optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv',
     'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt', 'GD' => 'gd');
@@ -37,13 +37,13 @@ echo '<input type="hidden" name="_step" value="' . ($RCI->configured ? 3 : 2) .
 <h3>Checking PHP version</h3>
 <?php
 
-if (phpversion() > 4.3) {
-    $RCI->pass('Version', 'PHP ' . phpversion() . ' detected');
+define('MIN_PHP_VERSION', '4.3.1');
+if (version_compare(PHP_VERSION, MIN_PHP_VERSION, '>=')) {
+    $RCI->pass('Version', 'PHP ' . PHP_VERSION . ' detected');
 }
 else {
-    $RCI->fail('Version', 'PHP Version 4.3.1 or greater is required');
+    $RCI->fail('Version', 'PHP Version ' . MIN_PHP_VERSION . ' or greater is required ' . PHP_VERSION . ' detected');
 }
-
 ?>
 
 <h3>Checking PHP extensions</h3>
@@ -65,7 +65,7 @@ foreach ($required_php_exts AS $name => $ext) {
 
 ?>
 
-<p class="hint">These extensions are <em>optional</em> but recommended to get the best performance:</p>
+<p class="hint">The next couple of extensions are <em>optional</em> but recommended to get the best performance:</p>
 <?php
 
 foreach ($optional_php_exts AS $name => $ext) {
index 5b365a5a5cf37a57c94bd546ebaf02e26a19ce27..dc85faa6cee0b7d8ce51300f4ee15b12dab4c7a1 100644 (file)
@@ -20,10 +20,14 @@ $RCI->config_props = array(
   'htmleditor' => 1,
 );
 
+// allow the current user to get to the next step
+$_SESSION['allowinstaller'] = true;
+
 if (!empty($_POST['submit'])) {
   
   echo '<p class="notice">Copy the following configurations and save them in two files (names above the text box)';
-  echo ' within the <tt>config/</tt> directory of your RoundCube installation.</p>';
+  echo ' within the <tt>config/</tt> directory of your RoundCube installation.<br/>';
+  echo ' Make sure that there are no characters outside the <tt>&lt;?php ?&gt;</tt> brackets when saving the files.</p>';
   
   $textbox = new textarea(array('rows' => 16, 'cols' => 60, 'class' => "configfile"));
   
index 264cefcca9b618f7763176683184e0de915836bd..69e33f87021a579df4de06312cd082182cc885c0 100644 (file)
 
 <div id="content">
 
-<h1>RoundCube Webmail Installer</h1>
-
 <?php
-
   ini_set('error_reporting', E_ALL&~E_NOTICE);
   ini_set('display_errors', 1);
+  
+  session_start();
 
   $docroot = realpath(dirname(__FILE__) . '/../');
   $include_path  = $docroot . '/program/lib' . PATH_SEPARATOR . $docroot . '/program' . PATH_SEPARATOR . ini_get('include_path');
   require_once 'rcube_install.php';
   $RCI = rcube_install::get_instance();
   $RCI->load_config();
+
+  // exit if installation is complete
+  if ($RCI->configured && !$RCI->getprop('enable_installer') && !$_SESSION['allowinstaller']) {
+    header("HTTP/1.0 404 Not Found");
+    echo '<h2 class="error">The installer is disabled!</h2>';
+    echo '<p>To enable it again, set <tt>$rcmail_config[\'enable_installer\'] = true;</tt> in config/main.inc.php</p>';
+    echo '</div></body></html>';
+    exit;
+  }
   
 ?>
 
+<h1>RoundCube Webmail Installer</h1>
+
 <ol id="progress">
 <?php
   
@@ -51,7 +61,6 @@
 </ol>
 
 <?php
-
 $include_steps = array('welcome.html', 'check.php', 'config.php', 'test.php');
 
 if ($include_steps[$RCI->step]) {
index 8caa79d0233e82969077780e298ca2685b0fb1da..12cd5c10d4957242f354bd05f734ff1c8bcb673e 100644 (file)
@@ -171,7 +171,7 @@ class rcube_install
         $out);
     }
     
-    return $out;
+    return trim($out);
   }
   
   
@@ -305,6 +305,8 @@ class rcube_install
         if (eregi(';$', trim($line))) {
           $DB->query($buff);
           $buff = '';
+          if ($this->get_error())
+            break;
         }
       }
     }
index 7e99039910185b7ed3389ea0851b09c742346d66..5be343a318ea13ffebb5f4bfea7dbfb63227274e 100644 (file)
@@ -31,11 +31,38 @@ else if (!$read_db) {
 
 ?>
 
+<h3>Check if directories are writable</h3>
+<p>RoundCube may need to write/save files into these directories</p>
+<?php
+
+if ($RCI->configured) {
+    $pass = false;
+    foreach (array($RCI->config['temp_dir'],$RCI->config['log_dir']) as $dir) {
+        $dirpath = $dir{0} == '/' ? $dir : $docroot . '/' . $dir;
+        if (is_writable(realpath($dirpath))) {
+            $RCI->pass($dir);
+            $pass = true;
+        }
+        else {
+            $RCI->fail($dir, 'not writeable for the webserver');
+        }
+        echo '<br />';
+    }
+    
+    if (!$pass)
+        echo '<p class="hint">Use <tt>chmod</tt> or <tt>chown</tt> to grant write privileges to the webserver</p>';
+}
+else {
+    $RCI->fail('Config', 'Could not read config files');
+}
+
+?>
+
 <h3>Check configured database settings</h3>
 <?php
 
 $db_working = false;
-if (!empty($RCI->config)) {
+if ($RCI->configured) {
     if (!empty($RCI->config['db_backend']) && !empty($RCI->config['db_dsnw'])) {
 
         echo 'Backend: ';
@@ -53,7 +80,7 @@ if (!empty($RCI->config)) {
         }
         else {
             $RCI->fail('DSN (write)', $db_error_msg);
-            echo '<p class="hint">Make sure that the configured database extists and that the user as write privileges<br />';
+            echo '<p class="hint">Make sure that the configured database exists and that the user has write privileges<br />';
             echo 'DSN: ' . $RCI->config['db_dsnw'] . '</p>';
             if ($RCI->config['db_backend'] == 'mdb2')
               echo '<p class="hint">There are known problems with MDB2 running on PHP 4. Try setting <tt>db_backend</tt> to \'db\' instead</p>';
@@ -93,12 +120,12 @@ if ($db_working) {
 // more database tests
 if ($db_working) {
     // write test
-    $db_write = $DB->query("INSERT INTO {$RCI->config['db_table_cache']} (session_id, cache_key, data, user_id) VALUES (?, ?, ?, 0)", '1234567890abcdef', 'test', 'test');
-    $insert_id = $DB->insert_id($RCI->config['db_sequence_cache']);
-    
-    if ($db_write && $insert_id) {
+    $insert_id = md5(uniqid());
+    $db_write = $DB->query("INSERT INTO {$RCI->config['db_table_session']} (sess_id, created, ip, vars) VALUES (?, ".$DB->now().", '127.0.0.1', 'foo')", $insert_id);
+
+    if ($db_write) {
       $RCI->pass('DB Write');
-      $DB->query("DELETE FROM {$RCI->config['db_table_cache']} WHERE cache_id=?", $insert_id);
+      $DB->query("DELETE FROM {$RCI->config['db_table_session']} WHERE sess_id=?", $insert_id);
     }
     else {
       $RCI->fail('DB Write', $RCI->get_error());
@@ -137,11 +164,11 @@ if ($RCI->getprop('smtp_server')) {
   $pass = $RCI->getprop('smtp_pass', '(none)');
   
   if ($user == '%u') {
-    $user_field = new textfield(array('name' => '_user'));
-    $user = $user_field->show($_POST['_user']);
+    $user_field = new textfield(array('name' => '_smtp_user'));
+    $user = $user_field->show($_POST['_smtp_user']);
   }
   if ($pass == '%p') {
-    $pass_field = new passwordfield(array('name' => '_pass'));
+    $pass_field = new passwordfield(array('name' => '_smtp_pass'));
     $pass = $pass_field->show();
   }
   
@@ -168,8 +195,8 @@ if (isset($_POST['sendmail']) && !empty($_POST['_from']) && !empty($_POST['_to']
       preg_match('/^' . $RCI->email_pattern . '$/i', trim($_POST['_to']))) {
   
     $headers = array(
-      'From' => trim($_POST['_from']),
-      'To'  => trim($_POST['_to']),
+      'From'    => trim($_POST['_from']),
+      'To'      => trim($_POST['_to']),
       'Subject' => 'Test message from RoundCube',
     );
 
@@ -180,11 +207,13 @@ if (isset($_POST['sendmail']) && !empty($_POST['_from']) && !empty($_POST['_to']
     if ($RCI->getprop('smtp_server')) {
       $CONFIG = $RCI->config;
       
-      if (!empty($_POST['_user']))
-        $CONFIG['smtp_user'] = $_POST['_user'];
-      if (!empty($_POST['_pass']))
-        $CONFIG['smtp_pass'] = $_POST['_pass'];
-      
+      if (!empty($_POST['_smtp_user'])) {
+        $CONFIG['smtp_user'] = $_POST['_smtp_user'];
+      }
+      if (!empty($_POST['_smtp_pass'])) {
+        $CONFIG['smtp_pass'] = $_POST['_smtp_pass'];
+      }
+
       $mail_object  = new rc_mail_mime();
       $send_headers = $mail_object->headers($headers);
       
index a0c88e5e99fcb90cd5a60b99fd8a2714eaf4828e..200f680f3580aaca9469eb8d29d6b048e46a99fa 100644 (file)
@@ -10,7 +10,6 @@
     <ul>
       <li>PCRE (perl compatible regular expression)</li>
       <li>Session support</li>
-      <li>Sockets enabled</li>
       <li>Libiconv (recommended)</li>
       <li>OpenSSL (recommended)</li>
       <li>FileInfo (optional)</li>
index 5af2379bb192e1bc0f2252305048ce1ad12b2018..446780cdc798ef59165733642af00974654b34fb 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: main.inc 1145 2008-02-27 13:39:22Z thomasb $
+ $Id: main.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -70,6 +70,7 @@ function rcmail_startup($task='mail')
   
   $DB = new $dbclass($CONFIG['db_dsnw'], $CONFIG['db_dsnr'], $CONFIG['db_persistent']);
   $DB->sqlite_initials = $INSTALL_PATH.'SQL/sqlite.initial.sql';
+  $DB->set_debug((bool)$CONFIG['sql_debug']);
   $DB->db_connect('w');
 
   // use database for storing session data
@@ -285,6 +286,9 @@ function rcmail_imap_init($connect=FALSE)
 function rcmail_set_imap_prop()
   {
   global $CONFIG, $IMAP;
+  
+  if (!empty($CONFIG['default_charset']))
+    $IMAP->set_charset($CONFIG['default_charset']);
 
   // set root dir from config
   if (!empty($CONFIG['imap_root']))
@@ -951,22 +955,23 @@ function rcube_charset_convert($str, $from, $to=NULL)
     'X-USER-DEFINED' => 'ISO-8859-15',
     'ISO-8859-8-I'   => 'ISO-8859-8',
     'KS_C_5601-1987' => 'EUC-KR',
-    'GB2312'         => 'GB18030'
   );
 
   // convert charset using iconv module  
   if (function_exists('iconv') && $from != 'UTF-7' && $to != 'UTF-7')
     {
+    $aliases['GB2312'] = 'GB18030';
     return iconv(($aliases[$from] ? $aliases[$from] : $from), ($aliases[$to] ? $aliases[$to] : $to) . "//IGNORE", $str);
     }
 
   // convert charset using mbstring module  
   if ($MBSTRING)
     {
-    $mb_map = $aliases + array('UTF-7' => 'UTF7-IMAP');
+    $aliases['UTF-7'] = 'UTF7-IMAP';
+    $aliases['WINDOWS-1257'] = 'ISO-8859-13';
     
     // return if convert succeeded
-    if (($out = mb_convert_encoding($str, ($mb_map[$to] ? $mb_map[$to] : $to), ($mb_map[$from] ? $mb_map[$from] : $from))) != '')
+    if (($out = mb_convert_encoding($str, ($aliases[$to] ? $aliases[$to] : $to), ($aliases[$from] ? $aliases[$from] : $from))) != '')
       return $out;
     }
     
@@ -1368,6 +1373,7 @@ function rcmail_mail_domain($host)
 
 /**
  * Replace all css definitions with #container [def]
+ * and remove css-inlined scripting
  *
  * @param string CSS source code
  * @param string Container ID to use as prefix
@@ -1377,6 +1383,10 @@ function rcmail_mod_css_styles($source, $container_id, $base_url = '')
   {
   $a_css_values = array();
   $last_pos = 0;
+  
+  // ignore the whole block if evil styles are detected
+  if (stristr($source, 'expression') || stristr($source, 'behavior'))
+    return '';
 
   // cut out all contents between { and }
   while (($pos = strpos($source, '{', $last_pos)) && ($pos2 = strpos($source, '}', $pos)))
@@ -1387,7 +1397,7 @@ function rcmail_mod_css_styles($source, $container_id, $base_url = '')
     $last_pos = $pos+2;
   }
 
-  // remove html commends and add #container to each tag selector.
+  // remove html comments and add #container to each tag selector.
   // also replace body definition because we also stripped off the <body> tag
   $styles = preg_replace(
     array(
@@ -1558,7 +1568,10 @@ function format_date($date, $format=NULL)
 function format_email_recipient($email, $name='')
   {
   if ($name && $name != $email)
-    return sprintf('%s <%s>', strpos($name, ",") ? '"'.$name.'"' : $name, $email);
+    {
+    // Special chars as defined by RFC 822 need to in quoted string (or escaped).
+    return sprintf('%s <%s>', preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $name) ? '"'.addcslashes($name, '"').'"' : $name, $email);
+    }
   else
     return $email;
   }
@@ -1783,10 +1796,6 @@ function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $
         }
       }
 
-    // add unread message count display
-    if ($unread_count = $IMAP->messagecount($folder['id'], 'RECENT', ($folder['id']==$mbox_name)))
-      $foldername .= sprintf(' (%d)', $unread_count);
-
     // make folder name safe for ids and class names
     $folder_id = preg_replace('/[^A-Za-z0-9\-_]/', '', $folder['id']);
     $class_name = preg_replace('/[^a-z0-9\-_]/', '', $folder_class ? $folder_class : strtolower($folder['id']));
index 38788161d49f03c77ee607cac86abd4209bc671f..c84dd8471645f98f207a98267064f53584b20ee1 100644 (file)
@@ -17,7 +17,7 @@
  |         Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_db.inc 1089 2008-02-15 13:20:07Z till $
+ $Id: rcube_db.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -153,8 +153,18 @@ class rcube_db
     $this->db_handle = $this->dsn_connect($dsn);
     $this->db_connected = $this->db_handle ? TRUE : FALSE;
     }
+
+
+  /**
+   * Activate/deactivate debug mode
+   * (not implemented)
+   */
+  function set_debug($dbg = true)
+  {
     
-    
+  }
+
+
   /**
    * Getter for error state
    *
index a41f231f1e1045eb49d477e024dece8a4f23812a..51163e4ed3125879d0766b26ee2e3c8b05615542 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_imap.inc 1050 2008-02-12 14:06:26Z thomasb $
+ $Id: rcube_imap.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -51,6 +51,7 @@ class rcube_imap
   var $sort_order = 'DESC';
   var $delimiter = NULL;
   var $caching_enabled = FALSE;
+  var $default_charset = 'ISO-8859-1';
   var $default_folders = array('INBOX');
   var $default_folders_lc = array('inbox');
   var $cache = array();
@@ -203,6 +204,20 @@ class rcube_imap
     }
 
 
+  /**
+   * Set default message charset
+   *
+   * This will be used for message decoding if a charset specification is not available
+   *
+   * @param  string   Charset string
+   * @access public
+   */
+  function set_charset($cs)
+    {
+    $this->default_charset = $ch;
+    }
+
+
   /**
    * This list of folders will be listed above all other folders
    *
@@ -1146,7 +1161,7 @@ class rcube_imap
       
     // normalize filename property
     if ($filename_mime = $struct->d_parameters['filename'] ? $struct->d_parameters['filename'] : $struct->ctype_parameters['name'])
-      $struct->filename = $this->decode_mime_string($filename_mime);
+      $struct->filename = rcube_imap::decode_mime_string($filename_mime, $this->default_charset);
     else if ($filename_encoded = $struct->d_parameters['filename*'] ? $struct->d_parameters['filename*'] : $struct->ctype_parameters['name*'])
     {
       // decode filename according to RFC 2231, Section 4
@@ -1154,7 +1169,7 @@ class rcube_imap
       $struct->filename = rcube_charset_convert(urldecode($filename_urlencoded), $filename_charset);
     }
     else if (!empty($struct->headers['content-description']))
-      $struct->filename = $this->decode_mime_string($struct->headers['content-description']);
+      $struct->filename = rcube_imap::decode_mime_string($struct->headers['content-description'], $this->default_charset);
       
     return $struct;
     }
@@ -1241,9 +1256,9 @@ class rcube_imap
       // convert charset (if text or message part)
       if ($o_part->ctype_primary=='text' || $o_part->ctype_primary=='message')
         {
-        // assume ISO-8859-1 if no charset specified
+        // assume default if no charset specified
         if (empty($o_part->charset))
-          $o_part->charset = 'ISO-8859-1';
+          $o_part->charset = $this->default_charset;
 
         $body = rcube_charset_convert($body, $o_part->charset);
         }
@@ -1633,16 +1648,14 @@ class rcube_imap
   /**
    * Subscribe to a specific mailbox(es)
    *
-   * @param string Mailbox name(s)
+   * @param array Mailbox name(s)
    * @return boolean True on success
    */ 
-  function subscribe($mbox_name)
+  function subscribe($a_mboxes)
     {
-    if (is_array($mbox_name))
-      $a_mboxes = $mbox_name;
-    else if (is_string($mbox_name) && strlen($mbox_name))
-      $a_mboxes = explode(',', $mbox_name);
-    
+    if (!is_array($a_mboxes))
+      $a_mboxes = array($a_mboxes);
+
     // let this common function do the main work
     return $this->_change_subscription($a_mboxes, 'subscribe');
     }
@@ -1651,15 +1664,13 @@ class rcube_imap
   /**
    * Unsubscribe mailboxes
    *
-   * @param string Mailbox name(s)
+   * @param array Mailbox name(s)
    * @return boolean True on success
    */
-  function unsubscribe($mbox_name)
+  function unsubscribe($a_mboxes)
     {
-    if (is_array($mbox_name))
-      $a_mboxes = $mbox_name;
-    else if (is_string($mbox_name) && strlen($mbox_name))
-      $a_mboxes = explode(',', $mbox_name);
+    if (!is_array($a_mboxes))
+      $a_mboxes = array($a_mboxes);
 
     // let this common function do the main work
     return $this->_change_subscription($a_mboxes, 'unsubscribe');
@@ -2213,6 +2224,9 @@ class rcube_imap
    */
   function remove_message_cache($key, $index)
     {
+    if (!$this->caching_enabled)
+      return;
+    
     $this->db->query(
       "DELETE FROM ".get_table_name('messages')."
        WHERE  user_id=?
@@ -2228,6 +2242,9 @@ class rcube_imap
    */
   function clear_message_cache($key, $start_index=1)
     {
+    if (!$this->caching_enabled)
+      return;
+    
     $this->db->query(
       "DELETE FROM ".get_table_name('messages')."
        WHERE  user_id=?
@@ -2257,6 +2274,8 @@ class rcube_imap
     {
     $a = $this->_parse_address_list($input, $decode);
     $out = array();
+    // Special chars as defined by RFC 822 need to in quoted string (or escaped).
+    $special_chars = '[\(\)\<\>\\\.\[\]@,;:"]';
     
     if (!is_array($a))
       return $out;
@@ -2270,7 +2289,7 @@ class rcube_imap
       $address = $val['address'];
       $name = preg_replace(array('/^[\'"]/', '/[\'"]$/'), '', trim($val['name']));
       if ($name && $address && $name != $address)
-        $string = sprintf('%s <%s>', strpos($name, ',')!==FALSE ? '"'.$name.'"' : $name, $address);
+        $string = sprintf('%s <%s>', preg_match("/$special_chars/", $name) ? '"'.addcslashes($name, '"').'"' : $name, $address);
       else if ($address)
         $string = $address;
       else if ($name)
@@ -2297,7 +2316,7 @@ class rcube_imap
    */
   function decode_header($input, $remove_quotes=FALSE)
     {
-    $str = $this->decode_mime_string((string)$input);
+    $str = rcube_imap::decode_mime_string((string)$input, $this->default_charset);
     if ($str{0}=='"' && $remove_quotes)
       $str = str_replace('"', '', $str);
     
@@ -2320,6 +2339,10 @@ class rcube_imap
     $pos = strpos($input, '=?');
     if ($pos !== false)
       {
+      // rfc: all line breaks or other characters not found in the Base64 Alphabet must be ignored by decoding software
+      // delete all blanks between MIME-lines, differently we can receive unnecessary blanks and broken utf-8 symbols
+      $input = preg_replace("/\?=\s+=\?/", '?==?', $input);
+
       $out = substr($input, 0, $pos);
   
       $end_cs_pos = strpos($input, "?", $pos+2);
@@ -2414,7 +2437,7 @@ class rcube_imap
       return rcube_charset_convert($body, $ctype_param['charset']);
 
     // defaults to what is specified in the class header
-    return rcube_charset_convert($body,  'ISO-8859-1');
+    return rcube_charset_convert($body,  $this->default_charset);
     }
 
 
index f1b21085cc88b74517991d02f51bcc9f1a8819a4..bdfcc3182368a520945b1091200183a60a57bf65 100644 (file)
@@ -14,7 +14,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_ldap.inc 1152 2008-02-28 20:01:57Z thomasb $
+ $Id: rcube_ldap.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -119,20 +119,20 @@ class rcube_ldap
    */
   function bind($dn, $pass)
   {
-    if (!$this->conn)
+    if (!$this->conn) {
       return false;
+    }
     
-    if (@ldap_bind($this->conn, $dn, $pass))
+    if (ldap_bind($this->conn, $dn, $pass)) {
       return true;
-    else
-    {
-      raise_error(array(
+    }
+
+    raise_error(array(
         'code' => ldap_errno($this->conn),
         'type' => 'ldap',
         'message' => "Bind failed for dn=$dn: ".ldap_error($this->conn)),
-      true);
-    }
-    
+        true);
+
     return false;
   }
 
index 0b2feffbe1839f1f2fc9824210d55e3eaa750f5b..3f13a75e10e326f203bc0b05cd9f777e24c20a3f 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Lukas Kahwe Smith <smith@pooteeweet.org>                      |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_mdb2.inc 1084 2008-02-14 23:12:23Z till $
+ $Id: rcube_mdb2.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -48,6 +48,7 @@ class rcube_mdb2
   var $db_handle = 0;         // Connection handle
   var $db_error = false;
   var $db_error_msg = '';
+  var $debug_mode = false;
 
   var $a_query_results = array('dummy');
   var $last_res_id = 0;
@@ -94,8 +95,11 @@ class rcube_mdb2
   function dsn_connect($dsn)
     {
     // Use persistent connections if available
-    $dbh = MDB2::connect($dsn,
-      array('persistent' => $this->db_pconn,
+    $dbh = MDB2::connect($dsn, array(
+        'persistent' => $this->db_pconn,
+        'emulate_prepared' => $this->debug_mode,
+        'debug' => $this->debug_mode,
+        'debug_handler' => 'mdb2_debug_handler',
         'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL));
 
     if (MDB2::isError($dbh))
@@ -156,6 +160,21 @@ class rcube_mdb2
     }
 
 
+  /**
+   * Activate/deactivate debug mode
+   *
+   * @param boolean True if SQL queries should be logged
+   */
+  function set_debug($dbg = true)
+  {
+    $this->debug_mode = $dbg;
+    if ($this->db_connected)
+    {
+      $this->db_handle->setOption('debug', $dbg);
+      $this->db_handle->setOption('emulate_prepared', $dbg);
+    }
+  }
+
     
   /**
    * Getter for error state
@@ -413,6 +432,22 @@ class rcube_mdb2
     return $this->db_handle->quoteIdentifier($str);
     }
 
+  /**
+   * Escapes a string
+   *
+   * @param  string  The string to be escaped
+   * @return string  The escaped string
+   * @access public
+   * @since  0.1.1
+   */
+  function escapeSimple($str)
+    {
+    if (!$this->db_handle)
+      $this->db_connect('r');
+   
+    return $this->db_handle->escape($str);
+    }
+
 
   /**
    * Return SQL function for current time and date
@@ -569,4 +604,17 @@ class rcube_mdb2
 
   }  // end class rcube_db
 
+
+/* this is our own debug handler for the MDB2 connection */
+function mdb2_debug_handler(&$db, $scope, $message, $context = array())
+{
+  if ($scope != 'prepare')
+  {
+    $debug_output = $scope . '('.$db->db_index.'): ';
+    $debug_output .= $message . $db->getOption('log_line_break');
+    write_log('sqllog', $debug_output);
+  }
+}
+
+
 ?>
index adef24ca1238db778304b57ce0505a8eb6796381..c889dc9e9f175daf40935944457fbb6454565d81 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: rcube_shared.inc 1078 2008-02-14 01:33:02Z till $
+ $Id: rcube_shared.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -262,7 +262,10 @@ function send_modified_header($mdate, $etag=null)
     header("Etag: $etag");
   
   if ($iscached)
+    {
+    ob_end_clean();
     exit;
+    }
 }
 
 
index 41b424f1dcdbcc83eb458e52a4bfafd92afa47aa..e748758a9976be44cb013368a6b160e5ed13abe4 100644 (file)
@@ -361,7 +361,7 @@ class rcube_user
 
     // try to resolve user in virtusertable
     if (!empty($CONFIG['virtuser_file']) && !strpos($user, '@'))
-      $user_email = self::user2email($user);
+      $user_email = rcube_user::user2email($user);
 
     $DB->query(
       "INSERT INTO ".get_table_name('users')."
@@ -468,7 +468,7 @@ class rcube_user
       $arr = preg_split('/\s+/', $data);
       if (count($arr) > 0)
       {
-        $email = trim($arr[0]);
+        $email = trim(str_replace('\\@', '@', $arr[0]));
         break;
       }
     }
index 19dbc351740735eb2e05f218337f71ecd3d63766..1ddb6da689b3c767d3192da42d5029f68353c1ee 100644 (file)
@@ -13,7 +13,7 @@
  | Requires: common.js, list.js                                          |
  +-----------------------------------------------------------------------+
 
-  $Id: app.js 1170 2008-03-03 09:06:53Z thomasb $
+  $Id: app.js 1255 2008-04-05 12:49:21Z thomasb $
 */
 
 
@@ -132,7 +132,7 @@ function rcube_webmail()
           this.message_list.addEventListener('dblclick', function(o){ p.msglist_dbl_click(o); });
           this.message_list.addEventListener('keypress', function(o){ p.msglist_keypress(o); });
           this.message_list.addEventListener('select', function(o){ p.msglist_select(o); });
-          this.message_list.addEventListener('dragstart', function(o){ p.drag_active = true; });
+          this.message_list.addEventListener('dragstart', function(o){ p.drag_active = true; if (p.preview_timer) clearTimeout(p.preview_timer); });
           this.message_list.addEventListener('dragend', function(o){ p.drag_active = false; });
 
           this.message_list.init();
@@ -202,7 +202,7 @@ function rcube_webmail()
           }
 
         if (this.env.messagecount)
-          this.enable_command('select-all', 'select-none', 'sort', 'expunge', true);
+          this.enable_command('select-all', 'select-none', 'expunge', true);
 
         if (this.env.messagecount && (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox))
           this.enable_command('purge', true);
@@ -314,7 +314,7 @@ function rcube_webmail()
         var input_user = rcube_find_object('rcmloginuser');
         var input_pass = rcube_find_object('rcmloginpwd');
         if (input_user)
-          input_user.onkeypress = function(e){ return rcmail.login_user_keypress(e); };
+          input_user.onkeyup = function(e){ return rcmail.login_user_keyup(e); };
         if (input_user && input_user.value=='')
           input_user.focus();
         else if (input_pass)
@@ -712,7 +712,7 @@ function rcube_webmail()
         break;
 
       case 'load-attachment':
-        var qstring = '_mbox='+this.env.mailbox+'&_uid='+this.env.uid+'&_part='+props.part;
+        var qstring = '_mbox='+urlencode(this.env.mailbox)+'&_uid='+this.env.uid+'&_part='+props.part;
         
         // open attachment in frame if it's of a supported mimetype
         if (this.env.uid && props.mimetype && find_in_array(props.mimetype, this.mimetypes)>=0)
@@ -892,7 +892,7 @@ function rcube_webmail()
           {
             setTimeout(function(){ ref.printwin.focus(); }, 20);
             if (this.env.action != 'show')
-              this.toggle_read_status('read', [uid]);
+              this.mark_message('read', uid);
           }
         }
         break;
@@ -1138,7 +1138,7 @@ function rcube_webmail()
       }
 
     // start timer for message preview (wait for double click)
-    if (selected && this.env.contentframe)
+    if (selected && this.env.contentframe && !list.multi_selecting)
       this.preview_timer = setTimeout(function(){ ref.msglist_get_preview(); }, this.dblclick_time + 10);
     else if (this.env.contentframe)
       this.show_contentframe(false);
@@ -1486,6 +1486,7 @@ function rcube_webmail()
   this.mark_message = function(flag, uid)
     {
     var a_uids = new Array();
+    var r_uids = new Array();
     var selection = this.message_list ? this.message_list.get_selection() : new Array();
     
     if (uid)
@@ -1496,26 +1497,35 @@ function rcube_webmail()
       {
       for (var id, n=0; n<selection.length; n++)
         {
-        id = selection[n];
-        if ((flag=='read' && this.message_list.rows[id].unread) || (flag=='unread' && !this.message_list.rows[id].unread)
-            || (flag=='delete' && !this.message_list.rows[id].deleted) || (flag=='undelete' && this.message_list.rows[id].deleted))
-          a_uids[a_uids.length] = id;
+         a_uids[a_uids.length] = selection[n];
         }
       }
+
+    for (var id, n=0; n<a_uids.length; n++)
+      {
+        id = a_uids[n];
+        if ((flag=='read' && this.message_list.rows[id].unread) 
+           || (flag=='unread' && !this.message_list.rows[id].unread)
+            || (flag=='delete' && !this.message_list.rows[id].deleted)
+           || (flag=='undelete' && this.message_list.rows[id].deleted))
+         {
+           r_uids[r_uids.length] = id;
+         }
+      }
     
     // nothing to do
-    if (!a_uids.length)
+    if (!r_uids.length)
       return;
       
     switch (flag)
       {
         case 'read':
         case 'unread':
-          this.toggle_read_status(flag, a_uids);
+          this.toggle_read_status(flag, r_uids);
           break;
         case 'delete':
         case 'undelete':
-          this.toggle_delete_status(a_uids);
+          this.toggle_delete_status(r_uids);
           break;
       }
     };
@@ -1556,7 +1566,7 @@ function rcube_webmail()
           rows[uid].icon.src = icn_src;
         }
       }
-      
+
     this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag='+flag);
   };
   
@@ -1564,7 +1574,7 @@ function rcube_webmail()
   this.toggle_delete_status = function(a_uids)
   {
     if (this.env.read_when_deleted)
-      this.toggle_read_status('read',a_uids);
+      this.mark_message('read',a_uids);
 
     // if deleting message from "view message" don't bother with delete icon
     if (this.env.action == "show")
@@ -1671,7 +1681,7 @@ function rcube_webmail()
   /*********************************************************/
 
   // handler for keyboard events on the _user field
-  this.login_user_keypress = function(e)
+  this.login_user_keyup = function(e)
   {
     var key = rcube_event.get_keycode(e);
     var elm;
@@ -2010,7 +2020,7 @@ function rcube_webmail()
       // reset vars
       this.env.current_page = 1;
       this.set_busy(true, 'searching');
-      this.http_request('search', '_q='+urlencode(value)+(this.env.mailbox ? '&_mbox='+this.env.mailbox : '')+(this.env.source ? '&_source='+urlencode(this.env.source) : ''), true);
+      this.http_request('search', '_q='+urlencode(value)+(this.env.mailbox ? '&_mbox='+urlencode(this.env.mailbox) : '')+(this.env.source ? '&_source='+urlencode(this.env.source) : ''), true);
       }
     return true;
     };
@@ -2681,6 +2691,10 @@ function rcube_webmail()
       {
       this.http_post('delete-folder', '_mboxes='+urlencode(folder));
       this.set_env('folder', null);
+
+      if (this.gui_objects.createfolderhint)
+        this.gui_objects.createfolderhint.innerHTML = '';
+
       }
     };
 
@@ -2816,60 +2830,18 @@ function rcube_webmail()
 
   this.subscribe_folder = function(folder)
     {
-    var form;
-    if ((form = this.gui_objects.editform) && form.elements['_unsubscribed'])
-      this.change_subscription('_unsubscribed', '_subscribed', 'subscribe');
-    else if (folder)
-      this.http_post('subscribe', '_mboxes='+urlencode(folder));
+    if (folder)
+      this.http_post('subscribe', '_mbox='+urlencode(folder));
     };
 
 
   this.unsubscribe_folder = function(folder)
     {
-    var form;
-    if ((form = this.gui_objects.editform) && form.elements['_subscribed'])
-      this.change_subscription('_subscribed', '_unsubscribed', 'unsubscribe');
-    else if (folder)
-      this.http_post('unsubscribe', '_mboxes='+urlencode(folder));
+    if (folder)
+      this.http_post('unsubscribe', '_mbox='+urlencode(folder));
     };
     
 
-  this.change_subscription = function(from, to, action)
-    {
-    var form;
-    if (form = this.gui_objects.editform)
-      {
-      var a_folders = new Array();
-      var list_from = form.elements[from];
-
-      for (var i=0; list_from && i<list_from.options.length; i++)
-        {
-        if (list_from.options[i] && list_from.options[i].selected)
-          {
-          a_folders[a_folders.length] = list_from.options[i].value;
-          list_from[i] = null;
-          i--;
-          }
-        }
-
-      // yes, we have some folders selected
-      if (a_folders.length)
-        {
-        var list_to = form.elements[to];
-        var index;
-        
-        for (var n=0; n<a_folders.length; n++)
-          {
-          index = list_to.options.length;
-          list_to[index] = new Option(a_folders[n]);
-          }
-          
-        this.http_post(action, '_mboxes='+urlencode(a_folders.join(',')));
-        }
-      }
-      
-    };
-
   // helper method to find a specific mailbox row ID
   this.get_folder_row_id = function(folder)
     {
@@ -3491,12 +3463,17 @@ function rcube_webmail()
 
       case 'list':
         if (this.env.messagecount)
-          this.enable_command('purge', (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox));
-        this.msglist_select(this.message_list);
+         this.enable_command('purge', (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox));
+
+       this.msglist_select(this.message_list);
+
+      case 'getunread':
+       this.enable_command('sort', (this.env.messagecount > 0));
 
       case 'expunge':
         this.enable_command('select-all', 'select-none', 'expunge', this.env.messagecount ? true : false);
         break;
+
       }
 
     request_obj.reset();
index e42d3f6b7bc7bbb9b89c5701e48cc89d457efde5..2b3c7a8f66529c582b6c0f26fe89cc40fee27d10 100644 (file)
@@ -35,6 +35,7 @@ function rcube_list_widget(list, p)
   this.subject_col = -1;
   this.shiftkey = false;
   this.multiselect = false;
+  this.multi_selecting = false;
   this.draggable = false;
   this.keyboard = false;
   this.toggleselect = false;
@@ -319,6 +320,7 @@ select_row: function(id, mod_key, with_mouse)
   {
     this.shift_start = id;
     this.highlight_row(id, false);
+    this.multi_selecting = false;
   }
   else
   {
@@ -341,6 +343,7 @@ select_row: function(id, mod_key, with_mouse)
         this.highlight_row(id, false);
         break;
     }
+    this.multi_selecting = true;
   }
 
   // trigger event if selection changed
@@ -456,6 +459,8 @@ select_all: function(filter)
   if (this.selection.join(',') != select_before)
     this.trigger_event('select');
 
+  this.focus();
+
   return true;
 },
 
@@ -508,7 +513,7 @@ highlight_row: function(id, multiple)
 {
   if (this.rows[id] && !multiple)
   {
-    if (!this.in_selection(id))
+    if (this.selection.length > 1 || !this.in_selection(id))
     {
       this.clear_selection();
       this.selection[0] = id;
diff --git a/program/js/tiny_mce/themes/advanced/css/editor_content.css b/program/js/tiny_mce/themes/advanced/css/editor_content.css
new file mode 100644 (file)
index 0000000..182e791
--- /dev/null
@@ -0,0 +1,58 @@
+/* This file contains the CSS data for the editable area(iframe) of TinyMCE */\r
+/* You can extend this CSS by adding your own CSS file with the the content_css option */\r
+\r
+body, td, pre {\r
+       font-family: Verdana, Arial, Helvetica, sans-serif;\r
+       font-size: 10px;\r
+}\r
+\r
+body {\r
+       background-color: #FFFFFF;\r
+}\r
+\r
+.mceVisualAid {\r
+       border: 1px dashed #BBBBBB !important;\r
+}\r
+\r
+div.mceVisualAid {\r
+       background-image:url('../images/spacer.gif');\r
+       visibility: visible !important;\r
+}\r
+\r
+.mceItemAnchor {\r
+       width: 12px;\r
+       line-height: 6px;\r
+       overflow: hidden;\r
+       padding-left: 12px;\r
+       background-image: url('../images/anchor_symbol.gif');\r
+       background-position: bottom;\r
+       background-repeat: no-repeat;\r
+}\r
+\r
+/* Important is needed in Gecko browsers inorder to style links */\r
+/*\r
+a {\r
+       color: green !important;\r
+}\r
+*/\r
+\r
+/* Style selection range colors in Gecko browsers */\r
+/*\r
+::-moz-selection {\r
+       background-color: red;\r
+       color: green;\r
+}\r
+*/\r
+\r
+/* MSIE specific */\r
+\r
+* html body {\r
+       scrollbar-3dlight-color: #F0F0EE;\r
+       scrollbar-arrow-color: #676662;\r
+       scrollbar-base-color: #F0F0EE;\r
+       scrollbar-darkshadow-color: #DDDDDD;\r
+       scrollbar-face-color: #E0E0DD;\r
+       scrollbar-highlight-color: #F0F0EE;\r
+       scrollbar-shadow-color: #F0F0EE;\r
+       scrollbar-track-color: #F5F5F5;\r
+}\r
index e9b46847d7c6ab8f7de9b7d7fce6df96e2da00ff..96353dd2f844e4c2042f9a423d9df555f3dcc387 100644 (file)
@@ -161,18 +161,19 @@ function iil_xor($string, $string2) {
 }
 
 function iil_ReadLine($fp, $size) {
-       $line = '';
-       if ($fp) {
-               do {
-                   // FIXME: hardcode size?
-                       $buffer = fgets($fp, 2048);
-                       if ($buffer === false) {
-                               break;
-            }
-                       $line .= $buffer;
-               } while ($buffer[strlen($buffer)-1]!="\n");
-       }
-       return $line;
+    $line = '';
+    if (!$fp) {
+        return $line;
+    }
+    do {
+       // FIXME: hardcode size?
+        $buffer = fgets($fp, 2048);
+        if ($buffer === false) {
+            break;
+        }
+        $line .= $buffer;
+    } while ($buffer[strlen($buffer)-1] != "\n");
+    return $line;
 }
 
 function iil_MultLine($fp, $line) {
@@ -192,13 +193,16 @@ function iil_MultLine($fp, $line) {
 }
 
 function iil_ReadBytes($fp, $bytes) {
-       $data = '';
-       $len  = 0;
-       do {
-               $data.=fread($fp, $bytes-$len);
-               $len = strlen($data);
-       } while ($len<$bytes);
-       return $data;
+    $data = '';
+    $len  = 0;
+    do {
+        $data .= fread($fp, $bytes-$len);
+        if ($len == strlen($data)) {
+            break; //nothing was read -> exit to avoid apache lockups
+        }
+        $len = strlen($data);
+    } while ($len < $bytes);
+    return $data;
 }
 
 function iil_ReadReply($fp) {
@@ -1596,7 +1600,8 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false)
                                while ( list($lines_key, $str) = each($lines) ) {
                                        list($field, $string) = iil_SplitHeaderLine($str);
                                        
-                                       $field = strtolower($field);
+                                       $field  = strtolower($field);
+                                        $string = ereg_replace("\n[[:space:]]*"," ",$string); 
                                        
                                        switch ($field) {
                                        case 'date';
@@ -1607,22 +1612,22 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false)
                                                $result[$id]->from = $string;
                                                break;
                                        case 'to':
-                                               $result[$id]->to = str_replace("\n", " ", $string);
+                                               $result[$id]->to = $string;
                                                break;
                                        case 'subject':
-                                               $result[$id]->subject = str_replace("\n", '', $string);
+                                               $result[$id]->subject = $string;
                                                break;
                                        case 'reply-to':
-                                               $result[$id]->replyto = str_replace("\n", " ", $string);
+                                               $result[$id]->replyto = $string;
                                                break;
                                        case 'cc':
-                                               $result[$id]->cc = str_replace("\n", " ", $string);
+                                               $result[$id]->cc = $string;
                                                break;
                                        case 'bcc':
-                                               $result[$id]->bcc = str_replace("\n", " ", $string);
+                                               $result[$id]->bcc = $string;
                                                break;
                                        case 'content-transfer-encoding':
-                                               $result[$id]->encoding = str_replace("\n", " ", $string);
+                                               $result[$id]->encoding = $string;
                                                break;
                                        case 'content-type':
                                                $ctype_parts = explode(";", $string);
@@ -1643,7 +1648,7 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false)
                                        case 'return-receipt-to':
                                        case 'disposition-notification-to':
                                        case 'x-confirm-reading-to':
-                                               $result[$id]->mdn_to = str_replace("\n", " ", $string);
+                                               $result[$id]->mdn_to = $string;
                                                break;
                                        case 'message-id':
                                                $result[$id]->messageID = $string;
@@ -2448,7 +2453,6 @@ function iil_C_Append(&$conn, $folder, &$message) {
        if (fputs($fp, $request)) {
                $line=iil_ReadLine($fp, 100);           
                $sent = fwrite($fp, $message."\r\n");
-               flush();
                do {
                        $line=iil_ReadLine($fp, 1000);
                } while ($line[0] != 'A');
index 96f3447d58621ea5ed0a14bf2bbd2e09d6e4cace..3515de91fceec5fe73c725137f70f7e8bf9095c0 100644 (file)
@@ -13,7 +13,7 @@
  | Author: Weiran Zhang (weiran@weiran.co.uk)                            |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1091 2008-02-15 15:13:38Z tomekp $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -167,7 +167,7 @@ $labels['language'] = 'Language';
 $labels['timezone'] = 'Time zone';
 $labels['pagesize'] = 'Rows per page';
 $labels['signature'] = 'Signature';
-$labels['dstactive'] = 'Daylight savings';
+$labels['dstactive'] = 'Summer time';
 $labels['htmleditor'] = 'Compose HTML messages';
 $labels['htmlsignature'] = 'HTML signature';
 $labels['previewpane'] = 'Show preview pane';
@@ -189,4 +189,4 @@ $labels['sortby'] = 'Sort by';
 $labels['sortasc'] = 'Sort ascending';
 $labels['sortdesc'] = 'Sort descending';
 
-?>
\ No newline at end of file
+?>
index 2a01df6004780bdd8253415b9d09c8396509e720..c00941567de9aa14d8a04a16b5058b5fd0c587e6 100644 (file)
@@ -13,7 +13,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1052 2008-02-12 18:41:53Z thomasb $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -218,7 +218,7 @@ $labels['language']  = 'Language';
 $labels['timezone']  = 'Time zone';
 $labels['pagesize']  = 'Rows per page';
 $labels['signature'] = 'Signature';
-$labels['dstactive']  = 'Daylight savings';
+$labels['dstactive']  = 'Daylight saving time';
 $labels['htmleditor'] = 'Compose HTML messages';
 $labels['htmlsignature'] = 'HTML signature';
 $labels['previewpane'] = 'Show preview pane';
@@ -243,4 +243,4 @@ $labels['sortby'] = 'Sort by';
 $labels['sortasc']  = 'Sort ascending';
 $labels['sortdesc'] = 'Sort descending';
 
-?>
\ No newline at end of file
+?>
index 4be2c8baf89e9e9280134890748bcba25217c459..b1561209566cb6539d54ae099fe68e01a0d3defd 100644 (file)
@@ -14,7 +14,7 @@
  |         Veljo Velling <veve@utu.fi>                                   |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1151 2008-02-28 19:56:47Z thomasb $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -47,7 +47,7 @@ $labels['reply-to'] = 'Vastaus osoitteeseen';
 $labels['mailboxlist'] = 'Kansiot';
 $labels['messagesfromto'] = 'Viestit $from-$to/$count';
 $labels['messagenrof'] = 'Viesti $nr/$count';
-$labels['moveto'] = 'siirrä...';
+$labels['moveto'] = 'siirrä kansioon...';
 $labels['download'] = 'lataa';
 $labels['filename'] = 'Tiedoston nimi';
 $labels['filesize'] = 'Tiedoston koko';
@@ -96,7 +96,7 @@ $labels['all'] = 'Kaikki';
 $labels['none'] = 'Ei mitään';
 $labels['unread'] = 'Lukemattomat';
 $labels['compact'] = 'Tiivistä';
-$labels['empty'] = 'Empty';
+$labels['empty'] = 'Tyhjennä';
 $labels['purge'] = 'Puhdista';
 $labels['quota'] = 'Levytila';
 $labels['unknown'] = 'tuntematon';
@@ -187,7 +187,7 @@ $labels['renamefolder'] = 'Nimeä kansio uudelleen';
 $labels['deletefolder'] = 'Poista kansio';
 $labels['managefolders'] = 'Kansioiden ylläpito';
 $labels['sortby'] = 'Järjestä';
-$labels['sortasc'] = 'Järjestä nousevasti';
-$labels['sortdesc'] = 'Järjestä laskevasti';
+$labels['sortasc'] = 'Järjestä nousevasti (a-ö)';
+$labels['sortdesc'] = 'Järjestä laskevasti (ö-a)';
 
 ?>
\ No newline at end of file
index e35d6bd7900fef61de30610db0488433ce22aa4c..01bc6f0bcb35a63a38f1da617d2240fd8190cad4 100644 (file)
@@ -10,9 +10,8 @@
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  +-----------------------------------------------------------------------+
- | Author: aldweb <info@aldweb.com>                                      |
- |         Pierre HAEGELI <pierre@haegeli.net>                           |
- |         Mickaël Wolff <rcw@lupusmic.org>                              |
+ | Author: Joel S. <joel.s@spijoprod.net>                                |
+ |         Jerome Lipowicz <jerome@yayel.com>                            |
  +-----------------------------------------------------------------------+
 
  @version $Id$
index fcd59fcfc87e7aed6216f556b2ee0d8fac5be551..d91e09373e129b5d997ce211a2aaa0790422d13a 100644 (file)
@@ -10,9 +10,8 @@
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  +-----------------------------------------------------------------------+
- | Author: aldweb <info@aldweb.com>                                      |
- |         Pierre HAEGELI <pierre@haegeli.net>                           |
- |         Mickaël Wolff <rcw@lupusmic.org>                              |
+ | Author: Joel S. <joel.s@spijoprod.net>                                |
+ |         Jerome Lipowicz <jerome@yayel.com>                            |
  +-----------------------------------------------------------------------+
 
  @version $Id$
index 75ccc1df9a9e2c40373a12586a000d26b1fa25c3..6d3722319f8eba5bf1c62eb78ff8cc8c2ce94569 100755 (executable)
 */
 
 $labels = array();
-
-// login page
-$labels['welcome']   = 'მოგესალმებათ $product';
-$labels['username']  = 'მომხმარებელი';
-$labels['password']  = 'პაროლი';
-$labels['server']    = 'სერვერი';
-$labels['login']     = 'შესვლა';
-
-// taskbar
-$labels['logout']   = 'გამოსვლა';
-$labels['mail']     = 'ელ–ფოსტა';
+$labels['welcome'] = 'მოგესალმებათ $product';
+$labels['username'] = 'მომხმარებელი';
+$labels['password'] = 'პაროლი';
+$labels['server'] = 'სერვერი';
+$labels['login'] = 'შესვლა';
+$labels['logout'] = 'გამოსვლა';
+$labels['mail'] = 'ელ–ფოსტა';
 $labels['settings'] = 'პარამეტრები';
 $labels['addressbook'] = 'მისამართები';
-
-// mailbox names
-$labels['inbox']  = 'მიღებული';
+$labels['inbox'] = 'მიღებული';
 $labels['drafts'] = 'დროებითი';
-$labels['sent']   = 'გაგზავნილები';
-$labels['trash']  = 'წაშლილები';
-$labels['junk']   = 'სპამი';
-
-// message listing
+$labels['sent'] = 'გაგზავნილები';
+$labels['trash'] = 'წაშლილები';
+$labels['junk'] = 'სპამი';
 $labels['subject'] = 'სათაური';
-$labels['from']    = 'გამგზავნი';
-$labels['to']      = 'მიმღები';
-$labels['cc']      = 'კოპია';
-$labels['bcc']     = 'ფარული';
+$labels['from'] = 'გამგზავნი';
+$labels['to'] = 'მიმღები';
+$labels['cc'] = 'კოპია';
+$labels['bcc'] = 'ფარული';
 $labels['replyto'] = 'დაბრუნება';
-$labels['date']    = 'თარიღი';
-$labels['size']    = 'ზომა';
+$labels['date'] = 'თარიღი';
+$labels['size'] = 'ზომა';
 $labels['priority'] = 'პრიორიტეტი';
 $labels['organization'] = 'ორგანიზაცია';
-
-// aliases
-$labels['reply-to'] = $labels['replyto'];
-
+$labels['reply-to'] = 'დაბრუნება';
 $labels['mailboxlist'] = 'საქაღალდეები';
 $labels['messagesfromto'] = 'შეტყობინება $from  $to დან $count';
 $labels['messagenrof'] = 'შეტყობინება $nr დან $count';
-
-$labels['moveto']   = 'გადატანა...';
+$labels['moveto'] = 'გადატანა...';
 $labels['download'] = 'გადმოწერა';
-
 $labels['filename'] = 'ფაილის სახელი';
 $labels['filesize'] = 'ფაილის ზომა';
-
 $labels['preferhtml'] = 'როგორც HTML';
 $labels['htmlmessage'] = 'HTML შეტყობინება';
 $labels['prettydate'] = 'კარგი თარიღები';
-
 $labels['addtoaddressbook'] = 'მისამართებში დამატება';
-
-// weekdays short
 $labels['sun'] = 'კვ';
 $labels['mon'] = 'ორ';
 $labels['tue'] = 'სამ';
@@ -78,160 +61,132 @@ $labels['wed'] = 'ოთხ';
 $labels['thu'] = 'ხუთ';
 $labels['fri'] = 'პარ';
 $labels['sat'] = 'შაბ';
-
-// weekdays long
-$labels['sunday']    = 'კვირა';
-$labels['monday']    = 'ორშაბათი';
-$labels['tuesday']   = 'სამშაბათი';
+$labels['sunday'] = 'კვირა';
+$labels['monday'] = 'ორშაბათი';
+$labels['tuesday'] = 'სამშაბათი';
 $labels['wednesday'] = 'ოთხშაბათი';
-$labels['thursday']  = 'ხუთშაბათი';
-$labels['friday']    = 'პარასკევი';
-$labels['saturday']  = 'შაბათი';
-
+$labels['thursday'] = 'ხუთშაბათი';
+$labels['friday'] = 'პარასკევი';
+$labels['saturday'] = 'შაბათი';
 $labels['today'] = 'დღეს';
-
-// toolbar buttons
-$labels['checkmail']        = 'შემოწმება ახალ შეტყობინებაზე';
-$labels['writenewmessage']  = 'ახალი შეტყობინება';
-$labels['replytomessage']   = 'პასუხი';
+$labels['checkmail'] = 'შემოწმება ახალ შეტყობინებაზე';
+$labels['writenewmessage'] = 'ახალი შეტყობინება';
+$labels['replytomessage'] = 'პასუხი';
 $labels['replytoallmessage'] = 'პასუხი ყველას';
-$labels['forwardmessage']   = 'გადაგზავნა';
-$labels['deletemessage']    = 'წაშლა';
+$labels['forwardmessage'] = 'გადაგზავნა';
+$labels['deletemessage'] = 'წაშლა';
 $labels['movemessagetotrash'] = 'შეტყობინების წაშლილებში გადატანა';
-$labels['printmessage']     = 'შეტყობინების ამობეჭვდა';
-$labels['previousmessage']  = 'წინა შეტყობინების ნახვა';
+$labels['printmessage'] = 'შეტყობინების ამობეჭვდა';
+$labels['previousmessage'] = 'წინა შეტყობინების ნახვა';
 $labels['previousmessages'] = 'წინა შეტყობინებების ნახვა';
-$labels['firstmessage']     = 'პირველი შეტყობინების ნახვა';
-$labels['firstmessages']    = 'პრველი შეტყობინებები';
-$labels['nextmessage']      = 'შემდეგი შეტყობინების ნახვა';
-$labels['nextmessages']     = 'შემდეგი შეტყობინებების ნახვა';
-$labels['lastmessage']      = 'ბოლო შეტყობინების ნახვა';
-$labels['lastmessages']     = 'ბოლო შეტყობინებების ნახვა';
-$labels['backtolist']       = 'უკან ჩამონათვალში';
-$labels['viewsource']       = 'შიგთავსი';
-
+$labels['firstmessage'] = 'პირველი შეტყობინების ნახვა';
+$labels['firstmessages'] = 'პრველი შეტყობინებები';
+$labels['nextmessage'] = 'შემდეგი შეტყობინების ნახვა';
+$labels['nextmessages'] = 'შემდეგი შეტყობინებების ნახვა';
+$labels['lastmessage'] = 'ბოლო შეტყობინების ნახვა';
+$labels['lastmessages'] = 'ბოლო შეტყობინებების ნახვა';
+$labels['backtolist'] = 'უკან ჩამონათვალში';
+$labels['viewsource'] = 'შიგთავსი';
+$labels['markmessages'] = 'მონიშნეთ შეტყობინებები';
+$labels['markread'] = 'როგორც წაკითხული';
+$labels['markunread'] = 'როგორც წაუკითხავი';
 $labels['select'] = 'მონიშვნა';
 $labels['all'] = 'ყველა';
 $labels['none'] = 'არცერთი';
 $labels['unread'] = 'წაუკითხავი';
-
 $labels['compact'] = 'შეკუმშვა';
 $labels['empty'] = 'გაცარიელება';
 $labels['purge'] = 'გასუფთავება';
-
 $labels['quota'] = 'შეზღუდვა';
-$labels['unknown']  = 'უცნობი';
-$labels['unlimited']  = 'შეუზღუდავი';
-
-$labels['quicksearch']  = 'სწრაფი ძიება';
-$labels['resetsearch']  = 'ძიების გასუფთავება';
-
-
-// message compose
-$labels['compose']        = 'შეტყობინების დაწერა';
-$labels['sendmessage']    = 'შეტყობინების გაგზავნა';
-$labels['savemessage']  = 'დროებით შენახვა';
-$labels['addattachment']  = 'ფაილის ატვირთვა';
-$labels['charset']        = 'კოდირება';
-$labels['editortype']     = 'რედაქტორი';
-$labels['returnreceipt']  = 'პასუხის მოთხოვნა';
-
+$labels['unknown'] = 'უცნობი';
+$labels['unlimited'] = 'შეუზღუდავი';
+$labels['quicksearch'] = 'სწრაფი ძიება';
+$labels['resetsearch'] = 'ძიების გასუფთავება';
+$labels['compose'] = 'შეტყობინების დაწერა';
+$labels['savemessage'] = 'დროებით შენახვა';
+$labels['sendmessage'] = 'შეტყობინების გაგზავნა';
+$labels['addattachment'] = 'ფაილის ატვირთვა';
+$labels['charset'] = 'კოდირება';
+$labels['editortype'] = 'რედაქტორი';
+$labels['returnreceipt'] = 'პასუხის მოთხოვნა';
 $labels['checkspelling'] = 'ორთოგრაფიული შემოწმება';
 $labels['resumeediting'] = 'რედაქტირების გაგრძელება';
-$labels['revertto']      = 'გაუქმება';
-
+$labels['revertto'] = 'გაუქმება';
 $labels['attachments'] = 'გზავნილები';
 $labels['upload'] = 'ატვირთვა';
-$labels['close']  = 'დახურვა';
-
-$labels['low']     = 'დაბალი';
-$labels['lowest']  = 'უდაბლესი';
-$labels['normal']  = 'საშუალო';
-$labels['high']    = 'მაღალი';
+$labels['close'] = 'დახურვა';
+$labels['low'] = 'დაბალი';
+$labels['lowest'] = 'უდაბლესი';
+$labels['normal'] = 'საშუალო';
+$labels['high'] = 'მაღალი';
 $labels['highest'] = 'უმაღლესი';
-
-$labels['nosubject']  = '(უსათაურო)';
+$labels['nosubject'] = '(უსათაურო)';
 $labels['showimages'] = 'გამოსახულების ჩვენება';
-
 $labels['htmltoggle'] = 'HTML';
 $labels['plaintoggle'] = 'ტექსტური';
-
 $labels['addcc'] = 'დაამატე კოპიო';
 $labels['addbcc'] = 'დაამატე ფარული კოპიო';
 $labels['addreplyto'] = 'დაამატე გამომგზავნი';
-
-
-// address boook
-$labels['name']      = 'სრული სახელი';
+$labels['mdnrequest'] = 'გამომგზავნს სურს შეიტყოს წერილის მიღება. გსურთ შეატყობინოთ გამომგზავნს?';
+$labels['receiptread'] = 'გზავნილის დაბრუნება';
+$labels['yourmessage'] = 'ეს არის მიღების დასტური თქვენს შეტყობინებაზე';
+$labels['receiptnote'] = 'განმარტება: ეს ნიშნავს რომ ადრესატმა მიიღო შეტყობინება. მაგრამ, არ ნიშნავს რომ წაიკითხა ან გაიგო ტექსტი';
+$labels['name'] = 'სრული სახელი';
 $labels['firstname'] = 'სახელი';
-$labels['surname']   = 'გვარი';
-$labels['email']     = 'ელ–ფოსტა';
-
+$labels['surname'] = 'გვარი';
+$labels['email'] = 'ელ–ფოსტა';
 $labels['addcontact'] = 'კონტაქტებში დამატება';
 $labels['editcontact'] = 'კონტაქტის რედაქტირება';
-
-$labels['edit']   = 'რედაქტირება';
+$labels['edit'] = 'რედაქტირება';
 $labels['cancel'] = 'გაუქმება';
-$labels['save']   = 'შენახვა';
+$labels['save'] = 'შენახვა';
 $labels['delete'] = 'წაშლა';
-
-$labels['newcontact']     = 'კონტაქტის შექმნა';
-$labels['deletecontact']  = 'მონიშნელი კონტაქტის წაშლა';
-$labels['composeto']      = 'ფოსტის გაგზავნა შერჩეულ ადრესატებთან';
+$labels['newcontact'] = 'კონტაქტის შექმნა';
+$labels['deletecontact'] = 'მონიშნელი კონტაქტის წაშლა';
+$labels['composeto'] = 'ფოსტის გაგზავნა შერჩეულ ადრესატებთან';
 $labels['contactsfromto'] = 'კონტაქტები $from დან $to ში $count';
-$labels['print']          = 'დაბეჭვდა';
-$labels['export']         = 'ექსპორტი';
-
-$labels['previouspage']   = 'წინას ჩვენება';
-$labels['firstpage']      = 'პირველის ჩვენება';
-$labels['nextpage']       = 'შემდეგის ჩვენება';
-$labels['lastpage']       = 'ბოლოს ჩვენება';
-
+$labels['print'] = 'დაბეჭვდა';
+$labels['export'] = 'ექსპორტი';
+$labels['previouspage'] = 'წინას ჩვენება';
+$labels['firstpage'] = 'პირველის ჩვენება';
+$labels['nextpage'] = 'შემდეგის ჩვენება';
+$labels['lastpage'] = 'ბოლოს ჩვენება';
 $labels['groups'] = 'ჯგუფები';
 $labels['personaladrbook'] = 'პერსონალური მისამართები';
-
-
-// settings
-$labels['settingsfor']  = 'პარამეტრები';
-
-$labels['preferences']  = 'პარამეტრები';
-$labels['userpreferences']  = 'მომხმარებლის პარამეტრები';
-$labels['editpreferences']  = 'მომხმარებლის პარამეტრების რედაქტირება';
-
-$labels['identities']  = 'პროფილები';
-$labels['manageidentities']  = 'პროფილების მართვა';
-$labels['newidentity']  = 'ახალი პროფილი';
-
-$labels['newitem']  = 'ახალი';
-$labels['edititem']  = 'რედაქტირება';
-
-$labels['setdefault']  = 'როგორც ზოგაგად';
-$labels['language']  = 'ენა';
-$labels['timezone']  = 'დროითი ზონა';
-$labels['pagesize']  = 'სტრიქონი გვერდზე';
+$labels['settingsfor'] = 'პარამეტრები';
+$labels['preferences'] = 'პარამეტრები';
+$labels['userpreferences'] = 'მომხმარებლის პარამეტრები';
+$labels['editpreferences'] = 'მომხმარებლის პარამეტრების რედაქტირება';
+$labels['identities'] = 'პროფილები';
+$labels['manageidentities'] = 'პროფილების მართვა';
+$labels['newidentity'] = 'ახალი პროფილი';
+$labels['newitem'] = 'ახალი';
+$labels['edititem'] = 'რედაქტირება';
+$labels['setdefault'] = 'როგორც ზოგაგად';
+$labels['language'] = 'ენა';
+$labels['timezone'] = 'დროითი ზონა';
+$labels['pagesize'] = 'სტრიქონი გვერდზე';
 $labels['signature'] = 'ხელმოწერა';
-$labels['dstactive']  = 'დროის გადაყვანა';
+$labels['dstactive'] = 'დროის გადაყვანა';
 $labels['htmleditor'] = 'შეტყობინების შექმნა HTML –ში';
 $labels['htmlsignature'] = 'HTML ხელმოწერა';
 $labels['previewpane'] = 'ჩვენება';
-
-$labels['autosavedraft']  = 'ავტომატური შენახვა';
-$labels['everynminutes']  = 'ყოველ $n წუთში';
-$labels['never']  = 'არასდროს';
-
-$labels['folder']  = 'საქაღალდე';
-$labels['folders']  = 'საქაღალდეები';
-$labels['foldername']  = 'საქაღალდის დასახელება';
-$labels['subscribed']  = 'გამოცერილია';
-$labels['create']  = 'შექმნა';
-$labels['createfolder']  = 'საქაღალდის შექმნა';
+$labels['autosavedraft'] = 'ავტომატური შენახვა';
+$labels['everynminutes'] = 'ყოველ $n წუთში';
+$labels['never'] = 'არასდროს';
+$labels['folder'] = 'საქაღალდე';
+$labels['folders'] = 'საქაღალდეები';
+$labels['foldername'] = 'საქაღალდის დასახელება';
+$labels['subscribed'] = 'გამოცერილია';
+$labels['messagecount'] = 'შეტყობინებები';
+$labels['create'] = 'შექმნა';
+$labels['createfolder'] = 'საქაღალდის შექმნა';
 $labels['rename'] = 'სახელის გადარქმევა';
 $labels['renamefolder'] = 'სახელის გადარქმევა საქაღალდისთვის';
-$labels['deletefolder']  = 'საქაღალდის წაშლა';
-$labels['managefolders']  = 'საქაღალდეების მართვა';
-
+$labels['deletefolder'] = 'საქაღალდის წაშლა';
+$labels['managefolders'] = 'საქაღალდეების მართვა';
 $labels['sortby'] = 'დალაგება';
-$labels['sortasc']  = 'დალაგება ზრდადობით';
+$labels['sortasc'] = 'დალაგება ზრდადობით';
 $labels['sortdesc'] = 'დალაგება კლებადობით';
 
 ?>
index c45574246d45bf818a2333e15aec2a9908a0e5b2..d2c29ca216de93b3fe2ed79c34b37cff67d1b770 100755 (executable)
@@ -18,7 +18,7 @@
 */
 
 $messages = array();
-$messages['loginfailed']  = 'შესვლა შეუძლებელია';
+$messages['loginfailed'] = 'შესვლა შეუძლებელია';
 $messages['cookiesdisabled'] = 'თქვენი ბროუზერი კუკიებს არ პასუხობს';
 $messages['sessionerror'] = 'თქვენი სესია არის მცდარი ან ვადაგასული';
 $messages['imaperror'] = 'IMAP სერვერთან დაკავშირება შეუძლებელია';
@@ -43,16 +43,16 @@ $messages['sendingfailed'] = 'შეტყობინება ვერ გა
 $messages['errorsaving'] = 'შენახვის დროს მოხდა შეცდომა';
 $messages['errormoving'] = 'შეტყობინების გადატანა შეუძლებელია';
 $messages['errordeleting'] = 'შეტყობინების წაშლა შეუძლებელია';
-$messages['deletecontactconfirm']  = 'ნამდვილად გსურთ მონიშნული კონტაქტების წაშლა?';
+$messages['deletecontactconfirm'] = 'ნამდვილად გსურთ მონიშნული კონტაქტების წაშლა?';
 $messages['deletemessagesconfirm'] = 'ნამდვილად გსურთ მონიშნული შეტყობინებების წაშლა?';
-$messages['deletefolderconfirm']  = 'ნამდვილად გსურთ ამ საქაღალდის წაშლა?';
-$messages['purgefolderconfirm']  = 'ნამდვილად გსურთ ყველა შეტყობინების წაშლა აღნიშნულ საქაღალდეში?';
+$messages['deletefolderconfirm'] = 'ნამდვილად გსურთ ამ საქაღალდის წაშლა?';
+$messages['purgefolderconfirm'] = 'ნამდვილად გსურთ ყველა შეტყობინების წაშლა აღნიშნულ საქაღალდეში?';
 $messages['formincomplete'] = 'ყველა ველი არ არის შევსებული';
 $messages['noemailwarning'] = 'მიუთითეთ სწორი ელ–ფოსტის მისამართი';
-$messages['nonamewarning']  = 'მიუთითეთ სახელი';
+$messages['nonamewarning'] = 'მიუთითეთ სახელი';
 $messages['nopagesizewarning'] = 'მიუთითეთ ფურცლის ზომა';
 $messages['norecipientwarning'] = 'მიუთითეთ მიმღები';
-$messages['nosubjectwarning']  = 'გსურთ თუ არა შეტყობინების გაგზავნა უსათაუროდ?';
+$messages['nosubjectwarning'] = 'გსურთ თუ არა შეტყობინების გაგზავნა უსათაუროდ?';
 $messages['nobodywarning'] = 'გსურთ თუ არა შეტყობინების გაგზავნა უტექსტოდ?';
 $messages['notsentwarning'] = 'შეტყობინება ვერ იქნა გაგზავნილი. გსურთ თუ არა გზავნილის გაუქმება?';
 $messages['noldapserver'] = 'მიუთითეთ LDAP სერვერი ძიებისთვის';
@@ -74,5 +74,9 @@ $messages['copyerror'] = 'ვერცერთი მისამართი 
 $messages['sourceisreadonly'] = 'აღნიშნული მისამართის მხოლოდ წაკითხვაა შესაძლებელი';
 $messages['errorsavingcontact'] = 'საკონტაქტო მისამართის შენახვა შეუძლებელია';
 $messages['movingmessage'] = 'შეტყობინების გადატანა...';
+$messages['receiptsent'] = 'წარმატებით გაიგზავნა';
+$messages['errorsendingreceipt'] = 'არ გაიგზავნა';
+$messages['nodeletelastidentity'] = 'წაშლა შეუძლებელია, ის თქვენთვის ერთადერთია';
+$messages['addsubfolderhint'] = 'საქაღალდე შეიქმნება როგორც ქვესაქაღალდე მონიშნულ საქაღალდეში';
 
 ?>
index fd6e2edec2d34e38aa6cf3185efb0c58a71d0d59..4059162b2172aaa8e845940f68f112cb0af5c6db 100644 (file)
  |                                                                       |
  +-----------------------------------------------------------------------+
  | Author: Levente Farkas <lfarkas at lfarkas dot org>                   |
- |         Ervin Hegedüs <airween@damson.hu>                             |
+ |         Ervin Hegedüs <airween@damson.hu>                             |
  +-----------------------------------------------------------------------+
 
- @version $Id: messages.inc 1069 2008-02-13 19:33:10Z yllar $
+ @version $Id: messages.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
 $messages = array();
-$messages['loginfailed'] = 'Sikertelen belépé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['imaperror'] = 'Nem sikerült a kapcsolódás az IMAP szerverhez';
-$messages['nomessagesfound'] = 'A fiók nem tartalmaz leveleket';
-$messages['loggedout'] = 'Sikeres kijelentkezés. Viszont látásra!';
-$messages['mailboxempty'] = 'A fiók üres';
-$messages['loading'] = 'Betöltés...';
-$messages['loadingdata'] = 'Az adatok betöltése...';
-$messages['checkingmail'] = 'Új üzenetek keresése...';
-$messages['sendingmessage'] = 'Az üzenet küldése...';
-$messages['messagesent'] = 'Az üzenet elküldve';
-$messages['savingmessage'] = 'Az üzenet mentése...';
-$messages['messagesaved'] = 'Az üzenet elmentve a Sablonokhoz';
-$messages['successfullysaved'] = 'A mentés sikerült';
-$messages['addedsuccessfully'] = 'A cím hozzáadása a címjegyzékhez megtörtént';
-$messages['contactexists'] = 'A kapcsolat már létezik ezzel az e-mail címmel';
-$messages['blockedimages'] = 'Biztonsági okokból a távoli képek letöltése tiltott.';
-$messages['encryptedmessage'] = 'Az üzenet titkosított, emiatt nem tudom megjeleníteni.';
+$messages['loginfailed'] = 'Sikertelen belépé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['imaperror'] = 'Nem sikerült a kapcsolódás az IMAP szerverhez';
+$messages['nomessagesfound'] = 'A fiók nem tartalmaz leveleket';
+$messages['loggedout'] = 'Sikeres kijelentkezés. Viszont látásra!';
+$messages['mailboxempty'] = 'A fiók üres';
+$messages['loading'] = 'Betöltés...';
+$messages['loadingdata'] = 'Az adatok betöltése...';
+$messages['checkingmail'] = 'Új üzenetek keresése...';
+$messages['sendingmessage'] = 'Az üzenet küldése...';
+$messages['messagesent'] = 'Az üzenet elküldve';
+$messages['savingmessage'] = 'Az üzenet mentése...';
+$messages['messagesaved'] = 'Az üzenet elmentve a Sablonokhoz';
+$messages['successfullysaved'] = 'A mentés sikerült';
+$messages['addedsuccessfully'] = 'A cím hozzáadása a címjegyzékhez megtörtént';
+$messages['contactexists'] = 'A kapcsolat már létezik ezzel az e-mail címmel';
+$messages['blockedimages'] = 'Biztonsági okokból a távoli képek letöltése tiltott.';
+$messages['encryptedmessage'] = 'Az üzenet titkosított, emiatt nem tudom megjeleníteni.';
 $messages['nocontactsfound'] = 'Nincs kapcsolat';
-$messages['contactnotfound'] = 'A kiválasztott kapcsolat nem található';
-$messages['sendingfailed'] = 'Az üzenet elküldése nem sikerült';
-$messages['errorsaving'] = 'A mentés során hiba lépett fel';
-$messages['errormoving'] = 'Az üzenetet nem sikerült áthelyezni';
-$messages['errordeleting'] = 'Az üzenetet nem sikerült törölni';
-$messages['deletecontactconfirm'] = 'Biztos, hogy törölni szeretnéd a kijelölt címe(ke)t?';
-$messages['deletemessagesconfirm'] = 'Biztos, hogy törölni szeretnéd a kijelölt üzenete(ke)t?';
-$messages['deletefolderconfirm'] = 'Biztos, hogy törölni szeretnéd ezt a mappát?';
-$messages['purgefolderconfirm'] = 'Biztos vagy benne, hogy az összes üzenet törölhetõ?';
-$messages['formincomplete'] = 'Az ûrlap hiányosan lett kitöltve';
-$messages['noemailwarning'] = 'Adj meg egy valós e-mail címet';
+$messages['contactnotfound'] = 'A kiválasztott kapcsolat nem található';
+$messages['sendingfailed'] = 'Az üzenet elküldése nem sikerült';
+$messages['errorsaving'] = 'A mentés során hiba lépett fel';
+$messages['errormoving'] = 'Az üzenetet nem sikerült áthelyezni';
+$messages['errordeleting'] = 'Az üzenetet nem sikerült törölni';
+$messages['deletecontactconfirm'] = 'Biztos, hogy törölni szeretnéd a kijelölt címe(ke)t?';
+$messages['deletemessagesconfirm'] = 'Biztos, hogy törölni szeretnéd a kijelölt üzenete(ke)t?';
+$messages['deletefolderconfirm'] = 'Biztos, hogy törölni szeretnéd ezt a mappát?';
+$messages['purgefolderconfirm'] = 'Biztos vagy benne, hogy az összes üzenet törölhető?';
+$messages['formincomplete'] = 'Az űrlap hiányosan lett kitöltve';
+$messages['noemailwarning'] = 'Adj meg egy valós e-mail címet';
 $messages['nonamewarning'] = 'Adj meg egy nevet';
-$messages['nopagesizewarning'] = 'Add meg a papír méretét';
-$messages['norecipientwarning'] = 'Legalább egy címzettet adj meg';
-$messages['nosubjectwarning'] = 'A "Tárgy" mezõ üres. Szeretnéd most kitölteni?';
-$messages['nobodywarning'] = 'Elküldöd az üzenetet tárgy nélkül?';
-$messages['notsentwarning'] = 'Az üzenet még nem küldtem el. Eldobod az üzenetet?';
-$messages['noldapserver'] = 'Adj meg egy LDAP szervert a kereséshez';
-$messages['nocontactsreturned'] = 'Nem találtam kapcsolatot';
-$messages['nosearchname'] = 'Add meg a kapcsolat nevét vagy e-mail címét';
-$messages['searchsuccessful'] = '$nr üzenetet találtam';
-$messages['searchnomatch'] = 'Nincs találat';
-$messages['searching'] = 'Keresés...';
-$messages['checking'] = 'Ellenõrzés...';
-$messages['nospellerrors'] = 'Nem találtam helyesírási hibát';
-$messages['folderdeleted'] = 'A mappa sikeresen törölve';
-$messages['deletedsuccessfully'] = 'Törölve';
-$messages['converting'] = 'Formázás eltávolítása az üzenetbõl...';
-$messages['messageopenerror'] = 'Nem tudom letölteni a leveleket a szerverrõl';
-$messages['fileuploaderror'] = 'Feltöltés sikertelen';
-$messages['filesizeerror'] = 'A feltöltött file mérete meghaladja a maximális méretet $size';
-$messages['copysuccess'] = 'Sikeresen másoltunk $nr címet';
-$messages['copyerror'] = 'Nem tudtunk másolni egyetlen címet sem';
-$messages['sourceisreadonly'] = 'Ez a címforrás csak olvasható';
-$messages['errorsavingcontact'] = 'Nem tudtuk menteni a kapcsolat címét';
-$messages['movingmessage'] = 'Üzenet mozgatása...';
-$messages['receiptsent'] = 'Az Olvasási Értesítést elküldtük';
-$messages['errorsendingreceipt'] = 'Az Olvasási Értesítést nem sikerült elküldeni';
-$messages['nodeletelastidentity'] = 'Nem törölheti ezt a profilt, ez az egyetlen';
-$messages['addsubfolderhint'] = 'Az új könyvtárat az aktuálisan kiválasztott alkönyvtáraként fogjuk létrehozni';
+$messages['nopagesizewarning'] = 'Add meg a papír méretét';
+$messages['norecipientwarning'] = 'Legalább egy címzettet adj meg';
+$messages['nosubjectwarning'] = 'A "Tárgy" mező üres. Szeretnéd most kitölteni?';
+$messages['nobodywarning'] = 'Elküldöd az üzenetet tárgy nélkül?';
+$messages['notsentwarning'] = 'Az üzenet még nem küldtem el. Eldobod az üzenetet?';
+$messages['noldapserver'] = 'Adj meg egy LDAP szervert a kereséshez';
+$messages['nocontactsreturned'] = 'Nem találtam kapcsolatot';
+$messages['nosearchname'] = 'Add meg a kapcsolat nevét vagy e-mail címét';
+$messages['searchsuccessful'] = '$nr üzenetet találtam';
+$messages['searchnomatch'] = 'Nincs találat';
+$messages['searching'] = 'Keresés...';
+$messages['checking'] = 'Ellenőrzés...';
+$messages['nospellerrors'] = 'Nem találtam helyesírási hibát';
+$messages['folderdeleted'] = 'A mappa sikeresen törölve';
+$messages['deletedsuccessfully'] = 'Törölve';
+$messages['converting'] = 'Formázás eltávolítása az üzenetből...';
+$messages['messageopenerror'] = 'Nem tudom letölteni a leveleket a szerverről';
+$messages['fileuploaderror'] = 'Feltöltés sikertelen';
+$messages['filesizeerror'] = 'A feltöltött file mérete meghaladja a maximális méretet $size';
+$messages['copysuccess'] = 'Sikeresen másoltunk $nr címet';
+$messages['copyerror'] = 'Nem tudtunk másolni egyetlen címet sem';
+$messages['sourceisreadonly'] = 'Ez a címforrás csak olvasható';
+$messages['errorsavingcontact'] = 'Nem tudtuk menteni a kapcsolat címét';
+$messages['movingmessage'] = 'Üzenet mozgatása...';
+$messages['receiptsent'] = 'Az Olvasási Értesítést elküldtük';
+$messages['errorsendingreceipt'] = 'Az Olvasási Értesítést nem sikerült elküldeni';
+$messages['nodeletelastidentity'] = 'Nem törölheti ezt a profilt, ez az egyetlen';
+$messages['addsubfolderhint'] = 'Az új könyvtárat az aktuálisan kiválasztott alkönyvtáraként fogjuk létrehozni';
 
 ?>
\ No newline at end of file
index 782b8489b7324cd53a63868c000666a51c0d220f..f2cd2f57adcec4e04a81a6bf86e09c9dcfe92877 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: index.inc 1160 2008-03-01 15:32:44Z yllar $
+ $Id: index.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
  
@@ -54,6 +54,7 @@
      'it'    => 'Italiano',
      'ja'    => 'Japanese (日本語)',
      'kr'    => 'Korean',
+     'ku'    => 'Kurdish (Kurmancî)',
      'lv'    => 'Latvian',
      'lt'    => 'Lithuanian',
      'mk'    => 'Macedonian',
diff --git a/program/localization/ku/labels.inc b/program/localization/ku/labels.inc
new file mode 100644 (file)
index 0000000..3edd3e5
--- /dev/null
@@ -0,0 +1,189 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | language/ku/labels.inc                                                |
+ |                                                                       |
+ | Language file of the RoundCube Webmail client                         |
+ | Copyright (C) 2006, RoundQube Dev. - Switzerland                      |
+ | Licensed under the GNU GPL                                            |
+ |                                                                       |
+ +-----------------------------------------------------------------------+
+ | Author: Amed Çeko Jiyan <amedcj@kurdistan.name>                       |
+ +-----------------------------------------------------------------------+
+
+*/
+
+$labels = array();
+$labels['welcome'] = 'Bixêr hatî $product \\\'ê';
+$labels['username'] = 'Bikarhêner';
+$labels['password'] = 'Nasnav';
+$labels['server'] = 'Pêşkêşkar';
+$labels['login'] = 'Têkevê';
+$labels['logout'] = 'Derkeve';
+$labels['mail'] = 'E-Peyam';
+$labels['settings'] = 'Mîhengên Takekesî';
+$labels['addressbook'] = 'Lênûska Navnîşanan';
+$labels['inbox'] = 'Hatî';
+$labels['drafts'] = 'Hilanînî';
+$labels['sent'] = 'Şandî';
+$labels['trash'] = 'Çop';
+$labels['junk'] = 'Biikêrnehatî';
+$labels['subject'] = 'Mijar';
+$labels['from'] = 'Şandyar';
+$labels['to'] = 'Standyar';
+$labels['cc'] = 'Kopiya Karbon';
+$labels['bcc'] = 'Kopiya karbon a Veşartî';
+$labels['replyto'] = 'Navnîşanên Standyar';
+$labels['date'] = 'Dîrok';
+$labels['size'] = 'Mezinahî';
+$labels['priority'] = 'Girîngî';
+$labels['organization'] = 'Sazî';
+$labels['reply-to'] = 'Navnîşanên Standyar';
+$labels['mailboxlist'] = 'Peldank';
+$labels['messagesfromto'] = 'Peyam $count ên di navbera $from - $to';
+$labels['messagenrof'] = '$nr a peyama $count';
+$labels['moveto'] = 'bibe...';
+$labels['download'] = 'daxe';
+$labels['filename'] = 'Navê pelê';
+$labels['filesize'] = 'Mezinahiya pelê';
+$labels['preferhtml'] = 'Wekî HTML nîşan bide';
+$labels['htmlmessage'] = 'Peyama HTML';
+$labels['prettydate'] = 'Kurtenivîsa Dîrokê';
+$labels['addtoaddressbook'] = 'Têxe lênûska navnîşanan';
+$labels['sun'] = 'Yş';
+$labels['mon'] = 'Dş';
+$labels['tue'] = 'Sş';
+$labels['wed'] = 'Çş';
+$labels['thu'] = 'Pş';
+$labels['fri'] = 'În';
+$labels['sat'] = 'Şe';
+$labels['sunday'] = 'Yekşem';
+$labels['monday'] = 'Duşem';
+$labels['tuesday'] = 'Sêşem';
+$labels['wednesday'] = 'Çarşem';
+$labels['thursday'] = 'Pêncşem';
+$labels['friday'] = 'În';
+$labels['saturday'] = 'Şemî';
+$labels['today'] = 'Îro';
+$labels['checkmail'] = 'Li peyamên nû venihêre';
+$labels['writenewmessage'] = 'Peyameke nû biafirîne';
+$labels['replytomessage'] = 'Bersivê bide peyamê';
+$labels['replytoallmessage'] = 'Bersivê ji bo hemû kesên ku ev peyan standine bişîne';
+$labels['forwardmessage'] = 'Bersivê bide peyamê';
+$labels['deletemessage'] = 'Peyamê jê bibe';
+$labels['movemessagetotrash'] = 'Peyamê dake çopê';
+$labels['printmessage'] = 'Vê peyamê çap bike';
+$labels['previousmessage'] = 'Peyama berê nîşan bide';
+$labels['previousmessages'] = 'Peyamên berê nîşan bide';
+$labels['firstmessage'] = 'Peyama yekemîn nîşan bide';
+$labels['firstmessages'] = 'Peyamên yekemîn nîşan bide';
+$labels['nextmessage'] = 'Peyama di rêzê de nîşan bide';
+$labels['nextmessages'] = 'Peyamên di rêzê de nîşan bide';
+$labels['lastmessage'] = 'Peyama dawî nîşan bide';
+$labels['lastmessages'] = 'Peyamên dawî nîşan bide';
+$labels['backtolist'] = 'Vegere lîsteya peyaman';
+$labels['viewsource'] = 'Çavkaniyê nîşan bide';
+$labels['markmessages'] = 'Peyamê nîşan bike';
+$labels['markread'] = 'Wekî xwendî';
+$labels['markunread'] = 'Wekî nexwendî';
+$labels['select'] = 'Hilbijêre';
+$labels['all'] = 'Hemû';
+$labels['none'] = 'Ne yek jî';
+$labels['unread'] = 'Nexwendî';
+$labels['compact'] = 'Kompakt';
+$labels['empty'] = 'Vala Bike';
+$labels['purge'] = 'Jê bibe';
+$labels['quota'] = 'Bikaranîna dîskê';
+$labels['unknown'] = 'nayê zanîn';
+$labels['unlimited'] = 'bêsînor';
+$labels['quicksearch'] = 'Lêgerîna bilez';
+$labels['resetsearch'] = 'Lêgerînê reset bike';
+$labels['compose'] = 'Peyamekê biafirîne';
+$labels['savemessage'] = 'Hilîne';
+$labels['sendmessage'] = 'Peyamê niha bişîne';
+$labels['addattachment'] = 'Pelekê lê zêde bike';
+$labels['charset'] = 'Curetîp';
+$labels['editortype'] = 'Cureyê serastkat';
+$labels['returnreceipt'] = 'Rapora Vegerînê';
+$labels['checkspelling'] = 'Kontrola rastnivîsê';
+$labels['resumeediting'] = 'Serastkirinê bidomîne';
+$labels['revertto'] = 'Şûnde bîne';
+$labels['attachments'] = 'Pêvek';
+$labels['upload'] = 'Bar bike';
+$labels['close'] = 'Bigire';
+$labels['low'] = 'Nizm';
+$labels['lowest'] = 'Nizmtirîn';
+$labels['normal'] = 'Asayî';
+$labels['high'] = 'Bilind';
+$labels['highest'] = 'Bilintirîn';
+$labels['nosubject'] = '(bê mijar)';
+$labels['showimages'] = 'Xuyakirina wêneyan';
+$labels['htmltoggle'] = 'HTML';
+$labels['plaintoggle'] = 'Deqa tazî';
+$labels['addcc'] = 'Cc Têxê';
+$labels['addbcc'] = 'Bcc Têxê';
+$labels['addreplyto'] = 'Bibersivîne têxê';
+$labels['mdnrequest'] = 'Şandyara/ê vê peyamê xwest dema ku te peyam vekir, jê re hişyarî here. Dixwazî jê re hişyarî here?';
+$labels['receiptread'] = 'Rapora Vegerînê (xwendî)';
+$labels['yourmessage'] = 'Ev rapora vegerîna peyama te ye';
+$labels['receiptnote'] = 'Nîşe: Ev dide zanîn ka peyama te şand hat xwendin an na. Naveroka peyamê bi mîgogerî nayê zanîn.';
+$labels['name'] = 'Navê xuya dibe';
+$labels['firstname'] = 'Nav';
+$labels['surname'] = 'Paşnav';
+$labels['email'] = 'E-Peyam';
+$labels['addcontact'] = 'Têkiliyeke nû têxê';
+$labels['editcontact'] = 'Têkiliyê serast bike';
+$labels['edit'] = 'Serast bike';
+$labels['cancel'] = 'Betal';
+$labels['save'] = 'Tomar bike';
+$labels['delete'] = 'Jê Bibe';
+$labels['newcontact'] = 'kardeke nû a têkiliyê biafirîne';
+$labels['deletecontact'] = 'Têkiliyên hilbijartî jê bibe';
+$labels['composeto'] = 'Ji têkiliya hilbijartî re peyam bişîne';
+$labels['contactsfromto'] = 'Têkiliyên $count ên di navbera $from - $to de';
+$labels['print'] = 'çap bike';
+$labels['export'] = 'Derxe';
+$labels['previouspage'] = 'Seta berê nîşan bide';
+$labels['firstpage'] = 'Seta yekemîn nîşan bide';
+$labels['nextpage'] = 'Seta di rêzê de nîşan bide';
+$labels['lastpage'] = 'Seta dawî nîşan bide';
+$labels['groups'] = 'Kom';
+$labels['personaladrbook'] = 'Navnîşanên Takekesî';
+$labels['settingsfor'] = 'Mîheng ji bo';
+$labels['preferences'] = 'Vebijêrk';
+$labels['userpreferences'] = 'Vebijêrkên bikarhêner';
+$labels['editpreferences'] = 'Vebijêrkên bikarhêner serast bike';
+$labels['identities'] = 'Nasname';
+$labels['manageidentities'] = 'Nasnameyên vê hesabê serast bike';
+$labels['newidentity'] = 'Nasnameya nû';
+$labels['newitem'] = 'Parçeya nû';
+$labels['edititem'] = 'Parçeyê serast bike';
+$labels['setdefault'] = 'Wekî standard tomar bike';
+$labels['language'] = 'Ziman';
+$labels['timezone'] = 'Herêma demê';
+$labels['pagesize'] = 'Hejmara peyamên her rûpelekê';
+$labels['signature'] = 'Şanenav';
+$labels['dstactive'] = 'Demjimêra havînî';
+$labels['htmleditor'] = 'Peyameke HTML biafirîne';
+$labels['htmlsignature'] = 'Şanenava HTML';
+$labels['previewpane'] = 'Panela berê nîşan bide';
+$labels['autosavedraft'] = 'Xweber hilîne';
+$labels['everynminutes'] = 'her $n çirke';
+$labels['never'] = 'qet';
+$labels['folder'] = 'Peldank';
+$labels['folders'] = 'Peldank';
+$labels['foldername'] = 'Navê peldankê';
+$labels['subscribed'] = 'Ni şanenav';
+$labels['messagecount'] = 'Peyam';
+$labels['create'] = 'Biafirîne';
+$labels['createfolder'] = 'Peldankeke nû biafirîne';
+$labels['rename'] = 'Nav biguherîne';
+$labels['renamefolder'] = 'Navê peldankê biguherîne';
+$labels['deletefolder'] = 'Peldankê jê bibe';
+$labels['managefolders'] = 'Rêveberiya peldankan';
+$labels['sortby'] = 'Şêweyê rêzkirinê';
+$labels['sortasc'] = 'Wekî zêde dibe';
+$labels['sortdesc'] = 'Wekî kêm dibe';
+
+?>
diff --git a/program/localization/ku/messages.inc b/program/localization/ku/messages.inc
new file mode 100644 (file)
index 0000000..fe1ca32
--- /dev/null
@@ -0,0 +1,79 @@
+<?php
+
+/*
+ +-----------------------------------------------------------------------+
+ | language/ku/messages.inc                                              |
+ |                                                                       |
+ | Language file of the RoundCube Webmail client                         |
+ | Copyright (C) 2006, RoundQube Dev. - Switzerland                      |
+ | Licensed under the GNU GPL                                            |
+ |                                                                       |
+ +-----------------------------------------------------------------------+
+ | Author: Amed çeko Jiyan <amedcj@kurdistan.name>                       |
+ +-----------------------------------------------------------------------+
+
+*/
+
+$messages = array();
+$messages['loginfailed'] = 'Têketin têk çû';
+$messages['cookiesdisabled'] = 'Geroka te destûrê nade çerezan';
+$messages['sessionerror'] = 'Danişîna te çewt e an jî bi dawî bûye';
+$messages['imaperror'] = 'Girêdana pêşkêşkara IMAP têk çû';
+$messages['nomessagesfound'] = 'Di vê peyamdankê de tu peyam nehat dîtin';
+$messages['loggedout'] = 'Te danişînî bi dawî anî. Oxir be!';
+$messages['mailboxempty'] = 'Peyamdank vala ye';
+$messages['loading'] = 'Tê barkirin...';
+$messages['loadingdata'] = 'Dane tên barkirin...';
+$messages['checkingmail'] = 'Li peyamên nû vedinihêre...';
+$messages['sendingmessage'] = 'Peyamê dişîne...';
+$messages['messagesent'] = 'Peyam hate şandin';
+$messages['savingmessage'] = 'Peyam tê hilanîn...';
+$messages['messagesaved'] = 'Peyam di Hilanînî de hat hilanîn';
+$messages['successfullysaved'] = 'Hat hilanîn';
+$messages['addedsuccessfully'] = 'Têkilî li navnîşanan hat zêdekirin';
+$messages['contactexists'] = 'Têkiliyeke bi vê navnîşanê jixwe heye';
+$messages['blockedimages'] = 'Ji bo ewlekariya te wêneyên cuda yên vê peyamê hatin astenkirin.';
+$messages['encryptedmessage'] = 'Ev peyamenek şîfrekirî ye, bibore, nayê vekirin!';
+$messages['nocontactsfound'] = 'Tu têkiliyek nehat dîtin';
+$messages['contactnotfound'] = 'Têkiliya dihat xwestin nehat dîtin';
+$messages['sendingfailed'] = 'Peyam nehat şandin';
+$messages['errorsaving'] = 'Di tomarkirinê de çewtiyek derket';
+$messages['errormoving'] = 'Ciyê peyamê nehat guherandin';
+$messages['errordeleting'] = 'Peyam nehat jêbirin';
+$messages['deletecontactconfirm'] = 'Ji dil dixwazî têkiliya/ên nîşankirî jê bibî?';
+$messages['deletemessagesconfirm'] = 'Ji dil dixwazî peya/ên nîşankirî jê bibî?';
+$messages['deletefolderconfirm'] = 'Ji dil dixwazî vê peldankê jê bibî?';
+$messages['purgefolderconfirm'] = 'Ji dil dixwazî hemû peyamên di vê peldankê de jê bibî?';
+$messages['formincomplete'] = 'Form bi temamî nehat tijekirin';
+$messages['noemailwarning'] = 'Tika ye, navnîşaneke rast têkevê';
+$messages['nonamewarning'] = 'Tika ye, navekî têkevê';
+$messages['nopagesizewarning'] = 'Tika ye, mezinahiyeke pelê têkevê';
+$messages['norecipientwarning'] = 'Tika ye, herî kêm standyarekê têkevê';
+$messages['nosubjectwarning'] = 'Qada "Mijar"ê vala ye. Dixwazî niha tiştekî lê binivîsî?';
+$messages['nobodywarning'] = 'Peyamê bê nivîs bişeyînî?';
+$messages['notsentwarning'] = 'Peyam nehat şandin. Dixwazî peyamê pişTgo bikî?';
+$messages['noldapserver'] = 'Tika ye, ji bo lêgerînê pêşkêşkareke Idap têkevê';
+$messages['nocontactsreturned'] = 'Tu têkilî nehat dîtin';
+$messages['nosearchname'] = 'Tika ye, nav an jî navnîşaneke têkiliyê têkevê';
+$messages['searchsuccessful'] = '$nr peyam hat(in) dîtin';
+$messages['searchnomatch'] = 'Di lêgerînê de tu tişt nehat dîtin';
+$messages['searching'] = 'Digere...';
+$messages['checking'] = 'Vedinihêre...';
+$messages['nospellerrors'] = 'Tu şaşiyeke rastnivîsê nehat dîtin';
+$messages['folderdeleted'] = 'Peldank hat jêbirin';
+$messages['deletedsuccessfully'] = 'Hat jêbirin';
+$messages['converting'] = 'Formatkirin ji peyamê tê birin...';
+$messages['messageopenerror'] = 'Peyam ji pêşkêşkar nehat barkirin';
+$messages['fileuploaderror'] = 'Barkirina pelê têk çû';
+$messages['filesizeerror'] = 'Pel pir mezin e. Herî zêde divê $size be';
+$messages['copysuccess'] = '$nr navnîşan hat(in) jibergirtin';
+$messages['copyerror'] = 'Tu navnîşan nehat jibergirtin';
+$messages['sourceisreadonly'] = 'Çavkaniya vê navnîşanê tenê-xwendin e';
+$messages['errorsavingcontact'] = 'Navnîşana têkiliyê nehat barkirin';
+$messages['movingmessage'] = 'Ciyê peyamê tê guhertin...';
+$messages['receiptsent'] = 'Rapora şandina serkeftî';
+$messages['errorsendingreceipt'] = 'Rapor nehat şandin';
+$messages['nodeletelastidentity'] = 'Nikarî vê nasnameyê jê bibî. Ew ya dawî ye.';
+$messages['addsubfolderhint'] = 'Ev peldank wê wekî binepeldanka ya heyî bê afirandin';
+
+?>
index 94f23300dbbb501cfb7094fe25122b23f60d74d0..f746fb165294c61b3dbde9a55e97e96701c3e1f2 100644 (file)
@@ -13,7 +13,7 @@
  | Author: Mark Moses <mark@katmoda.com>                                 |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1183 2008-03-04 22:10:15Z yllar $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
index 9158e4fdf70e1cd6570b9e061eddfd12460524aa..24b9baa35f6eaea937ac943ddf4e612023c1fa8a 100644 (file)
@@ -17,7 +17,7 @@
  |         Wojciech Szczepucha <donkoyote@gmail.com>                     |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1160 2008-03-01 15:32:44Z yllar $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -131,8 +131,8 @@ $labels['plaintoggle'] = 'Zwykły tekst';
 $labels['addcc'] = 'Dodaj Cc';
 $labels['addbcc'] = 'Dodaj Bcc';
 $labels['addreplyto'] = 'Dodaj Reply-To';
-$labels['mdnrequest'] = 'Nadawca poprosił o potwierdzenie przeczytania tej wiadomości. Czy chcesz go powiadomić?';
-$labels['receiptread'] = 'Potwierdzenie odbioru';
+$labels['mdnrequest'] = 'Nadawca zażądał potwierdzenia przeczytania tej wiadomości. Czy chcesz go powiadomić?';
+$labels['receiptread'] = 'Potwierdzenie otrzymania';
 $labels['yourmessage'] = 'To jest potwierdzenie dostarczenia Twojej wiadomości';
 $labels['receiptnote'] = 'Uwaga: To potwierdzenie dostarczenia wiadomości oznacza tylko, że wiadomość została wyświetlona na komputerze adresata. Nie ma żadnej gwarancji, że odbiorca przeczytał czy też zrozumiał treść wiadomości.';
 $labels['name'] = 'Nazwa';
index 02cf26b56a6069c9f878f4ada52ac69e335c84fb..904a24d025cae15720ff413ded5425cf0e3a9493 100644 (file)
@@ -17,7 +17,7 @@
  |         Wojciech Szczepucha <donkoyote@gmail.com>                     |
  +-----------------------------------------------------------------------+
 
- @version $Id: messages.inc 1086 2008-02-15 05:43:32Z tomekp $
+ @version $Id: messages.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -52,8 +52,8 @@ $messages['deletemessagesconfirm'] = 'Czy na pewno chcesz usunąć wybrane wiado
 $messages['deletefolderconfirm'] = 'Czy na pewno chcesz usunąć wybrany folder?';
 $messages['purgefolderconfirm'] = 'Czy na pewno chcesz usunąć wszystkie wiadomości w tym folderze?';
 $messages['formincomplete'] = 'Uzupełnij formularz!';
-$messages['noemailwarning'] = 'Wpisz poprawny adres e-mail!';
-$messages['nonamewarning'] = 'Podaj imię!';
+$messages['noemailwarning'] = 'Podaj poprawny adres e-mail!';
+$messages['nonamewarning'] = 'Podaj nazwę!';
 $messages['nopagesizewarning'] = 'Podaj poprawną wartość!';
 $messages['norecipientwarning'] = 'Podaj co najmniej jednego odbiorcę!';
 $messages['nosubjectwarning'] = 'Nie podano tematu wiadomości. Czy chcesz go teraz uzupełnić?';
index d8fa1bdd1ced80e01b4542996d2189b1d6e02f0b..34013098ad733d58de40ccfdc9e8e7e46e8d0cb5 100644 (file)
@@ -15,7 +15,7 @@
  |                Jonas Näsholm <hostmaster@bitfuse.net>                        |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1143 2008-02-26 20:50:10Z yllar $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -136,7 +136,7 @@ $labels['receiptnote'] = 'Notera: Det här kvittot berättar bara att meddelande
 $labels['name'] = 'Visa namn';
 $labels['firstname'] = 'Förnamn';
 $labels['surname'] = 'Efternamn';
-$labels['email'] = 'Meddelande';
+$labels['email'] = 'E-post';
 $labels['addcontact'] = 'Lägg till ny kontakt';
 $labels['editcontact'] = 'Redigera kontakt';
 $labels['edit'] = 'Redigera';
@@ -191,4 +191,4 @@ $labels['sortby'] = 'Sortera på';
 $labels['sortasc'] = 'Sortera stigande';
 $labels['sortdesc'] = 'Sortera fallande';
 
-?>
\ No newline at end of file
+?>
index a462589e25a95fac71cae52f776394f9206c820c..19486f5f14d2a3c536b21903c2436bb1c6b1b2ca 100644 (file)
@@ -13,7 +13,7 @@
  | Author: Xue zhong sheng <xue.zhongsheng@gmail.com>                    |
  +-----------------------------------------------------------------------+
 
- @version $Id: labels.inc 1143 2008-02-26 20:50:10Z yllar $
+ @version $Id: labels.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -30,8 +30,8 @@ $labels['addressbook'] = '通讯录';
 $labels['inbox'] = '收件箱';
 $labels['drafts'] = '草稿箱';
 $labels['sent'] = '已发送邮件';
-$labels['trash'] = 'å\9e\83å\9c¾é\82®ä»¶';
-$labels['junk'] = 'å\9b\9eæ\94¶ç®±';
+$labels['trash'] = 'å\9b\9eæ\94¶ç«\99';
+$labels['junk'] = 'å\9e\83å\9c¾é\82®ä»¶';
 $labels['subject'] = '主题';
 $labels['from'] = '发件人';
 $labels['to'] = '收件人';
@@ -99,8 +99,8 @@ $labels['unlimited'] = '无限制';
 $labels['quicksearch'] = '快速查找';
 $labels['resetsearch'] = '重新查找';
 $labels['compose'] = '写新邮件';
-$labels['sendmessage'] = '立即发送';
 $labels['savemessage'] = '暂存至草稿箱';
+$labels['sendmessage'] = '立即发送';
 $labels['addattachment'] = '添加附件';
 $labels['charset'] = '字符集';
 $labels['editortype'] = '编辑器类型';
@@ -154,7 +154,7 @@ $labels['edititem'] = '修改条目';
 $labels['setdefault'] = '默认值';
 $labels['language'] = '语言';
 $labels['timezone'] = '时区';
-$labels['pagesize'] = '页邮件数量';
+$labels['pagesize'] = '页邮件数量';
 $labels['signature'] = '签名';
 $labels['dstactive'] = '夏令时';
 $labels['htmleditor'] = '使用HTML编辑器';
index 94c524a68765caa0e7f707761ded22750938fa2d..dcf5a9aa649f863a9115157755fbf06d47f3f1b7 100644 (file)
@@ -13,7 +13,7 @@
  | Author: Xue zhong sheng <xue.zhongsheng@gmail.com>                    |
  +-----------------------------------------------------------------------+
 
- @version $Id: messages.inc 1143 2008-02-26 20:50:10Z yllar $
+ @version $Id: messages.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -73,5 +73,10 @@ $messages['copysuccess'] = '成功复制 $nr 个地址';
 $messages['copyerror'] = '无法复制地址';
 $messages['sourceisreadonly'] = '源地址为只读';
 $messages['errorsavingcontact'] = '无法保存联系人的地址';
+$messages['movingmessage'] = '移动邮件到...';
+$messages['receiptsent'] = '成功发送了一个已读回执';
+$messages['errorsendingreceipt'] = '无法发送回执';
+$messages['nodeletelastidentity'] = '无法删除这个身份,这是最后一个。';
+$messages['addsubfolderhint'] = '文件夹将被作为所选中文件夹的子目录';
 
 ?>
index 71dcbba4779f3efc5d9366ff40eb05290a5d9d23..661649dd0400cdeca09fe779dcf1cea4709356d1 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: compose.inc 1039 2008-02-11 17:39:31Z till $
+ $Id: compose.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -90,7 +90,11 @@ if (!empty($msg_uid))
   // similar as in program/steps/mail/show.inc
   $MESSAGE = array('UID' => $msg_uid);
   $MESSAGE['headers'] = &$IMAP->get_headers($msg_uid);
-  $MESSAGE['structure'] = &$IMAP->get_structure($msg_uid);  
+  $MESSAGE['structure'] = &$IMAP->get_structure($msg_uid);
+  
+  if (!empty($MESSAGE['headers']->charset))
+    $IMAP->set_charset($MESSAGE['headers']->charset);
+    
   $MESSAGE['subject'] = $IMAP->decode_header($MESSAGE['headers']->subject);
   $MESSAGE['parts'] = $IMAP->get_mime_numbers($MESSAGE['structure']);
   
@@ -889,7 +893,7 @@ if ($result = $CONTACTS->list_records())
   {
   while ($sql_arr = $result->iterate())
     if ($sql_arr['email'])
-      $a_contacts[] = format_email_recipient($sql_arr['email'], JQ($sql_arr['name']));
+      $a_contacts[] = format_email_recipient($sql_arr['email'], $sql_arr['name']);
   }
 if (isset($CONFIG['ldap_public']))
   {
@@ -914,7 +918,7 @@ if (isset($CONFIG['ldap_public']))
            $email = $results->records[$i]['email']; 
            $name = $results->records[$i]['name']; 
                 
-           $a_contacts[] = format_email_recipient($email, JQ($name)); 
+           $a_contacts[] = format_email_recipient($email, $name);
            } 
          }
     $LDAP->close(); 
index 7df8dabbc0b708411307c5cdc11443d4b6284989..1668994729252f22b1bf4ba59df158cc2e8526bc 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: func.inc 1125 2008-02-20 22:47:06Z thomasb $
+ $Id: func.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -695,10 +695,10 @@ function rcmail_print_body($part, $safe=FALSE, $plain=FALSE)
       $quotation = '';
       $q = 0;
       
-      if (preg_match('/^(>+\s*)/', $line, $regs))
+      if (preg_match('/^(>+\s*)+/', $line, $regs))
         {
-        $q = strlen(preg_replace('/\s/', '', $regs[1]));
-        $line = substr($line, strlen($regs[1]));
+        $q    = strlen(preg_replace('/\s/', '', $regs[0]));
+        $line = substr($line, strlen($regs[0]));
 
         if ($q > $quote_level)
           $quotation = str_repeat('<blockquote>', $q - $quote_level);
index 12dd18a6ceddba4e9358d5f67246fe96d5df174b..f5168dd6f118a894516403abede4ecc54d420ba7 100644 (file)
@@ -16,7 +16,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: sendmail.inc 1120 2008-02-19 23:59:38Z thomasb $
+ $Id: sendmail.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -212,12 +212,16 @@ if (!empty($_POST['_receipt']))
 // additional headers
 $headers['Message-ID'] = $message_id;
 $headers['X-Sender'] = $from;
-$headers['Received'] =  wordwrap('from ' .
-  (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?
-    gethostbyaddr($_SERVER['HTTP_X_FORWARDED_FOR']).' ['.$_SERVER['HTTP_X_FORWARDED_FOR'].'] via ' : '') .
-  gethostbyaddr($_SERVER['REMOTE_ADDR']).' ['.$_SERVER['REMOTE_ADDR'].'] with ' .
-  $_SERVER['SERVER_PROTOCOL'].' ('.$_SERVER['REQUEST_METHOD'].'); ' . date('r'),
-  69, rcmail_header_delm() . "\t");
+
+if ($CONFIG['http_received_header'])
+{
+  $nldlm = rcmail_header_delm() . "\t";
+  $headers['Received'] =  wordwrap('from ' . (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ?
+      gethostbyaddr($_SERVER['HTTP_X_FORWARDED_FOR']).' ['.$_SERVER['HTTP_X_FORWARDED_FOR'].']'.$nldlm.' via ' : '') .
+    gethostbyaddr($_SERVER['REMOTE_ADDR']).' ['.$_SERVER['REMOTE_ADDR'].']'.$nldlm.'with ' .
+    $_SERVER['SERVER_PROTOCOL'].' ('.$_SERVER['REQUEST_METHOD'].'); ' . date('r'),
+    69, $nldlm);
+}
 
 if (!empty($CONFIG['useragent']))
   $headers['User-Agent'] = $CONFIG['useragent'];
@@ -245,6 +249,11 @@ if ($isHtml)
   // add a plain text version of the e-mail as an alternative part.
   $h2t = new html2text($message_body);
   $plainTextPart = wordwrap($h2t->get_text(), 998, "\r\n", true);
+  if (!strlen($plainTextPart)) 
+    { 
+    // empty message body breaks attachment handling in drafts 
+    $plainTextPart = "\r\n"; 
+    }
   $MAIL_MIME->setTXTBody(html_entity_decode($plainTextPart, ENT_COMPAT, 'utf-8'));
 
   // look for "emoticon" images from TinyMCE and copy into message as attachments
@@ -254,6 +263,11 @@ else
   {
   $message_body = wordwrap($message_body, 75, "\r\n");
   $message_body = wordwrap($message_body, 998, "\r\n", true);
+  if (!strlen($message_body))  
+    { 
+    // empty message body breaks attachment handling in drafts 
+    $message_body = "\r\n"; 
+    } 
   $MAIL_MIME->setTXTBody($message_body, FALSE, TRUE);
   }
 
index ec79c2cfdddb4079e39c0fe93447360d90610bff..344ce58b7f6b1e829f6add7775927ce461d985c0 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: show.inc 1046 2008-02-11 23:07:44Z thomasb $
+ $Id: show.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -30,6 +30,10 @@ if ($_GET['_uid'])
   $MESSAGE = array('UID' => get_input_value('_uid', RCUBE_INPUT_GET));
   $MESSAGE['headers'] = $IMAP->get_headers($MESSAGE['UID']);
   
+  // set message charset as default
+  if (!empty($MESSAGE['headers']->charset))
+    $IMAP->set_charset($MESSAGE['headers']->charset);
+  
   // go back to list if message not found (wrong UID)
   if (!$MESSAGE['headers'])
     {
index 5f10a569352b49a46944f9865f058ca1b18d8115..9ad8c142bbe194571c5fa5f70077b2252e6aba57 100644 (file)
@@ -5,7 +5,7 @@
  | program/steps/mail/viewsource.inc                                     |
  |                                                                       |
  | This file is part of the RoundCube Webmail client                     |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland                 |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: viewsource.inc 850 2007-10-03 00:13:32Z ihug $
+ $Id: viewsource.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
 
 // similar code as in program/steps/mail/get.inc
 if ($uid = get_input_value('_uid', RCUBE_INPUT_GET))
-  {
-  header('Content-Type: text/plain');
-  //@ob_end_clean();
+{
+  $headers = $IMAP->get_headers($uid);
+  $charset = $headers->charset ? $headers->charset : $IMAP->default_charset;
+  header("Content-Type: text/plain; charset={$charset}");
   $IMAP->print_raw_body($uid);
-  }
+}
 else
-  {
-  raise_error(array('code' => 500,
-                    'type' => 'php',
-                    'message' => 'Message UID '.$uid.' not found'),
-              TRUE,
-              TRUE);
-  }
+{
+  raise_error(array(
+      'code' => 500,
+      'type' => 'php',
+      'message' => 'Message UID '.$uid.' not found'),
+    true,
+    true);
+}
 
 exit;
 ?>
index f8190c01f562d27572a300f4c2934e50c1cf8dfe..80ed8fc877a1ce0cae7171578b3606b4929214e0 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: func.inc 1176 2008-03-03 21:47:59Z thomasb $
+ $Id: func.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -67,14 +67,16 @@ function rcmail_user_prefs_form($attrib)
     $select_timezone = new select(array('name' => '_timezone', 'id' => $field_id));
     $select_timezone->add('(GMT -11:00) Midway Island, Samoa', '-11');
     $select_timezone->add('(GMT -10:00) Hawaii', '-10');
+    $select_timezone->add('(GMT -9:30) Marquesas Islands', '-9.5');
     $select_timezone->add('(GMT -9:00) Alaska', '-9');
     $select_timezone->add('(GMT -8:00) Pacific Time (US/Canada)', '-8');
     $select_timezone->add('(GMT -7:00) Mountain Time (US/Canada)', '-7');
     $select_timezone->add('(GMT -6:00) Central Time (US/Canada), Mexico City', '-6');
     $select_timezone->add('(GMT -5:00) Eastern Time (US/Canada), Bogota, Lima', '-5');
-    $select_timezone->add('(GMT -4:00) Atlantic Time (Canada), Caracas, La Paz', '-4');
-    $select_timezone->add('(GMT -3:00) Brazil, Buenos Aires, Georgetown', '-3');
+    $select_timezone->add('(GMT -4:30) Caracas', '-4.5');
+    $select_timezone->add('(GMT -4:00) Atlantic Time (Canada), La Paz', '-4');
     $select_timezone->add('(GMT -3:30) Nfld Time (Canada), Nfld, S. Labador', '-3.5');
+    $select_timezone->add('(GMT -3:00) Brazil, Buenos Aires, Georgetown', '-3');
     $select_timezone->add('(GMT -2:00) Mid-Atlantic', '-2');
     $select_timezone->add('(GMT -1:00) Azores, Cape Verde Islands', '-1');
     $select_timezone->add('(GMT) Western Europe, London, Lisbon, Casablanca', '0');
@@ -88,13 +90,18 @@ function rcmail_user_prefs_form($attrib)
     $select_timezone->add('(GMT +5:30) Chennai, Kolkata, Mumbai, New Delhi', '5.5');
     $select_timezone->add('(GMT +5:45) Kathmandu', '5.75');
     $select_timezone->add('(GMT +6:00) Almaty, Dhaka, Colombo', '6');
+    $select_timezone->add('(GMT +6:30) Cocos Islands, Myanmar', '6.5');
     $select_timezone->add('(GMT +7:00) Bangkok, Hanoi, Jakarta', '7');
     $select_timezone->add('(GMT +8:00) Beijing, Perth, Singapore, Taipei', '8');
+    $select_timezone->add('(GMT +8:45) Caiguna, Eucla, Border Village', '8.75');
     $select_timezone->add('(GMT +9:00) Tokyo, Seoul, Yakutsk', '9');
     $select_timezone->add('(GMT +9:30) Adelaide, Darwin', '9.5');
     $select_timezone->add('(GMT +10:00) EAST/AEST: Sydney, Guam, Vladivostok', '10');
+    $select_timezone->add('(GMT +10:30) New South Wales', '10.5');
     $select_timezone->add('(GMT +11:00) Magadan, Solomon Islands', '11');
+    $select_timezone->add('(GMT +11:30) Norfolk Island', '11.5');
     $select_timezone->add('(GMT +12:00) Auckland, Wellington, Kamchatka', '12');
+    $select_timezone->add('(GMT +12:45) Chatham Islands', '12.75');
     $select_timezone->add('(GMT +13:00) Tonga, Pheonix Islands', '13');
     $select_timezone->add('(GMT +14:00) Kiribati', '14');
   
index ee368ad36c1b53cc4245928917b7a9f151dbdb81..6e89bebbc2586828280543b0f731316fdf616c6b 100644 (file)
@@ -15,7 +15,7 @@
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 
- $Id: manage_folders.inc 1159 2008-02-29 11:49:09Z thomasb $
+ $Id: manage_folders.inc 1255 2008-04-05 12:49:21Z thomasb $
 
 */
 
@@ -28,8 +28,8 @@ $OUTPUT->include_script('list.js');
 // subscribe to one or more mailboxes
 if ($_action=='subscribe')
   {
-  if ($mboxes = get_input_value('_mboxes', RCUBE_INPUT_POST))
-    $IMAP->subscribe($mboxes);
+  if ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST))
+    $IMAP->subscribe(array($mbox));
 
   if ($OUTPUT->ajax_call)
     $OUTPUT->remote_response('// subscribed');
@@ -38,8 +38,8 @@ if ($_action=='subscribe')
 // unsubscribe one or more mailboxes
 else if ($_action=='unsubscribe')
   {
-  if ($mboxes = get_input_value('_mboxes', RCUBE_INPUT_POST))
-    $IMAP->unsubscribe($mboxes);
+  if ($mbox = get_input_value('_mbox', RCUBE_INPUT_POST))
+    $IMAP->unsubscribe(array($mbox));
 
   if ($OUTPUT->ajax_call)
     $OUTPUT->remote_response('// unsubscribed');
diff --git a/robots.txt b/robots.txt
new file mode 100644 (file)
index 0000000..1f53798
--- /dev/null
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
index 82e1d409d5804c30c083b908c94fb346e71f2b57..4d41b146547887a0ec62d2e42bc1230c5695529c 100644 (file)
@@ -70,6 +70,7 @@ input, textarea
   padding: 1px;
   padding-left: 3px;
   padding-right: 3px;
+  color: #333333;
   background-color: #ffffff;
   border: 1px solid #666666;
 }
index e8b1c88fe4e39fb34802f8ab4428e3fc6d5dc0e6..31a0a592e903ec23608a5e23f9ac26d52699e7b5 100644 (file)
@@ -1,61 +1,15 @@
-/* This file contains the CSS data for the editable area(iframe) of TinyMCE */\r
-/* You can extend this CSS by adding your own CSS file with the the content_css option */\r
-\r
-body, td, pre {\r
-       font-family: Verdana, Arial, Helvetica, sans-serif;\r
-       font-size: 12px;\r
-}\r
-\r
-body {\r
+/* This file contains the CSS data for the editable area(iframe) of TinyMCE */
+/* You can extend this CSS by adding your own CSS file with the the content_css option */
+
+body, td, pre {
+       font-family: Verdana, Arial, Helvetica, sans-serif;
+       font-size: 12px;
+}
+  
+body {
        background-color: #FFFFFF;
        margin-left: 4px;
        margin-right: 4px;
        margin-top: 2px;
-}\r
-\r
-.mceVisualAid {\r
-       border: 1px dashed #BBBBBB !important;\r
-}\r
-\r
-div.mceVisualAid {\r
-       background-image:url('../images/spacer.gif');\r
-       visibility: visible !important;\r
-}\r
-\r
-.mceItemAnchor {\r
-       width: 12px;\r
-       line-height: 6px;\r
-       overflow: hidden;\r
-       padding-left: 12px;\r
-       background-image: url('../images/anchor_symbol.gif');\r
-       background-position: bottom;\r
-       background-repeat: no-repeat;\r
-}\r
-\r
-/* Important is needed in Gecko browsers inorder to style links */\r
-/*\r
-a {\r
-       color: green !important;\r
-}\r
-*/\r
-\r
-/* Style selection range colors in Gecko browsers */\r
-/*\r
-::-moz-selection {\r
-       background-color: red;\r
-       color: green;\r
-}\r
-*/\r
-\r
-/* MSIE specific */\r
-\r
-* html body {\r
-       scrollbar-3dlight-color: #F0F0EE;\r
-       scrollbar-arrow-color: #676662;\r
-       scrollbar-base-color: #F0F0EE;\r
-       scrollbar-darkshadow-color: #DDDDDD;\r
-       scrollbar-face-color: #E0E0DD;\r
-       scrollbar-highlight-color: #F0F0EE;\r
-       scrollbar-shadow-color: #F0F0EE;\r
-       scrollbar-track-color: #F5F5F5;\r
-}\r
+}
+
index a7e034a0b2bce365351d0f70b9d4558d84b4ad0e..2e47ff911d8993b6e4744ed25259123f2a8597ac 100644 (file)
@@ -1,3 +1,3 @@
-<div id="header"><roundcube:button command="mail" image="/images/roundcube_logo.png" alt="RoundCube Webmail" width="165" height="55" /></div>
+<div id="header"><roundcube:button command="mail" image="/images/roundcube_logo.png" alt="RoundCube Webmail" /></div>
 
 <roundcube:object name="message" id="message" />
index aa3f64313f7ebb33c66337bd1d17c634306120b1..69762b6652c3e9cf77308c054d5287cbf94da0ca 100644 (file)
@@ -153,6 +153,9 @@ td.formlinks a:visited
   left: 20px;
   right: 20px;
   bottom: 20px;
+  /* css hack for IE */
+  width: expression((parseInt(document.documentElement.clientWidth)-40)+'px');
+  height: expression((parseInt(document.documentElement.clientHeight)-100)+'px');
 }
 
 #mailcontframe
@@ -202,8 +205,6 @@ td.formlinks a:visited
   height: 100%;
   border: 1px solid #999999;
   background-color: #F9F9F9;
-  /* css hack for IE */
-  height: expression(parseInt(document.getElementById('messagepartcontainer').offsetHeight)+'px');
 }
 
 
index 7ee50f527c92aac2231aa8176b41e18260427221..9f0c8f3cc0e5d578f3031ac664f641553e8ee2c4 100644 (file)
@@ -69,7 +69,7 @@ span.tablink-selected a
 
 #folder-manager
 {
-  width: 540px;
+  width: 600px;
   bottom: 140px;
   overflow: auto;
   border: 1px solid #999999;
@@ -119,7 +119,7 @@ span.tablink-selected a
 #bottomboxes
 {
   position: absolute;
-  width: 540px;
+  width: 600px;
   height: 120px;
   left: 20px;
   bottom: 20px;
@@ -142,7 +142,7 @@ div.boxtitle,
 
 div.settingsbox
 {
-  width: 540px;
+  width: 600px;
   margin-top: 20px;
   margin-bottom: 20px;
   border: 1px solid #999999;
@@ -185,28 +185,15 @@ div.settingspart
 
 #subscription-table thead td.name
 {
-  width: 240px;
+  width: 250px;
 }
 
 #subscription-table thead td.msgcount
 {
-  width: 70px;
+  width: 90px;
 }
 
 #subscription-table thead td.subscribed
 {
-  width: 60px;
-}
-
-#subscription-table tbody td.msgcount,
-#subscription-table tbody td.subscribed
-{
-  padding-left: 18px;
-}
-
-#subscription-table thead td.rename,
-#subscription-table thead td.delete
-{
-  width: 20px;
-  text-align: center;
+  width: 90px;
 }
index 1950be2e83d0487e09c08e297c44848910ff2bb9..2a48f48bf6b08359badaad97ffff523d6211cdf9 100644 (file)
@@ -28,7 +28,7 @@
 </head>
 <body>
 
-<img src="/images/roundcube_logo.png" width="165" height="55" border="0" alt="<roundcube:object name='productname' />" hspace="12" vspace="2"/>
+<img src="/images/roundcube_logo.png" border="0" alt="<roundcube:object name='productname' />" style="margin:2px 12px" />
 
 <roundcube:object name="message" id="message" />
 
index 223c98b4ded9c6f25066c58cf3f8861c9deb4920..eecff69fb47297844be69f59560389b64914ed0c 100644 (file)
@@ -6,7 +6,7 @@
 </head>
 <body>
 
-<div id="header"><img src="/images/roundcube_logo_print.gif" width="182" height="50" alt="RoundCube Webmail" /></div>
+<div id="header"><img src="/images/roundcube_logo_print.gif" alt="<roundcube:object name="productname" />" /></div>
 
 <div id="messageframe">
 <roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" />