diff options
Diffstat (limited to 'chinese/pine4/files/patch-ay')
-rw-r--r-- | chinese/pine4/files/patch-ay | 878 |
1 files changed, 878 insertions, 0 deletions
diff --git a/chinese/pine4/files/patch-ay b/chinese/pine4/files/patch-ay new file mode 100644 index 000000000000..0386a9814fc9 --- /dev/null +++ b/chinese/pine4/files/patch-ay @@ -0,0 +1,878 @@ +--- pine/addrbook.c.orig Sat Jan 17 20:28:24 1998 ++++ pine/addrbook.c Sat Jan 17 21:01:08 1998 +@@ -514,9 +514,9 @@ + + #define CLICKHERE "[ Select Here to See Expanded List ]" + #define NO_PERMISSION "[ Permission Denied ]" +-#define EMPTY "[ Empty ]" +-#define READONLY "(ReadOnly)" +-#define NOACCESS "(Un-readable)" ++#define EMPTY "[ 沒有任何項目 ]" ++#define READONLY "(唯讀)" ++#define NOACCESS "(無法讀取)" + #define DISTLIST "DISTRIBUTION LIST:" + + #define MAX_FCC MAX_ADDRESS +@@ -760,7 +760,7 @@ + readonly_warning(NO_DING, NULL); + else if(pab->access == NoAccess) + q_status_message(SM_ORDER, 0, 4, +- "AddressBook not accessible, permission denied"); ++ "禁止存取地址簿"); + } + + /* +@@ -921,7 +921,7 @@ + + dprint(2, (debugfile, "parse_format: ignoring unrecognized word \"%s\" in address-book-formats\n", p)); + q_status_message1(SM_ORDER, warnings++==0 ? 1 : 0, 4, +- "Ignoring unrecognized word \"%s\" in address-book-formats", p); ++ "在地址簿格式中忽略無法辨識的字 \"%s\"", p); + /* put back space */ + if(r) + *r = SPACE; +@@ -991,7 +991,7 @@ + + if(column == 0){ + q_status_message(SM_ORDER, 0, 4, +- "address-book-formats has no recognizable words, using default format"); ++ "由於在地址簿格式中找不到足以辨識的字, 因此使用預設模式"); + goto assign_default; + } + +@@ -1526,7 +1526,7 @@ + if(want_status == Open){ + new_status = HalfOpen; /* best we can do */ + q_status_message1(SM_ORDER | SM_DING, *warning?1:3, 4, +- "Error opening/creating address book %s", ++ "於開啟/建立在地址簿 %s 時發生錯誤", + pab->nickname); + if(*warning) + q_status_message2(SM_ORDER, 3, 4, "%s: %s", +@@ -1603,7 +1603,7 @@ + if(want_status == Open){ + new_status = HalfOpen; /* best we can do */ + q_status_message1(SM_ORDER | SM_DING, 3, 4, +- "Insufficient permissions for opening address book %s", ++ "沒有足夠的權限開啟地址簿 %s", + pab->nickname); + } + else +@@ -3929,7 +3929,7 @@ + mailcap_free(); /* free resources we won't be using for a while */ + + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "重設地址簿..."); + dprint(1, (debugfile, "RESETTING address book... addr_book_screen!\n")); + addrbook_reset(); + } +@@ -3959,7 +3959,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book... addr_book_compose!\n")); + addrbook_reset(); +@@ -4000,7 +4000,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book... addr_book_compose_lcc!\n")); + addrbook_reset(); +@@ -4034,7 +4034,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book... addr_book_change_list!\n")); + addrbook_reset(); +@@ -4081,7 +4081,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book...addr_book_takeaddr!\n")); + addrbook_reset(); +@@ -4112,7 +4112,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book...addr_book_nick_for_edit!\n")); + addrbook_reset(); +@@ -4143,7 +4143,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book...addr_book_selnick!\n")); + addrbook_reset(); +@@ -4174,7 +4174,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book...addr_book_seladdr!\n")); + addrbook_reset(); +@@ -4206,7 +4206,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile,"RESETTING address book...addr_book_seladdr_nofull!\n")); + addrbook_reset(); +@@ -4237,7 +4237,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, + (debugfile, "RESETTING address book...addr_book_manynicks!\n")); + addrbook_reset(); +@@ -4249,18 +4249,18 @@ + + + static struct key ab_keys[] = +- {{"?","Help",KS_SCREENHELP}, {"O","OTHER CMDS",KS_NONE}, +- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, +- {"P","PrevEntry",KS_NONE}, {"N","NextEntry",KS_NONE}, +- {"-","PrevPage",KS_PREVPAGE}, {"Spc","NextPage",KS_NEXTPAGE}, +- {"D","Delete",KS_DELETE}, {"A","AddNew",KS_NONE}, +- {"C","ComposeTo",KS_COMPOSER}, {"W","WhereIs",KS_WHEREIS}, +- {"?","Help",KS_SCREENHELP}, {"O","OTHER CMDS",KS_NONE}, +- {"Q","Quit",KS_EXIT}, {NULL,NULL,KS_NONE}, +- {"L","ListFldrs",KS_FLDRLIST}, {"G","GotoFldr",KS_GOTOFLDR}, +- {"I","Index",KS_FLDRINDEX}, {NULL,NULL,KS_NONE}, +- {"Y","prYnt",KS_PRINT}, {"T","TakeAddr",KS_TAKEADDR}, +- {"X","eXport",KS_EXPORT}, {"F","Forward",KS_NONE}}; ++ {{"?","輔助說明",KS_SCREENHELP}, {"O","其它命令",KS_NONE}, ++ {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, ++ {"P","前一個",KS_NONE}, {"N","後一個",KS_NONE}, ++ {"-","上一頁",KS_PREVPAGE}, {"Spc","下一頁",KS_NEXTPAGE}, ++ {"D","刪除",KS_DELETE}, {"A","加入",KS_NONE}, ++ {"C","寫信",KS_COMPOSER}, {"W","搜尋",KS_WHEREIS}, ++ {"?","輔助說明",KS_SCREENHELP}, {"O","其它命令",KS_NONE}, ++ {"Q","離開",KS_EXIT}, {NULL,NULL,KS_NONE}, ++ {"L","列出信件夾",KS_FLDRLIST}, {"G","進入信件夾",KS_GOTOFLDR}, ++ {"I","索引",KS_FLDRINDEX}, {NULL,NULL,KS_NONE}, ++ {"Y","列印",KS_PRINT}, {"T","取得地址",KS_TAKEADDR}, ++ {"X","匯出",KS_EXPORT}, {"F","轉寄",KS_NONE}}; + INST_KEY_MENU(ab_keymenu, ab_keys); + #define OTHER_KEY 1 + #define MAIN_KEY 2 +@@ -4376,7 +4376,7 @@ + what = FirstMenu; + + if(!init_addrbooks(HalfOpen, 1, 1, !are_selecting)){ +- q_status_message(SM_ORDER | SM_DING,3,4,"No Address Book Configured"); ++ q_status_message(SM_ORDER | SM_DING,3,4,"無法找到已設定的地址簿"); + if(!are_selecting) + ps_global->next_screen = ps_global->prev_screen; + +@@ -4473,7 +4473,7 @@ + as.cur = cur_addr_book(); + pab = &as.adrbks[as.cur]; + if(as.cur != old_cur) +- q_status_message1(SM_ORDER, 0, 2, "Now in addressbook %s", ++ q_status_message1(SM_ORDER, 0, 2, "現在正在地址簿 %s 中", + pab->nickname); + #ifdef _WINDOWS + { +@@ -4506,7 +4506,7 @@ + as.cur = cur_addr_book(); + pab = &as.adrbks[as.cur]; + if(as.cur != old_cur) +- q_status_message1(SM_ORDER, 0, 2, "Now in addressbook %s", ++ q_status_message1(SM_ORDER, 0, 2, "現在正在地址簿 %s 中", + pab->nickname); + } + +@@ -4531,10 +4531,10 @@ + if(are_selecting){ + km->how_many = 1; + ab_keys[MAIN_KEY].name = "E"; +- ab_keys[MAIN_KEY].label = "ExitSelect"; ++ ab_keys[MAIN_KEY].label = "離開"; + KS_OSDATASET(&ab_keys[MAIN_KEY], KS_EXITMODE); + ab_keys[SELECT_KEY].name = "S"; +- ab_keys[SELECT_KEY].label = "[Select]"; ++ ab_keys[SELECT_KEY].label = "[選擇]"; + def_cmd = F_ON(F_USE_FK,ps_global) ? PF4 : 's'; + KS_OSDATASET(&ab_keys[SELECT_KEY], KS_NONE); + clrbitn(OTHER_KEY, bitmap); +@@ -4545,18 +4545,18 @@ + KS_OSDATASET(&ab_keys[DELETE_KEY], KS_NONE); + if(as.checkboxes){ + ab_keys[DELETE_KEY].name = "X"; +- ab_keys[DELETE_KEY].label = "[Set/Unset]"; +- ab_keys[SELECT_KEY].label = "Select"; ++ ab_keys[DELETE_KEY].label = "[設定/取消設定]"; ++ ab_keys[SELECT_KEY].label = "選擇"; + def_cmd = F_ON(F_USE_FK,ps_global) ? PF9 : 'x'; + if(entry_is_clickable(as.top_ent+as.cur_row)){ + def_cmd = F_ON(F_USE_FK,ps_global) ? PF4 : 's'; +- ab_keys[DELETE_KEY].label = "Set/Unset"; +- ab_keys[SELECT_KEY].label = "[Select]"; ++ ab_keys[DELETE_KEY].label = "設定/取消設定"; ++ ab_keys[SELECT_KEY].label = "[選擇]"; + } + } + else if(listmode_ok){ + ab_keys[DELETE_KEY].name = "L"; +- ab_keys[DELETE_KEY].label = "ListMode"; ++ ab_keys[DELETE_KEY].label = "列表模式"; + } + else + clrbitn(DELETE_KEY, bitmap); +@@ -4564,23 +4564,23 @@ + else{ + km->how_many = 2; + ab_keys[MAIN_KEY].name = "M"; +- ab_keys[MAIN_KEY].label = "Main Menu"; ++ ab_keys[MAIN_KEY].label = "主選單"; + KS_OSDATASET(&ab_keys[MAIN_KEY], KS_MAINMENU); + if(entry_is_clickable(as.top_ent+as.cur_row)){ + ab_keys[SELECT_KEY].name = "S"; +- ab_keys[SELECT_KEY].label = "[Select]"; ++ ab_keys[SELECT_KEY].label = "[選擇]"; + def_cmd = F_ON(F_USE_FK,ps_global) ? PF4 : 's'; + KS_OSDATASET(&ab_keys[SELECT_KEY], KS_NONE); + } + else{ + ab_keys[SELECT_KEY].name = "V"; +- ab_keys[SELECT_KEY].label = "[View/Edit]"; ++ ab_keys[SELECT_KEY].label = "[檢視/編輯]"; + def_cmd = F_ON(F_USE_FK,ps_global) ? PF4 : 'v'; + KS_OSDATASET(&ab_keys[SELECT_KEY], KS_NONE); + } + + ab_keys[DELETE_KEY].name = "D"; +- ab_keys[DELETE_KEY].label = "Delete"; ++ ab_keys[DELETE_KEY].label = "刪除"; + KS_OSDATASET(&ab_keys[DELETE_KEY], KS_DELETE); + if(was_clickable_last_time) /* it's still *this* time now */ + clrbitn(SENDTO_KEY, bitmap); +@@ -4648,7 +4648,7 @@ + #endif + orig_c = c; + +- if(c == ctrl('M') || c == ctrl('J')) /* set up default */ ++ if(c == ctrl('M') || c == ctrl('J') || c == KEY_RIGHT) /* set up default */ + c = def_cmd; + + if(c < 'z' && isupper((unsigned char)c)) +@@ -4749,13 +4749,14 @@ + + + /*------------- Back to main menu or exit to caller -------*/ ++ case KEY_LEFT: + case PF3: + case 'm': + case 'e': + if(!are_selecting && c == 'e'){ + /* backwards compatibility message */ + q_status_message(SM_ORDER | SM_DING, 0, 2, +- "Command \"E\" not defined. Use \"View/Edit\" to edit an entry"); ++ "\"E\" 這個命令尚未被定義. 請使用 \"View/Edit\" 編輯選項"); + break; + } + +@@ -4766,7 +4767,7 @@ + ps_global->next_screen = main_menu_screen; + + if(!(are_selecting && as.checkboxes && checkedn > 0) +- || want_to("Really abandon your selections ", ++ || want_to("確定放棄你的選擇 ", + 'y', 'x', NO_HELP, 0, 0) == 'y') + quit = 1; + +@@ -4780,7 +4781,7 @@ + if(c == 's' + && !(are_selecting || entry_is_clickable(as.top_ent+as.cur_row))){ + q_status_message(SM_ORDER | SM_DING, 0, 2, +- "Command \"S\" not defined. Use \"AddNew\" to create a list"); ++ "\"S\" 這個命令尚未被定義. 請使用 \"AddNew\" 建立列表"); + break; + } + +@@ -4843,7 +4844,7 @@ + /* Select an entry to mail to or a nickname to add to */ + if(!any_addrs_avail(as.top_ent+as.cur_row)){ + q_status_message(SM_ORDER | SM_DING, 0, 4, +- "No entries in address book. Use ExitSelect to leave address book"); ++ "地址簿中找不到任何項目. 請以 離開選擇(E) 離開"); + break; + } + +@@ -4874,7 +4875,7 @@ + } + else if(as.checkboxes && checkedn <= 0){ + q_status_message(SM_ORDER, 0, 1, +- "Use \"X\" to mark addresses or lists"); ++ "使用 \"X\" 標記地址或列表"); + break; + } + else if(as.checkboxes){ +@@ -4978,7 +4979,7 @@ + if(selecting_mult_nicks){ + if(dl->type != ListHead && style == SelectAddrLccCom){ + q_status_message(SM_ORDER, 0, 4, +- "You may only select lists for lcc, use bcc for other addresses"); ++ "僅能選擇 lcc 列表, 其他的地址請用 bcc"); + break; + } + else{ +@@ -5004,7 +5005,7 @@ + } + else if(dl->type == ListHead && no_fullname){ + q_status_message(SM_ORDER, 0, 4, +- "You may not select a list, select a single address instead"); ++ "無法選擇一個列表, 改以選擇單一地址取代之"); + break; + } + else{ +@@ -5074,8 +5075,8 @@ + return(addr); /* Caller frees this */ + } + else{ +- q_status_message1(SM_ORDER, 3, 4, "No %s selected", +- selecting_nick ? "nickname" : "address"); ++ q_status_message1(SM_ORDER, 3, 4, "尚未選取%s", ++ selecting_nick ? "暱稱" : "地址"); + break; + } + } +@@ -5092,7 +5093,7 @@ + edit: + if((c == 'v' || c == PF4 || c == KEY_MOUSE) + && !any_addrs_avail(as.top_ent+as.cur_row)){ +- q_status_message(SM_ORDER, 0, 4, "No entries to view"); ++ q_status_message(SM_ORDER, 0, 4, "沒有可供檢視的項目"); + break; + } + +@@ -5161,7 +5162,7 @@ + } + else{ + q_status_message(SM_ORDER, 0, 3, +- "Current line is not editable"); ++ "無法編輯本行"); + break; + } + } +@@ -5212,7 +5213,7 @@ + + r = prev_selectable_line(as.cur_row+as.top_ent, &new_line); + if(r == 0){ +- q_status_message(SM_INFO, 0, 1, "Already on first line."); ++ q_status_message(SM_INFO, 0, 1, "已經到第一行了."); + break; + } + +@@ -5254,7 +5255,7 @@ + + r = next_selectable_line(as.cur_row+as.top_ent, &new_line); + if(r == 0){ +- q_status_message(SM_INFO, 0, 1, "Already on last line."); ++ q_status_message(SM_INFO, 0, 1, "已經到最後一行了."); + break; + } + +@@ -5341,7 +5342,7 @@ + break; + + if(as.top_ent == new_top_ent && as.cur_row == (fl-as.top_ent)){ +- q_status_message(SM_INFO, 0, 1, "Already on first page."); ++ q_status_message(SM_INFO, 0, 1, "已經到第一頁了."); + break; + } + +@@ -5365,7 +5366,7 @@ + else{ + new_top_ent = as.top_ent; + if(as.cur_row == (fl - as.top_ent)){ /* no change */ +- q_status_message(SM_INFO,0,1,"Already on last page."); ++ q_status_message(SM_INFO,0,1,"已經到最後一頁了."); + break; + } + } +@@ -5398,7 +5399,7 @@ + goto bleep; + + if(!any_addrs_avail(as.top_ent+as.cur_row)){ +- q_status_message(SM_ORDER, 0, 4, "No entries to delete"); ++ q_status_message(SM_ORDER, 0, 4, "沒有可供刪除的項目"); + break; + } + +@@ -5467,7 +5468,7 @@ + goto bleep; + + if(!any_addrs_avail(as.top_ent+as.cur_row)){ +- q_status_message(SM_ORDER, 0, 4, "No entries to select"); ++ q_status_message(SM_ORDER, 0, 4, "沒有可供選擇的項目"); + break; + } + +@@ -5486,7 +5487,7 @@ + + if(style == SelectAddrLccCom && dl->type != ListHead) + q_status_message(SM_ORDER, 0, 4, +- "You may only select lists for lcc, use bcc for personal entries"); ++ "僅能選擇 lcc 列表, 個人項目請用 bcc"); + else if(dl->type == ListHead || dl->type == Simple){ + current_changed_flag++; + if(entry_is_checked(pab->address_book->checks, +@@ -6803,7 +6804,7 @@ + if(full_to && *full_to) + fs_give((void **)full_to); + +- q_status_message(SM_ORDER, 3, 5, "Resetting address book..."); ++ q_status_message(SM_ORDER, 3, 5, "正在重設地址簿..."); + dprint(1, (debugfile, + "RESETTING address book... verify_addr(%s)!\n", to)); + addrbook_reset(); +@@ -6849,12 +6850,12 @@ + ps_global->redrawer = NULL; + fix_windsize(ps_global); + +- switch(want_to("Exit and save changes ", 'y', 0, NO_HELP, 0, 0)){ ++ switch(want_to("離開並儲存改變 ", 'y', 0, NO_HELP, 0, 0)){ + case 'y': + break; + + case 'n': +- rstr = "Use ^C to abandon changes you've made"; ++ rstr = "以 ^C 放棄已經做過的改變"; + break; + + #ifdef OLDWAY +@@ -6884,8 +6885,8 @@ + char *rstr = NULL; + void (*redraw)() = ps_global->redrawer; + +- strcat(strcat(strcpy(prompt, "Cancel "), word), +- " (answering \"Yes\" will abandon any changes made) "); ++ strcat(strcat(strcpy(prompt, "取消 "), word), ++ " (回答 \"Yes\" 將放棄所有曾做過的改變) "); + ps_global->redrawer = NULL; + fix_windsize(ps_global); + +@@ -7020,7 +7021,7 @@ + abe = ae(cur_line); + + if(dl->type == ListHead && listmem_count_from_abe(abe) == 0){ +- error = "List is empty, nothing to export!"; ++ error = "列表是空的, 無法匯出任河東西!"; + good_addr = 0; + } + else if(dl->type == ListEnt){ +@@ -7073,7 +7074,7 @@ + + if(addr && *addr){ + static ESCKEY_S export_opts[] = { +- {ctrl('T'), 10, "^T", "To Files"}, ++ {ctrl('T'), 10, "^T", "信夾列表"}, + {-1, 0, NULL, NULL}}; + HelpType help; + char filename[MAXPATH+1], full_filename[MAXPATH+1]; +@@ -8115,7 +8116,7 @@ + ? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf, + abe->fullname, NULL) + : abe->nickname ? abe->nickname : ""; +- cmd = "Really delete \"%.50s\""; ++ cmd = "確定刪除 \"%.50s\""; + break; + + case ListHead: +@@ -8123,13 +8124,13 @@ + ? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf, + abe->fullname, NULL) + : abe->nickname ? abe->nickname : ""; +- cmd = "Really delete ENTIRE list \"%.50s\""; ++ cmd = "確定刪除 \"整個\" 列表 \"%.50s\""; + break; + + case ListEnt: + dname = (char *)rfc1522_decode((unsigned char *)tmp_20k_buf, + listmem_from_dl(abook, dl), NULL); +- cmd = "Really delete \"%.100s\" from list"; ++ cmd = "確定自列表中刪除 \"%.100s\""; + break; + } + +@@ -8198,7 +8199,7 @@ + + if(rc == 0){ + q_status_message(SM_ORDER, 0, 3, +- "Entry deleted, address book updated"); ++ "已刪除該項目並更新地址簿"); + dprint(2, (debugfile, "abook: Entry %s\n", + (dl->type == Simple || dl->type == ListHead) ? "deleted" + : "modified")); +@@ -8215,7 +8216,7 @@ + + if(rc != -5) + q_status_message1(SM_ORDER | SM_DING, 3, 5, +- "Error updating address book: %s", ++ "更新地址簿時發生錯誤: %s", + error_description(errno)); + pab = &as.adrbks[as.cur]; + dprint(1, (debugfile, "Error deleting entry from %s (%s): %s\n", +@@ -8225,7 +8226,7 @@ + return 0; + } + else{ +- q_status_message(SM_INFO, 0, 2, "Entry not deleted"); ++ q_status_message(SM_INFO, 0, 2, "該項目並未被刪除"); + return 0; + } + } +@@ -8275,7 +8276,7 @@ + ekey[0].ch = ctrl('T'); + ekey[0].rval = 2; + ekey[0].name = "^T"; +- ekey[0].label = "To AddrBk"; ++ ekey[0].label = "地址列表"; + + ekey[1].ch = -1; + +@@ -8305,7 +8306,7 @@ + } + + q_status_message1(SM_ORDER, 0, 4, +- "Already an entry with nickname \"%s\"", edit_buf); ++ "已經有一個暱稱為 \"%s\" 的項目", edit_buf); + } + + if(rc == 3) +@@ -8429,12 +8430,12 @@ + ekey[1].ch = ctrl('Y'); + ekey[1].rval = 10; + ekey[1].name = "^Y"; +- ekey[1].label = "First Adr"; ++ ekey[1].label = "第一個地址"; + + ekey[2].ch = ctrl('V'); + ekey[2].rval = 11; + ekey[2].name = "^V"; +- ekey[2].label = "Last Adr"; ++ ekey[2].label = "最後的地址"; + + ekey[3].ch = -1; + +@@ -8450,11 +8451,11 @@ + warp_to_beginning(); /* go to top of addrbooks */ + if((nl=first_selectable_line(0L)) != NO_LINE){ + *new_line = nl; +- q_status_message(SM_INFO, 0, 2, "Searched to first entry"); ++ q_status_message(SM_INFO, 0, 2, "搜尋至第一個項目"); + return 0; + } + else{ +- q_status_message(SM_INFO, 0, 2, "No entries"); ++ q_status_message(SM_INFO, 0, 2, "沒有任何項目"); + return -1; + } + } +@@ -8463,11 +8464,11 @@ + warp_to_end(); /* go to bottom */ + if((nl=first_selectable_line(0L)) != NO_LINE){ + *new_line = nl; +- q_status_message(SM_INFO, 0, 2, "Searched to last entry"); ++ q_status_message(SM_INFO, 0, 2, "搜尋至最終項"); + return 0; + } + else{ +- q_status_message(SM_INFO, 0, 2, "No entries"); ++ q_status_message(SM_INFO, 0, 2, "沒有任何項目"); + return -1; + } + } +@@ -9016,7 +9017,7 @@ + + memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf)); + if(setjmp(addrbook_changed_unexpectedly)){ +- q_status_message(SM_ORDER, 5, 10, "Resetting address book..."); ++ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿..."); + dprint(1, (debugfile, + "RESETTING address book... take_to_addrbooks_frontend!\n")); + addrbook_reset(); +@@ -9095,7 +9096,7 @@ + abe = adrbk_lookup_by_nick(abook, new_nickname, &entry_num); + if(!abe){ /* this shouldn't happen */ + q_status_message1(SM_ORDER, 0, 4, +- "Already an entry %s in address book!", ++ "已經在地址簿中發現 %s 這個項目!", + new_nickname); + goto take_to_addrbooks_cancel; + } +@@ -9103,7 +9104,7 @@ + old_tag = abe->tag; + + sprintf(prompt, +- "%s %s (%s) exists, replace or add addresses to it ? ", ++ "%s %s (%s) 已存在, 取代或加入新的地址於其中 ? ", + abe->tag == List ? "List" : "Entry", + new_nickname, + (abe->fullname && abe->fullname[0]) +@@ -9129,7 +9130,7 @@ + if((long)abook->count > MAX_ADRBK_SIZE || + (old_tag == NotSet && (long)abook->count >= MAX_ADRBK_SIZE)){ + q_status_message(SM_ORDER, 3, 5, +- "Address book is at maximum size. TakeAddr cancelled."); ++ "地址簿容量已達上限. 取消 TakeAddr."); + dprint(2, (debugfile, "Addrbook at Max size, TakeAddr cancelled\n")); + goto take_to_addrbooks_cancel; + } +@@ -9225,7 +9226,7 @@ + save_state(state); + + if(as.n_addrbk == 0){ +- q_status_message(SM_ORDER, 3, 4, "Can't open address book!"); ++ q_status_message(SM_ORDER, 3, 4, "無法開啟地址簿!"); + return NULL; + } + else +@@ -9238,7 +9239,7 @@ + init_abook(pab, Open); + + if(pab->ostatus != Open){ +- q_status_message(SM_ORDER, 3, 4, "Can't open address book!"); ++ q_status_message(SM_ORDER, 3, 4, "無法開啟地址簿!"); + return NULL; + } + +@@ -9247,7 +9248,7 @@ + readonly_warning(NO_DING, NULL); + else if(pab->access == NoAccess) + q_status_message(SM_ORDER, 3, 4, +- "AddressBook not accessible, permission denied"); ++ "禁址存取地址簿"); + + return NULL; + } +@@ -9469,7 +9470,7 @@ + if(full_lcc && *full_lcc) + fs_give((void **)full_lcc); + +- q_status_message(SM_ORDER, 3, 5, "Resetting address book..."); ++ q_status_message(SM_ORDER, 3, 5, "正在重設地址簿..."); + dprint(1, (debugfile, + "RESETTING address book... build_address(%s)!\n", lcc)); + addrbook_reset(); +@@ -9723,7 +9724,7 @@ + if(full_to && *full_to) + fs_give((void **)full_to); + +- q_status_message(SM_ORDER, 3, 5, "Resetting address book..."); ++ q_status_message(SM_ORDER, 3, 5, "正在重設地址簿..."); + dprint(1, (debugfile, + "RESETTING address book... build_address(%s)!\n", to)); + addrbook_reset(); +@@ -10617,7 +10618,7 @@ + if(state.dlc_to_warp_to) + fs_give((void **)&(state.dlc_to_warp_to)); + +- q_status_message(SM_ORDER, 3, 5, "Resetting address book..."); ++ q_status_message(SM_ORDER, 3, 5, "正在重設地址簿..."); + dprint(1, (debugfile, + "RESETTING address book... get_nickname_from_addr()!\n")); + addrbook_reset(); +@@ -10668,7 +10669,7 @@ + if(state.dlc_to_warp_to) + fs_give((void **)&(state.dlc_to_warp_to)); + +- q_status_message(SM_ORDER, 3, 5, "Resetting address book..."); ++ q_status_message(SM_ORDER, 3, 5, "正在重設地址簿..."); + dprint(1, (debugfile, + "RESETTING address book... get_fcc_from_addr()!\n")); + addrbook_reset(); +@@ -11484,21 +11485,21 @@ + + + static struct key takeaddr_keys_listmode[] = +- {{"?","Help",KS_SCREENHELP}, {"W","WhereIs",KS_WHEREIS}, +- {"E","ExitTake",KS_EXITMODE}, {"T","Take",KS_NONE}, +- {"P","Prev",KS_NONE}, {"N","Next", KS_NONE}, +- {"-","PrevPage",KS_PREVPAGE}, {"Spc","NextPage",KS_NEXTPAGE}, +- {"X","[Set/Unset]",KS_NONE}, {"A","SetAll",KS_NONE}, +- {"U","UnSetAll",KS_NONE}, {"S","SinglMode",KS_NONE}}; ++ {{"?","輔助說明",KS_SCREENHELP}, {"W","搜尋",KS_WHEREIS}, ++ {"E","離開",KS_EXITMODE}, {"T","取得",KS_NONE}, ++ {"P","上一個",KS_NONE}, {"N","下一個", KS_NONE}, ++ {"-","前一頁",KS_PREVPAGE}, {"Spc","下一頁",KS_NEXTPAGE}, ++ {"X","[設定/取消設定]",KS_NONE}, {"A","設定全部",KS_NONE}, ++ {"U","取消設定全部",KS_NONE}, {"S","單一模式",KS_NONE}}; + INST_KEY_MENU(takeaddr_keymenu_listmode, takeaddr_keys_listmode); + + static struct key takeaddr_keys_singlemode[] = +- {{"?","Help",KS_SCREENHELP}, {"W","WhereIs",KS_WHEREIS}, +- {"E","ExitTake",KS_EXITMODE}, {"T","[Take]",KS_NONE}, +- {"P","Prev",KS_NONE}, {"N","Next", KS_NONE}, +- {"-","PrevPage",KS_PREVPAGE}, {"Spc","NextPage",KS_NEXTPAGE}, +- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, +- {NULL,NULL,KS_NONE}, {"L","ListMode",KS_NONE}}; ++ {{"?","輔助說明",KS_SCREENHELP}, {"W","搜尋",KS_WHEREIS}, ++ {"E","離開",KS_EXITMODE}, {"T","[取得]",KS_NONE}, ++ {"P","上一個",KS_NONE}, {"N","下一個", KS_NONE}, ++ {"-","前一頁",KS_PREVPAGE}, {"Spc","下一頁",KS_NEXTPAGE}, ++ {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE}, ++ {NULL,NULL,KS_NONE}, {"L","列表模式",KS_NONE}}; + INST_KEY_MENU(takeaddr_keymenu_singlemode, takeaddr_keys_singlemode); + + +@@ -11692,6 +11693,7 @@ + break; + + case 'e': /* exit takeaddr screen */ ++ case KEY_LEFT: + case PF3: + case ctrl('C'): + cancel_warning(NO_DING, "addition"); +@@ -11699,10 +11701,11 @@ + break; + + case 't': /* take */ ++ case KEY_RIGHT: + case PF4: + case ctrl('M'): + case ctrl('J'): +- if((ch == ctrl('M') || ch == ctrl('J')) ++ if((ch == ctrl('M') || ch == ctrl('J') || ch == KEY_RIGHT) + && screen.mode == ListMode) + goto SelectCase; /* default is different in this case */ + +@@ -11727,7 +11730,7 @@ + if(ctmp = next_sel_taline(current)) + current = ctmp; + else +- q_status_message(SM_INFO, 0, 1, "Already on last line."); ++ q_status_message(SM_INFO, 0, 1, "已經到最後一行了."); + + break; + +@@ -11739,7 +11742,7 @@ + if(ctmp = pre_sel_taline(current)) + current = ctmp; + else +- q_status_message(SM_INFO, 0, 1, "Already on first line."); ++ q_status_message(SM_INFO, 0, 1, "已經到第一行了."); + + break; + +@@ -11759,7 +11762,7 @@ + } + + if(give_warn_message) +- q_status_message(SM_INFO, 0, 1, "Already on last page."); ++ q_status_message(SM_INFO, 0, 1, "已經在最後一頁了."); + + break; + +@@ -11789,7 +11792,7 @@ + } + + if(give_warn_message) +- q_status_message(SM_INFO, 0, 1, "Already on first page."); ++ q_status_message(SM_INFO, 0, 1, "已經在第一頁了."); + + break; + +@@ -11873,25 +11876,25 @@ + case PF12: + if(screen.mode == ListMode && ch == 'l'){ + q_status_message(SM_INFO, 0, 1, +- "Already in ListMode. Press \"S\" for Single entry mode."); ++ "已經在列表模式. 以 \"S\" 進入單一選項模式."); + break; + } + + if(screen.mode == SingleMode && ch == 's'){ + q_status_message(SM_INFO, 0, 1, +- "Already in SingleMode. Press \"L\" for List entry mode."); ++ "已經在單一選項模式. 以 \"L\" 進入列表模式."); + break; + } + + if(screen.mode == ListMode){ + screen.mode = SingleMode; + q_status_message(SM_INFO, 0, 1, +- "Single mode: Use \"P\" or \"N\" to select desired address"); ++ "單一選項模式: 以 \"P\" 或 \"N\" 選擇需要的地址"); + } + else{ + screen.mode = ListMode; + q_status_message(SM_INFO, 0, 1, +- "List mode: Use \"X\" to mark addresses to be included in list"); ++ "列表模式: 以 \"X\" 標註欲加入列表中的地址"); + + if(how_many_selected <= 1){ + how_many_selected = +@@ -12083,24 +12086,24 @@ + } + else if(rc == 10){ + current = first_sel_taline(current); +- result = "Searched to top"; ++ result = "向前搜尋"; + } + else if(rc == 11){ + current = last_sel_taline(current); +- result = "Searched to bottom"; ++ result = "向後搜尋"; + } + else{ + current = NULL; +- result = "WhereIs cancelled"; ++ result = "取消搜尋"; + } + + if(found){ + current = p; +- result = wrapped ? "Search wrapped to beginning" : "Word found"; ++ result = wrapped ? "從頭搜尋" : "找不到該字"; + strcpy(last, buf); + } + +- q_status_message(SM_ORDER,0,3,result ? result : "Word not found"); ++ q_status_message(SM_ORDER,0,3,result ? result : "找不到該字"); + return(current); + } + +@@ -12770,7 +12773,7 @@ + &body); + if(!env){ + q_status_message(SM_ORDER | SM_DING, 3, 4, +- "Can't take address into address book. Error accessing folder"); ++ "無法將地址存入地址簿中. 檔案夾存取錯誤"); + goto bomb; + } + +@@ -12809,7 +12812,7 @@ + body_h); + if(!env){ + q_status_message(SM_ORDER | SM_DING, 3, 4, +- "Can't take address into address book. Error accessing folder"); ++ "無法將地址存入地址簿中. 檔案夾存取錯誤"); + goto bomb; + } + |