--- pine/addrbook.c.orig Thu Jul 9 05:35:32 1998 +++ pine/addrbook.c Tue Aug 4 12:42:15 1998 @@ -126,13 +126,13 @@ int addr_scroll_callback PROTO((int, long)); #endif -#define CLICKHERE "[ Address List ]" -#define EMPTY "[ Empty ]" -#define ZOOM_EMPTY "[ No Selected Entries in this Address Book ]" -#define ADD_PERSONAL " [ Move here to add a Personal Address Book ]" -#define ADD_GLOBAL " [ Move here to add a Global Address Book ]" -#define DISTLIST "DISTRIBUTION LIST:" -#define NOABOOKS "[ No Address Book Configured ]" +#define CLICKHERE "[ 地址列表 ]" +#define EMPTY "[ 沒有任何項目 ]" +#define ZOOM_EMPTY "[ 本列表中沒有任何已被選取的項目 ]" +#define ADD_PERSONAL " [ 移到這裡加入一個個人的地址簿 ]" +#define ADD_GLOBAL " [ 移到這裡加入一個整體的地址簿 ]" +#define DISTLIST "分類列表:" +#define NOABOOKS "[ 沒有已經設定好的地址簿 ]" /* @@ -283,7 +283,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; @@ -353,7 +353,7 @@ if(column == 0){ q_status_message(SM_ORDER, 0, 4, - "address-book-formats has no recognizable words, using default format"); + "由於在地址簿格式中找不到足以辨識的字, 因此使用預設模式"); goto assign_default; } @@ -575,7 +575,7 @@ } else{ q_status_message(SM_ORDER | SM_DING, 5, 10, - "Bug in addrbook, not supposed to happen, re-syncing..."); + "地址簿功\能中出現未預期的錯誤,重新同步中..."); dprint(1, (debugfile, "Bug in addrbook (null dlc in dlist(%ld), not supposed to happen\n", @@ -1676,14 +1676,14 @@ 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(); } ab_nesting_level = 1; /* come here only from main menu */ - (void)addr_book(AddrBookScreen, "ADDRESS BOOK", NULL); + (void)addr_book(AddrBookScreen, "地址簿", NULL); end_adrbks(); ab_nesting_level = 0; @@ -1701,14 +1701,14 @@ 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_config!\n")); addrbook_reset(); } ab_nesting_level = 1; - (void)addr_book(AddrBookConfig, "SETUP ADDRESS BOOKS", NULL); + (void)addr_book(AddrBookConfig, "設定地址簿", NULL); end_adrbks(); ab_nesting_level = 0; @@ -1737,7 +1737,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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(); @@ -1746,7 +1746,7 @@ ab_nesting_level++; - p = addr_book(SelectNicksCom, "COMPOSER: SELECT ADDRESS", error); + p = addr_book(SelectNicksCom, "編輯器:選擇地址", error); if(ab_nesting_level <= 1) end_adrbks(); @@ -1781,7 +1781,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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(); @@ -1794,7 +1794,7 @@ * We used to use SelectAddrLccCom here but decided it wasn't necessary * to restrict the selection to a list. */ - p = addr_book(SelectNicksCom, "COMPOSER: SELECT LIST", error); + p = addr_book(SelectNicksCom, "編輯器:選擇列表", error); if(ab_nesting_level <= 1) end_adrbks(); @@ -1829,7 +1829,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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(); @@ -1838,7 +1838,7 @@ ab_nesting_level++; - p = addr_book(SelectNicksCom, "ADDRESS BOOK (Update): SELECT ADDRESSES", + p = addr_book(SelectNicksCom, "地址簿 (更新):選擇地址", error); if(ab_nesting_level <= 1) @@ -1871,7 +1871,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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_bounce!\n")); addrbook_reset(); @@ -1912,7 +1912,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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(); @@ -1957,7 +1957,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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(); @@ -2005,7 +2005,7 @@ save_nesting_level = cpyint(ab_nesting_level); 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(); @@ -2037,8 +2037,8 @@ NULL_MENU, NULL_MENU, NULL_MENU, - {"P", "PrevEntry", {MC_PREVITEM,1,{'p'}}, KS_NONE}, - {"N", "NextEntry", {MC_NEXTITEM,1,{'n'}}, KS_NONE}, + {"P", "前一個項目", {MC_PREVITEM,1,{'p'}}, KS_NONE}, + {"N", "下一個項目", {MC_NEXTITEM,1,{'n'}}, KS_NONE}, PREVPAGE_MENU, NEXTPAGE_MENU, NULL_MENU, @@ -2061,10 +2061,10 @@ HELP_MENU, OTHER_MENU, - {";","Select",{MC_SELECT,1,{';'}},KS_NONE}, - {"A","Apply",{MC_APPLY,1,{'a'}},KS_APPLY}, - {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECTCUR}, - {"Z","ZoomMode",{MC_ZOOM,1,{'z'}},KS_NONE}, + {";","選擇",{MC_SELECT,1,{';'}},KS_NONE}, + {"A","套用",{MC_APPLY,1,{'a'}},KS_APPLY}, + {":","選擇目前的",{MC_SELCUR,1,{':'}},KS_SELECTCUR}, + {"Z","縮放模式",{MC_ZOOM,1,{'z'}},KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -2193,7 +2193,7 @@ if(!init_addrbooks(HalfOpen, 1, !as.config, !are_selecting)){ if(are_selecting){ q_status_message(SM_ORDER | SM_DING, 0, 4, - "No Address Book Configured"); + "沒有已設定完成的地址簿"); display_message(c); sleep(2); return NULL; @@ -2201,7 +2201,7 @@ else if(!as.config){ ps->next_screen = main_menu_screen; q_status_message(SM_ORDER | SM_DING, 3, 4, - "No Address Book Configured, Use SETUP Addressbook screen"); + "沒有已設定完成的地址簿,請用 SETUP Addressbook 功\能畫面"); ps->mangled_screen = 1; return NULL; } @@ -2211,7 +2211,7 @@ readonly_warning(NO_DING, NULL); else if(as.adrbks[0].access == NoAccess) q_status_message(SM_ORDER, 0, 4, - "AddressBook not accessible, permission denied"); + "地址簿禁止被存取"); } erase_checks(); @@ -2342,8 +2342,8 @@ char buf[80], *bp; if(style == AddrBookScreen){ - sprintf(buf, "ADDRESS BOOK%s%s%s", - (!as.opened) ? " LIST" : + sprintf(buf, "地址簿%s%s%s", + (!as.opened) ? "列表" : (as.n_addrbk > 1) ? " <" : "", (as.opened && as.n_addrbk > 1 && pab->nickname) ? pab->nickname : "", @@ -2418,7 +2418,7 @@ km->how_many = 1; clrbitn(OTHER_KEY, bitmap); - menu_init_binding(km, 'E', MC_EXIT, "E", "Exit Setup", TWO_KEY); + menu_init_binding(km, 'E', MC_EXIT, "E", "離開", TWO_KEY); KS_OSDATASET(&km->keys[TWO_KEY], KS_EXITMODE); /* @@ -2431,22 +2431,22 @@ clrbitn(THREE_KEY, bitmap); menu_init_binding(km, 'A', MC_ADDABOOK, "A", add_is_global(as.top_ent+as.cur_row) - ? "[Add Glob Abook]" - : "[Add Pers Abook]", + ? "[新增整體地址簿]" + : "[新增個人地址簿]", ADD_KEY); def_key = ADD_KEY; } else{ - menu_init_binding(km, 'D', MC_DELABOOK, "D", "Del Abook", + menu_init_binding(km, 'D', MC_DELABOOK, "D", "刪除地址簿", DELETE_KEY); - menu_init_binding(km, '$', MC_SHUFFLE, "$", "Shuffle", + menu_init_binding(km, '$', MC_SHUFFLE, "$", "重整", SENDTO_KEY); - menu_init_binding(km, 'C', MC_EDITABOOK, "C", "[Change]", + menu_init_binding(km, 'C', MC_EDITABOOK, "C", "[修改]", THREE_KEY); menu_init_binding(km, 'A', MC_ADDABOOK, "A", add_is_global(as.top_ent+as.cur_row) - ? "Add Glob Abook" - : "Add Pers Abook", + ? "新增整體地址簿" + : "新增個人地址簿", ADD_KEY); } } @@ -2459,7 +2459,7 @@ * The OTHER_KEY is used as the Exit key in selection mode. * This is because the TWO_KEY is being used for < actions. */ - menu_init_binding(km, 'E', MC_EXIT, "E", "ExitSelect", + menu_init_binding(km, 'E', MC_EXIT, "E", "離開", OTHER_KEY); KS_OSDATASET(&km->keys[OTHER_KEY], KS_EXITMODE); @@ -2474,7 +2474,7 @@ cmd = MC_POPUP; menu_init_binding(km, '<', cmd, "<", - cmd == MC_POPUP ? "AddbkList" : "Unexpand", + cmd == MC_POPUP ? "地址簿列表" : "復原展開", TWO_KEY); menu_add_binding(km, ',', cmd); if(F_ON(F_ARROW_NAV,ps)) @@ -2489,7 +2489,7 @@ * key becomes the ViewAbook key. */ if(entry_is_askserver(as.top_ent+as.cur_row)){ - menu_init_binding(km, '>', MC_QUERY_SERV, ">", "[Search]", + menu_init_binding(km, '>', MC_QUERY_SERV, ">", "[搜尋]", THREE_KEY); menu_add_binding(km, 's', MC_QUERY_SERV); menu_add_binding(km, '.', MC_QUERY_SERV); @@ -2497,7 +2497,7 @@ menu_add_binding(km, KEY_RIGHT, MC_QUERY_SERV); } else if(entry_is_clickable_title(as.top_ent+as.cur_row)){ - menu_init_binding(km, '>', MC_OPENABOOK, ">", "[ViewAbook]", + menu_init_binding(km, '>', MC_OPENABOOK, ">", "[檢視地址簿]", THREE_KEY); menu_add_binding(km, 'v', MC_OPENABOOK); menu_add_binding(km, '.', MC_OPENABOOK); @@ -2505,7 +2505,7 @@ menu_add_binding(km, KEY_RIGHT, MC_OPENABOOK); } else if(as.opened){ - menu_init_binding(km, 'S', MC_CHOICE, "S", "[Select]", + menu_init_binding(km, 'S', MC_CHOICE, "S", "[選取]", THREE_KEY); } else @@ -2518,7 +2518,7 @@ */ if(entry_is_clickable(as.top_ent+as.cur_row) && !entry_is_clickable_title(as.top_ent+as.cur_row)){ - menu_init_binding(km, '>', MC_EXPAND, ">", "Expand", + menu_init_binding(km, '>', MC_EXPAND, ">", "展開", SENDTO_KEY); menu_add_binding(km, '.', MC_EXPAND); if(F_ON(F_ARROW_NAV,ps)) @@ -2528,12 +2528,12 @@ clrbitn(SENDTO_KEY, bitmap); if(as.opened && as.checkboxes){ - menu_init_binding(km, 'X', MC_TOGGLE, "X", "Set/Unset", + menu_init_binding(km, 'X', MC_TOGGLE, "X", "設定/解除設定", DELETE_KEY); } else if(as.opened && listmode_ok){ - menu_init_binding(km, 'L', MC_LISTMODE, "L", "ListMode", + menu_init_binding(km, 'L', MC_LISTMODE, "L", "列表模式", DELETE_KEY); } else @@ -2550,7 +2550,7 @@ * reasonable function call. */ km->keys[OTHER_KEY].name = "O"; - km->keys[OTHER_KEY].label = "OTHER CMDS"; + km->keys[OTHER_KEY].label = "其他命令"; km->keys[OTHER_KEY].bind.cmd = MC_OTHER; km->keys[OTHER_KEY].bind.ch[0] = 'O'; km->keys[OTHER_KEY].bind.nch = 1; @@ -2569,18 +2569,18 @@ if(F_OFF(F_EXPANDED_DISTLISTS,ps) && entry_is_listent(as.top_ent+as.cur_row)){ cmd = MC_UNEXPAND; - menu_init_binding(km, '<', cmd, "<", "Unexpand", + menu_init_binding(km, '<', cmd, "<", "復原展開", TWO_KEY); } else{ if(as.n_addrbk > 1 || as.n_serv){ cmd = MC_POPUP; - menu_init_binding(km, '<', cmd, "<", "AddbkList", + menu_init_binding(km, '<', cmd, "<", "地址簿列表", TWO_KEY); } else{ cmd = MC_MAIN; - menu_init_binding(km, 'M', cmd, "<", "Main Menu", + menu_init_binding(km, 'M', cmd, "<", "主選單", TWO_KEY); KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU); } @@ -2592,9 +2592,9 @@ /* * Add or delete entries from this address book. */ - menu_init_binding(km, '@', MC_ADD, "@", "AddNew", + menu_init_binding(km, '@', MC_ADD, "@", "新增", ADD_KEY); - menu_init_binding(km, 'D', MC_DELETE, "D", "Delete", + menu_init_binding(km, 'D', MC_DELETE, "D", "刪除", DELETE_KEY); } else{ @@ -2604,14 +2604,14 @@ /* Find someplace to put Main Menu command */ if(cmd == MC_POPUP){ - menu_init_binding(km, 'M', MC_MAIN, "M", "Main Menu", + menu_init_binding(km, 'M', MC_MAIN, "M", "主選單", SECONDARY_MAIN_KEY); KS_OSDATASET(&km->keys[SECONDARY_MAIN_KEY],KS_MAINMENU); } else clrbitn(SECONDARY_MAIN_KEY, bitmap); - menu_init_binding(km, 'C', MC_COMPOSE, "C", "ComposeTo", + menu_init_binding(km, 'C', MC_COMPOSE, "C", "編修", SENDTO_KEY); KS_OSDATASET(&km->keys[SENDTO_KEY], KS_COMPOSER); } @@ -2621,7 +2621,7 @@ * non-selection mode. */ cmd = MC_MAIN; - menu_init_binding(km, 'M', cmd, "<", "Main Menu", + menu_init_binding(km, 'M', cmd, "<", "主選單", TWO_KEY); KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU); @@ -2661,10 +2661,10 @@ cmd = MC_VIEW_ENTRY; menu_init_binding(km, '>', cmd, ">", - cmd == MC_EXPAND ? "[Expand]" : - cmd == MC_QUERY_SERV ? "[Search]" : - as.opened ? "[View/Update]" - : "[ViewAbook]", + cmd == MC_EXPAND ? "[展開]" : + cmd == MC_QUERY_SERV ? "[搜尋]" : + as.opened ? "[檢視/更新]" + : "[檢視地址簿]", THREE_KEY); if(cmd == MC_QUERY_SERV) @@ -2777,34 +2777,34 @@ } if(as.config){ - helper(h_abook_config, "HELP ON CONFIGURING ADDRESS BOOKS", + helper(h_abook_config, "設定地址簿的輔助說明", HLPD_NONE); } else if(are_selecting){ if(as.opened){ /* single nick select from TakeAddr */ if(style == SelectNickTake) - helper(h_abook_select_nicks_take, "HELP ON ADDRESS BOOK", + helper(h_abook_select_nicks_take, "地址簿的輔助說明", HLPD_SIMPLE | HLPD_NEWWIN); /* single nick select from addrbook */ else if(selecting_one_nick) - helper(h_abook_select_nick, "HELP ON ADDRESS BOOK", + helper(h_abook_select_nick, "地址簿的輔助說明", HLPD_SIMPLE | HLPD_NEWWIN); /* can use X checkbox command now */ else if(as.checkboxes) - helper(h_abook_select_checks, "HELP ON ADDRESS BOOK", + helper(h_abook_select_checks, "地址簿的輔助說明", HLPD_SIMPLE | HLPD_NEWWIN); /* ListMode command available */ else if(listmode_ok) - helper(h_abook_select_listmode, "HELP ON ADDRESS BOOK", + helper(h_abook_select_listmode, "地址簿的輔助說明", HLPD_SIMPLE | HLPD_NEWWIN); /* no ListMode command available */ else - helper(h_abook_select_addr, "HELP ON ADDRESS BOOK", + helper(h_abook_select_addr, "地址簿的輔助說明", HLPD_SIMPLE | HLPD_NEWWIN); } else{ - helper(h_abook_select_top, "HELP ON ADDRESS BOOK", + helper(h_abook_select_top, "地址簿的輔助說明", HLPD_SIMPLE | HLPD_NEWWIN); } } @@ -2812,9 +2812,9 @@ else{ ps->next_screen = SCREEN_FUN_NULL; if(as.opened) - helper(h_abook_opened, "HELP ON ADDRESS BOOK", HLPD_NONE); + helper(h_abook_opened, "地址簿的輔助說明", HLPD_NONE); else - helper(h_abook_top, "HELP ON ADDRESS BOOK", HLPD_NONE); + helper(h_abook_top, "地址簿的輔助說明", HLPD_NONE); } /* @@ -2887,7 +2887,7 @@ } else q_status_message(SM_ORDER | SM_DING, 3, 4, - "Can't happen in MC_UNEXPAND"); + "無法在 MC_UNEXPAND 時發生"); break; @@ -2923,7 +2923,7 @@ } else q_status_message(SM_ORDER | SM_DING, 3, 4, - "Can't happen in MC_POPUP"); + "無法在 MC_POPUP 時發生"); break; @@ -2984,11 +2984,11 @@ } else if(dlc_to_flush->type == DlcTitleNoPerm) q_status_message(SM_ORDER, 0, 4, - "Cannot access address book."); + "無法存取地址簿。"); } else q_status_message(SM_ORDER | SM_DING, 3, 4, - "Can't happen in MC_OPENABOOK"); + "無法在 MC_OPENABOOK 時發生"); break; @@ -3034,7 +3034,7 @@ } else q_status_message(SM_ORDER | SM_DING, 3, 4, - "Can't happen in MC_EXPAND"); + "無法在 MC_EXPAND 時發生"); break; @@ -3046,7 +3046,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 books"); + "地址簿中找不到任何項目. 請以 離開選擇(E) 離開"); break; } @@ -3068,7 +3068,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){ @@ -3152,7 +3152,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{ @@ -3214,16 +3214,16 @@ if(entry_is_clickable(as.top_ent+as.cur_row)) clickable_warning(as.top_ent+as.cur_row); else if(entry_is_askserver(as.top_ent+as.cur_row)) - q_status_message(SM_ORDER, 3, 4, "Use select to select an address or addresses from address books"); + q_status_message(SM_ORDER, 3, 4, "使用「選擇」來選擇地址簿中的地址"); else - q_status_message(SM_ORDER, 3, 4, "No address selected"); + q_status_message(SM_ORDER, 3, 4, "尚未選擇任何地址"); break; } } else q_status_message(SM_ORDER | SM_DING, 3, 4, - "Can't happen in MC_CHOICE"); + "無法在 MC_CHOICE 時發生"); break; @@ -3247,7 +3247,7 @@ if(adrbk_check_all_validity_now()){ if(resync_screen(pab, style, checkedn)){ q_status_message(SM_ORDER | SM_DING, 3, 4, - "Address book changed. AddNew cancelled. Try again."); + "地址簿被改變了;取消新增。請重試一遍。"); ps->mangled_screen = 1; break; } @@ -3262,7 +3262,7 @@ dprint(9, (debugfile, "Calling edit_entry to add entry manually\n")); edit_entry(pab->address_book, (AdrBk_Entry *)NULL, NO_NEXT, - NotSet, 0, &warped, "add"); + NotSet, 0, &warped, "新增"); /* * Warped means we got plopped down somewhere in the display @@ -3406,7 +3406,7 @@ } else{ q_status_message1(SM_ORDER|SM_DING, 0, 4, - "Missing \"}\" in config: %s", q); + "設定檔中缺乏 \"}\":%s", q); if(nick) fs_give((void **)&nick); if(file) @@ -3442,7 +3442,7 @@ ps->mangled_screen = 1; } else - q_status_message(SM_ORDER, 0, 4, "Not a changeable line"); + q_status_message(SM_ORDER, 0, 4, "不為可被更改的一行"); break; @@ -3450,7 +3450,7 @@ /*---------- Delete an address book -------------------*/ case MC_DELABOOK: if(as.n_addrbk == 0){ - q_status_message(SM_ORDER, 0, 4, "Nothing to delete"); + q_status_message(SM_ORDER, 0, 4, "沒有可被刪除的項目"); break; } @@ -3505,7 +3505,7 @@ start_disp = 0; ps->mangled_body = 1; ps->mangled_footer = 1; - q_status_message(SM_ORDER, 0, 3, "Address book deleted"); + q_status_message(SM_ORDER, 0, 3, "地址簿已被刪除"); } else{ if(err){ @@ -3523,7 +3523,7 @@ case MC_SHUFFLE: if(entry_is_addkey(as.top_ent+as.cur_row)){ q_status_message(SM_ORDER, 0, 4, - "Highlight entry you wish to shuffle"); + "標示想要重整的項目"); break; } @@ -3596,8 +3596,8 @@ q_status_message(SM_ORDER, 0, 3, msg ? msg : - (ret < 0) ? "Shuffle failed" : - "Address books shuffled"); + (ret < 0) ? "重整失敗" : + "地址簿已重整"); if(ret < 0) dprint(5, (debugfile, "addrbook shuffle failed: %s\n", msg ? msg : "?")); @@ -3615,7 +3615,7 @@ case MC_PREVITEM: 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; } @@ -3654,7 +3654,7 @@ case MC_NEXTITEM: 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; } @@ -3733,7 +3733,7 @@ #endif default: q_status_message(SM_INFO, 0, 1, - "Can't happen in MC_MOUSE"); + "無法在 MC_MOUSE 時發生"); break; } } @@ -3786,7 +3786,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; } @@ -3809,7 +3809,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; } } @@ -3848,14 +3848,14 @@ if(adrbk_check_all_validity_now()){ if(resync_screen(pab, style, checkedn)){ q_status_message(SM_ORDER | SM_DING, 3, 4, - "Address book changed. Delete cancelled. Try again."); + "地址簿被改變了;取消刪除。請重試一遍。"); ps->mangled_screen = 1; break; } } 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; } @@ -3917,7 +3917,7 @@ case MC_TOGGLE: togglex: 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; } @@ -3936,10 +3936,10 @@ if(style == SelectAddrLccCom && dl->type == ListEnt) q_status_message(SM_ORDER, 0, 4, - "You may only select whole lists for lcc"); + "僅能選擇整個列表給 lcc"); else 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, @@ -3956,11 +3956,11 @@ } else q_status_message(SM_ORDER, 0, 4, - "You may not select list members, only whole lists or personal entries"); + "無法選擇列表成員,僅能選擇整個列表或個人項目"); } else q_status_message(SM_ORDER, 0, 4, - "You may only select addresses or lists"); + "僅能選擇地址或列表"); break; @@ -3968,7 +3968,7 @@ /*------ Turn all checkboxes on ---------*/ case MC_SELALL: 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; } @@ -4018,7 +4018,7 @@ ps->mangled_body = 1; start_disp = 0; q_status_message(SM_ORDER, 0, 4, - "Use \"X\" to select addresses or lists"); + "使用 \"X\" 標記地址或列表"); break; @@ -4038,13 +4038,13 @@ if(!directory_ok){ q_status_message(SM_ORDER, 0, 4, (style == SelectAddrLccCom) - ? "Can't search server for Lcc" - : "Can't search server from here"); + ? "無法由伺服器搜尋 Lcc" + : "無法由此搜尋伺服器"); break; } else if(as.checkboxes){ q_status_message(SM_ORDER, 0, 4, - "Can't search server when using ListMode"); + "使用 ListMode 時無法搜尋伺服器"); break; } @@ -4099,7 +4099,7 @@ /*----- Select entries to work on --*/ case MC_SELECT: 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; } @@ -4134,7 +4134,7 @@ /*----------- Select current entry ----------*/ case MC_SELCUR: 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; } @@ -4195,7 +4195,7 @@ dlc_restart = *dlc; as.zoomed = 0; q_status_message(SM_ORDER, 0, 2, - "Zoom Mode is now off, no entries selected"); + "縮放模式目前為關閉狀態,沒有任何被選擇的項目"); warp_to_dlc(&dlc_restart, 0L); /* put current entry in middle of screen */ @@ -4262,11 +4262,11 @@ } else q_status_message(SM_ORDER, 0, 4, - "You may not select list members, only whole lists or personal entries"); + "無法選擇列表成員,僅能選擇整個列表或個人項目"); } else q_status_message(SM_ORDER, 0, 4, - "You may only select addresses or lists"); + "僅能選擇地址或列表"); break; @@ -4279,7 +4279,7 @@ : NULL, &start_disp); else{ - q_status_message(SM_ORDER, 0, 2, "Zoom Mode is now off"); + q_status_message(SM_ORDER, 0, 2, "現在關閉縮放模式"); ab_unzoom(&start_disp); } @@ -4321,7 +4321,7 @@ } else q_status_message(SM_ORDER, 0, 2, - "No selected entries to apply command to"); + "沒有已選擇的項目可供套用命令"); break; @@ -4377,7 +4377,7 @@ /*------ Copy entries into an abook ----*/ case MC_SAVE: if(!any_addrs_avail(as.top_ent+as.cur_row)){ - q_status_message(SM_ORDER, 0, 4, "No entries to save"); + q_status_message(SM_ORDER, 0, 4, "沒有可供存入的項目"); break; } @@ -4399,7 +4399,7 @@ /*------ Forward an entry in mail -----------*/ case MC_FORWARD: if(!any_addrs_avail(as.top_ent+as.cur_row)){ - q_status_message(SM_ORDER, 0, 4, "No entries to forward"); + q_status_message(SM_ORDER, 0, 4, "沒有可供轉寄的項目"); break; } @@ -4414,14 +4414,14 @@ } if(!is_addr(as.top_ent+as.cur_row)){ - q_status_message(SM_ORDER, 0, 4, "Nothing to forward"); + q_status_message(SM_ORDER, 0, 4, "沒有東西可以轉寄"); break; } dl = dlist(as.top_ent+as.cur_row); if(dl->type != ListHead && dl->type != Simple){ q_status_message(SM_ORDER, 0, 4, - "Can only forward whole entries"); + "僅能轉寄整個列表"); break; } @@ -4453,18 +4453,18 @@ case MC_UNKNOWN: if(c == 'e' && !are_selecting){ q_status_message(SM_ORDER | SM_DING, 0, 2, - "Command \"E\" not defined. Use \"View/Update\" to edit an entry"); + "\"E\" 這個命令尚未被定義. 請使用 \"檢視/編輯\" 編輯選項"); break; } else 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\" 這個命令尚未被定義. 請使用 \"新增\" 建立列表"); break; } else if(c == 'z' && !are_selecting){ q_status_message(SM_ORDER | SM_DING, 0, 2, - "Command \"Z\" not defined. Use \"View/Update\" to add to a list"); + "\"Z\" 這個命令尚未被定義. 請使用 \"檢視/更新\" 新增至列表"); break; } /* else, fall through */ @@ -4499,7 +4499,7 @@ as.zoomed = 1; if(as.selections){ - q_status_message(SM_ORDER, 0, 2, "Zoom Mode is now on"); + q_status_message(SM_ORDER, 0, 2, "現在開啟縮放模式"); if(as.opened){ dl = dlist(as.top_ent+as.cur_row); if((dl->type == ListHead || @@ -4540,7 +4540,7 @@ } else{ as.zoomed = 0; - q_status_message(SM_ORDER, 0, 2, "No selected entries to zoom on"); + q_status_message(SM_ORDER, 0, 2, "沒有已選擇的項目可供縮放"); } } @@ -4601,7 +4601,7 @@ char *name; { q_status_message2(SM_ORDER | (bell ? SM_DING : 0), 0, 4, - "AddressBook%s%s is Read Only", + "地址簿%s%s 是唯讀的", name ? " " : "", name ? name : ""); } @@ -4622,11 +4622,11 @@ dl = dlist(cur_line); if(dl->type == NoAbooks) q_status_message(SM_ORDER, 0, 4, - "No address books configured, use Setup"); + "沒有已設定好的地址簿,請用 Setup"); else if(dl->type == Empty) - q_status_message(SM_ORDER, 0, 4, "Address Book is Empty"); + q_status_message(SM_ORDER, 0, 4, "地址簿是空的"); else - q_status_message(SM_ORDER, 0, 4, "Distribution List is Empty"); + q_status_message(SM_ORDER, 0, 4, "分類列表是空的"); } @@ -4643,9 +4643,9 @@ register AddrScrn_Disp *dl; dl = dlist(cur_line); - q_status_message1(SM_ORDER, 0, 4, "%s not expanded, use \">\" to expand", - dl->type == Title ? "Address Book" - : "Distribution List"); + q_status_message1(SM_ORDER, 0, 4, "%s 未被展開,使用 \">\" 來展開", + dl->type == Title ? "地址簿" + : "分類列表"); } @@ -4661,7 +4661,7 @@ char *what; { q_status_message1(SM_INFO | (bell ? SM_DING : 0), 0, 2, - "Address book %s cancelled", what); + "地址簿%s已取消", what); } @@ -4671,7 +4671,7 @@ void no_tabs_warning() { - q_status_message(SM_ORDER, 0, 4, "Tabs not allowed in address book"); + q_status_message(SM_ORDER, 0, 4, "地址簿中不允許\有 Tab 存在"); } @@ -4690,11 +4690,11 @@ { int ret = 0; static ESCKEY_S opts[] = { - {'c', 'c', "C", "ComposeTo"}, - {'d', 'd', "D", "Delete"}, - {'%', '%', "%", "Print"}, - {'f', 'f', "F", "Forward"}, - {'s', 's', "S", "Save"}, + {'c', 'c', "C", "編排"}, + {'d', 'd', "D", "刪除"}, + {'%', '%', "%", "列印"}, + {'f', 'f', "F", "轉寄"}, + {'s', 's', "S", "存檔"}, { 0, '%', "", ""}, {-1, 0, NULL, NULL}}; @@ -4726,7 +4726,7 @@ break; case 'z': - cmd_cancelled("Apply command"); + cmd_cancelled("套用命令"); break; } @@ -4748,22 +4748,22 @@ int *start_disp; { static ESCKEY_S sel_opts1[] = { - {'a', 'a', "A", "unselect All"}, + {'a', 'a', "A", "取消所有選擇"}, { 0 , 'c', "C", NULL}, - {'b', 'b', "B", "Broaden selctn"}, - {'n', 'n', "N", "Narrow selctn"}, - {'f', 'f', "F", "Flip selected"}, + {'b', 'b', "B", "擴大選擇"}, + {'n', 'n', "N", "縮小選擇"}, + {'f', 'f', "F", "切換選擇"}, {-1, 0, NULL, NULL} }; - static char *sel_pmt1 = "ALTER message selection : "; + static char *sel_pmt1 = "更改訊息選擇:"; static ESCKEY_S sel_opts2[] = { - {'a', 'a', "A", "select All"}, - {'c', 'c', "C", "select Cur"}, - {'t', 't', "T", "Text"}, - {'s', 's', "S", "Status"}, + {'a', 'a', "A", "選擇全部"}, + {'c', 'c', "C", "選擇目前的"}, + {'t', 't', "T", "文字"}, + {'s', 's', "S", "狀態"}, {-1, 0, NULL, NULL} }; - static char *sel_pmt2 = "SELECT criteria : "; + static char *sel_pmt2 = "選擇標準:"; ESCKEY_S *sel_opts; HelpType help = NO_HELP; adrbk_cntr_t num, ab_count; @@ -4791,8 +4791,8 @@ if(dl && (dl->type == ListHead || dl->type == Simple)){ sel_opts1[1].label = entry_is_selected(abook->selects, (a_c_arg_t)dl->elnum) - ? "unselect Cur" - : "select Cur"; + ? "取消目前的選擇" + : "選擇目前的"; sel_opts1[1].ch = 'c'; } else @@ -4814,7 +4814,7 @@ default: q_status_message(SM_ORDER | SM_DING, 3, 3, - "Unsupported Select option"); + "尚未支援的選項"); return; } } @@ -4823,8 +4823,8 @@ (dl->type == ListHead || dl->type == Simple)){ sel_opts1[1].label = entry_is_selected(abook->selects, (a_c_arg_t)dl->elnum) - ? "unselect Cur" - : "select Cur"; + ? "取消目前的選擇" + : "選擇目前的"; sel_opts1[1].ch = 'c'; } else @@ -4841,7 +4841,7 @@ switch(q){ case 'x': /* cancel */ - cmd_cancelled("Select command"); + cmd_cancelled("選擇命令"); break; case 'c': /* select/unselect current */ @@ -4853,7 +4853,7 @@ if(as.selections == 0 && as.zoomed){ as.zoomed = 0; q_status_message(SM_ORDER, 0, 2, - "Zoom Mode is now off, no entries selected"); + "縮放模式目前為關閉狀態,沒有任何被選擇的項目"); do_warp++; } else if(as.zoomed){ @@ -4892,7 +4892,7 @@ if(as.selections == 0 && as.zoomed){ as.zoomed = 0; q_status_message(SM_ORDER, 0, 2, - "Zoom Mode is now off, all entries UNselected"); + "縮放模式目前為關閉狀態,取消所有已選擇的項目"); do_warp++; } else{ @@ -4918,7 +4918,7 @@ } } - q_status_message1(SM_ORDER, 0, 2, "All %s entries selected", + q_status_message1(SM_ORDER, 0, 2, "已選擇所有 %s 的項目", comatose(ab_count)); if(prevsel == 0 && as.selections > 0 && !as.zoomed && F_ON(F_AUTO_ZOOM, ps)){ @@ -4955,14 +4955,14 @@ do_beginning++; else{ as.zoomed = 0; - q_status_message(SM_ORDER, 0, 2, "Zoom Mode is now off"); + q_status_message(SM_ORDER, 0, 2, "現在關閉縮放模式"); do_warp++; } } else do_warp++; - q_status_message1(SM_ORDER, 0, 2, "%s entries now selected", + q_status_message1(SM_ORDER, 0, 2, "項目 %s 現在已被選擇", comatose(as.selections)); break; @@ -4988,7 +4988,7 @@ if(as.selections == 0){ as.zoomed = 0; q_status_message(SM_ORDER, 0, 2, - "Zoom Mode is now off"); + "現在關閉縮放模式"); do_warp++; } else @@ -5007,63 +5007,63 @@ if(prevsel == as.selections && prevsel > 0){ if(as.selections == 1) q_status_message(SM_ORDER, 0, 2, - "No change resulted, 1 entry remains selected"); + "沒有導致任何改變,仍有一個項目被選擇"); else q_status_message1(SM_ORDER, 0, 2, - "No change resulted, %s entries remain selected", + "沒有導致任何改變,仍有 %s 個項目被選擇", comatose(as.selections)); } else if(prevsel == 0){ if(as.selections == 1) q_status_message(SM_ORDER, 0, 2, - "Select matched 1 entry"); + "選擇符合的一個項目"); else if(as.selections > 1) q_status_message1(SM_ORDER, 0, 2, - "Select matched %s entries", + "選擇符合的 %s 個項目", comatose(as.selections)); else q_status_message(SM_ORDER, 0, 2, - "Select failed! No entries selected"); + "選擇失敗! 沒有任何項目被選擇"); } else if(as.selections == 0){ if(prevsel == 1) q_status_message(SM_ORDER, 0, 2, - "The single selected entry is UNselected"); + "取消已被選擇的單一項目"); else q_status_message1(SM_ORDER, 0, 2, - "All %s entries UNselected", + "所有 %s 個項目都被取消選擇", comatose(prevsel)); } else if(narrow){ if(as.selections == 1 && (prevsel-as.selections) == 1) q_status_message(SM_ORDER, 0, 2, - "1 entry now selected, 1 entry was UNselected"); + "一項目被選擇,一項目被取消選擇"); else if(as.selections == 1) q_status_message1(SM_ORDER, 0, 2, - "1 entry now selected, %s entries were UNselected", + "一項目被選擇,%s 個項目被取消選擇", comatose(prevsel-as.selections)); else if((prevsel-as.selections) == 1) q_status_message1(SM_ORDER, 0, 2, - "%s entries now selected, 1 entry was UNselected", + "%s 個項目被選擇,一項目被取消選擇", comatose(as.selections)); else q_status_message2(SM_ORDER, 0, 2, - "%s entries now selected, %s entries were UNselected", + "%s 個項目被選擇,%s 個項目被取消選擇", comatose(as.selections), comatose(prevsel-as.selections)); } else{ if((as.selections-prevsel) == 1) q_status_message1(SM_ORDER, 0, 2, - "1 new entry selected, %s entries now selected", + "一個新項目被選擇,目前有 %s 個項目已被選擇", comatose(as.selections)); else if(as.selections == 1) q_status_message1(SM_ORDER, 0, 2, - "%s new entries selected, 1 entry now selected", + "%s 個新項目被選擇,一個項目已被選擇", comatose(as.selections-prevsel)); else q_status_message2(SM_ORDER, 0, 2, - "%s new entries selected, %s entries now selected", + "%s 個新項目被選擇,目前有 %s 個項目已被選擇", comatose(as.selections-prevsel), comatose(as.selections)); } @@ -5073,13 +5073,13 @@ default : q_status_message(SM_ORDER | SM_DING, 3, 3, - "Unsupported Select option"); + "尚未支援的選項"); break; } } else{ q_status_message(SM_ORDER | SM_DING, 3, 3, - "Select is not supported from the top-level view"); + "尚未支援自頂層視角選擇"); return; } @@ -5137,11 +5137,11 @@ int narrow; { static ESCKEY_S ab_sel_type_opt[] = { - {'s', 's', "S", "Simple"}, - {'l', 'l', "L", "List"}, + {'s', 's', "S", "簡單"}, + {'l', 'l', "L", "列表"}, {-1, 0, NULL, NULL} }; - static char *ab_sel_type = "Select Lists or Simples (non Lists) ? "; + static char *ab_sel_type = "選擇列表或簡單(無列表)?"; int type; adrbk_cntr_t num, ab_count; @@ -5159,7 +5159,7 @@ break; case 'x': - cmd_cancelled("Select"); + cmd_cancelled("選擇"); return -1; default: @@ -5279,7 +5279,7 @@ } if(type == 'x' || r == 'x'){ - cmd_cancelled("Select"); + cmd_cancelled("選擇"); return -1; } @@ -5362,7 +5362,7 @@ break; default: - q_status_message(SM_ORDER | SM_DING, 3, 3, "Unknown type"); + q_status_message(SM_ORDER | SM_DING, 3, 3, "未知的型態"); return(err); } @@ -5481,18 +5481,18 @@ new_top_ent = NO_LINE; if(rc == -2) - cancel_warning(NO_DING, "search"); + cancel_warning(NO_DING, "搜尋"); else if(rc == -1) - q_status_message(SM_ORDER, 0, 4, "Word not found"); + q_status_message(SM_ORDER, 0, 4, "找不到該字"); else if(rc == 0){ /* search succeeded */ if(wrapped == 1) - q_status_message(SM_INFO, 0, 2, "Search wrapped to beginning"); + q_status_message(SM_INFO, 0, 2, "從頭搜尋"); else if(wrapped == 2) q_status_message(SM_INFO, 0, 2, - "Current line contains the only match"); + "目前這行僅包含唯一符合的目標"); /* know match is on the same page */ if(!*warped && @@ -6115,7 +6115,7 @@ dprint(7, (debugfile, "- search_book -\n")); - sprintf(prompt, "Word to search for [%s]: ", search_string); + sprintf(prompt, "欲搜尋的字串 [%s]:", search_string); help = NO_HELP; nsearch_string[0] = '\0'; @@ -6127,12 +6127,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; @@ -6149,11 +6149,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; } } @@ -6162,11 +6162,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; } }