thomascube
2005-12-16 977a295eb1e97e0c230063da40b8296fca778814
Usage of virtusertable; mail_domain for new users; Chinese and Turkish localization


4 files added
13 files modified
885 ■■■■ changed files
.htaccess 2 ●●●●● patch | view | raw | blame | history
CHANGELOG 8 ●●●●● patch | view | raw | blame | history
README 17 ●●●● patch | view | raw | blame | history
SQL/postgres.initial.sql 126 ●●●● patch | view | raw | blame | history
config/main.inc.php.dist 7 ●●●●● patch | view | raw | blame | history
index.php 4 ●●● patch | view | raw | blame | history
program/include/main.inc 109 ●●●●● patch | view | raw | blame | history
program/include/rcube_smtp.inc 3 ●●●● patch | view | raw | blame | history
program/js/app.js 122 ●●●●● patch | view | raw | blame | history
program/localization/cn/labels.inc 179 ●●●●● patch | view | raw | blame | history
program/localization/cn/messages.inc 63 ●●●●● patch | view | raw | blame | history
program/localization/de/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/en/messages.inc 2 ●●●●● patch | view | raw | blame | history
program/localization/index.inc 3 ●●●● patch | view | raw | blame | history
program/localization/tr/labels.inc 176 ●●●●● patch | view | raw | blame | history
program/localization/tr/messages.inc 60 ●●●●● patch | view | raw | blame | history
program/steps/mail/compose.inc 2 ●●● patch | view | raw | blame | history
.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
<FilesMatch "(\.inc|\~)$|^_">
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
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 @@
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
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
@@ -158,66 +222,4 @@
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;
config/main.inc.php.dist
@@ -36,6 +36,13 @@
// 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
index.php
@@ -58,7 +58,9 @@
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)
program/include/main.inc
@@ -332,6 +332,11 @@
    $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_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 @@
  }
// 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; $i<count($r); $i++)
    {
    $data = $r[$i];
    $arr = preg_split('/\s+/', $data);
    if(count($arr)>0)
      {
      $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; $i<count($r); $i++)
    {
    $data=$r[$i];
    $arr = preg_split('/\s+/', $data);
    if (count($arr)>0)
      {
      $email = trim($arr[0]);
      break;
      }
    }
  return $email;
  }
