diff options
author | jack <jack@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-05-13 04:23:23 +0800 |
---|---|---|
committer | jack <jack@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-05-13 04:23:23 +0800 |
commit | b2061c6a74bd71e5983221156f6065520dcd30d6 (patch) | |
tree | 4120eb906f3d0779974c8d675839ca63db0fa1f2 /mbbsd/talk.c | |
parent | 28fdb84fa48671ce09fa068c68ce22547374587c (diff) | |
download | pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.tar pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.tar.gz pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.tar.bz2 pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.tar.lz pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.tar.xz pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.tar.zst pttbbs-b2061c6a74bd71e5983221156f6065520dcd30d6.zip |
Replaced SHM->i18nstr[cuser.language] with I18N macro
git-svn-id: http://opensvn.csie.org/pttbbs/branches/Jaky.i18n@1971 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/talk.c')
-rw-r--r-- | mbbsd/talk.c | 374 |
1 files changed, 168 insertions, 206 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c index f8bd81f1..973835b4 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -3,12 +3,11 @@ #define QCAST int (*)(const void *, const void *) -static char *IdleTypeTable[] = { - "偶在花呆啦", "情人來電", "覓食中", "拜見周公", "假死狀態", "我在思考" -}; -static char *sig_des[] = { - "鬥雞", "聊天", "", "下棋", "象棋", "暗棋" -}; +//#define sig_des [(a)] (SHM->i18nstr[cuser.language][1896 + (a)]) +#define sig_des(a) (SHM->i18nstr[cuser.language][1896 + (a)]) +/*static char *sig_des[] = { + SHM->i18nstr[cuser.language][1896], SHM->i18nstr[cuser.language][1897], "", SHM->i18nstr[cuser.language][1898], SHM->i18nstr[cuser.language][1899], SHM->i18nstr[cuser.language][1900] +};*/ #define MAX_SHOW_MODE 4 #define M_INT 15 /* monitor mode update interval */ @@ -58,7 +57,7 @@ iswritable_stat(userinfo_t * uentp, int fri_stat) int isvisible_stat(userinfo_t * me, userinfo_t * uentp, int fri_stat) { - if (!uentp || uentp->userid[0] == 0) + if (uentp->userid[0] == 0) return 0; if (PERM_HIDE(uentp) && !(PERM_HIDE(me))) /* 對方紫色隱形而你沒有 */ @@ -78,7 +77,7 @@ char * modestring(userinfo_t * uentp, int simple) { static char modestr[40]; - char *notonline = "不在站上"; + char *notonline = SHM->i18nstr[cuser.language][1901]; register int mode = uentp->mode; register char *word; int fri_stat; @@ -102,12 +101,12 @@ modestring(userinfo_t * uentp, int simple) } else if (!mode && *uentp->chatid == 1) { if (!simple) snprintf(modestr, sizeof(modestr), - "回應 %s", getuserid(uentp->destuid)); + SHM->i18nstr[cuser.language][1902], getuserid(uentp->destuid)); else - snprintf(modestr, sizeof(modestr), "回應呼叫"); + snprintf(modestr, sizeof(modestr), SHM->i18nstr[cuser.language][1903]); } else if (!mode && *uentp->chatid == 3) - snprintf(modestr, sizeof(modestr), "水球準備中"); + snprintf(modestr, sizeof(modestr), SHM->i18nstr[cuser.language][1904]); else if ( #ifdef NOKILLWATERBALL uentp->msgcount > 0 @@ -117,40 +116,40 @@ modestring(userinfo_t * uentp, int simple) ) if (uentp->msgcount < 10) { char *cnum[10] = - {"", "一", "兩", "三", "四", "五", "六", "七", - "八", "九"}; + {"", SHM->i18nstr[cuser.language][1905], SHM->i18nstr[cuser.language][1906], SHM->i18nstr[cuser.language][1907], SHM->i18nstr[cuser.language][1908], SHM->i18nstr[cuser.language][1909], SHM->i18nstr[cuser.language][1910], SHM->i18nstr[cuser.language][1911], + SHM->i18nstr[cuser.language][1912], SHM->i18nstr[cuser.language][1913]}; snprintf(modestr, sizeof(modestr), - "中%s顆水球", cnum[(int)(uentp->msgcount)]); + SHM->i18nstr[cuser.language][1914], cnum[(int)(uentp->msgcount)]); } else - snprintf(modestr, sizeof(modestr), "不行了 @_@"); + snprintf(modestr, sizeof(modestr), SHM->i18nstr[cuser.language][1915]); else if (!mode) return (uentp->destuid == 6) ? uentp->chatid : - IdleTypeTable[(0 <= uentp->destuid && uentp->destuid < 6) ? - uentp->destuid : 0]; + SHM->i18nstr[cuser.language][1890 + ((0 <= uentp->destuid && uentp->destuid < 6) ? + uentp->destuid : 0)]; else if (simple) return word; else if (uentp->in_chat && mode == CHATING) snprintf(modestr, sizeof(modestr), "%s (%s)", word, uentp->chatid); else if (mode == TALK) { if (!isvisible_uid(uentp->destuid)) /* Leeym 對方(紫色)隱形 */ - snprintf(modestr, sizeof(modestr), "%s", "交談 空氣"); + snprintf(modestr, sizeof(modestr), "%s", SHM->i18nstr[cuser.language][1916]); /* Leeym * 大家自己發揮吧! */ else snprintf(modestr, sizeof(modestr), "%s %s", word, getuserid(uentp->destuid)); } else if (mode == M_FIVE) { if (!isvisible_uid(uentp->destuid)) - snprintf(modestr, sizeof(modestr), "%s", "五子棋 空氣"); + snprintf(modestr, sizeof(modestr), "%s", SHM->i18nstr[cuser.language][1917]); else snprintf(modestr, sizeof(modestr), "%s %s", word, getuserid(uentp->destuid)); } else if (mode == CHESSWATCHING) { - snprintf(modestr, sizeof(modestr), "觀棋"); + snprintf(modestr, sizeof(modestr), SHM->i18nstr[cuser.language][1918]); } else if (mode == CHC) { if (isvisible_uid(uentp->destuid)) - snprintf(modestr, sizeof(modestr), "%s", "下象棋"); + snprintf(modestr, sizeof(modestr), "%s", SHM->i18nstr[cuser.language][1919]); else snprintf(modestr, sizeof(modestr), - "下象棋 %s", getuserid(uentp->destuid)); + SHM->i18nstr[cuser.language][1920], getuserid(uentp->destuid)); } else if (mode != PAGE && mode != TQUERY) return word; else @@ -323,7 +322,7 @@ my_kick(userinfo_t * uentp) log_usies("KICK ", genbuf); if ((uentp->pid <= 0 || kill(uentp->pid, SIGHUP) == -1) && (errno == ESRCH)) purge_utmp(uentp); - outs("踢出去囉"); + outs(SHM->i18nstr[cuser.language][1921]); } else outs(msg_cancel); pressanykey(); @@ -337,12 +336,12 @@ chicken_query(char *userid) time_diff(&(xuser.mychicken)); if (!isdeadth(&(xuser.mychicken))) { show_chicken_data(&(xuser.mychicken), NULL); - prints("\n\n以上是 %s 的寵物資料..", userid); + prints(SHM->i18nstr[cuser.language][1922], userid); } } else { move(1, 0); clrtobot(); - prints("\n\n%s 並沒有養寵物..", userid); + prints(SHM->i18nstr[cuser.language][1923], userid); } pressanykey(); } @@ -356,8 +355,8 @@ my_query(char *uident) unsigned long int j; userinfo_t *uentp; const char *money[10] = - {"債台高築", "赤貧", "清寒", "普通", "小康", - "小富", "中富", "大富翁", "富可敵國", "比爾蓋\天"}; + {SHM->i18nstr[cuser.language][1924], SHM->i18nstr[cuser.language][1925], SHM->i18nstr[cuser.language][1926], SHM->i18nstr[cuser.language][1927], SHM->i18nstr[cuser.language][1928], + SHM->i18nstr[cuser.language][1929], SHM->i18nstr[cuser.language][1930], SHM->i18nstr[cuser.language][1931], SHM->i18nstr[cuser.language][1932], SHM->i18nstr[cuser.language][1933]}; const char *sex[8] = {MSG_BIG_BOY, MSG_BIG_GIRL, MSG_LITTLE_BOY, MSG_LITTLE_GIRL, @@ -377,7 +376,7 @@ my_query(char *uident) j = muser.money; for (i = 0; i < 10 && j > 10; i++) j /= 10; - prints("《ID暱稱》%s(%s)%*s《經濟狀況》%s", + prints(SHM->i18nstr[cuser.language][1934], muser.userid, muser.username, 26 - strlen(muser.userid) - strlen(muser.username), "", @@ -386,34 +385,33 @@ my_query(char *uident) prints(" ($%d)", muser.money); prints("\n"); - prints("《上站次數》%d次", muser.numlogins); + prints(SHM->i18nstr[cuser.language][1935], muser.numlogins); move(2, 40); #ifdef ASSESS - prints("《文章篇數》%d篇 (優:%d/劣:%d)\n", muser.numposts, muser.goodpost, muser.badpost); + prints(SHM->i18nstr[cuser.language][1936], muser.numposts, muser.goodpost, muser.badpost); #else - prints("《文章篇數》%d篇\n", muser.numposts); + prints(SHM->i18nstr[cuser.language][1937], muser.numposts); #endif - prints("\033[1;33m《目前動態》%-28.28s\033[m", + prints(SHM->i18nstr[cuser.language][1938], (uentp && isvisible_stat(currutmp, uentp, fri_stat)) ? - modestring(uentp, 0) : "不在站上"); + modestring(uentp, 0) : SHM->i18nstr[cuser.language][1939]); outs(((uentp && uentp->mailalert) || load_mailalert(muser.userid)) - ? "《私人信箱》有新進信件還沒看\n" : - "《私人信箱》所有信件都看過了\n"); - prints("《上次上站》%-28.28s《上次故鄉》%s\n", + ? SHM->i18nstr[cuser.language][1940] : + SHM->i18nstr[cuser.language][1941]); + prints(SHM->i18nstr[cuser.language][1942], Cdate(&muser.lastlogin), - (muser.lasthost[0] ? muser.lasthost : "(不詳)")); - prints("《五子棋戰績》%3d 勝 %3d 敗 %3d 和 " - "《象棋戰績》%3d 勝 %3d 敗 %3d 和\n", + (muser.lasthost[0] ? muser.lasthost : SHM->i18nstr[cuser.language][1943])); + prints(SHM->i18nstr[cuser.language][1944], muser.five_win, muser.five_lose, muser.five_tie, muser.chc_win, muser.chc_lose, muser.chc_tie); #ifdef ASSESS - prints("《競標評比》 優 %d / 劣 %d", muser.goodsale, muser.badsale); + prints(SHM->i18nstr[cuser.language][1945], muser.goodsale, muser.badsale); move(6, 40); #endif if ((uentp && ((fri_stat & HFM) || strcmp(muser.userid,cuser.userid) == 0) && !uentp->invisible)) - prints("《 性 別 》%-28.28s\n", sex[muser.sex % 8]); + prints(SHM->i18nstr[cuser.language][1946], sex[muser.sex % 8]); showplans(uident); pressanykey(); @@ -441,11 +439,11 @@ water_scr(water_t * tw, int which, char type) prints(" "); move(16 + i, 4); if (tw->msg[(tw->top - i + 4) % 5].last_call_in[0] != 0) - prints("\033[0m \033[1;%d;44m★%-64s\033[0m \n", + prints(SHM->i18nstr[cuser.language][1947], colors[i], tw->msg[(tw->top - i + 4) % 5].last_call_in); else - prints("\033[0m \n"); + prints(SHM->i18nstr[cuser.language][1948]); } move(21, 4); @@ -457,14 +455,14 @@ water_scr(water_t * tw, int which, char type) move(0, 0); prints(" "); move(0, 0); - prints("\033[0m反擊 %s:", tw->userid); + prints(SHM->i18nstr[cuser.language][1949], tw->userid); clrtoeol(); move(0, strlen(tw->userid) + 6); } else { move(8 + which, 28); prints("123456789012345678901234567890"); move(8 + which, 28); - prints("\033[1;37;44m %c %-13s \033[0m", + prints(SHM->i18nstr[cuser.language][1950], tw->uin ? ' ' : 'x', tw->userid); } @@ -490,7 +488,7 @@ my_write2(void) //init screen move(7, 28); - prints("\033[1;33;46m ↑ 水球反擊對象 ↓\033[0m"); + prints(SHM->i18nstr[cuser.language][1951]); for (i = 0; i < 5; ++i) if (swater[i] == NULL || swater[i]->pid == 0) break; @@ -502,11 +500,9 @@ my_write2(void) water_scr(swater[i], i, 0); } move(15, 4); - prints("\033[0m \033[1;35m◇\033[1;36m────────────────" - "─────────────────\033[1;35m◇\033[0m "); + prints(SHM->i18nstr[cuser.language][1952]); move(22, 4); - prints(" \033[1;35m◇\033[1;36m────────────────" - "─────────────────\033[1;35m◇\033[0m "); + prints(SHM->i18nstr[cuser.language][1953]); water_scr(swater[0], 0, 1); refresh(); @@ -551,7 +547,7 @@ my_write2(void) move(0, 0); prints("\033[m"); clrtoeol(); - snprintf(genbuf, sizeof(genbuf), "攻擊 %s:", tw->userid); + snprintf(genbuf, sizeof(genbuf), SHM->i18nstr[cuser.language][1954], tw->userid); if (!oldgetdata(0, 0, genbuf, msg, 80 - strlen(tw->userid) - 6, DOECHO)) break; @@ -592,7 +588,7 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) strlcpy(destid, id, sizeof(destid)); if (!uin && !(flag == 0 && water_which->count > 0)) { - vmsg("糟糕! 對方已落跑了(不在站上)! "); + vmsg(SHM->i18nstr[cuser.language][1955]); watermode = -1; return 0; } @@ -606,6 +602,9 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) /* 一般水球 */ watermode = 0; if (!(len = getdata(0, 0, prompt, msg, 56, DOECHO))) { + outmsg(SHM->i18nstr[cuser.language][1956]); + clrtoeol(); + refresh(); currutmp->chatid[0] = c0; currutmp->mode = mode0; currstat = currstat0; @@ -627,7 +626,7 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) strip_ansi(msg, msg, STRIP_ALL); if (uin && *uin->userid && (flag == 0 || flag == 4)) { - snprintf(buf, sizeof(buf), "丟給 %s : %s [Y/n]?", uin->userid, msg); + snprintf(buf, sizeof(buf), SHM->i18nstr[cuser.language][1957], uin->userid, msg); getdata(0, 0, buf, genbuf, 3, LCECHO); if (genbuf[0] == 'n') { currutmp->chatid[0] = c0; @@ -639,7 +638,7 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) } watermode = -1; if (!uin || !*uin->userid || strcasecmp(destid, uin->userid)) { - vmsg("糟糕! 對方已落跑了(不在站上)! "); + vmsg(SHM->i18nstr[cuser.language][1959]); currutmp->chatid[0] = c0; currutmp->mode = mode0; currstat = currstat0; @@ -670,7 +669,7 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) uin->pager == 2 || (uin->pager == 4 && !(fri_stat & HFM)))) - outmsg("\033[1;33;41m糟糕! 對方防水了! \033[37m~>_<~\033[m"); + outmsg(SHM->i18nstr[cuser.language][1960]); else { int write_pos = uin->msgcount; /* try to avoid race */ if ( write_pos < (MAX_MSGS - 1) ) { /* race here */ @@ -685,7 +684,7 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) sizeof(uin->msgs[write_pos].last_call_in)); uin->pager = pager0; } else if (flag != 2) - outmsg("\033[1;33;41m糟糕! 對方不行了! (收到太多水球) \033[37m@_@\033[m"); + outmsg(SHM->i18nstr[cuser.language][1961]); if (uin->msgcount >= 1 && #ifdef NOKILLWATERBALL @@ -694,11 +693,11 @@ my_write(pid_t pid, char *prompt, char *id, int flag, userinfo_t * puin) (uin->pid <= 0 || kill(uin->pid, SIGUSR2) == -1) #endif && flag != 2) - outmsg("\033[1;33;41m糟糕! 沒打中! \033[37m~>_<~\033[m"); + outmsg(SHM->i18nstr[cuser.language][1962]); else if (uin->msgcount == 1 && flag != 2) - outmsg("\033[1;33;44m水球砸過去了! \033[37m*^o^*\033[m"); + outmsg(SHM->i18nstr[cuser.language][1963]); else if (uin->msgcount > 1 && uin->msgcount < MAX_MSGS && flag != 2) - outmsg("\033[1;33;44m再補上一粒! \033[37m*^o^*\033[m"); + outmsg(SHM->i18nstr[cuser.language][1964]); } clrtoeol(); @@ -739,10 +738,10 @@ t_display_new(void) if (water[0].count && watermode > 0) { move(1, 0); - outs("───────水─球─回─顧───"); + outs(SHM->i18nstr[cuser.language][1965]); outs(WATERMODE(WATER_ORIG) ? - "──────用[Ctrl-R Ctrl-T]鍵切換─────" : - "用[Ctrl-R Ctrl-T Ctrl-F Ctrl-G ]鍵切換────"); + SHM->i18nstr[cuser.language][1966] : + SHM->i18nstr[cuser.language][1967]); if (WATERMODE(WATER_NEW)) { move(2, 0); clrtoeol(); @@ -763,7 +762,7 @@ t_display_new(void) } else prints(" "); else - prints("%s 全部 \033[m", + prints(SHM->i18nstr[cuser.language][1968], water_which == &water[0] ? "\033[1;33;47m " : " " ); @@ -783,8 +782,7 @@ t_display_new(void) water_which->msg[a].last_call_in, len, ""); else - prints("\033[1;44m>\033[1;33;47m%s " - "\033[37;45m %s \033[m%*s", + prints("\033[1;44m>\033[1;33;47m%s \033[37;45m %s \033[m%*s", water_which->msg[a].userid, water_which->msg[a].last_call_in, len, ""); @@ -797,8 +795,7 @@ t_display_new(void) i++; } move(i + off, 0); - outs("──────────────────────" - "─────────────────"); + outs(SHM->i18nstr[cuser.language][1969]); if (WATERMODE(WATER_NEW)) while (i++ <= water[0].count) { move(i + off, 0); @@ -819,10 +816,8 @@ t_display(void) setuserfile(genbuf, fn_writelog); if (more(genbuf, YEA) != -1) { move(b_lines - 4, 0); - outs("\033[1;33;45m★現在 Ptt提供創新的水球整理程式★\033[m\n" - "您將水球存至信箱後, 在【郵件選單】該信件前按 u,\n" - "系統即會將您的水球紀錄重新整理後寄送給您唷! \n"); - getdata(b_lines - 1, 0, "清除(C) 移至備忘錄(M) 保留(R) (C/M/R)?[R]", + outs(SHM->i18nstr[cuser.language][1970]); + getdata(b_lines - 1, 0, SHM->i18nstr[cuser.language][1971], ans, sizeof(ans), LCECHO); if (*ans == 'm') { fileheader_t mymail; @@ -832,8 +827,8 @@ t_display(void) stampfile(buf, &mymail); mymail.filemode = FILE_READ ; - strlcpy(mymail.owner, "[備.忘.錄]", sizeof(mymail.owner)); - strlcpy(mymail.title, "熱線記錄", sizeof(mymail.title)); + strlcpy(mymail.owner, SHM->i18nstr[cuser.language][1972], sizeof(mymail.owner)); + strlcpy(mymail.title, SHM->i18nstr[cuser.language][1973], sizeof(mymail.title)); sethomedir(title, cuser.userid); Rename(genbuf, buf); append_record(title, &mymail, sizeof(mymail)); @@ -1013,7 +1008,7 @@ do_talk(int fd) setutmpmode(TALK); ch = 58 - strlen(save_page_requestor); - snprintf(genbuf, sizeof(genbuf), "%s【%s", cuser.userid, cuser.username); + snprintf(genbuf, sizeof(genbuf), SHM->i18nstr[cuser.language][1974], cuser.userid, cuser.username); i = ch - strlen(genbuf); if (i >= 0) i = (i >> 1) + 1; @@ -1025,8 +1020,7 @@ do_talk(int fd) data[i] = '\0'; snprintf(mid_line, sizeof(mid_line), - "\033[1;46;37m 談天說地 \033[45m%s%s】" - " 與 %s%s\033[0m", data, genbuf, save_page_requestor, data); + SHM->i18nstr[cuser.language][1975], data, genbuf, save_page_requestor, data); memset(&mywin, 0, sizeof(mywin)); memset(&itswin, 0, sizeof(itswin)); @@ -1057,7 +1051,7 @@ do_talk(int fd) break; move(b_lines, 0); clrtoeol(); - outs("再按一次 Ctrl-C 就正式中止談話囉!"); + outs(SHM->i18nstr[cuser.language][1976]); im_leaving = 1; continue; } @@ -1098,13 +1092,13 @@ do_talk(int fd) char ans[4]; int i; - fprintf(flog, "\n\033[33;44m離別畫面 [%s] ... \033[m\n", + fprintf(flog, SHM->i18nstr[cuser.language][1977], Cdatelite(&now)); for (i = 0; i < scr_lns; i++) fprintf(flog, "%.*s\n", big_picture[i].len, big_picture[i].data); fclose(flog); more(fpath, NA); - getdata(b_lines - 1, 0, "清除(C) 移至備忘錄(M). (C/M)?[C]", + getdata(b_lines - 1, 0, SHM->i18nstr[cuser.language][1978], ans, sizeof(ans), LCECHO); if (*ans == 'm') { fileheader_t mymail; @@ -1113,9 +1107,9 @@ do_talk(int fd) sethomepath(genbuf, cuser.userid); stampfile(genbuf, &mymail); mymail.filemode = FILE_READ ; - strlcpy(mymail.owner, "[備.忘.錄]", sizeof(mymail.owner)); + strlcpy(mymail.owner, SHM->i18nstr[cuser.language][1979], sizeof(mymail.owner)); snprintf(mymail.title, sizeof(mymail.title), - "對話記錄 \033[1;36m(%s)\033[m", + SHM->i18nstr[cuser.language][1980], getuserid(currutmp->destuid)); sethomedir(title, cuser.userid); Rename(fpath, genbuf); @@ -1164,7 +1158,7 @@ int make_connection_to_somebody(userinfo_t *uin, int timeout){ if (pid > 0) kill(pid, SIGUSR1); clear(); - prints("正呼叫 %s.....\n鍵入 Ctrl-D 中止....", uin->userid); + prints(SHM->i18nstr[cuser.language][1981], uin->userid); listen(sock, 1); add_io(sock, timeout); @@ -1176,7 +1170,7 @@ int make_connection_to_somebody(userinfo_t *uin, int timeout){ if (!ch && uin->chatid[0] == 1 && uin->destuip == currutmp - &SHM->uinfo[0]) { bell(); - outmsg("對方回應中..."); + outmsg(SHM->i18nstr[cuser.language][1982]); refresh(); } else if (ch == EDITING || ch == TALK || ch == CHATING || ch == PAGE || ch == MAILALL || ch == MONITOR || @@ -1186,7 +1180,7 @@ int make_connection_to_somebody(userinfo_t *uin, int timeout){ add_io(0, 0); close(sock); currutmp->sockactive = currutmp->destuid = 0; - vmsg("人家在忙啦"); + vmsg(SHM->i18nstr[cuser.language][1983]); unlockutmpmode(); return -1; } else { @@ -1194,7 +1188,7 @@ int make_connection_to_somebody(userinfo_t *uin, int timeout){ add_io(sock, 20); /* added for linux... achen */ #endif move(0, 0); - outs("再"); + outs(SHM->i18nstr[cuser.language][1984]); bell(); uin->destuip = currutmp - &SHM->uinfo[0]; @@ -1245,31 +1239,30 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) kill(uin->pid, SIGUSR1); sock = make_connection_to_somebody(uin, 20); if (sock < 0) - vmsg("無法建立連線"); + vmsg(SHM->i18nstr[cuser.language][1985]); else { strlcpy(currutmp->mateid, uin->userid, sizeof(currutmp->mateid)); chc(sock, CHC_WATCH); } } else - outs("人家在忙啦"); + outs(SHM->i18nstr[cuser.language][1986]); } else if (!HAS_PERM(PERM_SYSOP) && (((fri_stat & HRM) && !(fri_stat & HFM)) || ((!uin->pager) && !(fri_stat & HFM)))) { - outs("對方關掉呼叫器了"); + outs(SHM->i18nstr[cuser.language][1987]); } else if (!HAS_PERM(PERM_SYSOP) && (((fri_stat & HRM) && !(fri_stat & HFM)) || uin->pager == 2)) { - outs("對方拔掉呼叫器了"); + outs(SHM->i18nstr[cuser.language][1988]); } else if (!HAS_PERM(PERM_SYSOP) && !(fri_stat & HFM) && uin->pager == 4) { - outs("對方只接受好友的呼叫"); + outs(SHM->i18nstr[cuser.language][1989]); } else if (!(pid = uin->pid) /* || (kill(pid, 0) == -1) */ ) { //resetutmpent(); outs(msg_usr_left); } else { showplans(uin->userid); - getdata(2, 0, "要和他(她) (T)談天(F)下五子棋(P)鬥寵物" - "(C)下象棋(D)下暗棋(N)沒事找錯人了?[N] ", genbuf, 4, LCECHO); + getdata(2, 0, SHM->i18nstr[cuser.language][1990], genbuf, 4, LCECHO); switch (*genbuf) { case 'y': case 't': @@ -1294,8 +1287,8 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) if (!cuser.mychicken.name[0] || !xuser.mychicken.name[0]) error = 2; if (error) { - vmsg(error == 2 ? "並非兩人都養寵物" : - "有一方的寵物正在使用中"); + vmsg(error == 2 ? SHM->i18nstr[cuser.language][1991] : + SHM->i18nstr[cuser.language][1992]); return; } uin->sig = SIG_PK; @@ -1345,41 +1338,41 @@ my_talk(userinfo_t * uin, int fri_stat, char defact) } } else { move(9, 9); - outs("【回音】 "); + outs(SHM->i18nstr[cuser.language][1993]); switch (c) { case 'a': - outs("我現在很忙,請等一會兒再 call 我,好嗎?"); + outs(SHM->i18nstr[cuser.language][1994]); break; case 'b': - prints("對不起,我有事情不能跟你 %s....", sig_des[uin->sig]); + prints(SHM->i18nstr[cuser.language][1995], sig_des(uin->sig)); break; case 'd': - outs("我要離站囉..下次再聊吧.........."); + outs(SHM->i18nstr[cuser.language][1996]); break; case 'c': - outs("請不要吵我好嗎?"); + outs(SHM->i18nstr[cuser.language][1997]); break; case 'e': - outs("找我有事嗎?請先來信唷...."); + outs(SHM->i18nstr[cuser.language][1998]); break; case 'f': { char msgbuf[60]; read(msgsock, msgbuf, 60); - prints("對不起,我現在不能跟你 %s,因為\n", sig_des[uin->sig]); + prints(SHM->i18nstr[cuser.language][1999], sig_des(uin->sig)); move(10, 18); outs(msgbuf); } break; case '1': - prints("%s?先拿100銀兩來..", sig_des[uin->sig]); + prints(SHM->i18nstr[cuser.language][2000], sig_des(uin->sig)); break; case '2': - prints("%s?先拿1000銀兩來..", sig_des[uin->sig]); + prints(SHM->i18nstr[cuser.language][2001], sig_des(uin->sig)); break; default: - prints("我現在不想 %s 啦.....:)", sig_des[uin->sig]); + prints(SHM->i18nstr[cuser.language][2002], sig_des(uin->sig)); } close(msgsock); } @@ -1401,32 +1394,17 @@ t_showhelp() { clear(); - outs("\033[36m【 休閒聊天使用說明 】\033[m\n\n" - "(←)(e) 結束離開 (h) 看使用說明\n" - "(↑)/(↓)(n) 上下移動 (TAB) 切換排序方式\n" - "(PgUp)(^B) 上頁選單 ( )(PgDn)(^F) 下頁選單\n" - "(Hm)/($)(Ed) 首/尾 (S) 來源/好友描述/戰績 切換\n" - "(m) 寄信 (q/c) 查詢網友/寵物\n" - "(r) 閱\讀信件 (l/C) 看上次熱訊/切換隱身\n" - "(f) 全部/好友列表 (數字) 跳至該使用者\n" - "(p) 切換呼叫器 (g/i) 給錢/切換心情\n" - "(a/d/o) 好友 增加/刪除/修改 (/)(s) 網友ID/暱稱搜尋\n" - "(N) 修改暱稱"); + outs(SHM->i18nstr[cuser.language][2003]); if (HAS_PERM(PERM_PAGE)) { - outs("\n\n\033[36m【 交談專用鍵 】\033[m\n" - "(→)(t)(Enter) 跟他/她聊天\n" - "(w) 熱線 Call in\n" - "(^W)切換水球方式 一般 / 進階 / 未來\n" - "(b) 對好友廣播 (一定要在好友列表中)\n" - "(^R) 即時回應 (有人 Call in 你時)"); + outs(SHM->i18nstr[cuser.language][2004]); } if (HAS_PERM(PERM_SYSOP)) { - outs("\n\n\033[36m【 站長專用鍵 】\033[m\n\n"); - outs("(u)/(H) 設定使用者資料/切換隱形模式\n"); - outs("(K) 把壞蛋踢出去\n"); + outs(SHM->i18nstr[cuser.language][2005]); + outs(SHM->i18nstr[cuser.language][2006]); + outs(SHM->i18nstr[cuser.language][2007]); #if defined(SHOWBOARD) && defined(DEBUG) - outs("(Y) 顯示正在看什麼板\n"); + outs(SHM->i18nstr[cuser.language][2008]); #endif } pressanykey(); @@ -1715,10 +1693,10 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, int show_pid, int myfriend, int friendme, int bfriend, int badfriend) { char *msg_pickup_way[PICKUP_WAYS] = { - "嗨! 朋友", "網友代號", "網友動態", "發呆時間", "來自何方", " 五子棋 ", " 象棋 " + SHM->i18nstr[cuser.language][2009], SHM->i18nstr[cuser.language][2010], SHM->i18nstr[cuser.language][2011], SHM->i18nstr[cuser.language][2012], SHM->i18nstr[cuser.language][2013], SHM->i18nstr[cuser.language][2014], SHM->i18nstr[cuser.language][2015] }; char *MODE_STRING[MAX_SHOW_MODE] = { - "故鄉", "好友描述", "五子棋戰績", "象棋戰績" + SHM->i18nstr[cuser.language][2016], SHM->i18nstr[cuser.language][2017], SHM->i18nstr[cuser.language][2018], SHM->i18nstr[cuser.language][2019] }; char pagerchar[5] = "* -Wf"; @@ -1731,29 +1709,24 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, #endif if (drawall) { - showtitle((cuser.uflag & FRIEND_FLAG) ? "好友列表" : "休閒聊天", + showtitle((cuser.uflag & FRIEND_FLAG) ? SHM->i18nstr[cuser.language][2020] : SHM->i18nstr[cuser.language][2021], BBSName); - prints("\n" - "\033[7m %s P%c代號 %-17s%-17s%-13s%-10s\033[m\n", + prints(SHM->i18nstr[cuser.language][2022], show_uid ? "UID" : "No.", (HAS_PERM(PERM_SEECLOAK) || HAS_PERM(PERM_SYSOP)) ? 'C' : ' ', - "暱稱", + SHM->i18nstr[cuser.language][2023], MODE_STRING[show_mode], - show_board ? "Board" : "動態", - show_pid ? " PID" : "心情 發呆" + show_board ? "Board" : SHM->i18nstr[cuser.language][2024], + show_pid ? " PID" : SHM->i18nstr[cuser.language][2025] ); move(b_lines, 0); - outs("\033[31;47m(TAB/f)\033[30m排序/好友 \033[31m(t)\033[30m聊天 " - "\033[31m(a/d/o)\033[30m交友 \033[31m(q)\033[30m查詢 " - "\033[31m(w)\033[30m水球 \033[31m(m)\033[30m寄信 \033[31m(h)" - "\033[30m線上輔助 \033[m"); + outs(SHM->i18nstr[cuser.language][2026]); } move(1, 0); - prints(" 排序:[%s] 上站人數:%-4d\033[1;32m我的朋友:%-3d" - "\033[33m與我為友:%-3d\033[36m板友:%-4d\033[31m壞人:" - "%-2d\033[m\n", + prints(SHM->i18nstr[cuser.language][2027], msg_pickup_way[pickup_way], SHM->UTMPnumber, myfriend, friendme, currutmp->brc_id ? (bfriend + 1) : 0, badfriend); + for (i = 0, ch = page * nPickups + 1; i < nPickups; ++i, ++ch) { move(i + 3, 0); prints("a"); @@ -1765,7 +1738,7 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, continue; } if (!uentp->pid) { - prints("%5d < 離站中..>\n", ch); + prints(SHM->i18nstr[cuser.language][2028], ch); continue; } if (PERM_HIDE(uentp)) @@ -1792,14 +1765,13 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, #endif if ((uentp->userlevel & PERM_VIOLATELAW)) - memcpy(mind, "通緝", 4); + memcpy(mind, SHM->i18nstr[cuser.language][2029], 4); else if (uentp->birth) - memcpy(mind, "壽星", 4); + memcpy(mind, SHM->i18nstr[cuser.language][2030], 4); else memcpy(mind, uentp->mind, 4); mind[4] = 0; - prints("%5d %c%c%s%-13s%-17.16s\033[m%-17.16s%-13.13s" - "\33[33m%-4.4s\33[m%s\n", + prints("%5d %c%c%s%-13s%-17.16s\033[m%-17.16s%-13.13s\33[33m%-4.4s\33[m%s\n", /* list number or uid */ #ifdef SHOWUID @@ -1842,7 +1814,6 @@ draw_pickup(int drawall, pickup_t * pickup, int pickup_way, #endif ); - //refresh(); } } @@ -1851,7 +1822,7 @@ call_in(userinfo_t * uentp, int fri_stat) { if (iswritable_stat(uentp, fri_stat)) { char genbuf[60]; - snprintf(genbuf, sizeof(genbuf), "Call-In %s :", uentp->userid); + snprintf(genbuf, sizeof(genbuf), SHM->i18nstr[cuser.language][2031], uentp->userid); my_write(uentp->pid, genbuf, uentp->userid, 0, NULL); return 1; } @@ -1962,7 +1933,7 @@ userlist(void) if (HAS_PERM(PERM_SYSOP)) { char buf[100]; snprintf(buf, sizeof(buf), - "代號 [%s]:", currutmp->userid); + SHM->i18nstr[cuser.language][2032], currutmp->userid); if (!getdata(1, 0, buf, currutmp->userid, sizeof(buf), DOECHO)) strlcpy(currutmp->userid, cuser.userid, sizeof(currutmp->userid)); @@ -1974,7 +1945,7 @@ userlist(void) if (HAS_PERM(PERM_SYSOP)) { char buf[100]; - snprintf(buf, sizeof(buf), "故鄉 [%s]:", currutmp->from); + snprintf(buf, sizeof(buf), SHM->i18nstr[cuser.language][2033], currutmp->from); if (!getdata(1, 0, buf, currutmp->from, sizeof(currutmp->from), DOECHO)) strncpy(currutmp->from, buf, 23); @@ -2153,14 +2124,14 @@ userlist(void) char genbuf[60]; char ans[4]; - if (!getdata(0, 0, "廣播訊息:", genbuf, sizeof(genbuf), DOECHO)) + if (!getdata(0, 0, SHM->i18nstr[cuser.language][2034], genbuf, sizeof(genbuf), DOECHO)) break; - if (getdata(0, 0, "確定廣播? [Y]", + if (getdata(0, 0, SHM->i18nstr[cuser.language][2035], ans, sizeof(ans), LCECHO) && *ans == 'n') break; if (!(cuser.uflag & FRIEND_FLAG) && HAS_PERM(PERM_SYSOP)) { - getdata(1, 0, "再次確定站長廣播? [N]", + getdata(1, 0, SHM->i18nstr[cuser.language][2036], ans, sizeof(ans), LCECHO); if( *ans != 'y' && *ans != 'Y' ){ vmsg("abort"); @@ -2209,7 +2180,7 @@ userlist(void) int id; userec_t muser; strlcpy(currauthor, uentp->userid, sizeof(currauthor)); - stand_title("使用者設定"); + stand_title(SHM->i18nstr[cuser.language][2037]); move(1, 0); if ((id = getuser(uentp->userid)) > 0) { memcpy(&muser, &xuser, sizeof(muser)); @@ -2222,12 +2193,12 @@ userlist(void) case 'i':{ char mindbuf[5]; - getdata(b_lines - 1, 0, "現在的心情? ", + getdata(b_lines - 1, 0, SHM->i18nstr[cuser.language][2038], mindbuf, sizeof(mindbuf), DOECHO); - if (strcmp(mindbuf, "通緝") == 0) - vmsg("不可以把自己設通緝啦!"); - else if (strcmp(mindbuf, "壽星") == 0) - vmsg("你不是今天生日欸!"); + if (strcmp(mindbuf, SHM->i18nstr[cuser.language][2039]) == 0) + vmsg(SHM->i18nstr[cuser.language][2040]); + else if (strcmp(mindbuf, SHM->i18nstr[cuser.language][2041]) == 0) + vmsg(SHM->i18nstr[cuser.language][2042]); else memcpy(currutmp->mind, mindbuf, 4); } @@ -2261,7 +2232,7 @@ userlist(void) break; case 'a': if (HAS_PERM(PERM_LOGINOK) && !(fri_stat & IFH)) { - if (getans("確定要加入好友嗎 [N/y]") == 'y') { + if (getans(SHM->i18nstr[cuser.language][2043]) == 'y') { friend_add(uentp->userid, FRIEND_OVERRIDE,uentp->username); friend_load(FRIEND_OVERRIDE); } @@ -2271,7 +2242,7 @@ userlist(void) case 'd': if (HAS_PERM(PERM_LOGINOK) && (fri_stat & IFH)) { - if (getans("確定要刪除好友嗎 [N/y]") == 'y') { + if (getans(SHM->i18nstr[cuser.language][2044]) == 'y') { friend_delete(uentp->userid, FRIEND_OVERRIDE); friend_load(FRIEND_OVERRIDE); } @@ -2296,37 +2267,36 @@ userlist(void) case 'g': if (HAS_PERM(PERM_LOGINOK) && strcmp(uentp->userid, cuser.userid) != 0) { - char genbuf[10]; + char genbuf[10]; move(b_lines - 2, 0); - prints("要給 %s 多少錢呢? ", uentp->userid); - if (getdata(b_lines - 1, 0, "[銀行轉帳]: ", + prints(SHM->i18nstr[cuser.language][2045], uentp->userid); + if (getdata(b_lines - 1, 0, SHM->i18nstr[cuser.language][2046], genbuf, 7, LCECHO)) { clrtoeol(); if ((ch = atoi(genbuf)) <= 0 || ch <= give_tax(ch)){ redrawall = redraw = 1; break; } - if (getans("確定要給 %s %d Ptt 幣嗎? [N/y]", - uentp->userid, ch) != 'y'){ + sprintf(genbuf, SHM->i18nstr[cuser.language][2047], uentp->userid, ch); + if (getans(genbuf) != 'y'){ redrawall = redraw = 1; break; } reload_money(); if (ch > cuser.money) { - outs("\033[41m 現金不足~~\033[m"); + outs(SHM->i18nstr[cuser.language][2048]); } else { deumoney(uentp->uid, ch - give_tax(ch)); - log_file(FN_MONEY, 1, - "%s\t給%s\t%d\t%s\n", cuser.userid, - uentp->userid, ch, ctime(&currutmp->lastact)); + log_file(FN_MONEY, 1, SHM->i18nstr[cuser.language][2050], + cuser.userid,uentp->userid, ch,ctime(&currutmp->lastact)); mail_redenvelop(cuser.userid, uentp->userid, ch - give_tax(ch), 'Y'); - vmsg(" 嗯..還剩下 %d 錢..", demoney(-ch)); + vmsg(SHM->i18nstr[cuser.language][2049],demoney(-ch)); } } else { clrtoeol(); - vmsg(" 交易取消! "); + vmsg(SHM->i18nstr[cuser.language][2051]); } redrawall = redraw = 1; } @@ -2334,8 +2304,8 @@ userlist(void) case 'm': if (HAS_PERM(PERM_BASIC)) { - stand_title("寄 信"); - prints("[寄信] 收信人:%s", uentp->userid); + stand_title(SHM->i18nstr[cuser.language][2052]); + prints(SHM->i18nstr[cuser.language][2053], uentp->userid); my_send(uentp->userid); setutmpmode(LUSERS); redrawall = redraw = 1; @@ -2378,14 +2348,12 @@ userlist(void) case Ctrl('W'): if (HAS_PERM(PERM_LOGINOK)) { int tmp; - char *wm[3] = {"一般", "進階", "未來"}; + char *wm[3] = {SHM->i18nstr[cuser.language][2054], SHM->i18nstr[cuser.language][2055], SHM->i18nstr[cuser.language][2056]}; tmp = cuser.uflag2 & WATER_MASK; cuser.uflag2 -= tmp; tmp = (tmp + 1) % 3; cuser.uflag2 |= tmp; - vmsg("系統提供 一般 進階 未來 三種模式\n" - "在切換後請正常下線再重新登入, 以確保結構正確\n" - "目前切換到 %s 水球模式\n", wm[tmp]); + vmsg(SHM->i18nstr[cuser.language][2057], wm[tmp]); redrawall = redraw = 1; } break; @@ -2399,7 +2367,7 @@ userlist(void) break; case 'N': - oldgetdata(1, 0, "新的暱稱: ", + oldgetdata(1, 0, SHM->i18nstr[cuser.language][2058], cuser.username, sizeof(cuser.username), DOECHO); strcpy(currutmp->username, cuser.username); redrawall = redraw = 1; @@ -2452,8 +2420,7 @@ t_idle(void) char passbuf[PASSLEN]; setutmpmode(IDLE); - getdata(b_lines - 1, 0, "理由:[0]發呆 (1)接電話 (2)覓食 (3)打瞌睡 " - "(4)裝死 (5)羅丹 (6)其他 (Q)沒事?", genbuf, 3, DOECHO); + getdata(b_lines - 1, 0, SHM->i18nstr[cuser.language][2059], genbuf, 3, DOECHO); if (genbuf[0] == 'q' || genbuf[0] == 'Q') { currutmp->mode = mode0; currstat = stat0; @@ -2465,14 +2432,14 @@ t_idle(void) if (currutmp->destuid == 6) if (!cuser.userlevel || - !getdata(b_lines - 1, 0, "發呆的理由:", + !getdata(b_lines - 1, 0, SHM->i18nstr[cuser.language][2060], currutmp->chatid, sizeof(currutmp->chatid), DOECHO)) currutmp->destuid = 0; do { move(b_lines - 2, 0); clrtoeol(); - prints("(鎖定螢幕)發呆原因: %s", (currutmp->destuid != 6) ? - IdleTypeTable[currutmp->destuid] : currutmp->chatid); + prints(SHM->i18nstr[cuser.language][2061], (currutmp->destuid != 6) ? + SHM->i18nstr[cuser.language][1890 + currutmp->destuid] : currutmp->chatid); refresh(); getdata(b_lines - 1, 0, MSG_PASSWD, passbuf, sizeof(passbuf), NOECHO); passbuf[8] = '\0'; @@ -2492,7 +2459,7 @@ t_qchicken(void) { char uident[STRLEN]; - stand_title("查詢寵物"); + stand_title(SHM->i18nstr[cuser.language][2062]); usercomplete(msg_uid, uident); if (uident[0]) chicken_query(uident); @@ -2504,7 +2471,7 @@ t_query(void) { char uident[STRLEN]; - stand_title("查詢網友"); + stand_title(SHM->i18nstr[cuser.language][2063]); usercomplete(msg_uid, uident); if (uident[0]) my_query(uident); @@ -2522,7 +2489,7 @@ t_talk() * if (count_ulist() <= 1){ outs("目前線上只有您一人,快邀請朋友來光臨【" * BBSNAME "】吧!"); return XEASY; } */ - stand_title("打開話匣子"); + stand_title(SHM->i18nstr[cuser.language][2064]); generalnamecomplete(msg_uid, uident, sizeof(uident), SHM->UTMPnumber, completeutmp_compar, @@ -2540,9 +2507,9 @@ t_talk() /* multi-login check */ unum = 1; while ((ucount = count_logins(tuid, 0)) > 1) { - outs("(0) 不想 talk 了...\n"); + outs(SHM->i18nstr[cuser.language][2065]); count_logins(tuid, 1); - getdata(1, 33, "請選擇一個聊天對象 [0]:", genbuf, 4, DOECHO); + getdata(1, 33, SHM->i18nstr[cuser.language][2066], genbuf, 4, DOECHO); unum = atoi(genbuf); if (unum == 0) return 0; @@ -2568,7 +2535,7 @@ reply_connection_request(userinfo_t *uip) if (uip->mode != PAGE) { snprintf(genbuf, sizeof(genbuf), - "%s已停止呼叫,按Enter繼續...", page_requestor); + SHM->i18nstr[cuser.language][2067], page_requestor); getdata(0, 0, genbuf, buf, sizeof(buf), LCECHO); return -1; } @@ -2608,31 +2575,26 @@ talkreply(void) clear(); prints("\n\n"); - prints(" (Y) 讓我們 %s 吧!" - " (A) 我現在很忙,請等一會兒再 call 我\n", sig_des[sig]); - prints(" (N) 我現在不想 %s" - " (B) 對不起,我有事情不能跟你 %s\n", - sig_des[sig], sig_des[sig]); - prints(" (C) 請不要吵我好嗎?" - " (D) 我要離站囉..下次再聊吧.......\n"); - prints(" (E) 有事嗎?請先來信" - " (F) \033[1;33m我自己輸入理由好了...\033[m\n"); - prints(" (1) %s?先拿100銀兩來" - " (2) %s?先拿1000銀兩來..\n\n", sig_des[sig], sig_des[sig]); + prints(SHM->i18nstr[cuser.language][2068], sig_des(sig)); + prints(SHM->i18nstr[cuser.language][2069], + sig_des(sig), sig_des(sig)); + prints(SHM->i18nstr[cuser.language][2070]); + prints(SHM->i18nstr[cuser.language][2071]); + prints(SHM->i18nstr[cuser.language][2072], sig_des(sig), sig_des(sig)); getuser(uip->userid); currutmp->msgs[0].pid = uip->pid; strlcpy(currutmp->msgs[0].userid, uip->userid, sizeof(currutmp->msgs[0].userid)); - strlcpy(currutmp->msgs[0].last_call_in, "呼叫、呼叫,聽到請回答 (Ctrl-R)", + strlcpy(currutmp->msgs[0].last_call_in, SHM->i18nstr[cuser.language][2073], sizeof(currutmp->msgs[0].last_call_in)); - prints("對方來自 [%s],共上站 %d 次,文章 %d 篇\n", + prints(SHM->i18nstr[cuser.language][2074], uip->from, xuser.numlogins, xuser.numposts); showplans(uip->userid); show_call_in(0, 0); snprintf(genbuf, sizeof(genbuf), - "你想跟 %s %s啊?請選擇(Y/N/A/B/C/D/E/F/1/2)[N] ", - page_requestor, sig_des[sig]); + SHM->i18nstr[cuser.language][2075], + page_requestor, sig_des(sig)); getdata(0, 0, genbuf, buf, sizeof(buf), LCECHO); a = reply_connection_request(uip); @@ -2640,8 +2602,8 @@ talkreply(void) buf[0] = 'n'; write(a, buf, 1); if (buf[0] == 'f' || buf[0] == 'F') { - if (!getdata(b_lines, 0, "不能的原因:", genbuf, 60, DOECHO)) - strlcpy(genbuf, "不告訴你咧 !! ^o^", sizeof(genbuf)); + if (!getdata(b_lines, 0, SHM->i18nstr[cuser.language][2076], genbuf, 60, DOECHO)) + strlcpy(genbuf, SHM->i18nstr[cuser.language][2077], sizeof(genbuf)); write(a, genbuf, 60); } |