--- pine/other.c.orig Tue Feb 2 07:32:44 1999 +++ pine/other.c Wed Feb 24 02:19:21 1999 @@ -51,18 +51,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 ADD_FIRST_ROLE "Use Add to add a role" +#define ADD_FIRST_ROLE "以 \"新增角色\" 來增加一名角色" typedef struct conf_line { char *varname, /* alloc'd var name string */ @@ -271,16 +271,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 } @@ -292,12 +290,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 } @@ -339,9 +337,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, @@ -350,7 +348,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) @@ -361,14 +359,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); } @@ -382,7 +380,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){ @@ -390,7 +388,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; @@ -405,7 +403,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); } @@ -443,7 +441,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)); @@ -519,7 +517,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); } @@ -530,7 +528,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); @@ -543,7 +541,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); } @@ -582,7 +580,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); } @@ -592,7 +590,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)); @@ -618,8 +616,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} }; @@ -627,18 +625,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; } } @@ -653,24 +651,24 @@ * * * * * * 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} 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); @@ -679,13 +677,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, @@ -693,8 +691,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, @@ -707,13 +705,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, @@ -721,7 +719,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToAddrBk", {MC_CHOICEB, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "地址簿", {MC_CHOICEB, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -735,13 +733,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, @@ -749,7 +747,7 @@ OTHER_MENU, NULL_MENU, NULL_MENU, - {"T", "ToFldrs", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE}, + {"T", "檔案列表", {MC_CHOICEC, 2, {'t', ctrl('T')}}, KS_NONE}, NULL_MENU, NULL_MENU, NULL_MENU, @@ -763,13 +761,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, @@ -777,7 +775,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, @@ -806,7 +804,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, @@ -821,7 +819,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, @@ -1489,14 +1487,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}, + {"A", "新增印表機", {MC_ADD,1,{'a'}}, KS_NONE}, + {"D", "刪除印表機", {MC_DELETE,1,{'d'}}, KS_NONE}, + {"C", "修改", {MC_EDIT,1,{'c'}}, KS_NONE}, WHEREIS_MENU}; INST_KEY_MENU(printer_edit_keymenu, printer_edit_keys); @@ -1504,7 +1502,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, @@ -1537,7 +1535,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); @@ -1553,7 +1551,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); @@ -1906,7 +1904,7 @@ vsave = save_config_vars(ps); switch(conf_scroll_screen(ps, &screen, start_line, - "SETUP PRINTER", "printer config ", 1)){ + "設定印表機", "printer config ", 1)){ case 0: break; @@ -1947,8 +1945,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); @@ -1958,7 +1956,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, @@ -2112,9 +2110,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, @@ -2128,29 +2126,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, NULL_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}; @@ -2159,14 +2157,14 @@ static struct key addr_select_for_url_keys[] = {HELP_MENU, NULL_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}; @@ -2175,7 +2173,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, @@ -2191,7 +2189,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, @@ -2546,7 +2544,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); @@ -2644,7 +2642,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; @@ -2709,15 +2707,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); @@ -2789,7 +2787,7 @@ &first_line); (void)conf_scroll_screen(ps, &screen, first_line, - "SETUP DIRECTORY SERVERS", "servers ", 1); + "設定地址伺服器", "servers ", 1); ps->mangled_screen = 1; } @@ -2809,20 +2807,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 @@ -2832,10 +2830,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); } @@ -2965,7 +2963,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); @@ -2995,7 +2993,7 @@ if(cnt < 2){ q_status_message(SM_ORDER, 0, 3, - "Shuffle only makes sense when there is more than one server defined"); + "僅在定義了多個伺服器之後,重整才能發揮作用"); return; } @@ -3006,12 +3004,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'; @@ -3023,11 +3021,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; @@ -3037,7 +3035,7 @@ switch(rv){ case 'x': - q_status_message(SM_ORDER, 0, 3, "Shuffle cancelled"); + q_status_message(SM_ORDER, 0, 3, "取消重整"); return; case 'u': @@ -3075,7 +3073,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; } @@ -3127,10 +3125,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; @@ -3967,7 +3965,7 @@ } else q_status_message(SM_ORDER, 3, 3, - "Can't delete sys-admin defined value"); + "無法刪除系統管理員定義的設定值。"); } else{ int cnt, ans = 0; @@ -3990,11 +3988,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); } @@ -4100,7 +4098,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; @@ -4140,7 +4138,7 @@ } } else - q_status_message(SM_ORDER, 0, 3, "Server not deleted"); + q_status_message(SM_ORDER, 0, 3, "伺服器未被刪除"); } if(rv == 1){ @@ -4164,7 +4162,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; @@ -4227,7 +4225,7 @@ p->next = b; } - (*ctmp)->help_title= "HELP FOR DIRECTORY SERVER CONFIGURATION"; + (*ctmp)->help_title= "目錄伺服器設定的輔助說明"; (*ctmp)->value = serv; (*ctmp)->var = var; (*ctmp)->varmem = member; @@ -4709,7 +4707,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; @@ -4733,7 +4731,7 @@ } else q_status_message(SM_ORDER, 0, 1, - "Already at start of screen"); + "已經在畫面的起始了"); break; @@ -4776,7 +4774,7 @@ if(ctmpa == screen->current){ q_status_message(SM_ORDER,0,1, - "Already at end of screen"); + "已經在畫面的結尾了"); goto no_down; } @@ -4807,7 +4805,7 @@ if(ctmpa){ if(ctmpa == screen->current) q_status_message(SM_ORDER, 0, 1, - "Already at start of screen"); + "已經在畫面的起始了"); screen->current = ctmpa; } @@ -4965,13 +4963,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]) ? "]" : ""); @@ -5093,7 +5091,7 @@ result = "Searched to bottom"; } else - result = "WhereIs cancelled"; + result = "取消搜尋"; if((found & FOUND_IT) && ctmpa){ strcpy(last, buf); @@ -5112,7 +5110,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; @@ -5128,8 +5126,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++; @@ -5145,9 +5143,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: @@ -5495,11 +5493,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 = ""; @@ -5514,12 +5512,12 @@ sval[0] = '\0'; 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\"."); + "僅允許\單一設定值。請用 \"Change\"."); } else{ int maxwidth =min(80,ps->ttyo->screen_cols) - 15; @@ -5543,7 +5541,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 @@ -5552,13 +5550,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': @@ -5572,25 +5570,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; - q_status_message(SM_ORDER,0,3,"Add cancelled"); + q_status_message(SM_ORDER,0,3,"取消新增"); break; } } else - sprintf(prompt, "Enter the %stext to be added : ", - flags&CF_NUMBER ? "numeric " : ""); + sprintf(prompt, "輸入想加入的%s字:", + flags&CF_NUMBER ? "數" : "文"); ps->mangled_footer = 1; @@ -5607,7 +5605,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)) @@ -5660,7 +5658,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; } @@ -5668,7 +5666,7 @@ } else{ q_status_message1(SM_ORDER, 0, 3, - "Can't add %s to list", empty_val); + "無法將 %s 加至列表中", empty_val); } } else{ @@ -5676,7 +5674,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; } @@ -5689,7 +5687,7 @@ } } else if(i == 1){ - q_status_message(SM_ORDER,0,3,"Add cancelled"); + q_status_message(SM_ORDER,0,3,"取消新增"); } else if(i == 3){ help = help == NO_HELP ? h_config_add : NO_HELP; @@ -5712,8 +5710,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')){ @@ -5733,7 +5731,7 @@ */ if(++repeat_key > 0){ q_status_message1(SM_ORDER,3,3, - "Minimum value is %s", comatose(lowrange)); + "最小值是 %s", comatose(lowrange)); repeat_key = -5; } } @@ -5757,7 +5755,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; } } @@ -5782,7 +5780,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); @@ -5795,7 +5793,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; @@ -5810,7 +5808,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) @@ -5826,7 +5824,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) @@ -5834,8 +5833,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'){ @@ -5850,7 +5848,7 @@ } } else - q_status_message(SM_ORDER, 0, 3, "Value not deleted"); + q_status_message(SM_ORDER, 0, 3, "設定值未被刪除"); } break; @@ -5978,7 +5976,7 @@ && !(isdigit((unsigned char)sval[0]) || sval[0] == '-' || sval[0] == '+')){ q_status_message(SM_ORDER,3,3, - "Entry must be numeric"); + "該項目必須是數字"); continue; } @@ -5992,7 +5990,7 @@ } } else if(i == 1){ - q_status_message(SM_ORDER,0,3,"Change cancelled"); + q_status_message(SM_ORDER,0,3,"取消修改"); } else if(i == 3){ help = help == NO_HELP ? h_config_change : NO_HELP; @@ -6010,7 +6008,7 @@ */ if(++repeat_key > 0){ q_status_message1(SM_ORDER,3,3, - "Minimum value is %s", comatose(lowrange)); + "最小值是 %s", comatose(lowrange)); repeat_key = -5; } } @@ -6026,7 +6024,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; } } @@ -6113,15 +6111,15 @@ 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 */ - q_status_message(SM_ORDER,3,5,"Changes not yet saved"); + q_status_message(SM_ORDER,3,5,"改變尚未被存檔"); return(0); } } @@ -6413,7 +6411,7 @@ && want_to("Delete old unused personal option setting", '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; } @@ -6552,7 +6550,7 @@ && want_to("Delete old unused personal option setting", '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; } @@ -6642,15 +6640,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; } @@ -6661,11 +6659,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; } @@ -6680,11 +6678,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; } @@ -6734,23 +6732,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': @@ -6766,17 +6764,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': - q_status_message(SM_ORDER,0,3,"Add cancelled"); + q_status_message(SM_ORDER,0,3,"取消新增"); break; } @@ -6784,7 +6782,7 @@ break; } else - strcpy(prompt, "Enter name of printer to be added : "); + strcpy(prompt, "欲新增的印表機名稱:"); ps->mangled_footer = 1; help = NO_HELP; @@ -6796,7 +6794,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 @@ -6812,7 +6810,7 @@ removing_leading_and_trailing_white_space(name); } else if(i == 1){ - q_status_message(SM_ORDER,0,3,"Add cancelled"); + q_status_message(SM_ORDER,0,3,"取消新增"); } else if(i == 3){ help = (help == NO_HELP) ? h_config_insert_after : NO_HELP; @@ -6830,7 +6828,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; @@ -6880,10 +6878,10 @@ } else q_status_message1(SM_ORDER, 0, 3, - "Can't add %s to list", empty_val); + "無法將 %s 新增至列表中", empty_val); } else if(i == 1){ - q_status_message(SM_ORDER,0,3,"Add cancelled"); + q_status_message(SM_ORDER,0,3,"取消新增"); } else if(i == 3){ help = help == NO_HELP ? h_config_print_cmd : NO_HELP; @@ -6927,13 +6925,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; @@ -6943,7 +6941,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; @@ -6954,7 +6952,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; @@ -6966,22 +6964,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'){ - q_status_message(SM_ORDER,0,3,"Change cancelled"); + q_status_message(SM_ORDER,0,3,"取消修改"); break; } else if(i == 'c'){ @@ -6990,7 +6988,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); @@ -7028,12 +7026,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){ - q_status_message(SM_ORDER,0,3,"Change cancelled"); + q_status_message(SM_ORDER,0,3,"取消修改"); } else if(i == 3){ help = help == NO_HELP ? h_config_change : NO_HELP; @@ -7052,7 +7050,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); @@ -7081,7 +7079,7 @@ newval = &(*cl)->value; } else if(i == 1){ - q_status_message(SM_ORDER,0,3,"Change cancelled"); + q_status_message(SM_ORDER,0,3,"取消修改"); } else if(i == 3){ help = help == NO_HELP ? h_config_change : NO_HELP; @@ -7102,18 +7100,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'){ - q_status_message(SM_ORDER,0,3,"Change cancelled"); + q_status_message(SM_ORDER,0,3,"取消修改"); break; } else{ @@ -7122,8 +7120,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); @@ -7177,7 +7175,7 @@ newval = &(*cl)->value; } else if(i == 1){ - q_status_message(SM_ORDER,0,3,"Change cancelled"); + q_status_message(SM_ORDER,0,3,"取消修改"); } else if(i == 3){ help=(help == NO_HELP)?h_config_print_init:NO_HELP; @@ -7255,18 +7253,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; } @@ -7274,7 +7272,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; } @@ -7283,9 +7281,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; @@ -7352,7 +7350,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); @@ -7416,7 +7414,7 @@ /* Tell the user it was a huge success... */ q_status_message(SM_ORDER, 0, 3, - "New collection added. Use \"$\" to adjust order."); + "新的總集加入了!請用 \"$\" 調整順序。"); } } @@ -7435,11 +7433,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 */ @@ -7551,12 +7549,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, "沒有任何總集被刪除"); } @@ -7578,7 +7576,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)){ @@ -7648,7 +7646,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, "已更新總集列表"); } } @@ -7670,14 +7668,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){ @@ -7690,7 +7688,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)))){ @@ -7789,7 +7787,7 @@ } } else - q_status_message(SM_ORDER, 0, 3, "Sorry, nothing to Shuffle"); + q_status_message(SM_ORDER, 0, 3, "很抱歉,沒有東西可供重整"); } @@ -8254,7 +8252,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++ = ','; @@ -8286,7 +8284,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 @@ -8428,7 +8426,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; } } @@ -8477,7 +8475,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; @@ -8659,8 +8657,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); } @@ -8963,7 +8961,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; @@ -8974,7 +8972,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') @@ -8983,7 +8981,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); @@ -9043,7 +9041,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; @@ -9115,10 +9113,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) @@ -9431,10 +9429,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, @@ -9475,7 +9473,7 @@ new_confline(&ctmp); first_line = ctmp; - ctmp->value = cpystr("Default Role"); + ctmp->value = cpystr("預設角色"); ctmp->d.r.selected = &sel_pat; ctmp->d.r.pat = &local_pat; ctmp->d.r.handle = pattern_h; @@ -9493,7 +9491,7 @@ menu_add_binding(ctmp->keymenu, ctrl('M'), MC_CHOICE); } else{ - menu_init_binding(ctmp->keymenu, 'S', MC_CHOICE, "S", "[Select]", + menu_init_binding(ctmp->keymenu, 'S', MC_CHOICE, "S", "[選擇]", DEFAULT_KEY); menu_add_binding(ctmp->keymenu, ctrl('J'), MC_CHOICE); menu_add_binding(ctmp->keymenu, ctrl('M'), MC_CHOICE); @@ -9516,7 +9514,7 @@ ctmp->valoffset = 4; } - (void)conf_scroll_screen(ps, &screen, first_line, "SELECT ROLE", + (void)conf_scroll_screen(ps, &screen, first_line, "選擇角色", "roles ", 0); if(sel_pat){ @@ -9617,23 +9615,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", "PrevRole", {MC_PREVITEM, 1, {'p'}}, KS_NONE}, - {"N", "NextRole", {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 Role", {MC_ADD,1,{'a'}}, KS_NONE}, - {"D", "Del Role", {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, @@ -9889,7 +9887,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); @@ -9910,14 +9908,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 : - rv = screen_exit_cmd(flags, "Role Configuration"); + rv = screen_exit_cmd(flags, "角色設定"); break; case MC_ADDFILE : @@ -10158,7 +10156,7 @@ delete_a_role(cl); } else - q_status_message(SM_ORDER, 0, 3, "Role not deleted"); + q_status_message(SM_ORDER, 0, 3, "角色未被刪除"); return(rv); } @@ -10724,7 +10722,7 @@ free_patline(&cur_patline); } else - q_status_message(SM_ORDER, 0, 3, "Role file not removed"); + q_status_message(SM_ORDER, 0, 3, "角色檔未被移除"); return(rv); } @@ -11084,7 +11082,7 @@ struct variable *role_rule_ptr; -#define ALT_ROLE "Alternate Role" +#define ALT_ROLE "替代角色" CONF_S *inick_confs[5]; #define INICK_INICK_CONF 0 @@ -11216,7 +11214,7 @@ def->action->role->inherit_nick && def->action->role->inherit_nick[0]) ? cpystr(def->action->role->inherit_nick) : NULL; - inick_var.global_val.p = cpystr("Default Role"); + inick_var.global_val.p = cpystr("預設角色"); from_act_var.name = cpystr("Set From"); from_act_var.is_used = 1; @@ -12115,7 +12113,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); }