--- pine/mailview.c.orig Tue Oct 12 09:19:53 1999 +++ pine/mailview.c Thu Oct 14 12:25:15 1999 @@ -159,8 +159,8 @@ static struct key view_keys[] = {HELP_MENU, OTHER_MENU, - {"<","MsgIndex",{MC_INDEX,3,{'i','<',','}},KS_FLDRINDEX}, - {">","ViewAttch",{MC_VIEW_ATCH,3,{'v','>','.'}},KS_NONE}, + {"<","索引",{MC_INDEX,3,{'i','<',','}},KS_FLDRINDEX}, + {">","檢視附件",{MC_VIEW_ATCH,3,{'v','>','.'}},KS_NONE}, PREVMSG_MENU, NEXTMSG_MENU, PREVPAGE_MENU, @@ -185,11 +185,11 @@ HELP_MENU, OTHER_MENU, - {"Ret","[View Hilite]",{MC_VIEW_HANDLE,3, + {"Ret","[檢視 Hilite]",{MC_VIEW_HANDLE,3, {ctrl('m'),ctrl('j'),KEY_RIGHT}},KS_NONE}, - {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECTCUR}, - {"^B","Prev URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE}, - {"^F","Next URL",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE}, + {":","選擇",{MC_SELCUR,1,{':'}},KS_SELECTCUR}, + {"^B","前一 URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE}, + {"^F","次一 URL",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE}, JUMP_MENU, TAB_MENU, HDRMODE_MENU, @@ -219,7 +219,7 @@ #define FLAG_KEY 34 #define VIEW_PIPE_KEY 35 -static struct key nr_anon_view_keys[] = +static struct key nr_anon_view_keys[] = {HELP_MENU, WHEREIS_MENU, QUIT_MENU, @@ -243,7 +243,7 @@ NEXTMSG_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"F", "Fwd Email", {MC_FORWARD,1,{'f'}}, KS_FORWARD}, + {"F", "信件轉寄", {MC_FORWARD,1,{'f'}}, KS_FORWARD}, JUMP_MENU, PRYNTTXT_MENU, SAVE_MENU, @@ -265,7 +265,7 @@ static struct key simple_text_keys[] = {HELP_MENU, NULL_MENU, - {"E","Exit Viewer",{MC_EXIT,1,{'e'}},KS_EXITMODE}, + {"E","離開",{MC_EXIT,1,{'e'}},KS_EXITMODE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -274,7 +274,7 @@ PRYNTTXT_MENU, WHEREIS_MENU, FWDEMAIL_MENU, - {"S", "Save", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}}; + {"S", "存檔", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}}; INST_KEY_MENU(simple_text_keymenu, simple_text_keys); @@ -430,7 +430,7 @@ * we were viewing. If so, make sure we don't just come back. */ if(mn_get_total(ps->msgmap) <= 0L || !ps->mail_stream){ - q_status_message(SM_ORDER, 0, 3, "No messages to read!"); + q_status_message(SM_ORDER, 0, 3, "沒有可供讀取的信件!"); ps->next_screen = mail_index_screen; break; } @@ -444,7 +444,7 @@ body = NULL; if(!(env = mail_fetchstructure(ps->mail_stream, raw_msgno, &body)) || !(mc = mail_elt(ps->mail_stream, raw_msgno))){ - q_status_message1(SM_ORDER, 3, 3, "Error getting message %s data", + q_status_message1(SM_ORDER, 3, 3, "取得信件 %s 的資料時發生錯誤", comatose(mn_get_cur(ps->msgmap))); dprint(1, (debugfile, "!!!! ERROR fetching %s of msg %ld\n", env ? "elt" : "env", mn_get_cur(ps->msgmap))); @@ -502,7 +502,7 @@ memset(&scrollargs, 0, sizeof(SCROLL_S)); scrollargs.text.text = so_text(store); scrollargs.text.src = src; - scrollargs.text.desc = "message"; + scrollargs.text.desc = "信件"; /* * make first selectable handle the default @@ -528,11 +528,11 @@ offset = 0L; } - scrollargs.bar.title = "MESSAGE TEXT"; + scrollargs.bar.title = "信件文字"; scrollargs.end_scroll = view_end_scroll; scrollargs.resize_exit = 1; scrollargs.help.text = h_mail_view; - scrollargs.help.title = "HELP FOR MESSAGE TEXT VIEW"; + scrollargs.help.title = "信件文字的輔助說明"; scrollargs.keys.menu = &view_keymenu; scrollargs.keys.what = save_what; setbitmap(scrollargs.keys.bitmap); @@ -1319,7 +1319,7 @@ /*---- format and copy envelope ----*/ if(ps_global->full_header) q_status_message(SM_INFO, 0, 3, - "Full header mode ON. All header text being included"); + "完整標頭模式開啟。所有的標頭文字都包含在內"); HD_INIT(&h, ps_global->VAR_VIEW_HEADERS, ps_global->view_all_except, FE_DEFAULT); @@ -1358,7 +1358,7 @@ if(append_file_name) fs_give((void **)&append_file_name); - q_status_message1(SM_ORDER,3,3,"Can't make temp file: %s", + q_status_message1(SM_ORDER,3,3,"無法建立暫存檔:%s", error_description(errno)); return(0); } @@ -1665,7 +1665,7 @@ write_error: if(!(flgs & FM_DISPLAY)) - q_status_message1(SM_ORDER, 3, 4, "Error writing message: %s", + q_status_message1(SM_ORDER, 3, 4, "寫入信件時發生錯誤:%s", decode_err ? decode_err : error_description(errno)); return(0); @@ -2137,12 +2137,12 @@ char prompt[256], tmp[MAILTMPLEN]; int rc, flags, local_h; static ESCKEY_S launch_opts[] = { - {'y', 'y', "Y", "Yes"}, - {'n', 'n', "N", "No"}, + {'y', 'y', "Y", "是"}, + {'n', 'n', "N", "否"}, {-2, 0, NULL, NULL}, {-2, 0, NULL, NULL}, - {0, 'u', "U", "editURL"}, - {0, 'a', "A", "editApp"}, + {0, 'u', "U", "編輯 URL"}, + {0, 'a', "A", "編輯應用程式"}, {-1, 0, NULL, NULL}}; if(handle->type == URL){ @@ -2168,11 +2168,11 @@ if(!local_h){ if(ps_global->vars[V_BROWSER].is_fixed){ q_status_message(SM_ORDER, 3, 4, - "URL-Viewer is disabled by sys-admin"); + "URL 檢視程式已被系統管理員關閉"); return(0); } else{ - if(want_to("No URL-Viewer application defined. Define now", + if(want_to("尚未定義 URL 檢視程式!現在定義", 'y', 0, NO_HELP, WT_SEQ_SENSITIVE) == 'y'){ /* Prompt for the displayer? */ tmp[0] = '\0'; @@ -2216,7 +2216,7 @@ } else{ q_status_message1(SM_ORDER | SM_DING, 2, 2, - "Browser not found: %s", + "找不到瀏覽器:%s", error_description(errno)); continue; } @@ -2260,8 +2260,8 @@ max(0,sc - 25), handle->h.url.path+7, (strlen(handle->h.url.path+7) > max(0,sc-25)) ? "..." : ""); else - sprintf(prompt, "View selected %s %s%.*s%s ? ", - (handle->type == URL) ? "URL" : "Attachment", + sprintf(prompt, "檢視選擇的 %s %s%.*s%s ? ", + (handle->type == URL) ? "URL" : "附件", (handle->type == URL) ? "\"" : "", max(0,sc-27), (handle->type == URL) ? handle->h.url.path : "", @@ -2320,10 +2320,10 @@ OE_KEEP_TRAILING_SPACE | OE_DISALLOW_HELP; - sprintf(prompt, "Viewer command: "); + sprintf(prompt, "檢視器命令:"); rc = optionally_enter(tmp, -FOOTER_ROWS(ps_global), 0, - MAILTMPLEN - 1, "Viewer Command: ", + MAILTMPLEN - 1, "檢視器命令:", NULL, NO_HELP, &flags); if(rc == 0){ if(flags & OE_USER_MODIFIED){ @@ -3639,11 +3639,11 @@ mode = PIPE_RESET | PIPE_USER ; if(syspipe = open_system_pipe(cmd, NULL, NULL, mode, 0)){ close_system_pipe(&syspipe); - q_status_message(SM_ORDER, 0, 4, "VIEWER command completed"); + q_status_message(SM_ORDER, 0, 4, "檢視器命令完成"); } else q_status_message1(SM_ORDER, 3, 4, - "Cannot spawn command : %s", cmd); + "無法起始命令:%s", cmd); } else if(f = url_local_handler(handle->h.url.path)){ if((*f)(handle->h.url.path) > 1) @@ -3651,7 +3651,7 @@ } else q_status_message1(SM_ORDER, 2, 2, - "\"URL-Viewer\" not defined: Can't open %s", + "尚未定義 \"URL-檢視器\":無法開啟 %s", handle->h.url.path); return(rv); @@ -3663,7 +3663,7 @@ int return_value; { q_status_message(SM_ORDER | SM_DING, 3, 3, - "Can't spawn. Command too long."); + "無法起始。命令太長。"); return(return_value); } @@ -4008,7 +4008,7 @@ } else q_status_message(SM_ORDER | SM_DING, 3, 4, - "Can't create space for composer"); + "無法替編輯器建立空間"); outta_here: if(outgoing) @@ -4079,7 +4079,7 @@ else if(errstr) q_status_message(SM_ORDER|SM_DING, 3, 3, errstr); else - cmd_cancelled("URL Launch"); + cmd_cancelled("檢視 URL"); break; @@ -4102,7 +4102,7 @@ if(uid_val != ps_global->mail_stream->uid_validity){ /* Complain! */ q_status_message(SM_ORDER|SM_DING, 3, 3, - "Warning! Referenced folder changed since URL recorded"); + "警告!參考資料匣已於 URL 記錄後改變"); } if(uid){ @@ -4118,7 +4118,7 @@ if(i > mn_get_total(ps_global->msgmap)) q_status_message(SM_ORDER, 2, 3, - "Couldn't find specified article number"); + "找不到指定的文章編號"); } else if(search){ /* @@ -4139,9 +4139,9 @@ if(i = any_lflagged(ps_global->msgmap, MN_SLCT)){ extern long zoom_index(); - q_status_message2(SM_ORDER, 0, 3, - "%s message%s selected", - long2string(i), plural(i)); + q_status_message1(SM_ORDER, 0, 3, + "已選擇 %s 封信件", + long2string(i)); /* Zoom the index! */ zoom_index(ps_global, ps_global->msgmap); } @@ -4289,7 +4289,7 @@ if(auth && *auth != '*') q_status_message(SM_ORDER, 3, 3, - "Unsupported authentication method. Using standard login."); + "未支援的認證方式。使用標準登入。"); /* * At this point our structure should contain the @@ -4373,7 +4373,7 @@ if(i > mn_get_total(ps_global->msgmap)) q_status_message(SM_ORDER, 2, 3, - "Couldn't find specified article number"); + "找不到指定的文章編號"); } break; @@ -4490,7 +4490,7 @@ } else q_status_message1(SM_ORDER | SM_DING, 0, 3, - "Can't find fragment: %s", fragment); + "找不到片斷:%s", fragment); return(1); } @@ -4517,7 +4517,7 @@ dprint(2, (debugfile, "-- bogus url \"%s\": %s\n", url ? url : "", reason)); if(url) - q_status_message3(SM_ORDER|SM_DING, 2, 3, "Malformed \"%.*s\" URL: %s", + q_status_message3(SM_ORDER|SM_DING, 2, 3, "格式錯誤的 \"%.*s\" URL:%s", (void *) (strchr(url, ':') - url), url, reason); return(0); @@ -4678,7 +4678,7 @@ write_error: if(style == QStatus) - q_status_message1(SM_ORDER, 3, 4, "Error writing message: %s", + q_status_message1(SM_ORDER, 3, 4, "寫入信件時發生錯誤:%s", error_description(errno)); return(1); @@ -4931,7 +4931,7 @@ gf_set_so_readc(&tmp_gc, df_store); if(errstr = dfilter(display_filter, tmp_store, tmp_pc, NULL)){ q_status_message1(SM_ORDER | SM_DING, 3, 3, - "Formatting error: %s", errstr); + "格式錯誤:%s", errstr); rv = FHT_WRTERR; } else @@ -4941,7 +4941,7 @@ } else{ q_status_message(SM_ORDER | SM_DING, 3, 3, - "No space for filtered text."); + "沒有足夠的空間過濾文字。"); rv = FHT_WRTERR; } } @@ -4983,7 +4983,7 @@ if(errstr = gf_pipe(tmp_gc, final_pc)){ rv = FHT_WRTERR; q_status_message1(SM_ORDER | SM_DING, 3, 3, - "Can't build header : %s", errstr); + "無法建立標頭:%s", errstr); } } @@ -5121,7 +5121,7 @@ format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc); if(e->ngbogus) q_status_message(SM_ORDER, 0, 3, - "Unverified Newsgroup header -- Message MAY or MAY NOT have been posted"); + "未經證實的新聞組群標頭 -- 訊息可能從未被張貼"); } if((which & FE_FOLLOWUPTO) && e->followup_to) @@ -5880,7 +5880,7 @@ } if(!sparms->bar.title) - sparms->bar.title = "Text"; + sparms->bar.title = "文字"; if(sparms->bar.style == TitleBarNone) sparms->bar.style = MsgTextPercent; @@ -6053,7 +6053,7 @@ } if(first_view && num_display_lines >= scroll_text_lines()) - q_status_message1(SM_INFO, 0, 1, "ALL of %s", STYLE_NAME(sparms)); + q_status_message1(SM_INFO, 0, 1, "%s全部", STYLE_NAME(sparms)); force = 0; /* may not need to next time around */ @@ -6191,7 +6191,7 @@ whereis_pos.row = 0; if(sparms->help.text == NO_HELP || ps_global->nr_mode){ q_status_message(SM_ORDER, 0, 5, - "No help text currently available"); + "目前尚無輔助說明"); break; } @@ -6230,7 +6230,7 @@ cur_top_line -= scroll_lines; if(cur_top_line <= 0){ cur_top_line = 0; - q_status_message1(SM_INFO, 0, 1, "START of %s", + q_status_message1(SM_INFO, 0, 1, "%s起始", STYLE_NAME(sparms)); } } @@ -6246,7 +6246,7 @@ } if(!next_handle) - q_status_message1(SM_ORDER, 0, 1, "Already at start of %s", + q_status_message1(SM_ORDER, 0, 1, "已經在%s的起始", STYLE_NAME(sparms)); } @@ -6264,12 +6264,12 @@ cur_top_line += scroll_lines; if(cur_top_line + num_display_lines >= scroll_text_lines()) - q_status_message1(SM_INFO, 0, 1, "END of %s", + q_status_message1(SM_INFO, 0, 1, "%s結尾", STYLE_NAME(sparms)); } else if(!sparms->end_scroll || !(done = (*sparms->end_scroll)(sparms))){ - q_status_message1(SM_ORDER, 0, 1, "Already at end of %s", + q_status_message1(SM_ORDER, 0, 1, "已經在%s的結尾", STYLE_NAME(sparms)); /* hilite last available handle */ if(sparms->text.handles){ @@ -6339,11 +6339,11 @@ whereis_pos.row = 0; cur_top_line++; if(cur_top_line + num_display_lines >= scroll_text_lines()) - q_status_message1(SM_INFO, 0, 1, "END of %s", + q_status_message1(SM_INFO, 0, 1, "%s結尾", STYLE_NAME(sparms)); } else - q_status_message1(SM_ORDER, 0, 1, "Already at end of %s", + q_status_message1(SM_ORDER, 0, 1, "已經在%s的結尾", STYLE_NAME(sparms)); } @@ -6406,11 +6406,11 @@ if(cur_top_line){ cur_top_line--; if(cur_top_line == 0) - q_status_message1(SM_INFO, 0, 1, "START of %s", + q_status_message1(SM_INFO, 0, 1, "%s起始", STYLE_NAME(sparms)); } else - q_status_message1(SM_ORDER, 0, 1, "Already at start of %s", + q_status_message1(SM_ORDER, 0, 1, "已經在%s的起始", STYLE_NAME(sparms)); } @@ -6444,7 +6444,7 @@ } q_status_message1(SM_ORDER, 0, 1, - "Already on last item in %s", + "已經在%s中最後一個可選擇的項目上", STYLE_NAME(sparms)); } @@ -6478,7 +6478,7 @@ } q_status_message1(SM_ORDER, 0, 1, - "Already on first item in %s", + "已經在%s中第一個可選擇的項目上", STYLE_NAME(sparms)); } @@ -6611,8 +6611,8 @@ q_status_message(SM_ORDER, 0, 3, tmp_20k_buf); else q_status_message2(SM_ORDER, 0, 3, - "%sFound on line %s on screen", - result ? "Search wrapped to start. " : "", + "%s在畫面上第 %s 行找到", + result ? "重頭搜尋。" : "", int2string(whereis_pos.row)); if(key){ @@ -6629,9 +6629,9 @@ } } else if(found_on == -1) - cmd_cancelled("Search"); + cmd_cancelled("搜尋"); else - q_status_message(SM_ORDER | SM_DING, 0, 3, "Word not found"); + q_status_message(SM_ORDER | SM_DING, 0, 3, "找不到該字"); } break; @@ -7002,13 +7002,13 @@ int rc, flags; static char search_string[MAX_SEARCH+1] = { '\0' }; static ESCKEY_S word_search_key[] = { { 0, 0, "", "" }, - {ctrl('Y'), 10, "^Y", "First Line"}, - {ctrl('V'), 11, "^V", "Last Line"}, + {ctrl('Y'), 10, "^Y", "第一行"}, + {ctrl('V'), 11, "^V", "最後一行"}, {-1, 0, NULL, NULL} }; report[0] = '\0'; - sprintf(prompt, "Word to search for [%s] : ", search_string); + sprintf(prompt, "搜尋字串[%s]:", search_string); help = NO_HELP; nsearch_string[0] = '\0'; @@ -7023,13 +7023,13 @@ continue; } else if(rc == 10){ - strcpy(report, "Searched to First Line."); + strcpy(report, "搜尋至第一行。"); cursor_pos->row = 0; cursor_pos->col = 0; return(0); } else if(rc == 11){ - strcpy(report, "Searched to Last Line."); + strcpy(report, "搜尋至最後一行。"); cursor_pos->row = max(scroll_text_lines() - 1, 0); cursor_pos->col = 0; return(cursor_pos->row); @@ -8165,12 +8165,12 @@ if(*msg_p[0]) for(i = 0; i < msg_q; i++) q_status_message2(SM_ORDER, 3, 4, - "%s Result: %s", title, msg_p[i]); + "%s 結果:%s", title, msg_p[i]); else q_status_message2(SM_ORDER, 0, 4, "%s%s", title, alt_msg ? alt_msg - : " command completed with no output"); + : " 命令已完成(沒有輸出)"); fclose(f); f = NULL; @@ -8183,7 +8183,7 @@ q_status_message2(SM_ORDER, 0, 4, "%s%s", title, alt_msg ? alt_msg - : " command completed with no output"); + : " 命令已完成(沒有輸出)"); fclose(f); f = NULL; } @@ -8198,7 +8198,7 @@ memset(&sargs, 0, sizeof(SCROLL_S)); sargs.text.text = f; sargs.text.src = FileStar; - sargs.text.desc = "output"; + sargs.text.desc = "輸出"; sargs.bar.title = title; sargs.bar.style = TextPercent; sargs.help.text = h_simple_text_view; @@ -8399,7 +8399,7 @@ break; case -1 : - cmd_cancelled("View"); + cmd_cancelled("檢視"); break; default :