// overwrite action variable  
function rcmail_overwrite_action($action)
  {
program/include/rcube_smtp.inc
@@ -72,7 +72,8 @@
  // 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)
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 <roundcube@gmail.com>                        |
@@ -312,6 +312,9 @@
      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 @@
      // 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 @@
        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 @@
  /*********************************************************/
  
  
  // 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)
program/localization/cn/labels.inc
New file
@@ -0,0 +1,179 @@
<?php
/*
 +-----------------------------------------------------------------------+
 | language/cn/labels.inc                                                |
 |                                                                       |
 | Language file of the RoundCube Webmail client                         |
 | Copyright (C) 2005, RoundQube Dev. - Switzerland                      |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
 |  Simplified-chinese utf-8 by winman 2005/12/6                         |
 |  Author: winman rong  <winman.rong@gmail.com>                         |
 +-----------------------------------------------------------------------+
 $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']  = '管理文件夹';
?>
program/localization/cn/messages.inc
New file
@@ -0,0 +1,63 @@
<?php
/*
 +-----------------------------------------------------------------------+
 | language/cn/messages.inc                                              |
 |                                                                       |
 | Language file of the RoundCube Webmail client                         |
 | Copyright (C) 2005, RoundCube Dev. - Switzerland                      |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
 |  Simplified-chinese utf-8 by winman 2005/12/6                         |
 |  Author: winman rong  <winman.rong@gmail.com>                         |
 +-----------------------------------------------------------------------+
 $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'] = '删除邮件出错';
?>
program/localization/de/messages.inc
@@ -70,4 +70,6 @@
$messages['nobodywarning'] = 'Diese Nachricht ohne Inhalt senden?';
$messages['notsentwarning'] = 'Ihre Nachricht wurde nicht gesendet. Wollen Sie die Nachricht verwerfen?';
?>
program/localization/en/messages.inc
@@ -76,5 +76,7 @@
$messages['nobodywarning'] = 'Send this message without text?';
$messages['notsentwarning'] = 'Message has not been sent. Do you want to discard your message?';
?>
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&agrave;',
    'da'    => 'Dansk',
@@ -64,6 +64,7 @@
    'lv' => 'ISO-8859-2',
    'pl' => 'ISO-8859-2',
    'el' => 'ISO-8859-7',
    'tr' => 'ISO-8859-9',
    'tw' => 'BIG5',
    'ja' => 'UTF-8'
);
program/localization/tr/labels.inc
New file
@@ -0,0 +1,176 @@
<?php
/*
 +-----------------------------------------------------------------------+
 | language/tr/labels.inc                                                |
 |                                                                       |
 | Language file of the RoundCube Webmail client                         |
 | Copyright (C) 2005, RoundQube Dev. - Switzerland                      |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
 | Author: Melih Taþdizen <melih@marmara.edu.tr>                         |
 +-----------------------------------------------------------------------+
 $Id$
*/
$labels = array();
// login page
$labels['username']  = 'Kullanýcý Adý';
$labels['password']  = 'Þifre';
$labels['server']    = 'Sunucu';
$labels['login']     = 'Giriþ';
// taskbar
$labels['logout']   = 'Çýkýþ';
$labels['mail']     = 'E-Posta';
$labels['settings'] = 'Kiþisel Ayarlar';
$labels['addressbook'] = 'Adres Defteri';
// mailbox names
$labels['inbox']  = 'Gelen Kutusu';
$labels['sent']   = 'Gönderilenler';
$labels['trash']  = 'Çöp';
$labels['drafts'] = 'Taslaklar';
$labels['junk']   = 'Gereksiz(spam)';
// message listing
$labels['subject'] = 'Konu';
$labels['from']    = 'Gönderen';
$labels['to']      = 'Alýcý';
$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'] = 'Klasörler';
$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'] = 'Çarþamba';
$labels['thursday']  = 'Perþembe';
$labels['friday']    = 'Cuma';
$labels['saturday']  = 'Cumartesi';
$labels['today'] = 'Bugün';
// toolbar buttons
$labels['writenewmessage']  = 'Yeni Mesaj';
$labels['replytomessage']   = 'Cevapla';
$labels['forwardmessage']   = 'Ýlet';
$labels['deletemessage']    = 'Çöp Klasörüne taþý';
$labels['printmessage']     = 'Mesajý Yazdýr';
$labels['previousmessages'] = 'Sonraki mesajlarý göster';
$labels['nextmessages']     = 'Önceki mesajlarý göster';
$labels['backtolist']       = 'Mesaj Listesi';
$labels['viewsource']       = 'Kaynak Kodu Göster';
$labels['select'] = 'Seç';
$labels['all'] = 'Tümü';
$labels['none'] = 'Hiçbiri';
$labels['unread'] = 'Okunmamýþ';
// message compose
$labels['compose']  = 'Yeni Mesaj';
$labels['sendmessage']  = 'Mesajý gönder';
$labels['addattachment']  = 'Dosya ekle';
$labels['attachments'] = 'Eklenmiþ Dosyalar';
$labels['upload'] = 'Yükle';
$labels['close']  = 'Kapat';
$labels['low']     = 'AzÖnemsiz';
$labels['lowest']  = 'Önemli';
$labels['normal']  = 'Normal';
$labels['high']    = 'Önemli';
$labels['highest'] = 'Çok Önemli';
$labels['showimages'] = 'Resimleri Göster';
// address boook
$labels['name']      = 'Görünen Ýsim';
$labels['firstname'] = 'Ad';
$labels['surname']   = 'Soayad';
$labels['email']     = 'E-Posta';
$labels['addcontact'] = 'Yeni Kontak Ekle';
$labels['editcontact'] = 'Kontak düzenle';
$labels['edit']   = 'Düzen';
$labels['cancel'] = 'Ýptal';
$labels['save']   = 'Kaydet';
$labels['delete'] = 'Sil';
$labels['newcontact']     = 'Yeni kontak ekle';
$labels['deletecontact']  = 'Seçili kontaklarý sil';
$labels['composeto']      = 'Þu kiþiye mesaj yaz:';
$labels['contactsfromto'] = '$from \'den/dan $to \'e/a $count tane mesaj var';
$labels['print']          = 'Yazdýr';
$labels['export']         = 'Farklý kaydet';
// settings
$labels['settingsfor']  = 'Ayarlar:';
$labels['preferences']  = 'Ayarlar';
$labels['userpreferences']  = 'Kullanýcý Ayarlarý';
$labels['editpreferences']  = 'Kullanýcý Ayarlarýný Düzenle';
$labels['identities']  = 'Kimlikler';
$labels['manageidentities']  = 'Bu hesap için kimlikleri düzenle';
$labels['newidentity']  = 'Yeni Kimlik';
$labels['newitem']  = 'Yeni Öðe';
$labels['edititem']  = 'Öðeyi düzenle';
$labels['setdefault']  = 'Varsayýlan olarak ata';
$labels['language']  = 'Dil';
$labels['timezone']  = 'Zaman Dilimi';
$labels['pagesize']  = 'Sayfada Gösterilecek Satýr';
$labels['folders']  = 'Klasörler';
$labels['foldername']  = 'Klasör adý';
$labels['subscribed']  = 'Kayýtlý';
$labels['create']  = 'Oluþtur';
$labels['createfolder']  = 'Yeni klasör oluþtur';
$labels['deletefolder']  = 'Klasör sl';
$labels['managefolders']  = 'Klasörleri düzenle';
?>
program/localization/tr/messages.inc
New file
@@ -0,0 +1,60 @@
<?php
/*
 +-----------------------------------------------------------------------+
 | language/tr/messages.inc                                              |
 |                                                                       |
 | Language file of the RoundCube Webmail client                         |
 | Copyright (C) 2005, RoundCube Dev. - Switzerland                      |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+
 | Author: Melih Taþdizen <melih@marmara.edu.tr>                         |
 +-----------------------------------------------------------------------+
 $Id$
*/
$messages = array();
$messages['loginfailed']  = 'Baþarýsýz Giriþ';
$messages['cookiesdisabled'] = 'Tarayýcýnýzýn Cerez(cookie) desteði açýk deðil';
$messages['sessionerror'] = 'Oturumunuz hatalý ve ya uzun süre iþlem yapmadýðýnýz için kapandý';
$messages['imaperror'] = 'IMAP sunucusuna baðlanýlamadý';
$messages['nomessagesfound'] = 'Gelen kutusnda mesaj yok';
$messages['loggedout'] = 'Oturumunuz baþarýyla kapatýldý. Güle Güle!';
$messages['mailboxempty'] = 'Gelen kutusu boþ';
$messages['loadingdata'] = 'Veri yükleniyor...';
$messages['messagesent'] = 'Mesaj gönderildi';
$messages['successfullysaved'] = 'Kaydedildi';
$messages['addedsuccessfully'] = 'Kontak eklendi';
$messages['contactexists'] = 'Bu e-posta adresine sahip bir kontak zaten kayýtlý';
$messages['blockedimages'] = 'Güvenliðiniz için harici resimler engellendi.';
$messages['encryptedmessage'] = 'Þifrelenmþi bir mesaj, okuyamazsýnýz!';
$messages['nocontactsfound'] = 'Kontak bulunamadý';
$messages['sendingfailed'] = 'Mesaj gönderilemedi';
$messages['errorsaving'] = 'Kaydederken hata oluþtu';
$messages['errormoving'] = 'Mesaj taþýnamadý';
$messages['errordeleting'] = 'Mesaj silinemedi';
?>
program/steps/mail/compose.inc
@@ -33,7 +33,7 @@
// 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'])