Changeset 1530

Show
Ignore:
Timestamp:
08/11/06 02:20:30 (2 years ago)
Author:
mdodoo
Message:

Merges trunk changes ([1522],[1523],[1525],[1526],[1527],[1528], and [1529]).

Location:
branches/multiuser
Files:
16 modified

Legend:

Unmodified
Added
Removed
  • branches/multiuser/.htaccess

    r1253 r1530  
    3636  #tag view 
    3737  RewriteRule   ^tags?\/?$          tags.php?alltags [L,QSA] 
    38   RewriteRule   ^tag\/([a-zA-Z0-9_\.\+]+)$      tags.php?tag=$1 [L,QSA] 
    39   RewriteRule   ^tag\/([a-zA-Z0-9_\.\+]+)\/rss\/?$  tags.php?tag=$1&rss [L,QSA] 
     38  RewriteRule   ^tag\/(.+)$     tags.php?tag=$1 [L,QSA] 
     39  RewriteRule   ^tag\/(.+)\/rss\/?$  tags.php?tag=$1&rss [L,QSA] 
    4040   
    4141  #state view 
  • branches/multiuser/admin/channels.php

    r1518 r1530  
    4545 
    4646    echo "<label for=\"add_channel_to_folder\">". LBL_ADMIN_IN_FOLDER . "</label>\n"; 
    47     folder_combo('add_channel_to_folder'); 
     47    echo rss_toolkit_folders_combo('add_channel_to_folder'); 
    4848    echo "<label for=\"channel_tags\">" . LBL_TAG_FOLDERS . ":</label>\n"; 
    4949    echo "<input type=\"text\" name=\"channel_tags\" id=\"channel_tags\" />\n"; 
     
    139139                    $dead = true; 
    140140                } else { 
    141                     $dead = (time() - strtotime($daterefreshed) > getConfig('rss.config.deadthreshhold')*60 ? true : false); 
     141                    $dead = (time() - strtotime($daterefreshed) > getConfig('rss.config.deadthreshhold')*60*60 ? true : false); 
    142142                } 
    143143 
     
    187187    ."<legend>Selected...</legend>\n" 
    188188    ."<p>\n" 
    189     ."<label for=\"me_folder\">".LBL_ADMIN_CHANNEL_FOLDER."</label>\n"; 
    190     folder_combo('me_folder',null); 
     189    ."<label for=\"me_folder\">".LBL_ADMIN_CHANNEL_FOLDER."</label>\n" 
     190    .rss_toolkit_folders_combo('me_folder',null); 
    191191 
    192192    echo 
     
    785785 
    786786    // Folder 
    787     ."<p><label for=\"c_parent\">". LBL_ADMIN_CHANNEL_FOLDER ."</label>\n"; 
    788  
    789     folder_combo('c_parent',$parent); 
    790     echo "</p>\n"; 
     787    ."<p><label for=\"c_parent\">". LBL_ADMIN_CHANNEL_FOLDER ."</label>\n" 
     788 
     789    .rss_toolkit_folders_combo('c_parent',$parent) 
     790    ."</p>\n"; 
    791791 
    792792    // Tags 
  • branches/multiuser/admin/folders.php

    r1495 r1530  
    128128 
    129129} 
    130  
    131 function folder_combo($name, $selected = -1) { 
    132     echo "\n<select name=\"$name\" id=\"$name\">\n"; 
    133     if (getConfig('rss.config.absoluteordering')) { 
    134         $sql = " order by position asc"; 
    135     } else { 
    136         $sql = " order by name asc"; 
    137     } 
    138     $res = rss_query("select id, name from " .getTable("folders") . $sql); 
    139     while (list($id, $name) = rss_fetch_row($res)) { 
    140         echo "\t<option value=\"$id\"" 
    141         .($selected > -1 && $selected == $id ? " selected=\"selected\"":"") 
    142         .">" .  (($name == "")?LBL_HOME_FOLDER:$name)  ."</option>\n"; 
    143     } 
    144     echo "</select>\n"; 
    145 } 
    146  
    147  
    148130 
    149131function folder_admin() { 
  • branches/multiuser/admin/index.php

    r1502 r1530  
    4343require_once('themes.php'); 
    4444require_once('tags.php'); 
     45require_once('../cls/wrappers/toolkit.php'); 
    4546 
    4647define ('CST_ADMIN_DOMAIN','domain'); 
  • branches/multiuser/admin/items.php

    r1275 r1530  
    2525# 
    2626############################################################################### 
     27 
     28rss_require('cls/wrappers/toolkit.php'); 
    2729 
    2830/** 
     
    4547    . "<option>" . LBL_ADMIN_PRUNE_YEARS . "</option>\n" 
    4648    . "</select></p>\n" 
     49    . "<p>\n" 
     50        . rss_toolkit_channels_combo("prune_channel") . "\n" 
     51    . "</p>\n" 
    4752    . "<p><label for=\"prune_include_sticky\">".LBL_ADMIN_PRUNE_INCLUDE_STICKY."</label>\n" 
    4853    . "<input type=\"checkbox\" id=\"prune_include_sticky\" name=\"prune_include_sticky\" value=\"1\"/></p>\n" 
     
    9196                break; 
    9297            } 
    93             $sql = " from ".getTable('item') ." i, " .getTable('channels') . " c " 
     98            $sql = " from ".getTable('item') ." i INNER JOIN " .getTable('channels') . " c ON c.id=i.cid " 
    9499                   ." where 1=1 "; 
     100 
     101            if (array_key_exists('prune_channel', $_REQUEST)) { 
     102                if(ALL_CHANNELS_ID != $_REQUEST['prune_channel']) { 
     103                    $sql .= " and c.id = " . $_REQUEST['prune_channel'] . ""; 
     104                } 
     105            } 
    95106 
    96107            if ($prune_older > 0) { 
     
    135146                } 
    136147            } 
    137  
    138148 
    139149            if (array_key_exists(CST_ADMIN_CONFIRMED,$_REQUEST)) { 
  • branches/multiuser/admin/opml.php

    r1181 r1530  
    6868 
    6969    ."<p style=\"padding-left:1em;\"><input type=\"radio\" id=\"opml_import_option_folder\" name=\"opml_import_option\" value=\"".CST_ADMIN_OPML_IMPORT_FOLDER."\" />\n" 
    70     ."<label for=\"opml_import_option_folder\" >".LBL_ADMIN_OPML_IMPORT_FOLDER."</label>"; 
    71     folder_combo('opml_import_to_folder',null); 
    72     echo "</p>\n" 
     70    ."<label for=\"opml_import_option_folder\" >".LBL_ADMIN_OPML_IMPORT_FOLDER."</label>" 
     71    .rss_toolkit_folders_combo('opml_import_to_folder',null) 
     72    ."</p>\n" 
    7373 
    7474    ."<p style=\"padding-left:1em;\"><input type=\"radio\" id=\"opml_import_option_wipe\" name=\"opml_import_option\" value=\"".CST_ADMIN_OPML_IMPORT_WIPE."\" />\n" 
    7575    ."<label for=\"opml_import_option_wipe\" >".LBL_ADMIN_OPML_IMPORT_WIPE."</label></p>\n" 
    76  
    7776 
    7877    .""; 
  • branches/multiuser/admin/themes.php

    r1372 r1530  
    4545        $active_theme= getConfig('rss.output.theme'); 
    4646    } 
     47 
     48        echo "<form style=\"float:right\" method=\"post\" action=\"" .$_SERVER['PHP_SELF'] ."\">\n" 
     49          . "<p><input type=\"hidden\" name=\"".CST_ADMIN_DOMAIN."\" value=\"".CST_ADMIN_DOMAIN_THEMES."\" />\n" 
     50        ."<input type=\"submit\" name=\"admin_themes_check_for_updates\" value=\"".LBL_ADMIN_CHECK_FOR_UPDATES."\" /></p>\n" 
     51        . "</form>\n"; 
     52        if (isset($_POST['admin_themes_check_for_updates'])) { 
     53            theme_getThemesUpdate(&$themes); 
     54        } 
    4755     
    4856    echo "<h2 class=\"trigger\">".LBL_ADMIN_THEMES."</h2>\n" 
     
    6169        } 
    6270        $active = ($entry ==  $active_theme); 
     71        $updateAvailable = isset($theme['updateVersion']); 
    6372        if ($screenshot) { 
    6473            $screenshotURL = "<img src=\"". getPath() . RSS_THEME_DIR . "/$fsname/$screenshot\"  />"; 
     
    6877        $h4="$name";  
    6978        $h5="By&nbsp;$author | Version:&nbsp;$version"; 
     79        if ($updateAvailable) { 
     80            $h5 .= ' | <a class="update" href="'.$theme['updateUrl'].'">Update to version ' .$theme['updateVersion'] .'</a>'; 
     81        } 
     82         
    7083        if ($htmltheme) { 
    7184            $seturl = "index.php?view=themes&amp;theme=$entry"; 
     
    7386            $seturl = ""; 
    7487        } 
    75         echo "<div class=\"themeframe".($active?" active":"")."\"><span>"; 
     88        echo "<div class=\"themeframe".($active?" active":""). ($updateAvailable?" hilite":"")."\"><span>"; 
    7689        if (!$active && $htmltheme) { 
    7790            echo "<a href=\"$seturl\" class=\"bookmarklet\">".LBL_ADMIN_USE_THIS_THEME."</a>"; 
     
    399412} 
    400413 
     414function theme_getThemesUpdate(&$themes) { 
     415      $themesxml = array(); 
     416    global $themesxml; 
     417    $xml = getUrl('http://themes.gregarius.net/api.php'); 
     418    $xml = str_replace("\r", '', $xml); 
     419    $xml = str_replace("\n", '', $xml); 
     420 
     421    $xp = xml_parser_create() or rss_error("couldn't create parser"); 
     422 
     423    xml_set_element_handler($xp, 'themes_xml_startElement', 'themes_xml_endElement') 
     424    or rss_error("couldnt set XML handlers"); 
     425 
     426    xml_parse($xp, $xml, true) or rss_error("failed parsing xml"); 
     427    xml_parser_free($xp) or rss_error("failed freeing the parser"); 
     428    if (is_array($themesxml)) { 
     429        foreach($themesxml as $theme => $data) { 
     430            list($tversion,$turl) = $data; 
     431            if (isset($themes[$theme]) && $themes[$theme]['version'] < $tversion) { 
     432                $themes[$theme]['updateVersion'] = $tversion; 
     433                $themes[$theme]['updateUrl'] = $turl; 
     434            } 
     435        } 
     436    } 
     437} 
     438 
     439function themes_xml_startElement($xp, $element, $attr) { 
     440    global $themesxml; 
     441 
     442    if ($element == 'THEME' && 
     443            array_key_exists('PID',$attr) && 
     444            array_key_exists('URL',$attr) && 
     445            array_key_exists('VERSION',$attr)) { 
     446 
     447        $themesxml[$attr['PID']] = array($attr['VERSION'],$attr['URL']); 
     448    } 
     449} 
     450 
     451function themes_xml_endElement($xp, $element) { 
     452    ///global $pluginsxml; 
     453    return; 
     454} 
     455 
    401456?> 
  • branches/multiuser/ajax.php

    r1524 r1530  
    196196 
    197197function submit_tag_cb(ret) { 
    198     data= ret.replace(/[^a-zA-Z0-9\ _\.,]/gi,"").split(','); 
     198    data= ret.split(','); 
     199    //replace(/[^a-zA-Z0-9\ _\.,]/gi,"") 
    199200    id=data[0]; 
    200201    tags=data[1]; 
     
    218219       // the tag container 
    219220       var tc=document.getElementById("t"+id); 
    220         var tags = tc.innerHTML.replace(/<\/?a[^>]*>(\ $)?/gi,"").replace(<?php echo ALLOWED_TAGS_REGEXP ?>gi,""); 
     221        var tags = tc.innerHTML.replace(/<\/?a[^>]*>(\ $)?/gi,"");  
     222        //.replace(<?php echo ALLOWED_TAGS_REGEXP ?>gi,""); 
    221223        // submit link 
    222224        toggle.innerHTML="<?php echo  LBL_TAG_SUBMIT ?>"; 
  • branches/multiuser/cls/search.php

    r1520 r1530  
    3535define ('HIT_BEFORE',"<span class=\"searchhit\">"); 
    3636define ('HIT_AFTER',"</span>"); 
    37 define ('ALL_CHANNELS_ID', -1); 
    3837 
    3938define ('QUERY_ORDER_BY','rss_order'); 
  • branches/multiuser/constants.php

    r1524 r1530  
    164164// it is used to filter out everything but the allowed tag 
    165165// characters, plus a whitespace 
    166 define('ALLOWED_TAGS_REGEXP', '/[^a-zA-Z0-9\ _\.]/'); 
     166define('ALLOWED_TAGS_REGEXP', '//'); 
    167167 
    168168// Sanitizer constants 
  • branches/multiuser/intl/cn_s.php

    r1493 r1530  
    1 <?php 
     1<?php 
    22############################################################################### 
    33# Gregarius - A PHP based RSS aggregator. 
     
    3636define ('LOCALE_LINUX','cn_zh'); 
    3737 
    38 define ('LBL_ITEM','条目'); 
    39 define ('LBL_ITEMS','条目'); 
    40 define ('LBL_H2_SEARCH_RESULTS_FOR', "%d 匹配为 %s"); 
    41 define ('LBL_H2_SEARCH_RESULT_FOR',"%d 匹配为 %s"); 
    42 define ('LBL_H2_SEARCH', '搜过 %d 条目'); 
    43 define ('LBL_SEARCH_SEARCH_QUERY','搜索:'); 
    44 define ('LBL_SEARCH_MATCH_OR', '部分匹配 (或)'); 
    45 define ('LBL_SEARCH_MATCH_AND', '全部匹配 (和)');                                                                  
    46 define ('LBL_SEARCH_MATCH_EXACT', '精确匹配'); 
     38define ('LBL_ITEM','条目'); 
     39define ('LBL_ITEMS','条目'); 
     40define ('LBL_H2_SEARCH_RESULTS_FOR', "%d 匹é 
     41äžº %s"); 
     42define ('LBL_H2_SEARCH_RESULT_FOR',"%d 匹é 
     43äžº %s"); 
     44define ('LBL_H2_SEARCH', '搜过 %d 条目'); 
     45define ('LBL_SEARCH_SEARCH_QUERY','搜玢:'); 
     46define ('LBL_SEARCH_MATCH_OR', '郚分匹é 
     47 (或)'); 
     48define ('LBL_SEARCH_MATCH_AND', 'å 
     49šéƒšåŒ¹é 
     50 (和)');                                                                  
     51define ('LBL_SEARCH_MATCH_EXACT', '粟确匹é 
     52'); 
    4753define ('LBL_SEARCH_CHANNELS', 'Feed:'); 
    48 define ('LBL_SEARCH_ORDER_DATE_CHANNEL','日期, feed排序'); 
    49 define ('LBL_SEARCH_ORDER_CHANNEL_DATE','feed, 日期排序'); 
    50 define ('LBL_SEARCH_RESULTS_PER_PAGE','每页结果:'); 
    51 define ('LBL_SEARCH_RESULTS','结果: '); 
    52 define ('LBL_H2_UNREAD_ITEMS','未读条目 (<strong id="ucnt">%d</strong>)'); 
    53 define ('LBL_H2_RECENT_ITEMS', "最近条目"); 
     54define ('LBL_SEARCH_ORDER_DATE_CHANNEL','日期, feed排序'); 
     55define ('LBL_SEARCH_ORDER_CHANNEL_DATE','feed, 日期排序'); 
     56define ('LBL_SEARCH_RESULTS_PER_PAGE','每页结果:'); 
     57define ('LBL_SEARCH_RESULTS','结果: '); 
     58define ('LBL_H2_UNREAD_ITEMS','未读条目 (<strong id="ucnt">%d</strong>)'); 
     59define ('LBL_H2_RECENT_ITEMS', "最近条目"); 
    5460define ('LBL_H2_CHANNELS','Feeds'); 
    55 define ('LBL_H5_READ_UNREAD_STATS','%d 条, %d 未读'); 
    56 define ('LBL_ITEMCOUNT_PF', '<strong>%d</strong> 条 (<strong id="fucnt">%d</strong> 未读) 共 <strong>%d</strong> feeds'); 
    57 define ('LBL_TAGCOUNT_PF', '<strong>%d</strong> tagged items, 共 <strong>%d</strong> tags'); 
    58 define ('LBL_UNREAD_PF', '<strong id="%s" style="%s">(%d 未读)</strong>'); 
    59 define ('LBL_UNREAD','未读'); 
     61define ('LBL_H5_READ_UNREAD_STATS','%d 条, %d 未读'); 
     62define ('LBL_ITEMCOUNT_PF', '<strong>%d</strong> 条 (<strong id="fucnt">%d</strong> 未读) å 
     63± <strong>%d</strong> feeds'); 
     64define ('LBL_TAGCOUNT_PF', '<strong>%d</strong> tagged items, å 
     65± <strong>%d</strong> tags'); 
     66define ('LBL_UNREAD_PF', '<strong id="%s" style="%s">(%d 未读)</strong>'); 
     67define ('LBL_UNREAD','未读'); 
    6068 
    6169define ('LBL_FTR_POWERED_BY', " powered by "); 
    62 define ('LBL_ALL','所有'); 
    63 define ('LBL_NAV_HOME','<span>首页</span>'); 
    64 define ('LBL_NAV_UPDATE', '<span>刷新</span>'); 
    65 define ('LBL_NAV_CHANNEL_ADMIN', '<span>管理</span>'); 
    66 define ('LBL_NAV_SEARCH', "<span>搜索</span>"); 
    67 define ('LBL_NAV_DEVLOG', "<span>程序</span>"); 
    68 define ('LBL_SEARCH_GO', '搜索'); 
    69  
    70 define ('LBL_POSTED', '提交: '); 
    71 define ('LBL_FETCHED','采集: '); 
    72 define ('LBL_BY', ' '); 
    73  
    74 define ('LBL_AND',''); 
    75  
    76 define ('LBL_TITLE_UPDATING','更新'); 
    77 define ('LBL_TITLE_SEARCH','搜索'); 
    78 define ('LBL_TITLE_ADMIN','Feeds 管理'); 
     70define ('LBL_ALL','所有'); 
     71define ('LBL_NAV_HOME','<span>銖页</span>'); 
     72define ('LBL_NAV_UPDATE', '<span>刷新</span>'); 
     73define ('LBL_NAV_CHANNEL_ADMIN', '<span>管理</span>'); 
     74define ('LBL_NAV_SEARCH', "<span>搜玢</span>"); 
     75define ('LBL_NAV_DEVLOG', "<span>皋序</span>"); 
     76define ('LBL_SEARCH_GO', '搜玢'); 
     77 
     78define ('LBL_POSTED', '提亀: '); 
     79define ('LBL_FETCHED','采集: '); 
     80define ('LBL_BY', ' 由 '); 
     81 
     82define ('LBL_AND','和'); 
     83 
     84define ('LBL_TITLE_UPDATING','曎新'); 
     85define ('LBL_TITLE_SEARCH','搜玢'); 
     86define ('LBL_TITLE_ADMIN','Feeds 管理'); 
    7987 
    8088 
     
    8694 
    8795define ('LBL_UPDATE_CHANNEL','Feed'); 
    88 define ('LBL_UPDATE_STATUS','状态'); 
    89 define ('LBL_UPDATE_UNREAD','新条目'); 
     96define ('LBL_UPDATE_STATUS','状态'); 
     97define ('LBL_UPDATE_UNREAD','新条目'); 
    9098 
    9199define ('LBL_UPDATE_STATUS_OK','OK (HTTP 200)'); 
    92100define ('LBL_UPDATE_STATUS_CACHED', 'OK (Local cache)'); 
    93101define ('LBL_UPDATE_STATUS_ERROR','ERROR'); 
    94 define ('LBL_UPDATE_H2','更新 %d Feeds中...'); 
     102define ('LBL_UPDATE_H2','曎新 %d Feedsäž­...'); 
    95103define ('LBL_UPDATE_CACHE_TIMEOUT','HTTP Timeout (Local cache)'); 
    96104define ('LBL_UPDATE_NOT_MODIFIED','OK (304 Not modified)'); 
    97105define ('LBL_UPDATE_NOT_FOUND','404 Not Found (Local cache)'); 
    98106// admin 
    99 define ('LBL_ADMIN_EDIT', '编辑'); 
    100 define ('LBL_ADMIN_DELETE', '删除'); 
    101 define ('LBL_ADMIN_DELETE2', '删除'); 
    102 define ('LBL_ADMIN_RENAME', '重命名为...'); 
    103 define ('LBL_ADMIN_CREATE', '创建'); 
    104 define ('LBL_ADMIN_IMPORT','导入'); 
    105 define ('LBL_ADMIN_EXPORT','导出'); 
    106 define ('LBL_ADMIN_DEFAULT','默认'); 
    107 define ('LBL_ADMIN_ADD','添加'); 
    108 define ('LBL_ADMIN_YES', '是'); 
    109 define ('LBL_ADMIN_NO', '否'); 
    110 define ('LBL_ADMIN_FOLDERS','组:'); 
     107define ('LBL_ADMIN_EDIT', '猖蟑'); 
     108define ('LBL_ADMIN_DELETE', '删陀'); 
     109define ('LBL_ADMIN_DELETE2', '删陀'); 
     110define ('LBL_ADMIN_RENAME', '重呜名䞺...'); 
     111define ('LBL_ADMIN_CREATE', '创建'); 
     112define ('LBL_ADMIN_IMPORT','富å 
     113¥'); 
     114define ('LBL_ADMIN_EXPORT','富出'); 
     115define ('LBL_ADMIN_DEFAULT','默讀'); 
     116define ('LBL_ADMIN_ADD','添加'); 
     117define ('LBL_ADMIN_YES', '是'); 
     118define ('LBL_ADMIN_NO', '吊'); 
     119define ('LBL_ADMIN_FOLDERS','组:'); 
    111120define ('LBL_ADMIN_CHANNELS','Feeds:'); 
    112121define ('LBL_ADMIN_OPML','OPML:');   
    113122define ('LBL_ADMIN_ITEM','Items:'); 
    114 define ('LBL_ADMIN_CONFIG','配置:'); 
    115 define ('LBL_ADMIN_OK','确定'); 
    116 define ('LBL_ADMIN_CANCEL','取消'); 
    117 define ('LBL_ADMIN_LOGOUT','注销'); 
    118  
    119 define ('LBL_ADMIN_OPML_IMPORT','导入'); 
    120 define ('LBL_ADMIN_OPML_EXPORT','导出'); 
    121 define ('LBL_ADMIN_OPML_IMPORT_OPML','导入 OPML:'); 
    122 define ('LBL_ADMIN_OPML_EXPORT_OPML','导出 OPML:'); 
    123 define ('LBL_ADMIN_OPML_IMPORT_FROM_URL','... 从 URL:'); 
    124 define ('LBL_ADMIN_OPML_IMPORT_FROM_FILE','... 从 文件:'); 
    125 define ('LBL_ADMIN_FILE_IMPORT','导入 文件'); 
    126  
    127 define ('LBL_ADMIN_IN_FOLDER','到组:'); 
    128 define ('LBL_ADMIN_SUBMIT_CHANGES', '提交修改'); 
    129 define ('LBL_ADMIN_PREVIEW_CHANGES','预览'); 
    130 define ('LBL_ADMIN_CHANNELS_HEADING_TITLE','标题'); 
    131 define ('LBL_ADMIN_CHANNELS_HEADING_FOLDER','组'); 
    132 define ('LBL_ADMIN_CHANNELS_HEADING_DESCR','描述'); 
    133 define ('LBL_ADMIN_CHANNELS_HEADING_MOVE','移动'); 
    134 define ('LBL_ADMIN_CHANNELS_HEADING_ACTION','行为'); 
     123define ('LBL_ADMIN_CONFIG','é 
     124çœ®:'); 
     125define ('LBL_ADMIN_OK','确定'); 
     126define ('LBL_ADMIN_CANCEL','取消'); 
     127define ('LBL_ADMIN_LOGOUT','泚销'); 
     128 
     129define ('LBL_ADMIN_OPML_IMPORT','富å 
     130¥'); 
     131define ('LBL_ADMIN_OPML_EXPORT','富出'); 
     132define ('LBL_ADMIN_OPML_IMPORT_OPML','富å 
     133¥ OPML:'); 
     134define ('LBL_ADMIN_OPML_EXPORT_OPML','富出 OPML:'); 
     135define ('LBL_ADMIN_OPML_IMPORT_FROM_URL','... 从 URL:'); 
     136define ('LBL_ADMIN_OPML_IMPORT_FROM_FILE','... 从 文件:'); 
     137define ('LBL_ADMIN_FILE_IMPORT','富å 
     138¥ 文件'); 
     139 
     140define ('LBL_ADMIN_IN_FOLDER','到组:'); 
     141define ('LBL_ADMIN_SUBMIT_CHANGES', '提亀修改'); 
     142define ('LBL_ADMIN_PREVIEW_CHANGES','预览'); 
     143define ('LBL_ADMIN_CHANNELS_HEADING_TITLE','标题'); 
     144define ('LBL_ADMIN_CHANNELS_HEADING_FOLDER','组'); 
     145define ('LBL_ADMIN_CHANNELS_HEADING_DESCR','描述'); 
     146define ('LBL_ADMIN_CHANNELS_HEADING_MOVE','移劚'); 
     147define ('LBL_ADMIN_CHANNELS_HEADING_ACTION','行䞺'); 
    135148define ('LBL_ADMIN_CHANNELS_HEADING_FLAGS','Flags'); 
    136 define ('LBL_ADMIN_CHANNELS_HEADING_KEY','关键词'); 
    137 define ('LBL_ADMIN_CHANNELS_HEADING_VALUE','值'); 
    138 define ('LBL_ADMIN_CHANNELS_ADD','添加 feed:'); 
    139 define ('LBL_ADMIN_FOLDERS_ADD','添加组'); 
     149define ('LBL_ADMIN_CHANNELS_HEADING_KEY','å 
     150³é”®è¯'); 
     151define ('LBL_ADMIN_CHANNELS_HEADING_VALUE','倌'); 
     152define ('LBL_ADMIN_CHANNELS_ADD','添加 feed:'); 
     153define ('LBL_ADMIN_FOLDERS_ADD','添加组'); 
    140154define ('LBL_ADMIN_CHANNEL_ICON','favicon.icon:'); 
    141 define ('LBL_CLEAR_FOR_NONE','(留空为没有favicon.icon)'); 
     155define ('LBL_CLEAR_FOR_NONE','(留空䞺没有favicon.icon)'); 
    142156 
    143157define ('LBL_ADMIN_CONFIG_VALUE','Value for'); 
    144158 
    145 define ('LBL_ADMIN_PLUGINS_HEADING_NAME','名字'); 
    146 define ('LBL_ADMIN_PLUGINS_HEADING_AUTHOR','作者'); 
    147 define ('LBL_ADMIN_PLUGINS_HEADING_VERSION','版本'); 
    148 define ('LBL_ADMIN_PLUGINS_HEADING_DESCRIPTION','描述'); 
    149 define ('LBL_ADMIN_PLUGINS_HEADING_ACTION','动作'); 
    150 define ('LBL_ADMIN_PLUGINS_HEADING_OPTIONS','选项'); 
    151 define ('LBL_ADMIN_PLUGINS_OPTIONS','扩展 选项'); 
    152 define ('LBL_ADMIN_THEME_OPTIONS','风格 选项'); 
    153  
    154 define ('LBL_ADMIN_CHANNEL_EDIT_CHANNEL','编辑 feed '); 
    155 define ('LBL_ADMIN_CHANNEL_NAME','标题:'); 
     159define ('LBL_ADMIN_PLUGINS_HEADING_NAME','名字'); 
     160define ('LBL_ADMIN_PLUGINS_HEADING_AUTHOR','䜜耠
     161'); 
     162define ('LBL_ADMIN_PLUGINS_HEADING_VERSION','版本'); 
     163define ('LBL_ADMIN_PLUGINS_HEADING_DESCRIPTION','描述'); 
     164define ('LBL_ADMIN_PLUGINS_HEADING_ACTION','劚䜜'); 
     165define ('LBL_ADMIN_PLUGINS_HEADING_OPTIONS','选项'); 
     166define ('LBL_ADMIN_PLUGINS_OPTIONS','扩展 选项'); 
     167define ('LBL_ADMIN_THEME_OPTIONS','风栌 选项'); 
     168 
     169define ('LBL_ADMIN_CHANNEL_EDIT_CHANNEL','猖蟑 feed '); 
     170define ('LBL_ADMIN_CHANNEL_NAME','标题:'); 
    156171define ('LBL_ADMIN_CHANNEL_RSS_URL','RSS URL:'); 
    157 define ('LBL_ADMIN_CHANNEL_SITE_URL','站点 URL:'); 
    158 define ('LBL_ADMIN_CHANNEL_FOLDER','所在组:'); 
    159 define ('LBL_ADMIN_CHANNEL_DESCR','描述:'); 
    160 define ('LBL_ADMIN_FOLDER_NAME','组名:'); 
    161 define ('LBL_ADMIN_CHANNEL_PRIVATE','这个 feed 是 <strong>被保护的</strong>, 只允许管理员察看.'); 
    162 define ('LBL_ADMIN_CHANNEL_DELETED','这个 feed 是 <strong>被限制的</strong>, 不允许更新及察看.'); 
    163  
    164 define ('LBL_ADMIN_ARE_YOU_SURE', "您确定删除 '%s'?"); 
    165 define ('LBL_ADMIN_ARE_YOU_SURE_DEFAULT','您确定设定 %s 为默认t \'%s\'?'); 
    166 define ('LBL_ADMIN_TRUE','确定'); 
    167 define ('LBL_ADMIN_FALSE','失败'); 
     172define ('LBL_ADMIN_CHANNEL_SITE_URL','站点 URL:'); 
     173define ('LBL_ADMIN_CHANNEL_FOLDER','所圚组:'); 
     174define ('LBL_ADMIN_CHANNEL_DESCR','描述:'); 
     175define ('LBL_ADMIN_FOLDER_NAME','组名:'); 
     176define ('LBL_ADMIN_CHANNEL_PRIVATE','这䞪 feed 是 <strong>被保技的</strong>, 只å 
     177è®žç®¡ç†å‘˜å¯Ÿçœ‹.'); 
     178define ('LBL_ADMIN_CHANNEL_DELETED','这䞪 feed 是 <strong>被限制的</strong>, 䞍å 
     179è®žæ›Žæ–°åŠå¯Ÿçœ‹.'); 
     180 
     181define ('LBL_ADMIN_ARE_YOU_SURE', "悚确定删陀 '%s'?"); 
     182define ('LBL_ADMIN_ARE_YOU_SURE_DEFAULT','悚确定讟定 %s 䞺默讀t \'%s\'?'); 
     183define ('LBL_ADMIN_TRUE','确定'); 
     184define ('LBL_ADMIN_FALSE','倱莥'); 
    168185define ('LBL_ADMIN_MOVE_UP','&uarr;'); 
    169186define ('LBL_ADMIN_MOVE_DOWN','&darr;'); 
    170 define ('LBL_ADMIN_ADD_CHANNEL_EXPL','(输入目标RSS的URL[以http://开头])'); 
    171 define ('LBL_ADMIN_FEEDS','找到以下feeds<a href="%s">%s</a>, 您会订阅哪一个?'); 
    172  
    173 define ('LBL_ADMIN_PRUNE_OLDER','删除比此日期早的条目:'); 
    174 define ('LBL_ADMIN_PRUNE_DAYS','天'); 
    175 define ('LBL_ADMIN_PRUNE_MONTHS','月'); 
    176 define ('LBL_ADMIN_PRUNE_YEARS','年'); 
    177 define ('LBL_ADMIN_PRUNE_KEEP','保留最近的条目: '); 
    178 define ('LBL_ADMIN_PRUNE_INCLUDE_STICKY','Sticky条目一起删除: '); 
    179 define ('LBL_ADMIN_PRUNE_EXCLUDE_TAGS','不删除条目TAG... '); 
    180 define ('LBL_ADMIN_ALLTAGS_EXPL','(输入 <strong>*</strong> 为所有标记条目)'); 
    181  
    182 define ('LBL_ADMIN_ABOUT_TO_DELETE','注意: 您将要删除 %s 条 (of %s)'); 
    183 define ('LBL_ADMIN_PRUNING','修剪'); 
    184 define ('LBL_ADMIN_DOMAIN_FOLDER_LBL','组'); 
     187define ('LBL_ADMIN_ADD_CHANNEL_EXPL','(蟓å 
     188¥ç›®æ ‡RSS的URL[以http://匀倎])'); 
     189define ('LBL_ADMIN_FEEDS','扟到以䞋feeds<a href="%s">%s</a>, 悚䌚订阠
     190哪䞀䞪?'); 
     191 
     192define ('LBL_ADMIN_PRUNE_OLDER','删陀比歀日期早的条目:'); 
     193define ('LBL_ADMIN_PRUNE_DAYS','倩'); 
     194define ('LBL_ADMIN_PRUNE_MONTHS','月'); 
     195define ('LBL_ADMIN_PRUNE_YEARS','幎'); 
     196define ('LBL_ADMIN_PRUNE_KEEP','保留最近的条目: '); 
     197define ('LBL_ADMIN_PRUNE_INCLUDE_STICKY','Sticky条目䞀起删陀: '); 
     198define ('LBL_ADMIN_PRUNE_EXCLUDE_TAGS','䞍删陀条目TAG... '); 
     199define ('LBL_ADMIN_ALLTAGS_EXPL','(蟓å 
     200¥ <strong>*</strong> 䞺所有标记条目)'); 
     201 
     202define ('LBL_ADMIN_ABOUT_TO_DELETE','泚意: 悚将芁删陀 %s 条 (of %s)'); 
     203define ('LBL_ADMIN_PRUNING','修剪'); 
     204define ('LBL_ADMIN_DOMAIN_FOLDER_LBL','组'); 
    185205define ('LBL_ADMIN_DOMAIN_CHANNEL_LBL','feeds'); 
    186 define ('LBL_ADMIN_DOMAIN_ITEM_LBL','条目'); 
    187 define ('LBL_ADMIN_DOMAIN_CONFIG_LBL','配置'); 
     206define ('LBL_ADMIN_DOMAIN_ITEM_LBL','条目'); 
     207define ('LBL_ADMIN_DOMAIN_CONFIG_LBL','é 
     208çœ®'); 
    188209define ('LBL_ADMIN_DOMAIN_LBL_OPML_LBL','opml'); 
    189 define ('LBL_ADMIN_BOOKMARKET_LABEL','捐助bookmarklet [<a href="http://www.squarefree.com/bookmarklets/">?</a>]:'); 
    190 define ('LBL_ADMIN_BOOKMARKLET_TITLE','订阅  Gregarius!'); 
     210define ('LBL_ADMIN_BOOKMARKET_LABEL','捐助bookmarklet [<a href="http://www.squarefree.com/bookmarklets/">?</a>]:'); 
     211define ('LBL_ADMIN_BOOKMARKLET_TITLE','订阠
     212  Gregarius!'); 
    191213 
    192214 
    193215define ('LBL_ADMIN_ERROR_NOT_AUTHORIZED',  
    194         "<h1>未批准进入管理!</h1>" 
    195         ."点击 <a href=\"%s\">链接</a> 返回首页.\n" 
    196         ."你好!"); 
     216        "<h1>未批准进å 
     217¥ç®¡ç†!</h1>" 
     218        ."点击 <a href=\"%s\">铟接</a> 返回銖页.\n" 
     219        ."䜠奜!"); 
    197220         
    198221define ('LBL_ADMIN_ERROR_PRUNING_PERIOD','Invalid pruning period'); 
    199222define ('LBL_ADMIN_ERROR_NO_PERIOD','no period specified'); 
    200 define ('LBL_ADMIN_BAD_RSS_URL',"对不起,不能处理这个URL: '%s'"); 
    201 define ('LBL_ADMIN_ERROR_CANT_DELETE_HOME_FOLDER',"您不能删除 " . LBL_HOME_FOLDER . " 组"); 
    202 define ('LBL_ADMIN_CANT_RENAME',"重命名失败,组名'%s'已经存在."); 
    203 define('LBL_ADMIN_ERROR_CANT_CREATE',"组名 '%s'重复!"); 
     223define ('LBL_ADMIN_BAD_RSS_URL',"对䞍起,䞍胜倄理这䞪URL: '%s'"); 
     224define ('LBL_ADMIN_ERROR_CANT_DELETE_HOME_FOLDER',"悚䞍胜删陀 " . LBL_HOME_FOLDER . " 组"); 
     225define ('LBL_ADMIN_CANT_RENAME',"重呜名倱莥,组名'%s'已经存圚."); 
     226define('LBL_ADMIN_ERROR_CANT_CREATE',"组名 '%s'重倍!"); 
    204227 
    205228define ('LBL_TAG_TAGS','Tags'); 
    206 define ('LBL_TAG_EDIT','编辑'); 
    207 define ('LBL_TAG_SUBMIT','提交'); 
    208 define ('LBL_TAG_CANCEL','取消'); 
     229define ('LBL_TAG_EDIT','猖蟑'); 
     230define ('LBL_TAG_SUBMIT','提亀'); 
     231define ('LBL_TAG_CANCEL','取消'); 
    209232define ('LBL_TAG_SUBMITTING','...'); 
    210 define ('LBL_TAG_ERROR_NO_TAG',"嘎嘎~没有发现被标记的条目 &laquo;%s&raquo; "); 
    211 define ('LBL_TAG_ALL_TAGS','所有 Tags'); 
    212 define ('LBL_TAG_TAGGED','已标记'); 
    213 define ('LBL_TAG_TAGGEDP','已标记'); 
    214 define ('LBL_TAG_SUGGESTIONS','建议'); 
    215 define ('LBL_TAG_SUGGESTIONS_NONE','无建议'); 
    216 define ('LBL_TAG_RELATED','最近 tags: '); 
    217  
    218 define ('LBL_SHOW_UNREAD_ALL_SHOW','显示条目: '); 
    219 define ('LBL_SHOW_UNREAD_ALL_UNREAD_ONLY','只显示未读'); 
    220 define ('LBL_SHOW_UNREAD_ALL_READ_AND_UNREAD','已读和未读'); 
    221  
    222 define ('LBL_STATE_UNREAD','未读 (设置本条目 已读/未读 状态)'); 
    223 define ('LBL_STATE_STICKY','Sticky (当修剪条目时不会被删除)'); 
    224 define ('LBL_STATE_PRIVATE','保护 (只允许管理员察看)'); 
     233define ('LBL_TAG_ERROR_NO_TAG',"嘎嘎~没有发现被标记的条目 &laquo;%s&raquo; "); 
     234define ('LBL_TAG_ALL_TAGS','所有 Tags'); 
     235define ('LBL_TAG_TAGGED','已标记'); 
     236define ('LBL_TAG_TAGGEDP','已标记'); 
     237define ('LBL_TAG_SUGGESTIONS','建议'); 
     238define ('LBL_TAG_SUGGESTIONS_NONE','无建议'); 
     239define ('LBL_TAG_RELATED','最近 tags: '); 
     240 
     241define ('LBL_SHOW_UNREAD_ALL_SHOW','星瀺条目: '); 
     242define ('LBL_SHOW_UNREAD_ALL_UNREAD_ONLY','只星瀺未读'); 
     243define ('LBL_SHOW_UNREAD_ALL_READ_AND_UNREAD','已读和未