--- pine/other.c.orig Sat Nov 6 04:00:18 1999 +++ pine/other.c Fri Nov 19 17:40:07 1999 @@ -53,18 +53,18 @@ #define BODY_LINES(X) ((X)->ttyo->screen_rows -HEADER_ROWS(X)-FOOTER_ROWS(X)) -#define CONFIG_SCREEN_TITLE "SETUP CONFIGURATION" -#define CONFIG_SCREEN_HELP_TITLE "HELP FOR SETUP CONFIGURATION" +#define CONFIG_SCREEN_TITLE "環境設定" +#define CONFIG_SCREEN_HELP_TITLE "環境設定的輔助說明" #define R_SELD '*' -#define EXIT_PMT "Commit changes (\"Yes\" replaces settings, \"No\" abandons changes)" -static char *empty_val = "Empty Value"; -static char *empty_val2 = ""; +#define EXIT_PMT "送出改變(\"是\" 取代設定,\"否\" 放棄改變)" +static char *empty_val = "空的設定值"; +static char *empty_val2 = "<空的設定值>"; #define EMPTY_VAL_LEN 11 -static char *no_val = "No Value Set"; +static char *no_val = "尚未定義設定值"; #define NO_VAL_LEN 12 -static char *fixed_val = "Value is Fixed"; +static char *fixed_val = "設定值已固定"; -#define ARB_HELP "HELP FOR ARBITRARY HEADER PATTERNS" +#define ARB_HELP "任意標頭式樣的輔助說明" typedef struct edit_arb { struct variable *v; @@ -349,16 +349,14 @@ #ifndef NO_KEYBOARD_LOCK ClearScreen(); - set_titlebar("KEYBOARD LOCK", ps_global->mail_stream, + set_titlebar("鍵盤鎖定", ps_global->mail_stream, ps_global->context_current, ps_global->cur_folder, NULL, 1, FolderName, 0, 0); PutLine0(6,3 , - "You may lock this keyboard so that no one else can access your mail"); + "可鎖定鍵盤以防止其他人在您離開時存取您的信件。在密碼輸入之後,"); PutLine0(8, 3 , - "while you are away. The screen will be locked after entering the "); - PutLine0(10, 3 , - "password to be used for unlocking the keyboard when you return."); + "螢幕將會鎖定,您可在回來後以原密碼解除鎖定。"); fflush(stdout); #endif } @@ -370,12 +368,12 @@ #ifndef NO_KEYBOARD_LOCK ClearScreen(); - set_titlebar("KEYBOARD LOCK", ps_global->mail_stream, + set_titlebar("鍵盤鎖定", ps_global->mail_stream, ps_global->context_current, ps_global->cur_folder, NULL, 1, FolderName, 0, 0); - PutLine2(6, 3, "This keyboard is locked by %s <%s>.",klockame, klockin); - PutLine0(8, 3, "To unlock, enter password used to lock the keyboard."); + PutLine2(6, 3, "本鍵盤已被 %s <%s> 鎖定。",klockame, klockin); + PutLine0(8, 3, "輸入原本上鎖的密碼以解除鍵盤鎖定。"); fflush(stdout); #endif } @@ -417,9 +415,9 @@ char prompt[50]; sprintf(prompt, - "%s password to LOCK keyboard %s: ", - i ? "Retype" : "Enter", - i > 1 ? "(Yes, again) " : ""); + "%s鎖定鍵盤的密碼 %s:", + i ? "重新輸入" : "輸入", + i > 1 ? "(是的,再一次) " : ""); flags = OE_PASSWD; rc = optionally_enter(pw, -FOOTER_ROWS(ps), 0, 30, @@ -428,7 +426,7 @@ if(rc == 3) help = help == NO_HELP ? h_kb_lock : NO_HELP; else if(rc == 1 || pw[0] == '\0'){ - q_status_message(SM_ORDER, 0, 2, "Keyboard lock cancelled"); + q_status_message(SM_ORDER, 0, 2, "取消鍵盤鎖定"); return(-1); } else if(rc != 4) @@ -439,14 +437,14 @@ strcpy(inpasswd, pw); else if(strcmp(inpasswd, pw)){ q_status_message(SM_ORDER, 0, 2, - "Mismatch with initial password: keyboard lock cancelled"); + "和初始密碼不符:取消鍵盤鎖定"); return(-1); } } - if(want_to("Really lock keyboard with entered password", 'y', 'n', + if(want_to("確定以輸入的密碼鎖定鍵盤", 'y', 'n', NO_HELP, WT_NORM) != 'y'){ - q_status_message(SM_ORDER, 0, 2, "Keyboard lock cancelled"); + q_status_message(SM_ORDER, 0, 2, "取消鍵盤鎖定"); return(-1); } @@ -460,7 +458,7 @@ while(strcmp(inpasswd, passwd)){ if(passwd[0]) q_status_message(SM_ORDER | SM_DING, 3, 3, - "Password to UNLOCK doesn't match password used to LOCK"); + "密碼不符"); help = NO_HELP; while(1){ @@ -468,7 +466,7 @@ flags = OE_PASSWD | OE_DISALLOW_CANCEL; rc = optionally_enter(passwd, -FOOTER_ROWS(ps), 0, 30, - "Enter password to UNLOCK keyboard : ",NULL, + "輸入解除鎖定的密碼:",NULL, help, &flags); if(rc == 3) { help = help == NO_HELP ? h_oe_keylock : NO_HELP; @@ -483,7 +481,7 @@ if(old_suspend) F_TURN_ON(F_CAN_SUSPEND, ps_global); - q_status_message(SM_ORDER, 0, 3, "Keyboard Unlocked"); + q_status_message(SM_ORDER, 0, 3, "解除鍵盤鎖定"); return(0); } @@ -521,7 +519,7 @@ struct variable *vars = ps_global->vars; if(!signature_path(sigfile, sig_path, MAXPATH)) - return(cpystr("No signature file defined.")); + return(cpystr("尚未定義簽名檔。")); memset(&pbuf, 0, sizeof(PICO)); @@ -598,7 +596,7 @@ * Now alloc and init the text to pass pico */ if(!(msgso = so_get(PicoText, NULL, EDIT_ACCESS))){ - ret = cpystr("Error allocating space for file"); + ret = cpystr("配置檔案空間時發生錯誤"); dprint(1, (debugfile, "Can't alloc space for signature_edit")); return(ret); } @@ -609,7 +607,7 @@ && !(tmpso = so_get(FileStar, sig_path, READ_ACCESS))){ char *problem = error_description(errno); - sprintf(errbuf, "Error editing \"%s\": %s", + sprintf(errbuf, "編輯 %s 時發生錯誤:%s", sig_path, problem ? problem : ""); ret = cpystr(errbuf); @@ -622,7 +620,7 @@ gf_set_so_writec(&pc, msgso); gf_filter_init(); /* no filters needed */ if(errstr = gf_pipe(gc, pc)){ - sprintf(errbuf, "Error reading file: \"%s\"", errstr); + sprintf(errbuf, "編輯簽名檔時發生錯誤 \"%s\"", errstr); ret = cpystr(errbuf); } @@ -661,7 +659,7 @@ gf_set_so_writec(&pc, tmpso); /* write sig file */ gf_filter_init(); /* no filters needed */ if(errstr = gf_pipe(gc, pc)){ - sprintf(errbuf, "Error writing file: \"%s\"", + sprintf(errbuf, "寫入檔案時發生錯誤:\"%s\"", errstr); ret = cpystr(errbuf); } @@ -671,7 +669,7 @@ so_give(&tmpso); } else{ - sprintf(errbuf, "Error writing \"%s\"", sig_path); + sprintf(errbuf, "寫入 %s 時發生錯誤", sig_path); ret = cpystr(errbuf); dprint(1, (debugfile, "signature_edit: can't write %s", sig_path)); @@ -700,8 +698,8 @@ char *rstr = NULL; void (*redraw)() = ps_global->redrawer; static ESCKEY_S opts[] = { - {'y', 'y', "Y", "Yes"}, - {'n', 'n', "N", "No"}, + {'y', 'y', "Y", "是"}, + {'n', 'n', "N", "否"}, {-1, 0, NULL, NULL} }; @@ -709,18 +707,18 @@ fix_windsize(ps_global); while(1){ - rv = radio_buttons("Exit editor and apply changes? ", + rv = radio_buttons("結束編輯並套用改變?", -FOOTER_ROWS(ps_global), opts, 'y', 'x', NO_HELP, RB_NORM); if(rv == 'y'){ /* user ACCEPTS! */ break; } else if(rv == 'n'){ /* Declined! */ - rstr = "No Changes Saved"; + rstr = "改變並未存檔"; break; } else if(rv == 'x'){ /* Cancelled! */ - rstr = "Exit Cancelled"; + rstr = "取消"; break; } } @@ -735,28 +733,28 @@ * * * * * * Start of Config Screen Support Code * * * * * */ -#define PREV_MENU {"P", "Prev", {MC_PREVITEM, 1, {'p'}}, KS_NONE} -#define NEXT_MENU {"N", "Next", {MC_NEXTITEM, 2, {'n','\t'}}, KS_NONE} +#define PREV_MENU {"P", "前一個", {MC_PREVITEM, 1, {'p'}}, KS_NONE} +#define NEXT_MENU {"N", "後一個", {MC_NEXTITEM, 2, {'n','\t'}}, KS_NONE} #define EXIT_SETUP_MENU \ - {"E", "Exit Setup", {MC_EXIT,1,{'e'}}, KS_EXITMODE} + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE} #define TOGGLE_MENU \ - {"X", "[Set/Unset]", {MC_TOGGLE,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE} + {"X", "[設定/解除設定]", {MC_TOGGLE,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE} #define TOGGLEB_MENU \ - {"X", "[Set/Unset]", {MC_TOGGLEB,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE} + {"X", "[設定/解除設定]", {MC_TOGGLEB,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE} #define TOGGLEC_MENU \ - {"X", "[Set/Unset]", {MC_TOGGLEC,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE} + {"X", "[設定/解除設定]", {MC_TOGGLEC,3,{'x',ctrl('M'),ctrl('J')}}, KS_NONE} static struct key config_text_keys[] = {HELP_MENU, NULL_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU}; INST_KEY_MENU(config_text_keymenu, config_text_keys); @@ -765,13 +763,13 @@ {HELP_MENU, NULL_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, NULL_MENU, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU}; INST_KEY_MENU(color_pattern_keymenu, color_pattern_keys); @@ -780,13 +778,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -794,8 +792,8 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToFiles", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE}, - {"F", "editFile", {MC_EDITFILE, 1, {'f'}}, KS_NONE}, + {"T", "檔案列表", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE}, + {"F", "編輯檔案", {MC_EDITFILE, 1, {'f'}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -808,13 +806,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -822,7 +820,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToFiles", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "檔案列表", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -836,13 +834,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -851,7 +849,7 @@ NULL_MENU, NULL_MENU, NULL_MENU, - {"X", "eXtraHdr", {MC_ADDHDR, 1, {'x'}}, KS_NONE}, + {"X", "額外標頭", {MC_ADDHDR, 1, {'x'}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -864,13 +862,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[修改設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -878,8 +876,8 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToAddrBk", {MC_CHOICEB, 2, {'t', ctrl('T')}}, KS_NONE}, - {"X", "eXtraHdr", {MC_ADDHDR, 1, {'x'}}, KS_NONE}, + {"T", "地址簿", {MC_CHOICEB, 2, {'t', ctrl('T')}}, KS_NONE}, + {"X", "額外標頭", {MC_ADDHDR, 1, {'x'}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -892,13 +890,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[修改設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -907,10 +905,10 @@ NULL_MENU, NULL_MENU, NULL_MENU, - {"X", "eXtraHdr", {MC_ADDHDR, 1, {'x'}}, KS_NONE}, + {"X", "額外標頭", {MC_ADDHDR, 1, {'x'}}, KS_NONE}, NULL_MENU, NULL_MENU, - {"R", "RemoveHdr", {MC_DELHDR, 1, {'r'}}, KS_NONE}, + {"R", "移除標頭", {MC_DELHDR, 1, {'r'}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU}; @@ -920,13 +918,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -934,7 +932,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToAddrBk", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "地址簿", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -948,13 +946,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -962,7 +960,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToFldrs", {MC_CHOICED, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "檔案匣列表", {MC_CHOICED, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -976,13 +974,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -990,7 +988,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToFldrs", {MC_CHOICEE, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "檔案匣列表", {MC_CHOICEE, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -1004,13 +1002,13 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change Val]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[改變設定值]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Value", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete Val", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"A", "新增設定值", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除設定值", {MC_DELETE,1,{'d'}}, KS_NONE}, PRYNTTXT_MENU, WHEREIS_MENU, @@ -1018,7 +1016,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToNicks", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "暱稱列表", {MC_CHOICE, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -1077,7 +1075,7 @@ {HELP_MENU, NULL_MENU, EXIT_SETUP_MENU, - {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1092,7 +1090,7 @@ {HELP_MENU, NULL_MENU, EXIT_SETUP_MENU, - {"C", "[Change]", {MC_TOGGLE,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[修改]", {MC_TOGGLE,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1107,8 +1105,8 @@ static struct key color_changing_keys[] = {HELP_MENU, NULL_MENU, - {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, - {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1123,8 +1121,8 @@ static struct key custom_color_changing_keys[] = {HELP_MENU, NULL_MENU, - {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, - {"*", "[Select]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"*", "[選擇]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1139,8 +1137,8 @@ static struct key color_rgb_changing_keys[] = {HELP_MENU, NULL_MENU, - {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, - {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1156,8 +1154,8 @@ static struct key custom_rgb_changing_keys[] = {HELP_MENU, NULL_MENU, - {"E", "To Colors", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, - {"*", "[Select]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"E", "修改色彩", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"*", "[選擇]", {MC_CHOICEB,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1173,7 +1171,7 @@ {HELP_MENU, NULL_MENU, EXIT_SETUP_MENU, - {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1188,7 +1186,7 @@ {HELP_MENU, OTHER_MENU, EXIT_SETUP_MENU, - {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1202,8 +1200,8 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"D", "DeleteHdr", {MC_DELETE,1,{'d'}}, KS_NONE}, - {"$", "ShuffleHdr", {MC_SHUFFLE,1,{'$'}}, KS_NONE}, + {"D", "刪除標頭", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"$", "重整標頭", {MC_SHUFFLE,1,{'$'}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -1216,7 +1214,7 @@ {HELP_MENU, NULL_MENU, EXIT_SETUP_MENU, - {"*", "[Select]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"*", "[選擇]", {MC_CHOICE,3,{'*',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1837,14 +1835,14 @@ {HELP_MENU, PRYNTTXT_MENU, EXIT_SETUP_MENU, - {"S", "[Select]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"S", "[選擇]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, {"A", "Add Printer", {MC_ADD,1,{'a'}}, KS_NONE}, {"D", "DeletePrint", {MC_DELETE,1,{'d'}}, KS_NONE}, - {"C", "Change", {MC_EDIT,1,{'c'}}, KS_NONE}, + {"C", "修改", {MC_EDIT,1,{'c'}}, KS_NONE}, WHEREIS_MENU}; INST_KEY_MENU(printer_edit_keymenu, printer_edit_keys); @@ -1852,7 +1850,7 @@ {HELP_MENU, PRYNTTXT_MENU, EXIT_SETUP_MENU, - {"S", "[Select]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"S", "[選擇]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -1885,7 +1883,7 @@ char *saved_printer; OPT_SCREEN_S screen; - if(fixed_var(&ps_global->vars[V_PRINTER], "change", "printer")) + if(fixed_var(&ps_global->vars[V_PRINTER], "修改", "印表機")) return; saved_printer = cpystr(ps->VAR_PRINTER); @@ -1901,7 +1899,7 @@ #ifdef OS2 = cpystr("\"Select\" a port or |pipe-command as your default printer."); #else - = cpystr("You may \"Select\" a print command as your default printer."); + = cpystr("可以 \"選擇\" 一列印命令做為預設印表機。"); #endif new_confline(&ctmpa); @@ -2254,7 +2252,7 @@ vsave = save_config_vars(ps); switch(conf_scroll_screen(ps, &screen, start_line, - "SETUP PRINTER", "printer config ", 1, 0)){ + "設定印表機", "printer config ", 1, 0)){ case 0: break; @@ -2295,8 +2293,8 @@ fs_give((void **)def_printer_line); *def_printer_line = fs_get(36 + strlen(p) + 1); - sprintf(*def_printer_line, "Default printer currently %s%s%s", - set ? "set to \"" : "unset", set ? p : "", set ? "\"." : "."); + sprintf(*def_printer_line, "預設印表機目前%s%s%s", + set ? "設定為 \"" : "未設定", set ? p : "", set ? "\"." : "."); fs_give((void **)&nick); fs_give((void **)&cmd); @@ -2306,7 +2304,7 @@ static struct key flag_keys[] = {HELP_MENU, NULL_MENU, - {"E", "Exit Flags", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, TOGGLE_MENU, PREV_MENU, NEXT_MENU, @@ -2460,9 +2458,9 @@ static struct key addr_select_keys[] = {HELP_MENU, - {"E", "ExitSelect", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, NULL_MENU, - {"S", "[Select]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"S", "[選擇]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, @@ -2476,29 +2474,29 @@ static struct key addr_select_with_goback_keys[] = {HELP_MENU, NULL_MENU, - {"<", "AddressBkList", {MC_ADDRBOOK,2,{'<',','}}, KS_NONE}, - {"S", "[Select]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"<", "地址簿列表", {MC_ADDRBOOK,2,{'<',','}}, KS_NONE}, + {"S", "[選擇]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, NULL_MENU, NULL_MENU, - {"E", "ExitSelect", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, WHEREIS_MENU}; INST_KEY_MENU(addr_s_km_with_goback, addr_select_with_goback_keys); static struct key addr_select_with_view_keys[] = {HELP_MENU, RCOMPOSE_MENU, - {"<", "AddressBkList", {MC_ADDRBOOK,2,{'<',','}}, KS_NONE}, - {">", "[View]", + {"<", "地址簿列表", {MC_ADDRBOOK,2,{'<',','}}, KS_NONE}, + {">", "[檢視]", {MC_VIEW_TEXT,5,{'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"C", "ComposeTo", {MC_COMPOSE,1,{'c'}}, KS_COMPOSER}, + {"C", "編修", {MC_COMPOSE,1,{'c'}}, KS_COMPOSER}, FWDEMAIL_MENU, SAVE_MENU, WHEREIS_MENU}; @@ -2507,14 +2505,14 @@ static struct key addr_select_for_url_keys[] = {HELP_MENU, RCOMPOSE_MENU, - {"<", "Exit Viewer", {MC_ADDRBOOK,3,{'<',',','e'}}, KS_NONE}, - {">", "[View]", + {"<", "離開", {MC_ADDRBOOK,3,{'<',',','e'}}, KS_NONE}, + {">", "[檢視]", {MC_VIEW_TEXT,5,{'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE}, PREV_MENU, NEXT_MENU, PREVPAGE_MENU, NEXTPAGE_MENU, - {"C", "ComposeTo", {MC_COMPOSE,1,{'c'}}, KS_COMPOSER}, + {"C", "編修", {MC_COMPOSE,1,{'c'}}, KS_COMPOSER}, FWDEMAIL_MENU, SAVE_MENU, WHEREIS_MENU}; @@ -2523,7 +2521,7 @@ static struct key addr_select_exit_keys[] = {NULL_MENU, NULL_MENU, - {"E", "[Exit]", {MC_EXIT,3,{'e',ctrl('M'),ctrl('J')}}, + {"E", "[離開]", {MC_EXIT,3,{'e',ctrl('M'),ctrl('J')}}, KS_EXITMODE}, NULL_MENU, NULL_MENU, @@ -2539,7 +2537,7 @@ static struct key addr_select_goback_keys[] = {NULL_MENU, NULL_MENU, - {"E", "[Exit]", {MC_ADDRBOOK,3,{'e',ctrl('M'),ctrl('J')}}, + {"E", "[離開]", {MC_ADDRBOOK,3,{'e',ctrl('M'),ctrl('J')}}, KS_EXITMODE}, NULL_MENU, NULL_MENU, @@ -2622,7 +2620,7 @@ char *dn, *a; char **cn, **org, **unit, **title, **mail, **sn; BerElement *ber; - static char no_email[] = ""; + static char no_email[] = "<無法取得電子郵件地址>"; int indent, have_mail; dn = NULL; @@ -2903,7 +2901,7 @@ sprintf(ee+2, "%s, No Matches Returned", ldap_err2string(wp_err->ldap_errno)); else - strcat(ee, "No Matches"); + strcat(ee, "沒有符合的"); strcat(ee, " -- Choose Exit ]"); ctmpa->value = cpystr(ee); @@ -3001,7 +2999,7 @@ case MC_CHOICE : if(flags & CF_PRIVATE){ q_status_message(SM_ORDER | SM_DING, 0, 3, - "No email address available for this entry; choose another or ExitSelect"); + "本項目中沒有電子郵件地址;請選其他的項目或離開"); } else if(some_selectable){ (*cl)->d.a.ac->selected_ld = (*cl)->d.a.ld; @@ -3069,15 +3067,15 @@ static struct key direct_config_keys[] = {HELP_MENU, NULL_MENU, - {"E", "Exit Setup", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, - {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, - {"P", "PrevDir", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, - {"N", "NextDir", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE}, + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"P", "前一目錄", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, + {"N", "次一目錄", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE}, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add Dir", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Del Dir", {MC_DELETE,1,{'d'}}, KS_NONE}, - {"$", "Shuffle", {MC_SHUFFLE,1,{'$'}}, KS_NONE}, + {"A", "新增目錄", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除目錄", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"$", "重整", {MC_SHUFFLE,1,{'$'}}, KS_NONE}, WHEREIS_MENU}; INST_KEY_MENU(dir_conf_km, direct_config_keys); @@ -3153,7 +3151,7 @@ &first_line); (void)conf_scroll_screen(ps, &screen, first_line, - "SETUP DIRECTORY SERVERS", "servers ", 1, 0); + "設定地址伺服器", "servers ", 1, 0); ps->mangled_screen = 1; } @@ -3173,20 +3171,20 @@ case MC_DELETE : if(first_one) q_status_message(SM_ORDER|SM_DING, 0, 3, - "Nothing to Delete, use Add"); + "沒有可供刪除的項目,請用新增"); else dir_config_del(ps, cl); break; case MC_ADD : - if(!fixed_var((*cl)->var, NULL, "directory list")) + if(!fixed_var((*cl)->var, NULL, "地址列表")) dir_config_add(ps, cl); break; case MC_EDIT : - if(!fixed_var((*cl)->var, NULL, "directory list")){ + if(!fixed_var((*cl)->var, NULL, "地址列表")){ if(first_one) dir_config_add(ps, cl); else @@ -3196,10 +3194,10 @@ break; case MC_SHUFFLE : - if(!fixed_var((*cl)->var, NULL, "directory list")){ + if(!fixed_var((*cl)->var, NULL, "地址列表")){ if(first_one) q_status_message(SM_ORDER|SM_DING, 0, 3, - "Nothing to Shuffle, use Add"); + "沒有可供重整的項目,請用新增"); else dir_config_shuffle(ps, cl); } @@ -3333,7 +3331,7 @@ write_pinerc(ps); } else - q_status_message(SM_ORDER, 0, 3, "Add cancelled, no server name"); + q_status_message(SM_ORDER, 0, 3, "沒有伺服器名稱,取消新增"); } free_ldap_server_info(&info); @@ -3363,7 +3361,7 @@ if(cnt < 2){ q_status_message(SM_ORDER, 0, 3, - "Shuffle only makes sense when there is more than one server defined"); + "僅在定義了多個伺服器之後,重整才能發揮作用"); return; } @@ -3374,12 +3372,12 @@ opts[i].ch = 'u'; opts[i].rval = 'u'; opts[i].name = "U"; - opts[i++].label = "Up"; + opts[i++].label = "上"; opts[i].ch = 'd'; opts[i].rval = 'd'; opts[i].name = "D"; - opts[i++].label = "Down"; + opts[i++].label = "下"; opts[i].ch = -1; deefault = 'u'; @@ -3391,11 +3389,11 @@ else if(current_num == cnt - 1) /* no down */ opts[1].ch = -2; - sprintf(tmp, "Shuffle \"%s\" %s%s%s ? ", + sprintf(tmp, "重整 \"%s\" %s%s%s ? ", (*cl)->value, - (opts[0].ch != -2) ? "UP" : "", + (opts[0].ch != -2) ? "往上" : "", (opts[0].ch != -2 && opts[1].ch != -2) ? " or " : "", - (opts[1].ch != -2) ? "DOWN" : ""); + (opts[1].ch != -2) ? "往下" : ""); help = (opts[0].ch == -2) ? h_dir_shuf_down : (opts[1].ch == -2) ? h_dir_shuf_up : h_dir_shuf; @@ -3405,7 +3403,7 @@ switch(rv){ case 'x': - cmd_cancelled("Shuffle"); + cmd_ cancelled("重整"); return; case 'u': @@ -3443,7 +3441,7 @@ free_list_array(&new_list); if(j){ q_status_message(SM_ORDER, 0, 3, - "Shuffle cancelled: couldn't save configuration file"); + "取消重整:無法存入設定檔"); set_current_val((*cl)->var, TRUE, FALSE); return; } @@ -3495,10 +3493,10 @@ info = break_up_ldap_server(raw_server); if(strcmp((*cl)->var->current_val.l[(*cl)->varmem], raw_server) == 0) - q_status_message(SM_ORDER, 0, 3, "No change, cancelled"); + q_status_message(SM_ORDER, 0, 3, "沒有任何改變,取消"); else if(!(info && info->serv && *info->serv)) q_status_message(SM_ORDER, 0, 3, - "Change cancelled, use Delete if you want to remove this server"); + "已取消改變,如欲刪除此伺服器,請用刪除"); else{ char tmp[900]; char *subtitle; @@ -4339,7 +4337,7 @@ } else q_status_message(SM_ORDER, 3, 3, - "Can't delete sys-admin defined value"); + "無法刪除系統管理員定義的設定值。"); } else{ int cnt, ans = 0; @@ -4362,11 +4360,11 @@ */ if(!(*cl)->var->user_val.l && cnt > 1){ static ESCKEY_S opts[] = { - {'i', 'i', "I", "Ignore All"}, - {'r', 'r', "R", "Remove One"}, + {'i', 'i', "I", "忽略全部"}, + {'r', 'r', "R", "移除一個"}, {-1, 0, NULL, NULL}}; ans = radio_buttons( - "Ignore all default directory servers or just remove this one ? ", + "忽略所有預設的目錄伺服器或僅移除這臺?", -FOOTER_ROWS(ps), opts, 'i', 'x', h_ab_del_dir_ignore, RB_NORM); } @@ -4472,7 +4470,7 @@ CONF_S *first_line = NULL; q_status_message(SM_ORDER, 0, 3, - "Reverting to default directory server"); + "回復至預設的地址伺服器"); dir_init_display(ps, cl, servers, &ps->vars[V_LDAP_SERVERS], &first_line); *cl = first_line; @@ -4512,7 +4510,7 @@ } } else - q_status_message(SM_ORDER, 0, 3, "Server not deleted"); + q_status_message(SM_ORDER, 0, 3, "伺服器未被刪除"); } if(rv == 1){ @@ -4536,7 +4534,7 @@ int (*tool)(); { new_confline(ctmp); - (*ctmp)->help_title= "HELP FOR DIRECTORY SERVER CONFIGURATION"; + (*ctmp)->help_title= "目錄伺服器設定的輔助說明"; (*ctmp)->value = cpystr(ADD_FIRST_LDAP_SERVER); (*ctmp)->var = var; (*ctmp)->varmem = 0; @@ -4599,7 +4597,7 @@ p->next = b; } - (*ctmp)->help_title= "HELP FOR DIRECTORY SERVER CONFIGURATION"; + (*ctmp)->help_title= "目錄伺服器設定的輔助說明"; (*ctmp)->value = serv; (*ctmp)->var = var; (*ctmp)->varmem = member; @@ -5116,7 +5114,7 @@ if(i) config_scroll_up(i); else - q_status_message(SM_ORDER,0,1, "Already at end of screen"); + q_status_message(SM_ORDER,0,1, "已經在畫面的結尾了"); } break; @@ -5158,7 +5156,7 @@ } else q_status_message(SM_ORDER, 0, 1, - "Already at start of screen"); + "已經在畫面的起始了"); break; @@ -5202,7 +5200,7 @@ if(ctmpa == screen->current){ q_status_message(SM_ORDER,0,1, - "Already at end of screen"); + "已經在畫面的結尾了"); goto no_down; } @@ -5234,7 +5232,7 @@ if(ctmpa){ if(ctmpa == screen->current) q_status_message(SM_ORDER, 0, 1, - "Already at start of screen"); + "已經在畫面的起始了"); screen->current = ctmpa; } @@ -5410,13 +5408,13 @@ HelpType help; static ESCKEY_S ekey[] = { {0, 0, "", ""}, - {ctrl('Y'), 10, "^Y", "Top"}, - {ctrl('V'), 11, "^V", "Bottom"}, + {ctrl('Y'), 10, "^Y", "頂端"}, + {ctrl('V'), 11, "^V", "底端"}, {-1, 0, NULL, NULL}}; ps->mangled_footer = 1; buf[0] = '\0'; - sprintf(tmp, "Word to find %s%s%s: ", + sprintf(tmp, "欲搜尋的單字 %s%s%s: ", (last[0]) ? "[" : "", (last[0]) ? last : "", (last[0]) ? "]" : ""); @@ -5539,7 +5537,7 @@ result = "Searched to bottom"; } else - result = "WhereIs cancelled"; + result = "取消搜尋"; if((found & FOUND_IT) && ctmpa){ strcpy(last, buf); @@ -5558,7 +5556,7 @@ screen->current = ctmpa; } - q_status_message(SM_ORDER,0,3,result ? result : "Word not found"); + q_status_message(SM_ORDER,0,3,result ? result : "找不到該字"); } break; @@ -5574,8 +5572,8 @@ && (ps_global->restricted || ps_global->readonly_pinerc)){ q_status_message1(SM_ORDER, 0, 3, "%s can't change options or settings", - ps_global->restricted ? "Pine demo" - : "Config file not changeable,"); + ps_global->restricted ? "Pine 展示版" + : "無法改變的設定檔,"); if(cmd == MC_EXIT){ retval = 0; done++; @@ -5591,9 +5589,9 @@ &screen->current, flags)){ case -1: q_status_message2(SM_ORDER, 0, 2, - "Command \"%s\" not defined here.%s", + "命令 \"%s\" 未在此定義。%s", pretty_command(ch), - F_ON(F_BLANK_KEYMENU,ps) ? "" : " See key menu below."); + F_ON(F_BLANK_KEYMENU,ps) ? "" : "請參考下列的按鍵清單。"); break; case 0: @@ -5974,11 +5972,11 @@ ekey[1].ch = ctrl('P'); ekey[1].rval = ctrl('P'); ekey[1].name = "^P"; - ekey[1].label = "Decrease"; + ekey[1].label = "減少"; ekey[2].ch = ctrl('N'); ekey[2].rval = ctrl('N'); ekey[2].name = "^N"; - ekey[2].label = "Increase"; + ekey[2].label = "增加"; ekey[3].ch = KEY_DOWN; ekey[3].rval = ctrl('P'); ekey[3].name = ""; @@ -5992,12 +5990,12 @@ switch(cmd){ case MC_ADD: /* add to list */ - if(fixed_var((*cl)->var, "add to", NULL)){ + if(fixed_var((*cl)->var, "新增", NULL)){ break; } else if(!(*cl)->var->is_list && (*cl)->var->user_val.p){ q_status_message(SM_ORDER, 3, 3, - "Only single value allowed. Use \"Change\"."); + "僅允許\單一設定值。請用 \"修改\"."); } else{ int maxwidth =min(80,ps->ttyo->screen_cols) - 15; @@ -6021,7 +6019,7 @@ } sprintf(prompt, - "Enter text to insert before \"%.*s\": ",k,tmpval); + "輸入插在 \"%.*s\" 之前的字串:",k,tmpval); } else if((*cl)->var->is_list && !(*cl)->var->user_val.l @@ -6030,13 +6028,13 @@ ekey[0].ch = 'r'; ekey[0].rval = 'r'; ekey[0].name = "R"; - ekey[0].label = "Replace"; + ekey[0].label = "取代"; ekey[1].ch = 'a'; ekey[1].rval = 'a'; ekey[1].name = "A"; - ekey[1].label = "Add To"; + ekey[1].label = "加至"; ekey[2].ch = -1; - strcpy(prompt, "Replace or Add To default value ? "); + strcpy(prompt, "取代(R)或加至(A)預設值?"); switch(radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'a', 'x', h_config_replace_add, RB_NORM)){ case 'a': @@ -6050,25 +6048,25 @@ } add_text: - sprintf(prompt, "Enter the %stext to be added : ", - flags&CF_NUMBER ? "numeric " : ""); + sprintf(prompt, "輸入想加入的%s字:", + flags&CF_NUMBER ? "數" : "文"); break; case 'r': replace_text: - sprintf(prompt, "Enter the %sreplacement text : ", - flags&CF_NUMBER ? "numeric " : ""); + sprintf(prompt, "輸入想取代的%s字:", + flags&CF_NUMBER ? "數" : "文"); break; case 'x': i = 1; - cmd_cancelled("Add"); + cmd_cancelled("新增"); break; } } else - sprintf(prompt, "Enter the %stext to be added : ", - flags&CF_NUMBER ? "numeric " : ""); + sprintf(prompt, "輸入想加入的%s字:", + flags&CF_NUMBER ? "數" : "文"); ps->mangled_footer = 1; @@ -6085,7 +6083,7 @@ ekey[0].ch = ctrl('W'); ekey[0].rval = 5; ekey[0].name = "^W"; - ekey[0].label = after ? "InsertBefore" : "InsertAfter"; + ekey[0].label = after ? "插在前面" : "插在後面"; ekey[1].ch = -1; } else if(!(flags&CF_NUMBER)) @@ -6138,7 +6136,7 @@ } else{ q_status_message1(SM_ORDER, 0, 3, - "Can't add %s to list", empty_val); + "無法將 %s 加至列表中", empty_val); rv = ps->mangled_body = 0; } @@ -6146,7 +6144,7 @@ } else{ q_status_message1(SM_ORDER, 0, 3, - "Can't add %s to list", empty_val); + "無法將 %s 加至列表中", empty_val); } } else{ @@ -6154,7 +6152,7 @@ && !(isdigit((unsigned char)sval[0]) || sval[0] == '-' || sval[0] == '+')){ q_status_message(SM_ORDER,3,3, - "Entry must be numeric"); + "該項目必須是數字"); i = 3; /* to keep loop going */ continue; } @@ -6167,7 +6165,7 @@ } } else if(i == 1){ - cmd_cancelled("Add"); + cmd_cancelled("新增"); } else if(i == 3){ help = help == NO_HELP ? h_config_add : NO_HELP; @@ -6190,8 +6188,8 @@ } sprintf(prompt, - "Enter text to insert %s \"%.*s\": ", - after ? "after" : "before", k, tmpval); + "輸入想要插在 \"%.*s\" %s的文字", + after ? "之後" : "之前", k, tmpval); continue; } else if(i == ctrl('P')){ @@ -6211,7 +6209,7 @@ */ if(++repeat_key > 0){ q_status_message1(SM_ORDER,3,3, - "Minimum value is %s", comatose(lowrange)); + "最小值是 %s", comatose(lowrange)); repeat_key = -5; } } @@ -6235,7 +6233,7 @@ if(numval == hirange){ if(++repeat_key > 0){ q_status_message1(SM_ORDER,3,3, - "Maximum value is %s", comatose(hirange)); + "最大值是 %s", comatose(hirange)); repeat_key = -5; } } @@ -6260,7 +6258,7 @@ && (*cl)->var->current_val.p){ char pmt[40]; - sprintf(pmt, "Override default with %s", empty_val2); + sprintf(pmt, "以 %s 覆蓋\預設值", empty_val2); if(want_to(pmt, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){ sval[0] = '\0'; (*cl)->var->user_val.p = cpystr(sval); @@ -6273,7 +6271,7 @@ && (*cl)->var->current_val.l){ char pmt[40]; - sprintf(pmt, "Override default with %s", empty_val2); + sprintf(pmt, "以 %s 覆蓋\預設值", empty_val2); if(want_to(pmt, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){ char **ltmp; @@ -6288,7 +6286,7 @@ } else if(((*cl)->var->is_list && !(*cl)->var->user_val.l) || (!(*cl)->var->is_list && !(*cl)->var->user_val.p)){ - q_status_message(SM_ORDER, 0, 3, "No set value to delete"); + q_status_message(SM_ORDER, 0, 3, "沒有可供刪除的設定值"); } else{ if((*cl)->var->is_fixed) @@ -6304,7 +6302,8 @@ : "", (*cl)->var->name); else - sprintf(prompt, "Really delete %s%.20s from %.30s ", + sprintf(prompt, "確定自 %.30s 刪除 %s%.20s ", + (*cl)->var->name, (*cl)->var->is_list ? "item " : "", (*cl)->var->is_list ? int2string((*cl)->varmem + 1) @@ -6312,8 +6311,7 @@ ? (!*(*cl)->var->user_val.p) ? empty_val2 : (*cl)->var->user_val.p - : "", - (*cl)->var->name); + : ""); ps->mangled_footer = 1; if(want_to(prompt, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){ @@ -6328,7 +6326,7 @@ } } else - q_status_message(SM_ORDER, 0, 3, "Value not deleted"); + q_status_message(SM_ORDER, 0, 3, "設定值未被刪除"); } break; @@ -6461,7 +6459,7 @@ && !(isdigit((unsigned char)sval[0]) || sval[0] == '-' || sval[0] == '+')){ q_status_message(SM_ORDER,3,3, - "Entry must be numeric"); + "該項目必須是數字"); continue; } @@ -6475,7 +6473,7 @@ } } else if(i == 1){ - cmd_cancelled("Change"); + cmd_cancelled("改變"); } else if(i == 3){ help = help == NO_HELP ? h_config_change : NO_HELP; @@ -6493,7 +6491,7 @@ */ if(++repeat_key > 0){ q_status_message1(SM_ORDER,3,3, - "Minimum value is %s", comatose(lowrange)); + "最小值是 %s", comatose(lowrange)); repeat_key = -5; } } @@ -6509,7 +6507,7 @@ if(numval == hirange){ if(++repeat_key > 0){ q_status_message1(SM_ORDER,3,3, - "Maximum value is %s", comatose(hirange)); + "最大值是 %s", comatose(hirange)); repeat_key = -5; } } @@ -6599,16 +6597,16 @@ if(flags & CF_CHANGES){ switch(want_to(EXIT_PMT, 'y', 'x', h_config_undo, WT_FLUSH_IN)){ case 'y': - q_status_message1(SM_ORDER,0,3,"%s changes saved", cmd); + q_status_message1(SM_ORDER,0,3,"%s 的改變已存檔", cmd); return(2); case 'n': - q_status_message1(SM_ORDER,3,5,"No %s changes saved", cmd); + q_status_message1(SM_ORDER,3,5,"%s 改變未存檔", cmd); return(10); case 'x': /* ^C */ default : - q_status_message(SM_ORDER,3,5,"Changes not yet saved"); + q_status_message(SM_ORDER,3,5,"改變尚未被存檔"); return(0); } } @@ -6897,10 +6895,10 @@ if(fixed_var((*cl)->var, NULL, NULL)){ if((*cl)->var->user_val.p - && want_to("Delete old unused personal option setting", + && want_to("刪除舊有未使用的個人選項設定", 'y', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){ fs_give((void **)&(*cl)->var->user_val.p); - q_status_message(SM_ORDER, 0, 3, "Deleted"); + q_status_message(SM_ORDER, 0, 3, "已刪除"); rv = 1; } @@ -7178,15 +7176,15 @@ fs_give((void **)&q); } - q_status_message3(SM_ORDER,0,3, "Default printer %s%s%s", - p ? "set to \"" : "unset", p ? p : "", p ? "\"" : ""); + q_status_message3(SM_ORDER,0,3, "預設印表機目前%s%s%s", + p ? "設定為 \"" : "未設", p ? p : "", p ? "\"" : ""); if(p) fs_give((void **)&p); } else q_status_message(SM_ORDER,3,5, - "Trouble setting default printer"); + "有問題的預設印表機"); retval = 1; } @@ -7197,11 +7195,11 @@ set_variable(V_PERSONAL_PRINT_CATEGORY, comatose(ps->printer_category), 0); q_status_message1(SM_ORDER,0,3, - "Default printer set to \"%s\"", ANSI_PRINTER); + "預設印表機設定為 \"%s\"", ANSI_PRINTER); } else q_status_message(SM_ORDER,3,5, - "Trouble setting default printer"); + "有問題的預設印表機"); retval = 1; } @@ -7216,11 +7214,11 @@ set_variable(V_PERSONAL_PRINT_CATEGORY, comatose(ps->printer_category), 0); q_status_message1(SM_ORDER,0,3, - "Default printer set to \"%s\"", aname); + "預設印表機設定為 \"%s\"", aname); } else q_status_message(SM_ORDER,3,5, - "Trouble setting default printer"); + "有問題的預設印表機"); retval = 1; } @@ -7270,23 +7268,23 @@ switch(cmd){ case MC_ADD: /* add to list */ sval[0] = '\0'; - if(!fixed_var((*cl)->var, "add to", NULL)){ + if(!fixed_var((*cl)->var, "新增", NULL)){ if((*cl)->var->user_val.l && (*cl)->value){ - strcpy(prompt, "Enter printer name : "); + strcpy(prompt, "輸入印表機名稱:"); } else if(!(*cl)->var->user_val.l && (*cl)->var->current_val.l){ /* Add to list which doesn't exist, but default does exist */ ekey[0].ch = 'r'; ekey[0].rval = 'r'; ekey[0].name = "R"; - ekey[0].label = "Replace"; + ekey[0].label = "取代"; ekey[1].ch = 'a'; ekey[1].rval = 'a'; ekey[1].name = "A"; - ekey[1].label = "Add To"; + ekey[1].label = "新增"; ekey[2].ch = -1; - strcpy(prompt, "Replace or Add To default value ? "); + strcpy(prompt, "取代或新增至預設值?"); switch(i = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'a', 'x', h_config_replace_add, RB_NORM)){ case 'a': @@ -7302,17 +7300,17 @@ ltmp[k + 1] = ltmp[k] = NULL; add_text: - strcpy(prompt, "Enter name of printer to be added : "); + strcpy(prompt, "欲新增的印表機名稱:"); break; case 'r': replace_text: strcpy(prompt, - "Enter the name for replacement printer : "); + "欲取代的印表機名:"); break; case 'x': - cmd_cancelled("Add"); + cmd_cancelled("新增"); break; } @@ -7320,7 +7318,7 @@ break; } else - strcpy(prompt, "Enter name of printer to be added : "); + strcpy(prompt, "欲新增的印表機名稱:"); ps->mangled_footer = 1; help = NO_HELP; @@ -7332,7 +7330,7 @@ ekey[0].ch = ctrl('W'); ekey[0].rval = 5; ekey[0].name = "^W"; - ekey[0].label = after ? "InsertBefore" : "InsertAfter"; + ekey[0].label = after ? "插在之前" : "插在之後"; ekey[1].ch = -1; } else @@ -7348,7 +7346,7 @@ removing_leading_and_trailing_white_space(name); } else if(i == 1){ - cmd_cancelled("Add"); + cmd_cancelled("新增"); } else if(i == 3){ help = (help == NO_HELP) ? h_config_insert_after : NO_HELP; @@ -7366,7 +7364,7 @@ #ifdef OS2 strcpy(prompt, "Enter port or |command : "); #else - strcpy(prompt, "Enter command for printer : "); + strcpy(prompt, "輸入給印表機的命令:"); #endif while(i != 0 && i != 1){ oeflags = OE_APPEND_CURRENT; @@ -7416,10 +7414,10 @@ } else q_status_message1(SM_ORDER, 0, 3, - "Can't add %s to list", empty_val); + "無法將 %s 新增至列表中", empty_val); } else if(i == 1){ - cmd_cancelled("Add"); + cmd_cancelled("新增"); } else if(i == 3){ help = help == NO_HELP ? h_config_print_cmd : NO_HELP; @@ -7463,13 +7461,13 @@ if((*cl)->var->is_fixed){ parse_printer((*cl)->var->user_val.l[(*cl)->varmem], &nick, &p, NULL, NULL, NULL, NULL); - sprintf(prompt, "Delete (unused) printer %.30s ", + sprintf(prompt, "刪除 (未使用的) 印表機 %.30s ", *nick ? nick : (!*p) ? empty_val2 : p); fs_give((void **)&nick); fs_give((void **)&p); } else - sprintf(prompt, "Really delete item %.20s from printer list ", + sprintf(prompt, "確定自印表機列表中刪除 %.20s", int2string((*cl)->varmem + 1)); ps->mangled_footer = 1; @@ -7479,7 +7477,7 @@ config_del_list_item(cl, &newval); } else - q_status_message(SM_ORDER, 0, 3, "Printer not deleted"); + q_status_message(SM_ORDER, 0, 3, "印表機未被刪除"); } break; @@ -7490,7 +7488,7 @@ && !strucmp(ps->VAR_PRINTER,(*cl)->var->current_val.l[(*cl)->varmem])) changing_selected = 1; - if(fixed_var((*cl)->var, NULL, "printer")) + if(fixed_var((*cl)->var, NULL, "印表機")) break; else if(!(*cl)->var->user_val.l && (*cl)->var->current_val.l) goto replace_text; @@ -7502,22 +7500,22 @@ ekey[0].ch = 'n'; ekey[0].rval = 'n'; ekey[0].name = "N"; - ekey[0].label = "Name"; + ekey[0].label = "名稱"; ekey[1].ch = 'c'; ekey[1].rval = 'c'; ekey[1].name = "C"; - ekey[1].label = "Command"; + ekey[1].label = "命令"; ekey[2].ch = 'o'; ekey[2].rval = 'o'; ekey[2].name = "O"; - ekey[2].label = "Options"; + ekey[2].label = "選項"; ekey[3].ch = -1; - strcpy(prompt, "Change Name or Command or Options ? "); + strcpy(prompt, "修改「名稱」、「命令」或「選項」?"); i = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'c', 'x', h_config_print_name_cmd, RB_NORM); if(i == 'x'){ - cmd_cancelled("Change"); + cmd_cancelled("修改"); break; } else if(i == 'c'){ @@ -7526,7 +7524,7 @@ parse_printer((*cl)->var->user_val.l[(*cl)->varmem], NULL, &p, NULL, NULL, NULL, &all_but_cmd); - strcpy(prompt, "Change command : "); + strcpy(prompt, "修改命令:"); strcpy(sval, p ? p : ""); fs_give((void **)&p); @@ -7564,12 +7562,12 @@ * Don't allow input of multiple entries at once. */ q_status_message(SM_ORDER,3,5, - "No commas allowed in command"); + "命令中不可有逗號"); continue; } } else if(i == 1){ - cmd_cancelled("Change"); + cmd_cancelled("修改"); } else if(i == 3){ help = help == NO_HELP ? h_config_change : NO_HELP; @@ -7588,7 +7586,7 @@ parse_printer((*cl)->var->user_val.l[(*cl)->varmem], &p, NULL, NULL, NULL, &all_but_nick, NULL); - strcpy(prompt, "Change name : "); + strcpy(prompt, "修改名稱:"); strcpy(name, p ? p : ""); fs_give((void **)&p); @@ -7617,7 +7615,7 @@ newval = &(*cl)->value; } else if(i == 1){ - cmd_cancelled("Change"); + cmd_cancelled("修改"); } else if(i == 3){ help = help == NO_HELP ? h_config_change : NO_HELP; @@ -7638,18 +7636,18 @@ ekey[0].ch = 'i'; ekey[0].rval = 'i'; ekey[0].name = "I"; - ekey[0].label = "Init"; + ekey[0].label = "初始"; ekey[1].ch = 't'; ekey[1].rval = 't'; ekey[1].name = "T"; - ekey[1].label = "Trailer"; + ekey[1].label = "結尾"; ekey[2].ch = -1; - strcpy(prompt, "Change Init string or Trailer string ? "); + strcpy(prompt, "修改「初始」或「結尾」字串?"); j = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, 'i', 'x', h_config_print_opt_choice, RB_NORM); if(j == 'x'){ - cmd_cancelled("Change"); + cmd_cancelled("修改"); break; } else{ @@ -7658,8 +7656,8 @@ parse_printer((*cl)->var->user_val.l[(*cl)->varmem], &nick, &p, &init, &trailer, NULL, NULL); - sprintf(prompt, "Change %s string : ", - (j == 'i') ? "INIT" : "TRAILER"); + sprintf(prompt, "修改 %s 字串:", + (j == 'i') ? "初始" : "結束"); strcpy(sval, (j == 'i') ? init : trailer); tmp = string_to_cstring(sval); @@ -7713,7 +7711,7 @@ newval = &(*cl)->value; } else if(i == 1){ - cmd_cancelled("Change"); + cmd_cancelled("修改"); } else if(i == 3){ help=(help == NO_HELP)?h_config_print_init:NO_HELP; @@ -7791,18 +7789,18 @@ case MC_DELETE : if((*cl)->d.c.ct->use & CNTXT_INCMNG) - q_status_message1(SM_ORDER, 0, 3, "Sorry, Can't delete %s", + q_status_message1(SM_ORDER, 0, 3, "很抱歉,無法刪除 %s", (*cl)->d.c.ct->nickname); - else if(!fixed_var((*cl)->var, "delete", "collection")) + else if(!fixed_var((*cl)->var, "刪除", "總集")) context_select_delete(ps, cl); break; case MC_EDIT : if((*cl)->d.c.ct->use & CNTXT_INCMNG) - q_status_message1(SM_ORDER, 0, 3, "Sorry, Can't rename %s", + q_status_message1(SM_ORDER, 0, 3, "很抱歉,無法更名 %s", (*cl)->d.c.ct->nickname); - else if(!fixed_var((*cl)->var, "add to", "collection")){ + else if(!fixed_var((*cl)->var, "新增", "總集")){ context_select_edit(ps, cl); ps->mangled_screen = 1; } @@ -7810,7 +7808,7 @@ break; case MC_ADD : - if(!fixed_var((*cl)->var, "add to", "collection")){ + if(!fixed_var((*cl)->var, "新增", "總集")){ context_select_add(ps, cl); ps->mangled_screen = 1; } @@ -7819,9 +7817,9 @@ case MC_SHUFFLE : if((*cl)->d.c.ct->use & CNTXT_INCMNG) - q_status_message1(SM_ORDER, 0, 3, "Sorry, Can't Shuffle %s", + q_status_message1(SM_ORDER, 0, 3, "很抱歉,無法重整 %s", (*cl)->d.c.ct->nickname); - else if(!fixed_var((*cl)->var, "Shuffle", "collection")) + else if(!fixed_var((*cl)->var, "重整", "總集")) context_select_shuffle(ps, cl); break; @@ -7893,7 +7891,7 @@ struct key_menu *km; CONT_SCR_S *cs; - if(raw_ctxt = context_edit_screen(ps, "ADD", NULL, NULL, NULL, NULL)){ + if(raw_ctxt = context_edit_screen(ps, "新增", NULL, NULL, NULL, NULL)){ /* create a corresponding new CONF_S */ new_ctxt = new_context(raw_ctxt, NULL); @@ -7957,7 +7955,7 @@ /* Tell the user it was a huge success... */ q_status_message(SM_ORDER, 0, 3, - "New collection added. Use \"$\" to adjust order."); + "新的總集加入了!請用 \"$\" 調整順序。"); } } @@ -7976,11 +7974,11 @@ if(!((*cl)->var->user_val.l && (*cl)->var->user_val.l[0])){ q_status_message(SM_ORDER | SM_DING, 3, 3, - "Can't delete default value. Try rename."); + "無法刪除預設值。試試更名。"); return; } - sprintf(tmp, "Delete the collection definition for \"%.40s\"", + sprintf(tmp, "刪除 \"%.40s\" 的總集定義", old_cl->value); if(want_to(tmp, 'n', 'n', NO_HELP, WT_FLUSH_IN) == 'y'){ /* Remove from var list */ @@ -8092,12 +8090,12 @@ ps->mangled_body = 1; q_status_message(SM_ORDER, 0, 3, (old_cl == *cl) - ? "Last collection deleted. Using default." - : "Collection deleted"); + ? "最後一個總集已被刪除。使用預設值。" + : "總集已被刪除"); } else - q_status_message(SM_ORDER, 0, 3, "No collections deleted"); + q_status_message(SM_ORDER, 0, 3, "沒有任何總集被刪除"); } @@ -8119,7 +8117,7 @@ if(p = strstr(tpath, "%s")) *p = '\0'; - if(raw_ctxt = context_edit_screen(ps, "EDIT", (*cl)->d.c.ct->nickname, + if(raw_ctxt = context_edit_screen(ps, "編輯", (*cl)->d.c.ct->nickname, (*cl)->d.c.ct->server, tpath, (*cl)->d.c.ct->dir->view.user)){ @@ -8189,7 +8187,7 @@ set_current_val((*cl)->var, TRUE, FALSE); - q_status_message(SM_ORDER, 0, 3, "Collection list entry updated"); + q_status_message(SM_ORDER, 0, 3, "已更新總集列表"); } } @@ -8211,14 +8209,14 @@ ekey[n].ch = 'u'; ekey[n].rval = 'u'; ekey[n].name = "U"; - ekey[n++].label = "Up"; + ekey[n++].label = "上"; } if((*cl)->d.c.ct->next && !((*cl)->d.c.ct->use & CNTXT_INCMNG)){ ekey[n].ch = 'd'; ekey[n].rval = 'd'; ekey[n].name = "D"; - ekey[n++].label = "Down"; + ekey[n++].label = "下"; } if(n){ @@ -8231,7 +8229,7 @@ if((cmd = radio_buttons(prompt, -FOOTER_ROWS(ps), ekey, (n == 1) ? 'd' : 0, 'x', NO_HELP, RB_NORM)) == 'x'){ - cmd_cancelled("Shuffle"); + cmd_cancelled("重整"); } else if((cmd == 'u' && (ctmp = context_select_prev(*cl))) || (cmd == 'd' && (ctmp = context_select_next(*cl)))){ @@ -8330,7 +8328,7 @@ } } else - q_status_message(SM_ORDER, 0, 3, "Sorry, nothing to Shuffle"); + q_status_message(SM_ORDER, 0, 3, "很抱歉,沒有東西可供重整"); } @@ -9049,7 +9047,7 @@ if(cl->var->current_val.l){ int i, l, l2; - sstrcpy(&p, ": using \""); + sstrcpy(&p, ":目前使用 \""); for(i = 0; cl->var->current_val.l[i]; i++){ if(i) *p++ = ','; @@ -9081,7 +9079,7 @@ sprintf(tmp, cl->var->is_fixed ? "<%s%s%s%s>%*s" : "<%s%s%s%s>%*s", cl->var->is_fixed ? fixed_val : no_val, - (cl->var->current_val.p) ? ": using \"" : "", + (cl->var->current_val.p) ? ":目前使用 \"" : "", (cl->var->current_val.p) ? cl->var->current_val.p : "", (cl->var->current_val.p) ? "\"" : "", max(0, ps->ttyo->screen_cols - cl->valoffset - 13 @@ -9232,7 +9230,7 @@ p = (struncmp(*vp, "no-", 3)) ? *vp : *vp + 3; if(!strucmp(p, f->name) || (og && !strucmp(p, "old-growth"))){ q_status_message(SM_ORDER, 3, 3, - "Can't change value fixed by sys-admin."); + "無法修改系統管理員定義的設定值。"); return; } } @@ -9281,7 +9279,7 @@ case F_ENABLE_INCOMING : q_status_message(SM_ORDER | SM_DING, 3, 4, - "Folder List changes will take effect your next pine session."); + "資料匣列表的改變將在下次啟動 pine 時生效。"); break; @@ -9467,8 +9465,8 @@ { if(v && v->is_fixed){ q_status_message2(SM_ORDER, 3, 3, - "Can't %s sys-admin defined %s.", - action ? action : "change", name ? name : "value"); + "無法%s系統管理員定義的%s。", + action ? action : "修改", name ? name : "設定值"); return(1); } @@ -9890,7 +9888,7 @@ && var->is_list && !var->user_val.l && var->current_val.l))) - q_status_message(SM_ORDER,0,3,"Using default value"); + q_status_message(SM_ORDER,0,3,"使用預設值"); if(var == &ps->vars[V_USER_DOMAIN]){ char *p, *q; @@ -9901,7 +9899,7 @@ if(*(++p)){ if(!revert) q_status_message2(SM_ORDER, 3, 5, - "User-domain (%s) cannot contain \"@\"; using %s", + "User-domain (%s) 不可包括 \"@\";使用 %s", ps->VAR_USER_DOMAIN, p); q = ps->VAR_USER_DOMAIN; while((*q++ = *p++) != '\0') @@ -9910,7 +9908,7 @@ else{ if(!revert) q_status_message1(SM_ORDER, 3, 5, - "User-domain (%s) cannot contain \"@\"; deleting", + "User-domain (%s) 不可包括 \"@\";刪除中", ps->VAR_USER_DOMAIN); fs_give((void **)&ps->USR_USER_DOMAIN); set_current_val(&ps->vars[V_USER_DOMAIN], TRUE, TRUE); @@ -9970,7 +9968,7 @@ else if(var == &ps->vars[V_INIT_CMD_LIST]){ if(!revert) q_status_message(SM_ASYNC, 0, 3, - "Initial command changes will affect your next pine session."); + "初始命令的改變將在下次啟動 pine 時生效。"); } else if(var == &ps->vars[V_VIEW_HEADERS]){ ps->view_all_except = 0; @@ -10042,10 +10040,10 @@ } else if(timeo == 0L && !revert){ q_status_message(SM_ORDER, 4, 6, -"Warning: automatic new mail checking and mailbox checkpointing is disabled"); +"警告:已解除自動檢查新郵件與信箱檢查點"); if(ps->VAR_INBOX_PATH && ps->VAR_INBOX_PATH[0] == '{') q_status_message(SM_ASYNC, 3, 6, -"Warning: mail-check-interval=0 may cause IMAP server connection to time out"); +"警告:mail-check-interval=0 可能導致 IMAP 伺服器連線作業逾時"); } } #if defined(DOS) || defined(OS2) @@ -10503,10 +10501,10 @@ static struct key role_select_keys[] = {HELP_MENU, NULL_MENU, - {"E", "Exit", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, NULL_MENU, - {"P", "PrevRole", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, - {"N", "NextRole", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE}, + {"P", "前一角色", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, + {"N", "次一角色", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE}, PREVPAGE_MENU, NEXTPAGE_MENU, NULL_MENU, @@ -10549,7 +10547,7 @@ menu_add_binding(&role_select_km, ctrl('M'), MC_CHOICE); } else{ - menu_init_binding(&role_select_km, 'S', MC_CHOICE, "S", "[Select]", + menu_init_binding(&role_select_km, 'S', MC_CHOICE, "S", "[選擇]", DEFAULT_KEY); menu_add_binding(&role_select_km, ctrl('J'), MC_CHOICE); menu_add_binding(&role_select_km, ctrl('M'), MC_CHOICE); @@ -10583,7 +10581,7 @@ ctmp->valoffset = 4; } - (void)conf_scroll_screen(ps, &screen, first_line, "SELECT ROLE", + (void)conf_scroll_screen(ps, &screen, first_line, "選擇角色", "roles ", 0, 0); if(sel_pat){ @@ -10975,23 +10973,23 @@ static struct key role_config_keys[] = {HELP_MENU, OTHER_MENU, - {"E", "Exit Setup", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, - {"C", "[Change]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, - {"P", "PrevRule", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, - {"N", "NextRule", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE}, + {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE}, + {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE}, + {"P", "前一規則", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, + {"N", "次一規則", {MC_NEXTITEM, 2, {'n', TAB}}, KS_NONE}, PREVPAGE_MENU, NEXTPAGE_MENU, - {"A", "Add", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Delete", {MC_DELETE,1,{'d'}}, KS_NONE}, - {"$", "Shuffle", {MC_SHUFFLE,1,{'$'}}, KS_NONE}, + {"A", "新增", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"$", "重新整理", {MC_SHUFFLE,1,{'$'}}, KS_NONE}, WHEREIS_MENU, HELP_MENU, OTHER_MENU, NULL_MENU, NULL_MENU, - {"I", "IncludeFile", {MC_ADDFILE,1,{'i'}}, KS_NONE}, - {"X", "eXcludeFile", {MC_DELFILE,1,{'x'}}, KS_NONE}, + {"I", "含括檔案", {MC_ADDFILE,1,{'i'}}, KS_NONE}, + {"X", "排除檔案", {MC_DELFILE,1,{'x'}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -11268,7 +11266,7 @@ case MC_DELETE : if(first_one) q_status_message(SM_ORDER|SM_DING, 0, 3, - "Nothing to Delete, use Add"); + "沒有可供刪除的項目,請用新增"); else rv = role_config_del(ps, cl, role_global_flags); @@ -11289,14 +11287,14 @@ case MC_SHUFFLE : if(first_one) q_status_message(SM_ORDER|SM_DING, 0, 3, - "Nothing to Shuffle, use Add"); + "沒有可供重整的項目,請用新增"); else rv = role_config_shuffle(ps, cl); break; case MC_EXIT : - role_type_print(exitpmt, "%sRule Setup", role_global_flags); + role_type_print(exitpmt, "%s規則設定", role_global_flags); rv = screen_exit_cmd(flags, exitpmt); break; @@ -11795,7 +11793,7 @@ help, RB_NORM); if(rv == 'x'){ - cmd_cancelled("Shuffle"); + cmd_cancelled("重整"); return(0); } @@ -11955,7 +11953,7 @@ continue; } else if(r == 1 || (r == 0 && filename[0] == '\0')){ - cmd_cancelled("IncludeFile"); + cmd_cancelled("含括檔案"); return(rv); } else if(r == 4){ @@ -12685,22 +12683,22 @@ ? cpystr(def->patgrp->nick) : NULL; nick_var.global_val.p = cpystr(edit_role - ? "Alternate Role" + ? "替代角色" : (edit_incol - ? "Index Color Rule" + ? "索引色彩規則" : (edit_score - ? "Score Rule" - : "Filter Rule"))); + ? "得分規則" + : "過濾器規則"))); set_current_val(&nick_var, FALSE, FALSE); - to_pat_var.name = cpystr("To pattern"); + to_pat_var.name = cpystr("目的式樣"); to_pat_var.is_used = 1; to_pat_var.is_user = 1; to_pat_var.user_val.p = (def && def->patgrp) ? pattern_to_string(def->patgrp->to) : NULL; set_current_val(&to_pat_var, FALSE, FALSE); - from_pat_var.name = cpystr("From pattern"); + from_pat_var.name = cpystr("來源式樣"); from_pat_var.is_used = 1; from_pat_var.is_user = 1; from_pat_var.user_val.p = (def && def->patgrp) @@ -12708,7 +12706,7 @@ : NULL; set_current_val(&from_pat_var, FALSE, FALSE); - sender_pat_var.name = cpystr("Sender pattern"); + sender_pat_var.name = cpystr("寄件者式樣"); sender_pat_var.is_used = 1; sender_pat_var.is_user = 1; sender_pat_var.user_val.p = (def && def->patgrp) @@ -12716,28 +12714,28 @@ : NULL; set_current_val(&sender_pat_var, FALSE, FALSE); - cc_pat_var.name = cpystr("Cc pattern"); + cc_pat_var.name = cpystr("副本式樣"); cc_pat_var.is_used = 1; cc_pat_var.is_user = 1; cc_pat_var.user_val.p = (def && def->patgrp) ? pattern_to_string(def->patgrp->cc) : NULL; set_current_val(&cc_pat_var, FALSE, FALSE); - recip_pat_var.name = cpystr("Recip pattern"); + recip_pat_var.name = cpystr("領受者式樣"); recip_pat_var.is_used = 1; recip_pat_var.is_user = 1; recip_pat_var.user_val.p = (def && def->patgrp) ? pattern_to_string(def->patgrp->recip) : NULL; set_current_val(&recip_pat_var, FALSE, FALSE); - partic_pat_var.name = cpystr("Partic pattern"); + partic_pat_var.name = cpystr("關係者式樣"); partic_pat_var.is_used = 1; partic_pat_var.is_user = 1; partic_pat_var.user_val.p = (def && def->patgrp) ? pattern_to_string(def->patgrp->partic) : NULL; set_current_val(&partic_pat_var, FALSE, FALSE); - news_pat_var.name = cpystr("News pattern"); + news_pat_var.name = cpystr("新聞式樣"); news_pat_var.is_used = 1; news_pat_var.is_user = 1; news_pat_var.user_val.p = (def && def->patgrp) @@ -12745,7 +12743,7 @@ : NULL; set_current_val(&news_pat_var, FALSE, FALSE); - subj_pat_var.name = cpystr("Subject pattern"); + subj_pat_var.name = cpystr("主題式樣"); subj_pat_var.is_used = 1; subj_pat_var.is_user = 1; subj_pat_var.user_val.p = (def && def->patgrp) @@ -12753,7 +12751,7 @@ : NULL; set_current_val(&subj_pat_var, FALSE, FALSE); - alltext_pat_var.name = cpystr("AllText pattern"); + alltext_pat_var.name = cpystr("所有文字式樣"); alltext_pat_var.is_used = 1; alltext_pat_var.is_user = 1; alltext_pat_var.user_val.p = (def && def->patgrp) @@ -12762,7 +12760,7 @@ set_current_val(&alltext_pat_var, FALSE, FALSE); scorei_pat_global_ptr = &scorei_pat_var; - scorei_pat_var.name = cpystr("Score interval"); + scorei_pat_var.name = cpystr("得分區間"); scorei_pat_var.is_used = 1; scorei_pat_var.is_user = 1; if(def && def->patgrp && def->patgrp->do_score) @@ -12779,7 +12777,7 @@ pindent += 3; - inick_var.name = cpystr("Initialize settings using role"); + inick_var.name = cpystr("使用角色初始化設定"); inick_var.is_used = 1; inick_var.is_user = 1; inick_var.user_val.p = (def && def->action && @@ -12788,13 +12786,13 @@ ? cpystr(def->action->inherit_nick) : NULL; role_fldr_ptr = &fldr_type_var; /* so radiobuttons can tell */ - fldr_type_var.name = cpystr("Current Folder Type"); + fldr_type_var.name = cpystr("目前檔案匣形態"); fldr_type_var.is_used = 1; fldr_type_var.is_user = 1; fldr_type_var.user_val.p = (f=pat_fldr_types((def && def->patgrp) ? def->patgrp->fldr_type : (!def && edit_filter) ? FLDR_SPECIFIC : -1)) ? cpystr(f->name) : NULL; set_current_val(&fldr_type_var, FALSE, FALSE); - folder_pat_var.name = cpystr("Folder List"); + folder_pat_var.name = cpystr("檔案匣列表"); folder_pat_var.is_used = 1; folder_pat_var.is_user = 1; folder_pat_var.user_val.p = (def && def->patgrp) @@ -12803,7 +12801,7 @@ ? cpystr(ps_global->inbox_name) : NULL; set_current_val(&folder_pat_var, FALSE, FALSE); - from_act_var.name = cpystr("Set From"); + from_act_var.name = cpystr("設定「來源」"); from_act_var.is_used = 1; from_act_var.is_user = 1; if(def && def->action && def->action->from){ @@ -12815,7 +12813,7 @@ else from_act_var.user_val.p = NULL; - replyto_act_var.name = cpystr("Set Reply-To"); + replyto_act_var.name = cpystr("設定「回覆至」"); replyto_act_var.is_used = 1; replyto_act_var.is_user = 1; if(def && def->action && def->action->replyto){ @@ -12828,26 +12826,26 @@ else replyto_act_var.user_val.p = NULL; - fcc_act_var.name = cpystr("Set Fcc"); + fcc_act_var.name = cpystr("設定「檔案副本」"); fcc_act_var.is_used = 1; fcc_act_var.is_user = 1; fcc_act_var.user_val.p = (def && def->action && def->action->fcc) ? cpystr(def->action->fcc) : NULL; - sig_act_var.name = cpystr("Set Signature"); + sig_act_var.name = cpystr("設定「簽名」"); sig_act_var.is_used = 1; sig_act_var.is_user = 1; sig_act_var.user_val.p = (def && def->action && def->action->sig) ? cpystr(def->action->sig) : NULL; - templ_act_var.name = cpystr("Set Template"); + templ_act_var.name = cpystr("設定「模版」"); templ_act_var.is_used = 1; templ_act_var.is_user = 1; templ_act_var.user_val.p = (def && def->action && def->action->template) ? cpystr(def->action->template) : NULL; score_act_global_ptr = &score_act_var; - score_act_var.name = cpystr("Score Value"); + score_act_var.name = cpystr("得分值"); score_act_var.is_used = 1; score_act_var.is_user = 1; if(def && def->action && def->action->scoreval >= SCORE_MIN && @@ -14739,12 +14737,12 @@ break; case 'n': - q_status_message(SM_ORDER,3,5,"No changes saved"); + q_status_message(SM_ORDER,3,5,"修改未被存入"); rv = 10; break; case 'x': /* ^C */ - q_status_message(SM_ORDER,3,5,"Changes not yet saved"); + q_status_message(SM_ORDER,3,5,"修改尚未存入"); rv = 0; break; } @@ -14876,7 +14874,7 @@ if(file[len=(strlen(file)-1)] == '|') file[len] = '\0'; - sprintf(title, "%s EDITOR", sig ? "SIGNATURE" : "TEMPLATE"); + sprintf(title, "%s編輯器", sig ? "簽名檔" : "模板"); err = signature_edit(file, title); } @@ -14914,7 +14912,7 @@ if(i == 0) break; else if(i == 1){ - cmd_cancelled("eXtraHdr"); + cmd_cancelled("額外標頭"); cancel = 1; break; } @@ -15025,7 +15023,7 @@ sprintf(tmp, "Really remove \"%s\" pattern from this rule", (ea && ea->a && ea->a->field) ? ea->a->field : "this"); if(want_to(tmp, 'y', 'n', NO_HELP, WT_NORM) != 'y'){ - cmd_cancelled("RemoveHdr"); + cmd_cancelled("刪除標頭"); return(rv); } @@ -15093,8 +15091,8 @@ char prompt[60]; rv = 0; - sprintf(prompt, "%s the interval : ", - (*cl)->var->user_val.p ? "Change" : "Enter"); + sprintf(prompt, "%s區間值:", + (*cl)->var->user_val.p ? "修改" : "輸入"); ps->mangled_footer = 1; help = NO_HELP; @@ -15120,7 +15118,7 @@ (*cl)->value = pretty_value(ps, *cl); } else if(i == 1) - cmd_cancelled(cmd == MC_ADD ? "Add" : "Change"); + cmd_cancelled(cmd == MC_ADD ? "新增" : "修改"); else if(i == 3){ help = help == NO_HELP ? h_config_edit_scorei : NO_HELP; continue; @@ -15165,12 +15163,12 @@ break; case 'n': - q_status_message(SM_ORDER,3,5,"No changes saved"); + q_status_message(SM_ORDER,3,5,"修改未被存入"); rv = 10; break; case 'x': /* ^C */ - q_status_message(SM_ORDER,3,5,"Changes not yet saved"); + q_status_message(SM_ORDER,3,5,"修改尚未存入"); rv = 0; break; } @@ -16192,7 +16190,7 @@ /* First, confirm that user wants to restore all default colors */ if(want_to("Really restore all colors to default values", 'y', 'n', NO_HELP, WT_NORM) != 'y'){ - cmd_cancelled("RestoreDefs"); + cmd_cancelled("回存預設值"); return(rv); } @@ -16248,7 +16246,7 @@ if(i == 0) break; else if(i == 1){ - cmd_cancelled("Add"); + cmd_cancelled("新增"); cancel = 1; break; } @@ -16337,7 +16335,7 @@ sprintf(prompt, "Really delete \"%s\" color from config", header); if(want_to(prompt, 'y', 'n', NO_HELP, WT_NORM) != 'y'){ - cmd_cancelled("Delete"); + cmd_cancelled("刪除"); return(rv); } @@ -16469,7 +16467,7 @@ switch(i){ case 'x': - cmd_cancelled("Shuffle"); + cmd_cancelled("重整"); return(rv); case 'u':