From 977a295eb1e97e0c230063da40b8296fca778814 Mon Sep 17 00:00:00 2001 From: thomascube Date: Fri, 16 Dec 2005 20:05:41 +0000 Subject: Usage of virtusertable; mail_domain for new users; Chinese and Turkish localization --- .htaccess | 2 - CHANGELOG | 8 ++ README | 17 +++- SQL/postgres.initial.sql | 126 ++++++++++++------------ config/main.inc.php.dist | 7 ++ index.php | 4 +- program/include/main.inc | 109 ++++++++++++++++++++- program/include/rcube_smtp.inc | 3 +- program/js/app.js | 122 ++++++++++++++++-------- program/localization/cn/labels.inc | 179 +++++++++++++++++++++++++++++++++++ program/localization/cn/messages.inc | 63 ++++++++++++ program/localization/de/messages.inc | 2 + program/localization/en/messages.inc | 2 + program/localization/index.inc | 3 +- program/localization/tr/labels.inc | 176 ++++++++++++++++++++++++++++++++++ program/localization/tr/messages.inc | 60 ++++++++++++ program/steps/mail/compose.inc | 2 +- 17 files changed, 771 insertions(+), 114 deletions(-) create mode 100644 program/localization/cn/labels.inc create mode 100644 program/localization/cn/messages.inc create mode 100644 program/localization/tr/labels.inc create mode 100644 program/localization/tr/messages.inc diff --git a/.htaccess b/.htaccess index c0ab7f0ae..bb8fb50b6 100644 --- a/.htaccess +++ b/.htaccess @@ -1,6 +1,4 @@ php_flag display_errors On -php_value session.gc_maxlifetime 21600 -php_value session.gc_divisor 500 php_value upload_max_filesize 2m diff --git a/CHANGELOG b/CHANGELOG index afadced18..5f6e38041 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,14 @@ CHANGELOG RoundCube Webmail --------------------------- + +2005/12/16 +---------- +- Added Turkish and Simplified Chinese translation +- Use virtusertable to resolve e-mail addresses at login +- Configurable mail_domain used to compose correct e-mail addresses on first login + + 2005/12/03 ---------- - Added Finnish, Romanian, Polish, Czech, British, Norwegian, Greek, Russian, Estonian and Chinese translation diff --git a/README b/README index 8d632cbfe..2a85bd061 100644 --- a/README +++ b/README @@ -1,5 +1,15 @@ RoundCube Webmail (http://roundcube.net) + +ATTENTION +--------- +This is just a snapshot of the current CVS repository and is NOT A STABLE +version of RoundCube. There have been major changes since the latest release +so please read the update instructions carefully. It's not recommended to +replace an existing installation of RoundCube with this version. Also using +a separate database or this installation is highly recommended. + + Introduction: ------------- RoundCube Webmail is a browser-based multilingual IMAP client with an @@ -43,7 +53,10 @@ LICENSE for more information about our license. Contact: -------- -For any bug reports or feature requests please refer to the tracking system at sourceforge.net (http://sourceforge.net/tracker/?group_id=139281) or subscribe to our mailing list. See http://www.roundcube.net/?p=mailinglists for details. +For any bug reports or feature requests please refer to the tracking system +at sourceforge.net (http://sourceforge.net/tracker/?group_id=139281) or +subscribe to our mailing list. See http://www.roundcube.net/?p=mailinglists +for details. -Your also welcome to send a message to the project admin: +You're always welcome to send a message to the project admin: roundcube@gmail.com diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql index 4e74a222f..554614ed2 100755 --- a/SQL/postgres.initial.sql +++ b/SQL/postgres.initial.sql @@ -1,3 +1,67 @@ + +-- +-- Sequence "cache_ids" +-- Name: cache_ids; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE cache_ids + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + +-- +-- Sequence "contact_ids" +-- Name: contact_ids; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE contact_ids + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + +-- +-- Sequence "identity_ids" +-- Name: identity_ids; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE identity_ids + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + +-- +-- Sequence "user_ids" +-- Name: user_ids; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE user_ids + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + +-- +-- Sequence "message_ids" +-- Name: message_ids; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE message_ids + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + + -- -- Table "users" -- Name: users; Type: TABLE; Schema: public; Owner: postgres @@ -159,65 +223,3 @@ ALTER TABLE ONLY "identities" ALTER TABLE ONLY "messages" ADD CONSTRAINT "$1" FOREIGN KEY (user_id) REFERENCES users(user_id); - --- --- Sequence "cache_ids" --- Name: cache_ids; Type: SEQUENCE; Schema: public; Owner: postgres --- - -CREATE SEQUENCE cache_ids - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - - --- --- Sequence "contact_ids" --- Name: contact_ids; Type: SEQUENCE; Schema: public; Owner: postgres --- - -CREATE SEQUENCE contact_ids - START WITH 1 - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - - --- --- Sequence "identity_ids" --- Name: identity_ids; Type: SEQUENCE; Schema: public; Owner: postgres --- - -CREATE SEQUENCE identity_ids - START WITH 1 - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - - --- --- Sequence "user_ids" --- Name: user_ids; Type: SEQUENCE; Schema: public; Owner: postgres --- - -CREATE SEQUENCE user_ids - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - - --- --- Sequence "message_ids" --- Name: message_ids; Type: SEQUENCE; Schema: public; Owner: postgres --- - -CREATE SEQUENCE message_ids - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index ec1614e18..dc147763f 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -36,6 +36,13 @@ $rcmail_config['default_host'] = ''; // TCP port used for IMAP connections $rcmail_config['default_port'] = 143; +// This domain will be used to form e-mail addresses of new users +// Specify an array with 'host' => 'domain' values to support multiple hosts +$rcmail_config['mail_domain'] = 'roundcube.net'; + +// Path to a virtuser table file to resolve user names and e-mail addresses +$rcmail_config['virtuser_file'] = ''; + // use this host for sending mails. // to use SSL connection, set ssl://smtp.host.com // if left blank, the PHP mail() function is used diff --git a/index.php b/index.php index 3141cabac..ee65f8a7c 100644 --- a/index.php +++ b/index.php @@ -58,7 +58,9 @@ ini_set('include_path', $INSTALL_PATH.PATH_SEPARATOR.$INSTALL_PATH.'program'.PAT ini_set('session.name', 'sessid'); ini_set('session.use_cookies', 1); -ini_set('error_reporting', E_ALL&~E_NOTICE); +ini_set('session.gc_maxlifetime', 21600); +ini_set('session.gc_divisor', 500); +ini_set('error_reporting', E_ALL&~E_NOTICE); // increase maximum execution time for php scripts // (does not work in safe mode) diff --git a/program/include/main.inc b/program/include/main.inc index 6c4591dac..4cfb5b270 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -332,6 +332,11 @@ function rcmail_login($user, $pass, $host=NULL) $user = $sql_arr['username']; } + // try to resolve email address from virtuser table + if (!empty($CONFIG['virtuser_file']) && strstr($user, '@')) + $user = rcmail_email2user($user); + + // exit if IMAP login failed if (!($imap_login = $IMAP->connect($host, $user, $pass, $imap_port, $imap_ssl))) return FALSE; @@ -388,19 +393,35 @@ function rcmail_login($user, $pass, $host=NULL) function rcmail_create_user($user, $host) { global $DB, $CONFIG, $IMAP; - + + $user_email = ''; + + // try to resolve user in virtusertable + if (!empty($CONFIG['virtuser_file']) && strstr($user, '@')==FALSE) + $user_email = rcmail_user2email($user); + $DB->query("INSERT INTO ".get_table_name('users')." - (created, last_login, username, mail_host, language) - VALUES (now(), now(), ?, ?, ?)", + (created, last_login, username, mail_host, alias, language) + VALUES (now(), now(), ?, ?, ?, ?)", $user, $host, + $user_email, $_SESSION['user_lang']); if ($user_id = $DB->insert_id(get_sequence_name('users'))) { - $user_email = strstr($user, '@') ? $user : sprintf('%s@%s', $user, $host); + if (is_string($CONFIG['mail_domain'])) + $mail_domain = $CONFIG['mail_domain']; + else if (is_array($CONFIG['mail_domain']) && isset($CONFIG['mail_domain'][$host])) + $mail_domain = $CONFIG['mail_domain'][$host]; + else + $mail_domain = $host; + + if ($user_email=='') + $user_email = strstr($user, '@') ? $user : sprintf('%s@%s', $user, $mail_domain); + $user_name = $user!=$user_email ? $user : ''; - + // also create a new identity record $DB->query("INSERT INTO ".get_table_name('identities')." (user_id, del, standard, name, email) @@ -433,6 +454,84 @@ function rcmail_create_user($user, $host) } +// load virtuser table in array +function rcmail_getvirtualfile() + { + global $CONFIG; + if (empty($CONFIG['virtuser_file']) || !is_file($CONFIG['virtuser_file'])) + return FALSE; + + // read file + $a_lines = file($CONFIG['virtuser_file']); + return $a_lines; + } + + +// find matches of the given pattern in virtuser table +function rcmail_findinvirtual($pattern) + { + $result = array(); + $virtual = rcmail_getvirtualfile(); + if ($virtual==FALSE) + return $result; + + // check each line for matches + foreach ($virtual as $line) + { + $line = trim($line); + if (empty($line) || $line{0}=='#') + continue; + + if (eregi($pattern, $line)) + $result[] = $line; + } + + return $result; + } + + +// resolve username with virtuser table +function rcmail_email2user($email) + { + $user = $email; + $r = rcmail_findinvirtual("^$email"); + + for ($i=0; $i0) + { + $user = trim($arr[count($arr)-1]); + break; + } + } + + return $user; + } + + +// resolve e-mail address with virtuser table +function rcmail_user2email($user) + { + $email = ""; + $r = rcmail_findinvirtual("$user$"); + + for ($i=0; $i0) + { + $email = trim($arr[0]); + break; + } + } + + return $email; + } + + // overwrite action variable function rcmail_overwrite_action($action) { diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc index e4aea09d2..d3376328f 100644 --- a/program/include/rcube_smtp.inc +++ b/program/include/rcube_smtp.inc @@ -72,7 +72,8 @@ function smtp_mail($from, $recipients, $headers, &$body) // create Net_SMTP object and connect to server if (!is_object($smtp_conn)) { - $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, 'localhost'); + $helo_host = !empty($_SERVER['server_name']) ? $_SERVER['server_name'] : 'localhost'; + $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host); // set debugging if ($CONFIG['debug_level'] & 8) diff --git a/program/js/app.js b/program/js/app.js index a7445e2b5..213f62b21 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -6,7 +6,7 @@ | Copyright (C) 2005, RoundCube Dev, - Switzerland | | Licensed under the GNU GPL | | | - | Modified: 2005/12/14 (roundcube) | + | Modified: 2005/12/16 (roundcube) | | | +-----------------------------------------------------------------------+ | Author: Thomas Bruederli | @@ -312,6 +312,9 @@ function rcube_webmail() input_subject.focus(); else if (input_message) this.set_caret2start(input_message); // input_message.focus(); + + // get summary of all field values + this.cmp_hash = this.compose_field_hash(); }; @@ -457,7 +460,13 @@ function rcube_webmail() // misc list commands case 'list': if (this.task=='mail') + { + // check input before leaving compose step + if (this.env.action=='compose' && this.cmp_hash != this.compose_field_hash() && !confirm(this.get_label('notsentwarning'))) + break; + this.list_mailbox(props); + } else if (this.task=='addressbook') this.list_contacts(); break; @@ -693,45 +702,8 @@ function rcube_webmail() if (!this.gui_objects.messageform) break; - // check input fields - var input_to = rcube_find_object('_to'); - var input_subject = rcube_find_object('_subject'); - var input_message = rcube_find_object('_message'); - - // check for empty recipient - if (input_to && !rcube_check_email(input_to.value, true)) - { - alert(this.get_label('norecipientwarning')); - input_to.focus(); + if (!this.check_compose_input()) break; - } - - // display localized warning for missing subject - if (input_subject && input_subject.value == '') - { - var subject = prompt(this.get_label('nosubjectwarning'), this.get_label('nosubject')); - - // user hit cancel, so don't send - if (!subject && subject !== '') - { - input_subject.focus(); - break; - } - else - { - input_subject.value = subject ? subject : this.get_label('nosubject'); - } - } - - // check for empty body - if (input_message.value=='') - { - if (!confirm(this.get_label('nobodywarning'))) - { - input_message.focus(); - break; - } - } // all checks passed, send message this.set_busy(true, 'sendingmessage'); @@ -1348,6 +1320,78 @@ function rcube_webmail() /*********************************************************/ + // checks the input fields before sending a message + this.check_compose_input = function() + { + // check input fields + var input_to = rcube_find_object('_to'); + var input_subject = rcube_find_object('_subject'); + var input_message = rcube_find_object('_message'); + + // check for empty recipient + if (input_to && !rcube_check_email(input_to.value, true)) + { + alert(this.get_label('norecipientwarning')); + input_to.focus(); + return false; + } + + // display localized warning for missing subject + if (input_subject && input_subject.value == '') + { + var subject = prompt(this.get_label('nosubjectwarning'), this.get_label('nosubject')); + + // user hit cancel, so don't send + if (!subject && subject !== '') + { + input_subject.focus(); + return false; + } + else + { + input_subject.value = subject ? subject : this.get_label('nosubject'); + } + } + + // check for empty body + if (input_message.value=='') + { + if (!confirm(this.get_label('nobodywarning'))) + { + input_message.focus(); + return false; + } + } + + return true; + }; + + + this.compose_field_hash = function() + { + // check input fields + var input_to = rcube_find_object('_to'); + var input_cc = rcube_find_object('_to'); + var input_bcc = rcube_find_object('_to'); + var input_subject = rcube_find_object('_subject'); + var input_message = rcube_find_object('_message'); + + var str = ''; + if (input_to && input_to.value) + str += input_to.value+':'; + if (input_cc && input_cc.value) + str += input_cc.value+':'; + if (input_bcc && input_bcc.value) + str += input_bcc.value+':'; + if (input_subject && input_subject.value) + str += input_subject.value+':'; + if (input_message && input_message.value) + str += input_message.value; + + return str; + }; + + this.change_identity = function(obj) { if (!obj || !obj.options) diff --git a/program/localization/cn/labels.inc b/program/localization/cn/labels.inc new file mode 100644 index 000000000..6d72f763c --- /dev/null +++ b/program/localization/cn/labels.inc @@ -0,0 +1,179 @@ + | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +$utf8_decoding = TRUE; + +$labels = array(); + +// login page +$labels['username'] = '用户名'; +$labels['password'] = '密码'; +$labels['server'] = '服务器'; +$labels['login'] = '登录'; + +// taskbar +$labels['logout'] = '退出'; +$labels['mail'] = '电子邮件'; +$labels['settings'] = '个人设置'; +$labels['addressbook'] = '地址薄'; + +// mailbox names +$labels['inbox'] = '收件箱'; +$labels['sent'] = '发件箱'; +$labels['trash'] = '垃圾桶'; +$labels['drafts'] = '早稿'; +$labels['junk'] = '垃圾邮件'; + +// message listing +$labels['subject'] = '邮件标题'; +$labels['from'] = '发件人'; +$labels['to'] = '接收人'; +$labels['cc'] = '副本'; +$labels['bcc'] = '密送'; +$labels['replyto'] = '回复地址'; +$labels['date'] = '日期'; +$labels['size'] = '文件大小'; +$labels['priority'] = '优先权'; +$labels['organization'] = '机构'; + +// aliases +$labels['reply-to'] = $labels['回复到']; + +$labels['mailboxlist'] = '文件夹'; +$labels['messagesfromto'] = 'Messages $from to $to of $count'; +$labels['messagenrof'] = 'Message $nr of $count'; + +$labels['moveto'] = '移动到...'; +$labels['download'] = '下载'; + +$labels['filename'] = '文件名称'; +$labels['filesize'] = '文件大小'; + +$labels['preferhtml'] = '以HTML格式显示'; +$labels['htmlmessage'] = 'HTML格式邮件'; +$labels['prettydate'] = 'Pretty dates'; + +$labels['addtoaddressbook'] = '加到地址薄'; + +// weekdays short +$labels['sun'] = '星期日'; +$labels['mon'] = '星期一'; +$labels['tue'] = '星期二'; +$labels['wed'] = '星期三'; +$labels['thu'] = '星期四'; +$labels['fri'] = '星期五'; +$labels['sat'] = '星期六'; + +// weekdays long +$labels['sunday'] = '星期日'; +$labels['monday'] = '星期一'; +$labels['tuesday'] = '星期二'; +$labels['wednesday'] = '星期三'; +$labels['thursday'] = '星期四'; +$labels['friday'] = '星期五'; +$labels['saturday'] = '星期六'; + +$labels['today'] = '今天'; + +// toolbar buttons +$labels['writenewmessage'] = '写新邮件'; +$labels['replytomessage'] = '回复邮件'; +$labels['forwardmessage'] = '转发邮件'; +$labels['deletemessage'] = '把邮件移动到垃圾桶'; +$labels['printmessage'] = '打印这封邮件'; +$labels['previousmessages'] = '查看上一封邮件'; +$labels['nextmessages'] = '查看下一封邮件'; +$labels['backtolist'] = '返回邮件列表'; +$labels['viewsource'] = '显示源代码'; + +$labels['select'] = '选择'; +$labels['all'] = '全部'; +$labels['none'] = '没有'; +$labels['unread'] = '还没读过的'; + +// message compose +$labels['compose'] = '写新邮件'; +$labels['sendmessage'] = '立刻发送邮件'; +$labels['addattachment'] = '附加一个文件'; + +$labels['attachments'] = '附件'; +$labels['upload'] = '上传'; +$labels['close'] = '关闭'; + +$labels['low'] = '低'; +$labels['lowest'] = '最低'; +$labels['normal'] = '正常'; +$labels['high'] = '高'; +$labels['highest'] = '最高'; + +$labels['showimages'] = '显示图片'; + + +// address boook +$labels['name'] = '显示名字'; +$labels['firstname'] = '名'; +$labels['surname'] = '姓'; +$labels['email'] = '电子邮件'; + +$labels['addcontact'] = '增加新联系人'; +$labels['editcontact'] = '编辑联系信息'; + +$labels['edit'] = '编辑'; +$labels['cancel'] = '取消'; +$labels['save'] = '保存'; +$labels['delete'] = '删除'; + +$labels['newcontact'] = '建立新的联系信息'; +$labels['deletecontact'] = '删除所选择的联系信息'; +$labels['composeto'] = '给所选择的联系人发送邮件'; +$labels['contactsfromto'] = 'Contacts $from to $to of $count'; +$labels['print'] = '打印'; +$labels['export'] = '导出'; + + +// settings +$labels['settingsfor'] = 'Settings for'; + +$labels['preferences'] = '参数选择'; +$labels['userpreferences'] = '用户参数'; +$labels['editpreferences'] = '编辑用户参数'; + +$labels['identities'] = '法件人标识'; +$labels['manageidentities'] = '管理帐号资料'; +$labels['newidentity'] = '建立新标识'; + +$labels['newitem'] = 'New item'; +$labels['edititem'] = 'Edit item'; + +$labels['setdefault'] = '设置为默认'; +$labels['language'] = '语言'; +$labels['timezone'] = '时区'; +$labels['pagesize'] = '每页行数'; + + +$labels['folders'] = '文件夹'; +$labels['foldername'] = '文件夹名称'; +$labels['subscribed'] = '显示与否'; +$labels['create'] = '创建'; +$labels['createfolder'] = '建立新文件夹'; +$labels['deletefolder'] = '删除文件夹'; +$labels['managefolders'] = '管理文件夹'; + + +?> \ No newline at end of file diff --git a/program/localization/cn/messages.inc b/program/localization/cn/messages.inc new file mode 100644 index 000000000..49164d2c4 --- /dev/null +++ b/program/localization/cn/messages.inc @@ -0,0 +1,63 @@ + | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +$utf8_decoding = TRUE; + +$messages = array(); + +$messages['loginfailed'] = '登录失败'; + +$messages['cookiesdisabled'] = '你的浏览器目前关闭了cookies,请打开cookies再试'; + +$messages['sessionerror'] = '当前 session 无效或者超时 '; + +$messages['imaperror'] = '不能连接IMAP服务器'; + +$messages['nomessagesfound'] = '没有邮件在这个邮箱里'; + +$messages['loggedout'] = '成功结束当前会话. 再见!'; + +$messages['mailboxempty'] = '邮箱现在是空的'; + +$messages['loadingdata'] = '读取数据...'; + +$messages['messagesent'] = '邮件发送成功'; + +$messages['successfullysaved'] = '保存成功'; + +$messages['addedsuccessfully'] = '联系信息已经成功增加到地址薄'; + +$messages['contactexists'] = '这个邮件地址已经存在'; + +$messages['blockedimages'] = '为了保障你的私隐, 阻挡了这个邮件里的图片.'; + +$messages['encryptedmessage'] = '这是个加密的邮件因此不能显示. 抱歉!'; + +$messages['nocontactsfound'] = '没有发现联系人'; + +$messages['sendingfailed'] = '邮件发送失败'; + +$messages['errorsaving'] = '当发生错误时保存信息'; + +$messages['errormoving'] = '移动邮件出错'; + +$messages['errordeleting'] = '删除邮件出错'; + + +?> \ No newline at end of file diff --git a/program/localization/de/messages.inc b/program/localization/de/messages.inc index 145c7b4a7..e54b8967b 100644 --- a/program/localization/de/messages.inc +++ b/program/localization/de/messages.inc @@ -70,4 +70,6 @@ $messages['nosubjectwarning'] = 'Die Betreffzeile ist leer. M $messages['nobodywarning'] = 'Diese Nachricht ohne Inhalt senden?'; +$messages['notsentwarning'] = 'Ihre Nachricht wurde nicht gesendet. Wollen Sie die Nachricht verwerfen?'; + ?> \ No newline at end of file diff --git a/program/localization/en/messages.inc b/program/localization/en/messages.inc index d0286e229..c1520ecce 100644 --- a/program/localization/en/messages.inc +++ b/program/localization/en/messages.inc @@ -76,5 +76,7 @@ $messages['nosubjectwarning'] = 'The "Subject" field is empty. Would you like t $messages['nobodywarning'] = 'Send this message without text?'; +$messages['notsentwarning'] = 'Message has not been sent. Do you want to discard your message?'; + ?> \ No newline at end of file diff --git a/program/localization/index.inc b/program/localization/index.inc index 82424e602..eef9ca217 100644 --- a/program/localization/index.inc +++ b/program/localization/index.inc @@ -26,7 +26,7 @@ 'ar' => 'Arabic', 'bg' => 'Bulgarian', 'tw' => 'Chinese (BIG5)', - 'cn' => 'Chinese(GB2312)', + 'cn' => 'Chinese (GB2312)', 'cz' => 'Czech', 'ca' => 'Català', 'da' => 'Dansk', @@ -64,6 +64,7 @@ $rcube_charsets = array( 'lv' => 'ISO-8859-2', 'pl' => 'ISO-8859-2', 'el' => 'ISO-8859-7', + 'tr' => 'ISO-8859-9', 'tw' => 'BIG5', 'ja' => 'UTF-8' ); diff --git a/program/localization/tr/labels.inc b/program/localization/tr/labels.inc new file mode 100644 index 000000000..9daa54422 --- /dev/null +++ b/program/localization/tr/labels.inc @@ -0,0 +1,176 @@ + | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +$labels = array(); + +// login page +$labels['username'] = 'Kullanc Ad'; +$labels['password'] = 'ifre'; +$labels['server'] = 'Sunucu'; +$labels['login'] = 'Giri'; + +// taskbar +$labels['logout'] = 'k'; +$labels['mail'] = 'E-Posta'; +$labels['settings'] = 'Kiisel Ayarlar'; +$labels['addressbook'] = 'Adres Defteri'; + +// mailbox names +$labels['inbox'] = 'Gelen Kutusu'; +$labels['sent'] = 'Gnderilenler'; +$labels['trash'] = 'p'; +$labels['drafts'] = 'Taslaklar'; +$labels['junk'] = 'Gereksiz(spam)'; + +// message listing +$labels['subject'] = 'Konu'; +$labels['from'] = 'Gnderen'; +$labels['to'] = 'Alc'; +$labels['cc'] = 'Kopya'; +$labels['bcc'] = 'Gizli Kopya'; +$labels['replyto'] = 'Cevapla'; +$labels['date'] = 'Tarih'; +$labels['size'] = 'Boyut'; +$labels['priority'] = 'ncelik'; +$labels['organization'] = 'Organizasyon'; + +// aliases +$labels['reply-to'] = $labels['replyto']; + +$labels['mailboxlist'] = 'Klasrler'; +$labels['messagesfromto'] = '$from\' dan/den $to\' e/a $count tane mesaj var.'; +$labels['messagenrof'] = '$nr / $count'; + +$labels['moveto'] = 'uraya ta...'; +$labels['download'] = 'ndir'; + +$labels['filename'] = 'Dosya Ad'; +$labels['filesize'] = 'Dosya Boyutu'; + +$labels['preferhtml'] = 'HTML Tercih et'; +$labels['htmlmessage'] = 'HTML Mesaj'; +$labels['prettydate'] = 'Tarihleri Formatla'; + +$labels['addtoaddressbook'] = 'Add to address book'; + +// weekdays short +$labels['sun'] = 'Paz'; +$labels['mon'] = 'Pts'; +$labels['tue'] = 'Sal'; +$labels['wed'] = 'ar'; +$labels['thu'] = 'Per'; +$labels['fri'] = 'Cum'; +$labels['sat'] = 'Cts'; + +// weekdays long +$labels['sunday'] = 'Pazar'; +$labels['monday'] = 'Pazartesi'; +$labels['tuesday'] = 'Sal'; +$labels['wednesday'] = 'aramba'; +$labels['thursday'] = 'Perembe'; +$labels['friday'] = 'Cuma'; +$labels['saturday'] = 'Cumartesi'; + +$labels['today'] = 'Bugn'; + +// toolbar buttons +$labels['writenewmessage'] = 'Yeni Mesaj'; +$labels['replytomessage'] = 'Cevapla'; +$labels['forwardmessage'] = 'let'; +$labels['deletemessage'] = 'p Klasrne ta'; +$labels['printmessage'] = 'Mesaj Yazdr'; +$labels['previousmessages'] = 'Sonraki mesajlar gster'; +$labels['nextmessages'] = 'nceki mesajlar gster'; +$labels['backtolist'] = 'Mesaj Listesi'; +$labels['viewsource'] = 'Kaynak Kodu Gster'; + +$labels['select'] = 'Se'; +$labels['all'] = 'Tm'; +$labels['none'] = 'Hibiri'; +$labels['unread'] = 'Okunmam'; + +// message compose +$labels['compose'] = 'Yeni Mesaj'; +$labels['sendmessage'] = 'Mesaj gnder'; +$labels['addattachment'] = 'Dosya ekle'; + +$labels['attachments'] = 'Eklenmi Dosyalar'; +$labels['upload'] = 'Ykle'; +$labels['close'] = 'Kapat'; + +$labels['low'] = 'Aznemsiz'; +$labels['lowest'] = 'nemli'; +$labels['normal'] = 'Normal'; +$labels['high'] = 'nemli'; +$labels['highest'] = 'ok nemli'; + +$labels['showimages'] = 'Resimleri Gster'; + + +// address boook +$labels['name'] = 'Grnen sim'; +$labels['firstname'] = 'Ad'; +$labels['surname'] = 'Soayad'; +$labels['email'] = 'E-Posta'; + +$labels['addcontact'] = 'Yeni Kontak Ekle'; +$labels['editcontact'] = 'Kontak dzenle'; + +$labels['edit'] = 'Dzen'; +$labels['cancel'] = 'ptal'; +$labels['save'] = 'Kaydet'; +$labels['delete'] = 'Sil'; + +$labels['newcontact'] = 'Yeni kontak ekle'; +$labels['deletecontact'] = 'Seili kontaklar sil'; +$labels['composeto'] = 'u kiiye mesaj yaz:'; +$labels['contactsfromto'] = '$from \'den/dan $to \'e/a $count tane mesaj var'; +$labels['print'] = 'Yazdr'; +$labels['export'] = 'Farkl kaydet'; + + +// settings +$labels['settingsfor'] = 'Ayarlar:'; + +$labels['preferences'] = 'Ayarlar'; +$labels['userpreferences'] = 'Kullanc Ayarlar'; +$labels['editpreferences'] = 'Kullanc Ayarlarn Dzenle'; + +$labels['identities'] = 'Kimlikler'; +$labels['manageidentities'] = 'Bu hesap iin kimlikleri dzenle'; +$labels['newidentity'] = 'Yeni Kimlik'; + +$labels['newitem'] = 'Yeni e'; +$labels['edititem'] = 'eyi dzenle'; + +$labels['setdefault'] = 'Varsaylan olarak ata'; +$labels['language'] = 'Dil'; +$labels['timezone'] = 'Zaman Dilimi'; +$labels['pagesize'] = 'Sayfada Gsterilecek Satr'; + + +$labels['folders'] = 'Klasrler'; +$labels['foldername'] = 'Klasr ad'; +$labels['subscribed'] = 'Kaytl'; +$labels['create'] = 'Olutur'; +$labels['createfolder'] = 'Yeni klasr olutur'; +$labels['deletefolder'] = 'Klasr sl'; +$labels['managefolders'] = 'Klasrleri dzenle'; + + +?> \ No newline at end of file diff --git a/program/localization/tr/messages.inc b/program/localization/tr/messages.inc new file mode 100644 index 000000000..a4fe9a806 --- /dev/null +++ b/program/localization/tr/messages.inc @@ -0,0 +1,60 @@ + | + +-----------------------------------------------------------------------+ + + $Id$ + +*/ + +$messages = array(); + +$messages['loginfailed'] = 'Baarsz Giri'; + +$messages['cookiesdisabled'] = 'Taraycnzn Cerez(cookie) destei ak deil'; + +$messages['sessionerror'] = 'Oturumunuz hatal ve ya uzun sre ilem yapmadnz iin kapand'; + +$messages['imaperror'] = 'IMAP sunucusuna balanlamad'; + +$messages['nomessagesfound'] = 'Gelen kutusnda mesaj yok'; + +$messages['loggedout'] = 'Oturumunuz baaryla kapatld. Gle Gle!'; + +$messages['mailboxempty'] = 'Gelen kutusu bo'; + +$messages['loadingdata'] = 'Veri ykleniyor...'; + +$messages['messagesent'] = 'Mesaj gnderildi'; + +$messages['successfullysaved'] = 'Kaydedildi'; + +$messages['addedsuccessfully'] = 'Kontak eklendi'; + +$messages['contactexists'] = 'Bu e-posta adresine sahip bir kontak zaten kaytl'; + +$messages['blockedimages'] = 'Gvenliiniz iin harici resimler engellendi.'; + +$messages['encryptedmessage'] = 'ifrelenmi bir mesaj, okuyamazsnz!'; + +$messages['nocontactsfound'] = 'Kontak bulunamad'; + +$messages['sendingfailed'] = 'Mesaj gnderilemedi'; + +$messages['errorsaving'] = 'Kaydederken hata olutu'; + +$messages['errormoving'] = 'Mesaj tanamad'; + +$messages['errordeleting'] = 'Mesaj silinemedi'; + + +?> \ No newline at end of file diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 6aca28db8..80a32a9f3 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -33,7 +33,7 @@ if (!is_array($_SESSION['compose'])) // add some labels to client -rcube_add_label('nosubject', 'norecipientwarning', 'nosubjectwarning', 'nobodywarning', 'sendingmessage'); +rcube_add_label('nosubject', 'norecipientwarning', 'nosubjectwarning', 'nobodywarning', 'sendingmessage', 'notsentwarning'); if ($_GET['_reply_uid'] || $_GET['_forward_uid']) -- cgit v1.2.3