aboutsummaryrefslogtreecommitdiffstats
path: root/chinese
diff options
context:
space:
mode:
authorkeith <keith@FreeBSD.org>2000-11-18 03:06:54 +0800
committerkeith <keith@FreeBSD.org>2000-11-18 03:06:54 +0800
commitd3ca4e742df94d84386391a38e719189db25aadd (patch)
tree38d2b821ccc99ba10cf9bab3d71498087c3a2e81 /chinese
parent934aac66cdbe46697ca68b78a214b053f1200792 (diff)
downloadfreebsd-ports-gnome-d3ca4e742df94d84386391a38e719189db25aadd.tar.gz
freebsd-ports-gnome-d3ca4e742df94d84386391a38e719189db25aadd.tar.zst
freebsd-ports-gnome-d3ca4e742df94d84386391a38e719189db25aadd.zip
Upgrade from 4.21 to 4.30.
Especially thanks to the maintainer, Tai-hwa Liang (avatar), for ending those long lasting evil +400k files/patch-*. :-) According to kkenn, pine4's security will exist until it's totally rewritten, so I'll leave pkg-install untouched, which shows the security warning. PR: ports/22436
Diffstat (limited to 'chinese')
-rw-r--r--chinese/pine4/Makefile37
-rw-r--r--chinese/pine4/distinfo3
-rw-r--r--chinese/pine4/files/dot.pinerc.pgp.sample6
-rw-r--r--chinese/pine4/files/dot.pinerc.sample10
-rw-r--r--chinese/pine4/files/patch-aa29
-rw-r--r--chinese/pine4/files/patch-ab15
-rw-r--r--chinese/pine4/files/patch-ac15
-rw-r--r--chinese/pine4/files/patch-ad19
-rw-r--r--chinese/pine4/files/patch-af20
-rw-r--r--chinese/pine4/files/patch-ag12
-rw-r--r--chinese/pine4/files/patch-ah33
-rw-r--r--chinese/pine4/files/patch-ai618
-rw-r--r--chinese/pine4/files/patch-aj365
-rw-r--r--chinese/pine4/files/patch-ak187
-rw-r--r--chinese/pine4/files/patch-al11
-rw-r--r--chinese/pine4/files/patch-am11
-rw-r--r--chinese/pine4/files/patch-an11
-rw-r--r--chinese/pine4/files/patch-ao272
-rw-r--r--chinese/pine4/files/patch-ap20
-rw-r--r--chinese/pine4/files/patch-aq117
-rw-r--r--chinese/pine4/files/patch-ar11
-rw-r--r--chinese/pine4/files/patch-as233
-rw-r--r--chinese/pine4/files/patch-au51
-rw-r--r--chinese/pine4/files/patch-av1435
-rw-r--r--chinese/pine4/files/patch-aw698
-rw-r--r--chinese/pine4/files/patch-ax1256
-rw-r--r--chinese/pine4/files/patch-ay165
-rw-r--r--chinese/pine4/files/patch-az21
-rw-r--r--chinese/pine4/files/patch-ba1126
-rw-r--r--chinese/pine4/files/patch-bb319
-rw-r--r--chinese/pine4/files/patch-bc652
-rw-r--r--chinese/pine4/files/patch-bd561
-rw-r--r--chinese/pine4/files/patch-be84
-rw-r--r--chinese/pine4/files/patch-bf2316
-rw-r--r--chinese/pine4/files/patch-bg329
-rw-r--r--chinese/pine4/files/patch-bh145
-rw-r--r--chinese/pine4/files/patch-bi219
-rw-r--r--chinese/pine4/files/patch-bj109
-rw-r--r--chinese/pine4/files/patch-bk1002
-rw-r--r--chinese/pine4/files/patch-bl38
-rw-r--r--chinese/pine4/files/patch-bm40
-rw-r--r--chinese/pine4/files/patch-bn56
-rw-r--r--chinese/pine4/files/patch-bo65
-rw-r--r--chinese/pine4/files/patch-bp17
-rw-r--r--chinese/pine4/files/patch-br57
-rw-r--r--chinese/pine4/files/patch-bs25
-rw-r--r--chinese/pine4/files/patch-bt27
-rw-r--r--chinese/pine4/files/patch-bu21
-rw-r--r--chinese/pine4/files/patch-bv90
-rw-r--r--chinese/pine4/files/patch-bw61
-rw-r--r--chinese/pine4/files/patch-bx35
-rw-r--r--chinese/pine4/files/patch-bz20
-rw-r--r--chinese/pine4/files/pgpdecode2
-rw-r--r--chinese/pine4/files/pgpencrypt2
-rw-r--r--chinese/pine4/files/pgpsign2
-rw-r--r--chinese/pine4/files/pine.conf2
-rw-r--r--chinese/pine4/pkg-descr11
57 files changed, 40 insertions, 13074 deletions
diff --git a/chinese/pine4/Makefile b/chinese/pine4/Makefile
index 84929d6d0688..da178178e56a 100644
--- a/chinese/pine4/Makefile
+++ b/chinese/pine4/Makefile
@@ -6,17 +6,20 @@
#
PORTNAME= pine
-PORTVERSION= 4.21
-PORTREVISION= 1
+PORTVERSION= 4.30
+PORTREVISION= 0
CATEGORIES= chinese mail news
MASTER_SITES= ftp://ftp.cac.washington.edu/pine/
-DISTNAME= pine${PORTVERSION}
+DISTNAME= ${PORTNAME}${PORTVERSION}
-MAINTAINER= avatar@www.mmlab.cse.yzu.edu.tw
+PATCH_SITES= ftp://freebsd.ntu.edu.tw/OS/FreeBSD/taiwan/users/benedick/patch/
+PATCHFILES= patch-${PORTNAME}-${PORTVERSION}.gz
-NO_LATEST_LINK= yes
+MAINTAINER= avatar@mmlab.cse.yzu.edu.tw
-MAN1= pine.1 pico.1 pilot.1
+NO_LATEST_LINK= yes
+
+MAN1= pine.1 pico.1 pilot.1
pre-fetch:
.if !defined(BATCH) && !defined(PACKAGE_BUILDING)
@@ -49,12 +52,24 @@ do-install:
${INSTALL_PROGRAM} ${WRKSRC}/bin/pico ${PREFIX}/bin/pico
${INSTALL_PROGRAM} ${WRKSRC}/bin/pilot ${PREFIX}/bin/pilot
${INSTALL_PROGRAM} ${WRKSRC}/bin/pine ${PREFIX}/bin/pine
- ${INSTALL_SCRIPT} ${FILESDIR}/pgpencrypt ${PREFIX}/bin/pgpencrypt
- ${INSTALL_SCRIPT} ${FILESDIR}/pgpdecode ${PREFIX}/bin/pgpdecode
- ${INSTALL_SCRIPT} ${FILESDIR}/pgpsign ${PREFIX}/bin/pgpsign
- ${INSTALL_DATA} ${FILESDIR}/dot.pinerc.sample \
+ ${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
+ < ${FILESDIR}/pgpdecode > ${WRKSRC}/bin/pgpdecode
+ ${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
+ < ${FILESDIR}/pgpencrypt > ${WRKSRC}/bin/pgpencrypt
+ ${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
+ < ${FILESDIR}/pgpsign > ${WRKSRC}/bin/pgpsign
+ ${INSTALL_SCRIPT} ${WRKSRC}/bin/pgpencrypt ${PREFIX}/bin/pgpencrypt
+ ${INSTALL_SCRIPT} ${WRKSRC}/bin/pgpdecode ${PREFIX}/bin/pgpdecode
+ ${INSTALL_SCRIPT} ${WRKSRC}/bin/pgpsign ${PREFIX}/bin/pgpsign
+ ${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
+ < ${FILESDIR}/dot.pinerc.sample \
+ > ${WRKSRC}/dot.pinerc.sample
+ ${INSTALL_DATA} ${WRKSRC}/dot.pinerc.sample \
${PREFIX}/etc/dot.pinerc.sample
- ${INSTALL_DATA} ${FILESDIR}/dot.pinerc.pgp.sample \
+ ${SED} -e 's,@@PREFIX@@,${PREFIX},g' \
+ < ${FILESDIR}/dot.pinerc.pgp.sample \
+ > ${WRKSRC}/dot.pinerc.pgp.sample
+ ${INSTALL_DATA} ${WRKSRC}/dot.pinerc.pgp.sample \
${PREFIX}/etc/dot.pinerc.pgp.sample
${INSTALL_MAN} ${WRKSRC}/doc/pico.1 ${PREFIX}/man/man1/pico.1
${INSTALL_MAN} ${WRKSRC}/doc/pilot.1 ${PREFIX}/man/man1/pilot.1
diff --git a/chinese/pine4/distinfo b/chinese/pine4/distinfo
index 2c71984e0b32..a50a54ef4d1e 100644
--- a/chinese/pine4/distinfo
+++ b/chinese/pine4/distinfo
@@ -1 +1,2 @@
-MD5 (pine4.21.tar.gz) = 9252a061387de806f8aa1ced885d41f6
+MD5 (pine4.30.tar.gz) = 21e16ae355a3c78cbe128876e3e65350
+MD5 (patch-pine-4.30.gz) = fc0237a410bc9489ffaf155e7b65c6d4
diff --git a/chinese/pine4/files/dot.pinerc.pgp.sample b/chinese/pine4/files/dot.pinerc.pgp.sample
index 1f7df9e4fe2b..512509a30448 100644
--- a/chinese/pine4/files/dot.pinerc.pgp.sample
+++ b/chinese/pine4/files/dot.pinerc.pgp.sample
@@ -5,12 +5,12 @@ feature-list=compose-send-offers-first-filter
# This variable takes a list of programs that message text is piped into
# after MIME decoding, prior to display.
-display-filters="-----BEGIN PGP" /usr/local/bin/pgpdecode
+display-filters="-----BEGIN PGP" @@PREFIX@@/bin/pgpdecode
# This defines a program that message text is piped into before MIME
# encoding, prior to sending
-sending-filters=/usr/local/bin/pgpsign,
- /usr/local/bin/pgpencrypt _RECIPIENTS_
+sending-filters=@@PREFIX@@/bin/pgpsign,
+ @@PREFIX@@/bin/pgpencrypt _RECIPIENTS_
# hook, to get rid of the sucking 'quoted printable' ;-))
# enable-8bit-esmtp-negotiation
diff --git a/chinese/pine4/files/dot.pinerc.sample b/chinese/pine4/files/dot.pinerc.sample
index 88e352fec011..b8e7cfa8ea67 100644
--- a/chinese/pine4/files/dot.pinerc.sample
+++ b/chinese/pine4/files/dot.pinerc.sample
@@ -126,7 +126,7 @@ addrbook-sort-rule=
# Reflects capabilities of the display you have. Default: US-ASCII.
# Typical alternatives include ISO-8859-x, (x is a number between 1 and 9).
-character-set=ISO-8859-1
+character-set=big5
# Specifies the program invoked by ^_ in the Composer,
# or the "enable-alternate-editor-implicitly" feature.
@@ -207,12 +207,12 @@ operating-dir=
# This variable takes a list of programs that message text is piped into
# after MIME decoding, prior to display.
-display-filters="-----BEGIN PGP" /usr/local/bin/pgpdecode
+display-filters="-----BEGIN PGP" @@PREFIX@@/bin/pgpdecode
# This defines a program that message text is piped into before MIME
# encoding, prior to sending
-sending-filters=/usr/local/bin/pgpsign,
- /usr/local/bin/pgpencrypt _RECIPIENTS_
+sending-filters=@@PREFIX@@/bin/pgpsign,
+ @@PREFIX@@/bin/pgpencrypt _RECIPIENTS_
# A list of alternate addresses the user is known by
alt-addresses=
@@ -310,7 +310,7 @@ user-input-timeout=
# Sets the name of the command used to open a UNIX remote shell connection.
# The default is tyically /usr/ucb/rsh.
-rsh-path=/usr/local/bin/ssh
+rsh-path=/usr/bin/ssh
# Sets the format of the command used to open a UNIX remote
# shell connection. The default is "%s %s -l %s exec /etc/r%sd"
diff --git a/chinese/pine4/files/patch-aa b/chinese/pine4/files/patch-aa
deleted file mode 100644
index 324a3658b40b..000000000000
--- a/chinese/pine4/files/patch-aa
+++ /dev/null
@@ -1,29 +0,0 @@
---- imap/src/osdep/unix/Makefile.orig Wed Nov 17 10:26:06 1999
-+++ imap/src/osdep/unix/Makefile Sun Apr 2 12:22:00 2000
-@@ -86,7 +86,7 @@
- # Commands possibly overriden by the individual port
-
- ARRC=ar rc
--CC=cc
-+#CC=cc
- LN=ln -s
- RANLIB=ranlib
-
-@@ -104,7 +104,7 @@
- dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
- rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
- unix.o mbox.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o
--CFLAGS=$(BASECFLAGS) $(EXTRACFLAGS)
-+CFLAGS+=$(BASECFLAGS) $(EXTRACFLAGS)
- MAKE=make
- MV=mv
- RM=rm -rf
-@@ -194,7 +194,7 @@
- SPOOLDIR=/var \
- ACTIVEFILE=/usr/local/news/lib/active \
- RSHPATH=/usr/bin/rsh \
-- BASECFLAGS="-g -O -pipe -DNFSKLUDGE" \
-+ BASECFLAGS="-pipe -DNFSKLUDGE" \
- BASELDFLAGS="-lcrypt"
-
- bsi: # BSD/i386
diff --git a/chinese/pine4/files/patch-ab b/chinese/pine4/files/patch-ab
deleted file mode 100644
index 65fd6198a92a..000000000000
--- a/chinese/pine4/files/patch-ab
+++ /dev/null
@@ -1,15 +0,0 @@
---- imap/src/osdep/unix/os_bsi.h.orig Tue Feb 9 14:46:59 1999
-+++ imap/src/osdep/unix/os_bsi.h Thu Oct 14 10:53:41 1999
-@@ -37,7 +37,12 @@
- #include <unistd.h>
- #include <string.h>
- #include <sys/types.h>
-+#ifdef __FreeBSD__
-+#include <dirent.h>
-+#define direct dirent
-+#else
- #include <sys/dir.h>
-+#endif
- #include <fcntl.h>
- #include <syslog.h>
- #include <sys/file.h>
diff --git a/chinese/pine4/files/patch-ac b/chinese/pine4/files/patch-ac
deleted file mode 100644
index f7d6cc0fb680..000000000000
--- a/chinese/pine4/files/patch-ac
+++ /dev/null
@@ -1,15 +0,0 @@
---- imap/src/osdep/unix/env_unix.c.orig Thu Oct 14 12:37:16 1999
-+++ imap/src/osdep/unix/env_unix.c Thu Oct 14 13:21:27 1999
-@@ -825,7 +825,11 @@
- }
- close (pi[0]); close (pi[1]);
- }
-- if (lockEaccesError) {/* punt silently if paranoid site */
-+ if (
-+#ifdef __FreeBSD__
-+ strncmp(base->lock,"/var/mail/",10) && /* /var/mail/... isn't lockable */
-+#endif
-+ lockEaccesError) {/* punt silently if paranoid site */
- sprintf (tmp,"Mailbox vulnerable - directory %.80s",hitch);
- if (s = strrchr (tmp,'/')) *s = '\0';
- strcat (tmp," must have 1777 protection");
diff --git a/chinese/pine4/files/patch-ad b/chinese/pine4/files/patch-ad
deleted file mode 100644
index 0fa04dc80acc..000000000000
--- a/chinese/pine4/files/patch-ad
+++ /dev/null
@@ -1,19 +0,0 @@
---- imap/Makefile.orig Thu Sep 30 14:03:17 1999
-+++ imap/Makefile Thu Oct 14 10:53:41 1999
-@@ -389,12 +389,12 @@
- $(TOOLS)/$@ "$(LN)" src/charset c-client
- sh -c '(test -d src/kerberos) && ($(LN) `pwd`/src/kerberos/* c-client) || true'
- $(TOOLS)/$@ "$(LN)" src/osdep/$(SYSTEM) c-client
-- $(TOOLS)/$@ "$(LN)" src/mtest mtest
-- $(TOOLS)/$@ "$(LN)" src/ipopd ipopd
-- $(TOOLS)/$@ "$(LN)" src/imapd imapd
-+# $(TOOLS)/$@ "$(LN)" src/mtest mtest
-+# $(TOOLS)/$@ "$(LN)" src/ipopd ipopd
-+# $(TOOLS)/$@ "$(LN)" src/imapd imapd
- $(LN) $(TOOLS)/$@ .
-
--build: OSTYPE rebuild rebuildclean bundled
-+build: OSTYPE rebuild rebuildclean # bundled
-
- OSTYPE:
- @echo Building c-client for $(OS)...
diff --git a/chinese/pine4/files/patch-af b/chinese/pine4/files/patch-af
deleted file mode 100644
index 1d9c89032c99..000000000000
--- a/chinese/pine4/files/patch-af
+++ /dev/null
@@ -1,20 +0,0 @@
---- pico/osdep/os-bsf.h.orig Thu Oct 8 06:10:21 1998
-+++ pico/osdep/os-bsf.h Thu Oct 14 10:53:41 1999
-@@ -23,7 +23,7 @@
-
- #define USE_DIRENT
- #include <sys/types.h>
--#include <sys/dir.h>
-+#include <dirent.h>
- #include <stdlib.h>
- #include <string.h>
-
-@@ -152,7 +152,7 @@
- /*
- * Place where mail gets delivered (for pico's new mail checking)
- */
--#define MAILDIR "/usr/spool/mail"
-+#define MAILDIR "/var/mail"
-
- /*
- * What and where the tool that checks spelling is located. If this is
diff --git a/chinese/pine4/files/patch-ag b/chinese/pine4/files/patch-ag
deleted file mode 100644
index 11ba58da0c6c..000000000000
--- a/chinese/pine4/files/patch-ag
+++ /dev/null
@@ -1,12 +0,0 @@
---- pico/osdep/term.cap.orig Thu Jul 8 07:25:22 1999
-+++ pico/osdep/term.cap Thu Oct 14 10:53:41 1999
-@@ -272,7 +272,8 @@
- _kppu = tgetstr("kP", &p);
- _kppd = tgetstr("kN", &p);
- _kphome = tgetstr("kh", &p);
-- _kpend = tgetstr("kH", &p);
-+ if((_kpend = tgetstr("@7", &p)) == NULL)
-+ _kpend = tgetstr("kH",&p);
- _kpdel = tgetstr("kD", &p);
- _kf1 = tgetstr("k1", &p);
- _kf2 = tgetstr("k2", &p);
diff --git a/chinese/pine4/files/patch-ah b/chinese/pine4/files/patch-ah
deleted file mode 100644
index dd4456899264..000000000000
--- a/chinese/pine4/files/patch-ah
+++ /dev/null
@@ -1,33 +0,0 @@
---- pico/attach.c.orig Fri May 28 07:10:00 1999
-+++ pico/attach.c Thu Oct 14 10:53:41 1999
-@@ -75,12 +75,12 @@
- int n;
-
- menu_attach[n = 0].name = "^T";
-- menu_attach[n].label = "To Files";
-+ menu_attach[n].label = "檔案列表";
- menu_attach[n].key = (CTRL|'T');
-
- if(gmode & MDCMPLT){
- menu_attach[++n].name = "TAB";
-- menu_attach[n].label = "Complete";
-+ menu_attach[n].label = "完成";
- menu_attach[n].key = (CTRL|'I');
- }
-
-@@ -102,12 +102,12 @@
-
- menu_attach[++n].name = NULL;
- KS_OSDATASET(&menu_attach[0], KS_NONE);
-- status = mlreply(upload ? "Name to give uploaded attachment: "
-- : "File to attach: ",
-+ status = mlreply(upload ? "欲上載的附加檔案名:"
-+ : "欲附加的檔案:",
- fn, NLINE, QNORML, menu_attach);
- }
- else
-- status = mlreply("Attachment comment: ", cmnt, NLINE, QNODQT, NULL);
-+ status = mlreply("附件註解:", cmnt, NLINE, QNODQT, NULL);
-
- switch(status){
- case HELPCH:
diff --git a/chinese/pine4/files/patch-ai b/chinese/pine4/files/patch-ai
deleted file mode 100644
index ce2847a5bc91..000000000000
--- a/chinese/pine4/files/patch-ai
+++ /dev/null
@@ -1,618 +0,0 @@
---- pico/browse.c.orig Sat Oct 2 07:21:05 1999
-+++ pico/browse.c Thu Oct 14 10:53:41 1999
-@@ -126,12 +126,12 @@
-
-
- static KEYMENU menu_browse[] = {
-- {"?", "Get Help", KS_SCREENHELP}, {NULL, NULL, KS_NONE},
-- {NULL, NULL, KS_NONE}, {"-", "Prev Pg", KS_PREVPAGE},
-- {"D", "Delete", KS_NONE}, {"C","Copy", KS_NONE},
-+ {"?", "輔助說明", KS_SCREENHELP}, {NULL, NULL, KS_NONE},
-+ {NULL, NULL, KS_NONE}, {"-", "上一頁", KS_PREVPAGE},
-+ {"D", "刪除", KS_NONE}, {"C","複製", KS_NONE},
- {NULL, NULL, KS_NONE}, {NULL, NULL, KS_NONE},
-- {"W", "Where is", KS_NONE}, {"Spc", "Next Pg", KS_NEXTPAGE},
-- {"R", "Rename", KS_NONE}, {NULL, NULL, KS_NONE}
-+ {"W", "搜尋", KS_NONE}, {"Spc", "下一頁", KS_NEXTPAGE},
-+ {"R", "更名", KS_NONE}, {NULL, NULL, KS_NONE}
- };
- #define QUIT_KEY 1
- #define EXEC_KEY 2
-@@ -333,7 +333,7 @@
- child[0] = '\0';
-
- if((gmode&MDTREE) && !in_oper_tree(dir)){
-- emlwrite("\007Can't read outside of %s in restricted mode", opertree);
-+ emlwrite("\007無法在限制模式中讀取 %s 以外的東西", opertree);
- sleep(2);
- return(0);
- }
-@@ -421,7 +421,7 @@
- else{
- if(timeo && (c == NODATA || time_to_check()))
- if(pico_new_mail())
-- emlwrite("You may possibly have new mail.", NULL);
-+ emlwrite("您可能有新信件。", NULL);
- }
-
- if(km_popped)
-@@ -697,7 +697,7 @@
- gmp->current->fname);
- /* make sure selected isn't a directory or executable */
- if(!LikelyASCII(child)){
-- emlwrite("Can't edit non-text file. Try Launch.", NULL);
-+ emlwrite("無法讀取非文字檔。試試 \"啟動\"。", NULL);
- break;
- }
-
-@@ -727,13 +727,13 @@
- return(0);
- }
-
-- emlwrite("\007Unknown command '%c'", (void *)c);
-+ emlwrite("\007未知的命令 '%c'", (void *)c);
- break;
-
- case 'l': /* run Command */
- case 'L':
- if(!(gmode&MDBRONLY)){
-- emlwrite("\007Unknown command '%c'", (void *)c);
-+ emlwrite("\007未知的命令 '%c'", (void *)c);
- break;
- }
-
-@@ -750,11 +750,11 @@
- {NULL, NULL, 0, KS_NONE},
- };
-
-- status = mlreply("Command to execute: ",
-+ status = mlreply("欲執行的命令:",
- tmp, NLINE, QNORML, opts);
- switch(status){
- case HELPCH:
-- emlwrite("\007No help yet!", NULL);
-+ emlwrite("\007尚無輔助說明!", NULL);
- /* remove break and sleep after help text is installed */
- sleep(3);
- break;
-@@ -765,7 +765,7 @@
- PaintBrowser(gmp, 0, &crow, &ccol);
- break;
- case ABORT:
-- emlwrite("Command cancelled", NULL);
-+ emlwrite("命令已取消", NULL);
- i++;
- break;
- case FALSE:
-@@ -773,7 +773,7 @@
- i++;
-
- if(tmp[0] == '\0'){
-- emlwrite("No command specified", NULL);
-+ emlwrite("尚未下達命令", NULL);
- break;
- }
-
-@@ -792,12 +792,12 @@
- case 'D':
- if(gmp->current->mode == FIODIR){
- /* BUG: if dir is empty it should be deleted */
-- emlwrite("\007Can't delete a directory", NULL);
-+ emlwrite("\007無法刪除該目錄", NULL);
- break;
- }
-
- if(gmode&MDSCUR){ /* not allowed! */
-- emlwrite("Delete not allowed in restricted mode",NULL);
-+ emlwrite("無法在限制模式中使用刪除指令",NULL);
- break;
- }
-
-@@ -808,17 +808,17 @@
- while(i++ < 2){ /* verify twice!! */
- if(i == 1){
- if(fexist(child, "w", (off_t *)NULL) != FIOSUC)
-- strcpy(tmp, "File is write protected! OVERRIDE");
-+ strcpy(tmp, "檔案為防寫! 要跳過防寫保護");
- else
-- sprintf(tmp, "Delete file \"%.*s\"", NLINE - 20, child);
-+ sprintf(tmp, "刪除檔案 \"%.*s\"", NLINE - 20, child);
- }
- else
-- strcpy(tmp, "File CANNOT be UNdeleted! Really delete");
-+ strcpy(tmp, "檔案將無法被反刪除! 確定刪除");
-
- if((status = mlyesno(tmp, FALSE)) != TRUE){
- emlwrite((status == ABORT)
-- ? "Delete Cancelled"
-- : "File Not Deleted",
-+ ? "取消刪除"
-+ : "檔案沒有被刪除",
- NULL);
- break;
- }
-@@ -826,7 +826,7 @@
-
- if(status == TRUE){
- if(unlink(child) < 0){
-- emlwrite("Delete Failed: %s", errstr(errno));
-+ emlwrite("刪除失敗:%s", errstr(errno));
- }
- else{ /* fix up pointers and redraw */
- tp = gmp->current;
-@@ -903,12 +903,12 @@
-
- while(!i){
-
-- status = mlreply("Directory to go to: ", child, NLINE, QNORML,
-+ status = mlreply("切換至哪一個目錄:", child, NLINE, QNORML,
- NULL);
-
- switch(status){
- case HELPCH:
-- emlwrite("\007No help yet!", NULL);
-+ emlwrite("\007尚無輔助說明!", NULL);
- /* remove break and sleep after help text is installed */
- sleep(3);
- break;
-@@ -916,7 +916,7 @@
- PaintBrowser(gmp, 0, &crow, &ccol);
- break;
- case ABORT:
-- emlwrite("Goto cancelled", NULL);
-+ emlwrite("取消切換目錄", NULL);
- i++;
- break;
- case FALSE:
-@@ -927,17 +927,17 @@
- strcpy(child, gethomedir(NULL));
-
- if(!compresspath(gmp->dname, child, NLINE)){
-- emlwrite("Invalid Directory: %s", child);
-+ emlwrite("無效的目錄:%s", child);
- break;
- }
-
- if((gmode&MDSCUR) && homeless(child)){
-- emlwrite("Restricted mode browsing limited to home directory",NULL);
-+ emlwrite("限制模式中僅能瀏覽 home directory",NULL);
- break;
- }
-
- if((gmode&MDTREE) && !in_oper_tree(child)){
-- emlwrite("\007 Can't go outside of %s in restricted mode",
-+ emlwrite("\007 限制模式中無法離開 %s",
- opertree);
- break;
- }
-@@ -954,7 +954,7 @@
- PaintBrowser(gmp, 0, &crow, &ccol);
- }
- else
-- emlwrite("\007Not a directory: \"%s\"", child);
-+ emlwrite("\007\"%s\"不是一個目錄", child);
-
- break;
- default:
-@@ -976,10 +976,10 @@
-
- while(!i){
-
-- switch(status=mlreply("Name of file to add: ", child, NLINE,
-+ switch(status=mlreply("欲新增的檔名:", child, NLINE,
- QFFILE, NULL)){
- case HELPCH:
-- emlwrite("\007No help yet!", NULL);
-+ emlwrite("\007尚無輔助說明!", NULL);
- /* remove break and sleep after help text is installed */
- sleep(3);
- break;
-@@ -987,7 +987,7 @@
- PaintBrowser(gmp, 0, &crow, &ccol);
- break;
- case ABORT:
-- emlwrite("Add File Cancelled", NULL);
-+ emlwrite("取消新增檔案", NULL);
- i++;
- break;
- case FALSE:
-@@ -998,23 +998,23 @@
- i++;
-
- if(child[0] == '\0'){
-- emlwrite("No file named. Add Cancelled.", NULL);
-+ emlwrite("未指定檔名,取消新增檔案。", NULL);
- break;
- }
-
- if(!compresspath(gmp->dname, child, NLINE)){
-- emlwrite("Too many ..'s in name", NULL);
-+ emlwrite("檔名中有太多的 .. 了", NULL);
- break;
- }
-
- if((gmode&MDTREE) && !in_oper_tree(child)){
-- emlwrite("\007Restricted mode allows Add in %s only",
-+ emlwrite("\007限制模式中僅允許\在 %s 中新增檔案",
- opertree);
- break;
- }
-
- if((status = fexist(child, "w", (off_t *)NULL)) == FIOSUC){
-- sprintf(tmp,"File \"%.*s\" already exists!",
-+ sprintf(tmp,"檔案 \"%.*s\" 已存在!",
- NLINE - 20, child);
- emlwrite(tmp, NULL);
- break;
-@@ -1030,7 +1030,7 @@
- }
- else{ /* highlight new file */
- ffclose();
-- emlwrite("Added File \"%s\"", child);
-+ emlwrite("新增檔案 \"%s\"", child);
-
- if((p = strrchr(child, C_FILESEP)) == NULL){
- emlwrite("Problems refiguring browser", NULL);
-@@ -1078,12 +1078,12 @@
- case 'c': /* copy */
- case 'C':
- if(gmp->current->mode == FIODIR){
-- emlwrite("\007Can't copy a directory", NULL);
-+ emlwrite("\007無法複製目錄", NULL);
- break;
- }
-
- if(gmode&MDSCUR){ /* not allowed! */
-- emlwrite("Copy not allowed in restricted mode",NULL);
-+ emlwrite("無法在限制模式中複製檔案",NULL);
- break;
- }
-
-@@ -1092,10 +1092,10 @@
-
- while(!i){
-
-- switch(status=mlreply("Name of new copy: ", child, NLINE,
-+ switch(status=mlreply("新複製檔名:", child, NLINE,
- QFFILE, NULL)){
- case HELPCH:
-- emlwrite("\007No help yet!", NULL);
-+ emlwrite("\007尚無輔助說明!", NULL);
- /* remove break and sleep after help text is installed */
- sleep(3);
- break;
-@@ -1103,7 +1103,7 @@
- PaintBrowser(gmp, 0, &crow, &ccol);
- break;
- case ABORT:
-- emlwrite("Make Copy Cancelled", NULL);
-+ emlwrite("取消複製檔案", NULL);
- i++;
- break;
- case FALSE:
-@@ -1114,33 +1114,33 @@
- i++;
-
- if(child[0] == '\0'){
-- emlwrite("No destination, file not copied", NULL);
-+ emlwrite("未指定目地檔名,檔案沒有被複製。", NULL);
- break;
- }
-
- if(!strcmp(gmp->current->fname, child)){
-- emlwrite("\007Can't copy file on to itself!", NULL);
-+ emlwrite("\007無法將檔案複製至它自己!", NULL);
- break;
- }
-
- if(!compresspath(gmp->dname, child, NLINE)){
-- emlwrite("Too many ..'s in name", NULL);
-+ emlwrite("檔名中有太多的 .. 了", NULL);
- break;
- }
-
- if((gmode&MDTREE) && !in_oper_tree(child)){
-- emlwrite("\007Restricted mode allows Copy in %s only",
-+ emlwrite("\007限制模式中僅允許\在 %s 中複製檔案",
- opertree);
- break;
- }
-
- if((status = fexist(child, "w", (off_t *)NULL)) == FIOSUC){
-- sprintf(tmp,"File \"%.*s\" exists! OVERWRITE",
-+ sprintf(tmp,"檔案 \"%.*s\" 已存在! 要覆蓋\嗎",
- NLINE - 20, child);
- if((status = mlyesno(tmp, 0)) != TRUE){
- emlwrite((status == ABORT)
-- ? "Make copy cancelled"
-- : "File Not Renamed",
-+ ? "取消複製"
-+ : "檔案沒有被複製",
- NULL);
- break;
- }
-@@ -1158,7 +1158,7 @@
- break;
- }
- else{ /* highlight new file */
-- emlwrite("File copied to %s", child);
-+ emlwrite("複製檔案到 %s", child);
-
- if((p = strrchr(child, C_FILESEP)) == NULL){
- emlwrite("Problems refiguring browser", NULL);
-@@ -1201,12 +1201,12 @@
- i = 0;
-
- if(!strcmp(gmp->current->fname, "..")){
-- emlwrite("\007Can't rename \"..\"", NULL);
-+ emlwrite("\007無法更改 \"..\" 的名稱", NULL);
- break;
- }
-
- if(gmode&MDSCUR){ /* not allowed! */
-- emlwrite("Rename not allowed in restricted mode",NULL);
-+ emlwrite("無法在限制模式中更改檔案名",NULL);
- break;
- }
-
-@@ -1214,10 +1214,10 @@
-
- while(!i){
-
-- switch(status=mlreply("Rename file to: ", child, NLINE, QFFILE,
-+ switch(status=mlreply("檔案名稱更改為:", child, NLINE, QFFILE,
- NULL)){
- case HELPCH:
-- emlwrite("\007No help yet!", NULL);
-+ emlwrite("\007尚無輔助說明!", NULL);
- /* remove break and sleep after help text is installed */
- sleep(3);
- break;
-@@ -1225,7 +1225,7 @@
- PaintBrowser(gmp, 0, &crow, &ccol);
- break;
- case ABORT:
-- emlwrite("Rename cancelled", NULL);
-+ emlwrite("取消更改檔案名稱", NULL);
- i++;
- break;
- case FALSE:
-@@ -1238,12 +1238,12 @@
- }
-
- if(!compresspath(gmp->dname, child, NLINE)){
-- emlwrite("Too many ..'s in name", NULL);
-+ emlwrite("檔名中有太多的 .. 了", NULL);
- break;
- }
-
- if((gmode&MDTREE) && !in_oper_tree(child)){
-- emlwrite("\007Restricted mode allows Rename in %s only",
-+ emlwrite("\007限制模式中僅允許\在 %s 中更改檔名",
- opertree);
- break;
- }
-@@ -1251,13 +1251,13 @@
- status = fexist(child, "w", (off_t *)NULL);
- if(status == FIOSUC || status == FIOFNF){
- if(status == FIOSUC){
-- sprintf(tmp,"File \"%.*s\" exists! OVERWRITE",
-+ sprintf(tmp,"檔案 \"%.*s\" 已存在! 要覆蓋\嗎",
- NLINE - 20, child);
-
- if((status = mlyesno(tmp, FALSE)) != TRUE){
- emlwrite((status == ABORT)
-- ? "Rename cancelled"
-- : "Not Renamed",
-+ ? "取消更名"
-+ : "檔案沒有被更名",
- NULL);
- break;
- }
-@@ -1267,7 +1267,7 @@
- gmp->current->fname);
-
- if(rename(tmp, child) < 0){
-- emlwrite("Rename Failed: %s", errstr(errno));
-+ emlwrite("更名失敗:%s", errstr(errno));
- }
- else{
- if((p = strrchr(child, C_FILESEP)) == NULL){
-@@ -1326,7 +1326,7 @@
-
- if((gmode&MDTREE) && !in_oper_tree(tmp)){
- emlwrite(
-- "\007Can't visit parent in restricted mode",
-+ "\007無法在限制模式中檢視上層目錄",
- NULL);
- break;
- }
-@@ -1347,7 +1347,7 @@
- strcpy(tmp, S_FILESEP);
- #endif
- else{
-- emlwrite("\007Can't move up a directory",
-+ emlwrite("\007無法切換至上一層目錄",
- NULL);
- break;
- }
-@@ -1374,12 +1374,12 @@
- PlaceCell(gmp, gmp->current, &row, &col);
- }
- else
-- emlwrite("\007Problem finding dir \"%s\"",child);
-+ emlwrite("\007搜尋目錄 \"%s\" 時出了問題",child);
- }
-
- PaintBrowser(gmp, 0, &crow, &ccol);
- if(!*child)
-- emlwrite("Select/View \".. parent dir\" to return to previous directory.",
-+ emlwrite("以 [選擇]/[檢視] \".. parent dir\" 回到前一個目錄。",
- NULL);
-
- break;
-@@ -1425,7 +1425,7 @@
-
- switch(readpattern("File name to find", FALSE)){
- case HELPCH:
-- emlwrite("\007No help yet!", NULL);
-+ emlwrite("\007尚無輔助說明!", NULL);
- /* remove break and sleep after help text is installed */
- sleep(3);
- break;
-@@ -1456,10 +1456,10 @@
- }
- while(tp->next);
-
-- emlwrite("Searched to end of directory", NULL);
-+ emlwrite("搜尋至目錄結尾", NULL);
- }
- else
-- emlwrite("Searched to start of directory", NULL);
-+ emlwrite("搜尋至目錄起始", NULL);
-
- if(tp){
- PlaceCell(gmp, gmp->current, &row, &col);
-@@ -1478,7 +1478,7 @@
- i++; /* make sure we jump out */
- break;
- case ABORT:
-- emlwrite("Whereis cancelled", NULL);
-+ emlwrite("取消搜尋", NULL);
- i++;
- break;
- case FALSE:
-@@ -1502,7 +1502,7 @@
- mlerase();
- }
- else
-- emlwrite("\"%s\" not found", pat);
-+ emlwrite("找不到 \"%s\"", pat);
-
- i++;
- break;
-@@ -1524,11 +1524,11 @@
- default: /* what? */
- Default:
- if(c < 0xff)
-- emlwrite("\007Unknown command: '%c'", (void *) c);
-+ emlwrite("\007未知的命令:'%c'", (void *) c);
- else if(c & CTRL)
-- emlwrite("\007Unknown command: ^%c", (void *)(c&0xff));
-+ emlwrite("\007未知的命令:^%c", (void *)(c&0xff));
- else
-- emlwrite("\007Unknown command", NULL);
-+ emlwrite("\007未知的命令", NULL);
- case NODATA: /* no op */
- break;
- }
-@@ -1560,7 +1560,7 @@
-
- errbuf[0] = '\0';
- if((mp=(struct bmaster *)malloc(sizeof(struct bmaster))) == NULL){
-- emlwrite("\007Can't malloc space for master filename cell", NULL);
-+ emlwrite("\007無法配置記憶體空間給 master filename cell", NULL);
- return(NULL);
- }
-
-@@ -1584,7 +1584,7 @@
- mp->cpf = mp->fpl = 0;
- mp->longest = 5; /* .. must be labeled! */
-
-- emlwrite("Building file list of %s...", mp->dname);
-+ emlwrite("正在建立 %s 的檔案列表...", mp->dname);
-
- if((mp->names = getfnames(mp->dname, NULL, &nentries, errbuf)) == NULL){
- free((char *) mp);
-@@ -1603,7 +1603,7 @@
- * easily be made a user option later on...
- */
- if((filtnames=(char **)malloc((nentries+1) * sizeof(char *))) == NULL){
-- emlwrite("\007Can't malloc space for name array", NULL);
-+ emlwrite("\007無法配置記憶體空間給 name array", NULL);
- zotmaster(&mp);
- return(NULL);
- }
-@@ -1654,7 +1654,7 @@
- while(nentries--){ /* stat filtered files */
- /* get a new cell */
- if((ncp=(struct fcell *)malloc(sizeof(struct fcell))) == NULL){
-- emlwrite("\007Can't malloc cells for browser!", NULL);
-+ emlwrite("\007無法配置記憶體空間給 browser!", NULL);
- zotfcells(mp->head); /* clean up cells */
- free((char *) filtnames);
- free((char *) mp);
-@@ -1840,22 +1840,22 @@
- BrowserKeys()
- {
- menu_browse[QUIT_KEY].name = (gmode&MDBRONLY) ? "Q" : "E";
-- menu_browse[QUIT_KEY].label = (gmode&MDBRONLY) ? "Quit" : "Exit Brwsr";
-+ menu_browse[QUIT_KEY].label = (gmode&MDBRONLY) ? "離開" : "離開瀏覽器";
- menu_browse[GOTO_KEY].name = (gmode&MDGOTO) ? "G" : NULL;
-- menu_browse[GOTO_KEY].label = (gmode&MDGOTO) ? "Goto" : NULL;
-+ menu_browse[GOTO_KEY].label = (gmode&MDGOTO) ? "切換" : NULL;
- if(gmode & MDBRONLY){
- menu_browse[EXEC_KEY].name = "L";
-- menu_browse[EXEC_KEY].label = "Launch";
-+ menu_browse[EXEC_KEY].label = "啟動";
- menu_browse[SELECT_KEY].name = "V";
-- menu_browse[SELECT_KEY].label = "[View]";
-+ menu_browse[SELECT_KEY].label = "[檢視]";
- menu_browse[PICO_KEY].name = "E";
-- menu_browse[PICO_KEY].label = "Edit";
-+ menu_browse[PICO_KEY].label = "編輯";
- }
- else{
- menu_browse[SELECT_KEY].name = "S";
-- menu_browse[SELECT_KEY].label = "[Select]";
-+ menu_browse[SELECT_KEY].label = "[選擇]";
- menu_browse[PICO_KEY].name = "A";
-- menu_browse[PICO_KEY].label = "Add";
-+ menu_browse[PICO_KEY].label = "新增";
- }
-
- wkeyhelp(menu_browse);
-@@ -1958,7 +1958,7 @@
-
- if((tp = tp->next) == NULL){ /* above top? */
- if(secondtry++){
-- emlwrite("\007Internal error: can't find fname cell", NULL);
-+ emlwrite("\007內部錯誤: 找不到 fname cell", NULL);
- return(-1);
- }
- else{
-@@ -2124,10 +2124,10 @@
- if(!p) /* no suitable length! */
- p = &dir[l-(term.t_ncol-i-19)];
-
-- sprintf(buf, "%s Dir ...%s", (gmode&MDBRONLY) ? "" : " BROWSER ", p);
-+ sprintf(buf, "%s 目錄 ...%s", (gmode&MDBRONLY) ? "" : " BROWSER ", p);
- }
- else
-- sprintf(buf,"%s Dir: %s", (gmode&MDBRONLY) ? "" : " BROWSER ", dir);
-+ sprintf(buf,"%s 目錄: %s", (gmode&MDBRONLY) ? "" : " BROWSER ", dir);
-
- if(i < j) /* keep it centered */
- j = j - i; /* as long as we can */
-@@ -2256,18 +2256,18 @@
- if((line = (buf[i] == '\n') ? 0 : line + 1) >= LA_LINE_LIMIT
- || !buf[i]){
- rv = FALSE;
-- emlwrite("Can't display non-text file. Try \"Launch\".",
-+ emlwrite("無法顯示非文字檔。試試 \"啟動\"。",
- NULL);
- break;
- }
- }
- else
-- emlwrite("Can't read file: %s", file);
-+ emlwrite("無法讀取檔案:%s", file);
-
- fclose(fp);
- }
- else
-- emlwrite("Can't open file: %s", file);
-+ emlwrite("無法開啟檔案:%s", file);
-
- return(rv);
- }
diff --git a/chinese/pine4/files/patch-aj b/chinese/pine4/files/patch-aj
deleted file mode 100644
index a6dd0352d8a7..000000000000
--- a/chinese/pine4/files/patch-aj
+++ /dev/null
@@ -1,365 +0,0 @@
---- pico/composer.c.orig Fri Jun 11 06:55:22 1999
-+++ pico/composer.c Thu Oct 14 10:53:41 1999
-@@ -133,12 +133,12 @@
-
-
- static KEYMENU menu_header[] = {
-- {"^G", "Get Help", KS_SCREENHELP}, {"^X", "Send", KS_SEND},
-- {"^R", "Rich Hdr", KS_RICHHDR}, {"^Y", "PrvPg/Top", KS_PREVPAGE},
-- {"^K", "Cut Line", KS_CURPOSITION}, {"^O", "Postpone", KS_POSTPONE},
-- {"^C", "Cancel", KS_CANCEL}, {"^D", "Del Char", KS_NONE},
-- {"^J", "Attach", KS_ATTACH}, {"^V", "NxtPg/End", KS_NEXTPAGE},
-- {"^U", "UnDel Line", KS_NONE}, {NULL, NULL}
-+ {"^G", "輔助說明", KS_SCREENHELP}, {"^X", "送出", KS_SEND},
-+ {"^R", "完整標頭", KS_RICHHDR}, {"^Y", "上一頁", KS_PREVPAGE},
-+ {"^K", "剪下一行", KS_CURPOSITION}, {"^O", "暫緩寫信", KS_POSTPONE},
-+ {"^C", "取消", KS_CANCEL}, {"^D", "刪除字元", KS_NONE},
-+ {"^J", "夾附件", KS_ATTACH}, {"^V", "下一頁", KS_NEXTPAGE},
-+ {"^U", "復原刪除行", KS_NONE}, {NULL, NULL}
- };
- #define SEND_KEY 1
- #define RICH_KEY 2
-@@ -262,7 +262,7 @@
- if(strlen(addrbuf) + strlen(buf) >= addrbuflen){
- addrbuflen += NLINE * 4;
- if(!(addrbuf = (char *)realloc(addrbuf, addrbuflen))){
-- emlwrite("\007Can't realloc addrbuf to %d bytes",
-+ emlwrite("\007無法更改 addrbuf 的記憶體配置至 %d bytes",
- (void *) addrbuflen);
- return(ABORT);
- }
-@@ -329,7 +329,7 @@
- * get first chunk of memory, and tie it to structure...
- */
- if((curline = HALLOC()) == NULL){
-- emlwrite("Unable to make room for full Header.", NULL);
-+ emlwrite("無法配置空間給完整標頭。", NULL);
- return(FALSE);
- }
- longest = term.t_ncol - e->prlen - 1;
-@@ -711,7 +711,7 @@
- }
- else{
- (*term.t_beep)();
-- emlwrite("Unknown Command: ^Z", NULL);
-+ emlwrite("未知的命令:^Z", NULL);
- }
- break;
-
-@@ -724,12 +724,12 @@
- err = NULL;
- if(headents[ods.cur_e].is_attach){
- if(SyncAttach() < 0){
-- if(mlyesno("Problem with attachments. Postpone anyway?",
-+ if(mlyesno("附件有問題。無論如何都要暫緩該信嗎?",
- FALSE) != TRUE){
- if(FormatLines(headents[ods.cur_e].hd_text, "",
- term.t_ncol - headents[ods.cur_e].prlen,
- headents[ods.cur_e].break_on_comma, 0) == -1)
-- emlwrite("\007Format lines failed!", NULL);
-+ emlwrite("\007版面整理失敗!", NULL);
- UpdateHeader(0);
- PaintHeader(COMPOSER_TOP_LINE, FALSE);
- PaintBody(1);
-@@ -998,7 +998,7 @@
- if(FormatLines(headents[ods.cur_e].hd_text, buf,
- term.t_ncol - headents[ods.cur_e].prlen,
- headents[ods.cur_e].break_on_comma,0)==-1){
-- emlwrite("\007Format lines failed!", NULL);
-+ emlwrite("\007版面整理失敗!", NULL);
- }
-
- UpdateHeader(0);
-@@ -1057,7 +1057,7 @@
- if(FormatLines(ods.cur_l, bufp,
- (term.t_ncol-headents[ods.cur_e].prlen),
- headents[ods.cur_e].break_on_comma, 0) == -1){
-- emlwrite("Problem adding address to header !",
-+ emlwrite("在標頭加入地址時出了問題!",
- NULL);
- (*term.t_beep)();
- break;
-@@ -1193,10 +1193,10 @@
- default : /* huh? */
- bleep:
- if(ch&CTRL)
-- emlwrite("\007Unknown command: ^%c", (void *)(ch&0xff));
-+ emlwrite("\007未知的命令:^%c", (void *)(ch&0xff));
- else
- case BADESC:
-- emlwrite("\007Unknown command", NULL);
-+ emlwrite("\007未知的命令", NULL);
-
- case NODATA:
- break;
-@@ -1236,14 +1236,14 @@
- if(gripe){
- char xx[81];
-
-- strcpy(xx, "Can't move down. Use ^X to ");
-+ strcpy(xx, "無法再往下移了。請用 ^X ");
- strcat(xx, (Pmaster && Pmaster->exit_label)
- ? Pmaster->exit_label
- : (gmode & MDHDRONLY)
-- ? "eXit/Save"
-+ ? "離開/送出"
- : (gmode & MDVIEW)
-- ? "eXit"
-- : "Send");
-+ ? "離開"
-+ : "送出");
- strcat(xx, ".");
- emlwrite(xx, NULL);
- }
-@@ -1278,7 +1278,7 @@
- if(FormatLines(headents[ods.cur_e].hd_text, "",
- term.t_ncol-headents[new_e].prlen,
- headents[ods.cur_e].break_on_comma, 0) == -1)
-- emlwrite("\007Format lines failed!", NULL);
-+ emlwrite("\007版面整理失敗!", NULL);
- }
- } else if(headents[ods.cur_e].builder) { /* expand addresses */
- int mangled = 0;
-@@ -1349,8 +1349,8 @@
- if(!(new_l = prev_sel_hline(&new_e, ods.cur_l))){ /* all the way up! */
- ods.p_line = COMPOSER_TOP_LINE;
- if(gripe)
-- emlwrite("Can't move beyond top of %s",
-- (Pmaster->pine_flags & MDHDRONLY) ? "entry" : "header");
-+ emlwrite("無法移到超出%s的頂端",
-+ (Pmaster->pine_flags & MDHDRONLY) ? "項目" : "標頭");
-
- return(0);
- }
-@@ -1379,7 +1379,7 @@
- if(FormatLines(headents[ods.cur_e].hd_text, "",
- term.t_ncol - headents[ods.cur_e].prlen,
- headents[ods.cur_e].break_on_comma,0) == -1)
-- emlwrite("\007Format lines failed!", NULL);
-+ emlwrite("\007版面整理失敗!", NULL);
- }
- }
- else if(headents[ods.cur_e].builder){
-@@ -1458,7 +1458,7 @@
- lp = lp->next;
- }
- else{
-- emlwrite("\007Can't allocate line for new attachment!", NULL);
-+ emlwrite("\007無法為新的附件配置空間!", NULL);
- return(0);
- }
- }
-@@ -1472,12 +1472,12 @@
- /* validate the new attachment, and reformat if needed */
- if(status = SyncAttach()){
- if(status < 0)
-- emlwrite("\007Problem attaching: %s", fn);
-+ emlwrite("\007有問題的附件:%s", fn);
-
- if(FormatLines(headents[a_e].hd_text, "",
- term.t_ncol - headents[a_e].prlen,
- headents[a_e].break_on_comma, 0) == -1){
-- emlwrite("\007Format lines failed!", NULL);
-+ emlwrite("\007版面整理失敗!", NULL);
- return(0);
- }
- }
-@@ -1552,7 +1552,7 @@
-
- if (term.t_nrow < 6 && ch != NODATA){
- (*term.t_beep)();
-- emlwrite("Please make the screen bigger.", NULL);
-+ emlwrite("請將畫面調大一些。", NULL);
- continue;
- }
-
-@@ -1624,13 +1624,13 @@
- if(headents[ods.cur_e].only_file_chars
- && !fallowc((unsigned char) ch)){
- /* no garbage in filenames */
-- emlwrite("\007Can't have a '%c' in folder name",
-+ emlwrite("\007資料匣中不能有 '%c' 這個字元",
- (void *) ch);
- continue;
- }
- else if(headents[ods.cur_e].is_attach
- && intag(strng,ods.p_off)){
-- emlwrite("\007Can't edit attachment number!", NULL);
-+ emlwrite("\007無法編輯附件的代碼!", NULL);
- continue;
- }
-
-@@ -1779,7 +1779,7 @@
- headents[ods.cur_e].dirty = 1;
- }
- else
-- emlwrite("Problem Unkilling text", NULL);
-+ emlwrite("有問題的反刪除文字", NULL);
- continue;
-
- case (CTRL|'F') :
-@@ -1830,7 +1830,7 @@
- continue;
-
- if(headents[ods.cur_e].is_attach && intag(strng, ods.p_off)){
-- emlwrite("\007Can't edit attachment number!", NULL);
-+ emlwrite("\007無法編輯附件的代碼!", NULL);
- continue;
- }
-
-@@ -1844,7 +1844,7 @@
- }
-
- if(headents[ods.cur_e].is_attach && intag(strng, ods.p_off-1)){
-- emlwrite("\007Can't edit attachment number!", NULL);
-+ emlwrite("\007無法編輯附件的代碼!", NULL);
- continue;
- }
-
-@@ -2141,7 +2141,7 @@
-
- if(nlp == NULL){ /* no place to add below? */
- if((lp = HALLOC()) == NULL){
-- emlwrite("Can't allocate any more lines for header!", NULL);
-+ emlwrite("無法再配置更多的空間給標頭!", NULL);
- free(buf);
- return(-1);
- }
-@@ -2174,7 +2174,7 @@
-
- if(strlen(buf) && !nlp){
- if((lp = HALLOC()) == NULL){
-- emlwrite("Can't allocate any more lines for header!",NULL);
-+ emlwrite("無法再配置更多的空間給標頭!",NULL);
- free(buf);
- return(-1);
- }
-@@ -2461,14 +2461,14 @@
-
- if(level < 0 || !headents[level].name){
- (*term.t_beep)();
-- emlwrite("Sorry, I can't help you with that.", NULL);
-+ emlwrite("很抱歉,關於那個我無法幫忙。", NULL);
- sleep(2);
- return(FALSE);
- }
-
-- sprintf(buf, "Help for %s %.40s Field",
-- (Pmaster->pine_flags & MDHDRONLY) ? "Address Book"
-- : "Composer",
-+ sprintf(buf, "%s欄位%.40s的輔助說明",
-+ (Pmaster->pine_flags & MDHDRONLY) ? "地址簿"
-+ : "編輯器",
- headents[level].name);
- saved_state = save_pico_state();
- (*Pmaster->helper)(headents[level].help, buf, 1);
-@@ -3114,7 +3114,7 @@
- }
-
- if((sbuf=(char *)malloc((unsigned) i)) == NULL){
-- emlwrite("Can't malloc space to expand address", NULL);
-+ emlwrite("無法配置記憶體空間以展開地址", NULL);
- return(-1);
- }
-
-@@ -3171,7 +3171,7 @@
- if(!arg){
- headarg = arg = (BUILDER_ARG *)malloc(sizeof(BUILDER_ARG));
- if(!arg){
-- emlwrite("Can't malloc space for fcc", NULL);
-+ emlwrite("無法配置記憶體空間給 fcc", NULL);
- return(-1);
- }
- else{
-@@ -3184,7 +3184,7 @@
- else{
- nextarg = (BUILDER_ARG *)malloc(sizeof(BUILDER_ARG));
- if(!nextarg){
-- emlwrite("Can't malloc space for fcc", NULL);
-+ emlwrite("無法配置記憶體空間給 fcc", NULL);
- return(-1);
- }
- else{
-@@ -3200,7 +3200,7 @@
- if(!e->sticky){
- line = e->hd_text;
- if(!(arg->tptr=(char *)malloc(strlen(line->text) + 1))){
-- emlwrite("Can't malloc space for fcc", NULL);
-+ emlwrite("無法配置記憶體空間給 fcc", NULL);
- return(-1);
- }
- else
-@@ -3217,7 +3217,7 @@
- if(!headarg){
- headarg = (BUILDER_ARG *)malloc(sizeof(BUILDER_ARG));
- if(!headarg){
-- emlwrite("Can't malloc space", NULL);
-+ emlwrite("無法配置記憶體空間", NULL);
- return(-1);
- }
- else{
-@@ -3543,7 +3543,7 @@
-
- if(ksize()){
- if((bp = buf = (char *)malloc(ksize()+5)) == NULL){
-- emlwrite("Can't malloc space for saved text", NULL);
-+ emlwrite("無法配置保存文字的記憶體空間", NULL);
- return(FALSE);
- }
- }
-@@ -3577,7 +3577,7 @@
- work_buf_len = strlen(ods.cur_l->text) + buf_len;
- work_buf = (char *) malloc((work_buf_len + 1) * sizeof(char));
- if (work_buf == NULL) {
-- emlwrite("Can't malloc space for saved text", NULL);
-+ emlwrite("無法配置保存文字的記憶體空間", NULL);
- return(FALSE);
- }
-
-@@ -3786,9 +3786,9 @@
- if(Pmaster && Pmaster->exit_label)
- menu_header[SEND_KEY].label = Pmaster->exit_label;
- else if(gmode & (MDVIEW | MDHDRONLY))
-- menu_header[SEND_KEY].label = (gmode & MDHDRONLY) ? "eXit/Save" : "eXit";
-+ menu_header[SEND_KEY].label = (gmode & MDHDRONLY) ? "離開/儲存" : "離開";
- else
-- menu_header[SEND_KEY].label = "Send";
-+ menu_header[SEND_KEY].label = "送出";
-
- if(gmode & MDVIEW){
- menu_header[CUT_KEY].name = NULL;
-@@ -3809,14 +3809,14 @@
- menu_header[RICH_KEY].name = NULL;
- }
- else{
-- menu_header[RICH_KEY].label = "Rich Hdr";
-+ menu_header[RICH_KEY].label = "完整標頭";
- menu_header[RICH_KEY].name = "^R";
- }
-
- if(gmode & MDHDRONLY){
- if(headents[ods.cur_e].fileedit){
- menu_header[PONE_KEY].name = "^_";
-- menu_header[PONE_KEY].label = "Edit File";
-+ menu_header[PONE_KEY].label = "編輯檔案";
- }
- else
- menu_header[PONE_KEY].name = NULL;
-@@ -3825,7 +3825,7 @@
- }
- else{
- menu_header[PONE_KEY].name = "^O";
-- menu_header[PONE_KEY].label = "Postpone";
-+ menu_header[PONE_KEY].label = "暫緩";
- KS_OSDATASET(&menu_header[PONE_KEY],KS_OSDATAGET(&headents[ods.cur_e]));
-
- menu_header[ATT_KEY].name = "^J";
-@@ -3897,7 +3897,7 @@
- *headents[i].realaddr = bufp;
- }
- else{
-- emlwrite("Can't make room to pack header field.", NULL);
-+ emlwrite("無法配置包裝表頭欄位的記憶體空間。", NULL);
- retval = FALSE;
- }
- }
diff --git a/chinese/pine4/files/patch-ak b/chinese/pine4/files/patch-ak
deleted file mode 100644
index 29263ac1742b..000000000000
--- a/chinese/pine4/files/patch-ak
+++ /dev/null
@@ -1,187 +0,0 @@
---- pico/display.c.orig Thu Sep 2 03:25:22 1999
-+++ pico/display.c Thu Oct 14 10:53:41 1999
-@@ -71,32 +71,32 @@
- * Standard pico keymenus...
- */
- static KEYMENU menu_pico[] = {
-- {"^G", "Get Help", KS_SCREENHELP}, {"^O", "WriteOut", KS_SAVEFILE},
-- {"^R", "Read File", KS_READFILE}, {"^Y", "Prev Pg", KS_PREVPAGE},
-- {"^K", "Cut Text", KS_NONE}, {"^C", "Cur Pos", KS_CURPOSITION},
-- {"^X", "Exit", KS_EXIT}, {"^J", "Justify", KS_JUSTIFY},
-- {"^W", "Where is", KS_WHEREIS}, {"^V", "Next Pg", KS_NEXTPAGE},
-+ {"^G", "輔助說明", KS_SCREENHELP}, {"^O", "寫入檔案", KS_SAVEFILE},
-+ {"^R", "讀取檔案", KS_READFILE}, {"^Y", "上一頁", KS_PREVPAGE},
-+ {"^K", "剪下一行", KS_NONE}, {"^C", "目前位置", KS_CURPOSITION},
-+ {"^X", "離開", KS_EXIT}, {"^J", "重整段落", KS_JUSTIFY},
-+ {"^W", "搜尋", KS_WHEREIS}, {"^V", "下一頁", KS_NEXTPAGE},
- {"^U", NULL, KS_NONE},
--#ifdef SPELLER
-- {"^T", "To Spell", KS_SPELLCHK}
-+#if defined(SPELLER) && !defined(__FreeBSD__)
-+ {"^T", "拼字檢查", KS_SPELLCHK}
- #else
-- {"^D", "Del Char", KS_NONE}
-+ {"^D", "刪除字元", KS_NONE}
- #endif
- };
- #define UNCUT_KEY 10
-
-
- static KEYMENU menu_compose[] = {
-- {"^G", "Get Help", KS_SCREENHELP}, {"^X", NULL, KS_SEND},
-- {"^R", "Read File", KS_READFILE}, {"^Y", "Prev Pg", KS_PREVPAGE},
-- {"^K", "Cut Text", KS_NONE}, {"^O", "Postpone", KS_POSTPONE},
-- {"^C", "Cancel", KS_CANCEL}, {"^J", "Justify", KS_JUSTIFY},
-- {NULL, NULL, KS_NONE}, {"^V", "Next Pg", KS_NEXTPAGE},
-+ {"^G", "輔助說明", KS_SCREENHELP}, {"^X", NULL, KS_SEND},
-+ {"^R", "讀取檔案", KS_READFILE}, {"^Y", "上一頁", KS_PREVPAGE},
-+ {"^K", "剪下一行", KS_NONE}, {"^O", "暫緩寫信", KS_POSTPONE},
-+ {"^C", "取消", KS_CANCEL}, {"^J", "重整段落", KS_JUSTIFY},
-+ {NULL, NULL, KS_NONE}, {"^V", "下一頁", KS_NEXTPAGE},
- {"^U", NULL, KS_NONE},
--#ifdef SPELLER
-- {"^T", "To Spell", KS_SPELLCHK}
-+#if defined(SPELLER) && !defined(__FreeBSD__)
-+ {"^T", "拼字檢查", KS_SPELLCHK}
- #else
-- {"^D", "Del Char", KS_NONE}
-+ {"^D", "刪除字元", KS_NONE}
- #endif
- };
- #define EXIT_KEY 1
-@@ -152,7 +152,7 @@
- (*term.t_rev)(FALSE);
- vscreen = (VIDEO **) malloc((term.t_nrow+1)*sizeof(VIDEO *));
- if (vscreen == NULL){
-- emlwrite("Allocating memory for virtual display failed.", NULL);
-+ emlwrite("配置記憶體給虛擬顯示器失敗。", NULL);
- return(FALSE);
- }
-
-@@ -160,7 +160,7 @@
- pscreen = (VIDEO **) malloc((term.t_nrow+1)*sizeof(VIDEO *));
- if (pscreen == NULL){
- free((void *)vscreen);
-- emlwrite("Allocating memory for physical display failed.", NULL);
-+ emlwrite("配置記憶體給實體顯示器失敗。", NULL);
- return(FALSE);
- }
-
-@@ -171,7 +171,7 @@
- if (vp == NULL){
- free((void *)vscreen);
- free((void *)pscreen);
-- emlwrite("Allocating memory for virtual display lines failed.",
-+ emlwrite("配置記憶體給虛擬顯示行失敗。",
- NULL);
- return(FALSE);
- }
-@@ -191,7 +191,7 @@
-
- free((void *)vscreen);
- free((void *)pscreen);
-- emlwrite("Allocating memory for physical display lines failed.",
-+ emlwrite("配置記憶體給實體顯示行失敗。",
- NULL);
- return(FALSE);
- }
-@@ -749,12 +749,12 @@
- }
-
- if(lastflag&CFFILL){
-- menu_pico[UNCUT_KEY].label = "UnJustify";
-- emlwrite("Can now UnJustify!", NULL);
-+ menu_pico[UNCUT_KEY].label = "取消重整";
-+ emlwrite("現在可以取消重整!", NULL);
- mpresf = FARAWAY; /* remove this after next keystroke! */
- }
- else
-- menu_pico[UNCUT_KEY].label = "UnCut Text";
-+ menu_pico[UNCUT_KEY].label = "復原刪字";
-
- wkeyhelp(menu_pico);
- sgarbk = FALSE;
-@@ -944,18 +944,18 @@
- ShowPrompt();
- else{
- menu_compose[EXIT_KEY].label = (Pmaster->headents)
-- ? "Send" :"Exit";
-+ ? "送出" :"離開";
- menu_compose[PSTPN_KEY].name = (Pmaster->headents)
- ? "^O" : NULL;
- menu_compose[PSTPN_KEY].label = (Pmaster->headents)
-- ? "Postpone" : NULL;
-+ ? "暫緩寫信" : NULL;
- menu_compose[WHERE_KEY].name = (Pmaster->alt_ed) ? "^_" : "^W";
-- menu_compose[WHERE_KEY].label = (Pmaster->alt_ed) ? "Alt Edit"
-- : "Where is";
-+ menu_compose[WHERE_KEY].label = (Pmaster->alt_ed) ? "自定編輯器"
-+ : "搜尋";
- KS_OSDATASET(&menu_compose[WHERE_KEY],
- (Pmaster->alt_ed) ? KS_ALTEDITOR : KS_WHEREIS);
-- menu_compose[UNCUT_KEY].label = (thisflag&CFFILL) ? "UnJustify"
-- : "UnCut Text";
-+ menu_compose[UNCUT_KEY].label = (thisflag&CFFILL) ? "取消重整"
-+ : "復原刪字";
- wkeyhelp(menu_compose);
- #ifdef _WINDOWS
- /* When alt editor is available "Where is" is not on the menu
-@@ -1159,11 +1159,11 @@
- }
-
- menu_yesno[1].name = "Y";
-- menu_yesno[1].label = (dflt == TRUE) ? "[Yes]" : "Yes";
-+ menu_yesno[1].label = (dflt == TRUE) ? "[是]" : "是";
- menu_yesno[6].name = "^C";
-- menu_yesno[6].label = "Cancel";
-+ menu_yesno[6].label = "取消";
- menu_yesno[7].name = "N";
-- menu_yesno[7].label = (dflt == FALSE) ? "[No]" : "No";
-+ menu_yesno[7].label = (dflt == FALSE) ? "[否]" : "否";
- wkeyhelp(menu_yesno); /* paint generic menu */
- sgarbk = TRUE; /* mark menu dirty */
- if(Pmaster && curwp)
-@@ -1177,7 +1177,7 @@
- switch(GetKey()){
- case (CTRL|'M') : /* default */
- if(dflt >= 0){
-- pputs((dflt) ? "Yes" : "No", 1);
-+ pputs((dflt) ? "是" : "否", 1);
- rv = dflt;
- }
- else
-@@ -1194,14 +1194,14 @@
- case 'y' :
- case 'Y' :
- case F3 :
-- pputs("Yes", 1);
-+ pputs("是", 1);
- rv = TRUE;
- break;
-
- case 'n' :
- case 'N' :
- case F4 :
-- pputs("No", 1);
-+ pputs("否", 1);
- rv = FALSE;
- break;
-
-@@ -1329,7 +1329,7 @@
- #endif
-
- menu_mlreply[0].name = "^G";
-- menu_mlreply[0].label = "Get Help";
-+ menu_mlreply[0].label = "輔助說明";
- KS_OSDATASET(&menu_mlreply[0], KS_SCREENHELP);
- for(j = 0, i = 1; i < 6; i++){ /* insert odd extras */
- menu_mlreply[i].name = NULL;
-@@ -1349,7 +1349,7 @@
- }
-
- menu_mlreply[6].name = "^C";
-- menu_mlreply[6].label = "Cancel";
-+ menu_mlreply[6].label = "取消";
- KS_OSDATASET(&menu_mlreply[6], KS_NONE);
- for(j = 0, i = 7; i < 12; i++){ /* insert even extras */
- menu_mlreply[i].name = NULL;
diff --git a/chinese/pine4/files/patch-al b/chinese/pine4/files/patch-al
deleted file mode 100644
index 3fc6bd68ace4..000000000000
--- a/chinese/pine4/files/patch-al
+++ /dev/null
@@ -1,11 +0,0 @@
---- pico/ebind.h.orig Sat Feb 28 08:10:31 1998
-+++ pico/ebind.h Thu Oct 14 10:53:41 1999
-@@ -145,7 +145,7 @@
- {CTRL|'O', filewrite},
- {CTRL|'P', backline},
- {CTRL|'R', insfile},
--#ifdef SPELLER
-+#if defined(SPELLER) && !defined(__FreeBSD__)
- {CTRL|'T', spell},
- #endif /* SPELLER */
- {CTRL|'U', yank},
diff --git a/chinese/pine4/files/patch-am b/chinese/pine4/files/patch-am
deleted file mode 100644
index 86f1c7b64d95..000000000000
--- a/chinese/pine4/files/patch-am
+++ /dev/null
@@ -1,11 +0,0 @@
---- pico/edef.h.orig Thu Apr 23 07:53:44 1998
-+++ pico/edef.h Thu Oct 14 10:53:41 1999
-@@ -59,7 +59,7 @@
- int ComposerEditing = FALSE; /* TRUE if message line is open */
- int revexist = FALSE; /* does reverse video exist? */
- char modecode[] = "WCSEVO"; /* letters to represent modes */
--long gmode = MDWRAP; /* global editor mode */
-+long gmode = MDWRAP | MDTCAPWINS; /* global editor mode */
- int sgarbf = TRUE; /* TRUE if screen is garbage */
- int mpresf = FALSE; /* TRUE if message in last line */
- int clexec = FALSE; /* command line execution flag */
diff --git a/chinese/pine4/files/patch-an b/chinese/pine4/files/patch-an
deleted file mode 100644
index 1c4d0e07b89c..000000000000
--- a/chinese/pine4/files/patch-an
+++ /dev/null
@@ -1,11 +0,0 @@
---- pico/estruct.h.orig Tue Oct 5 04:02:41 1999
-+++ pico/estruct.h Thu Oct 14 10:53:41 1999
-@@ -130,7 +130,7 @@
- #define LOBIT_CHAR(C) ((C) > 0x1f && (C) < 0x7f)
- #define HIBIT_CHAR(C) ((C) > 0x7f && (C) <= 0xff)
- #define HIBIT_OK(C) (!(gmode & MDHBTIGN))
--#define VALID_KEY(C) (LOBIT_CHAR(C) || (HIBIT_OK(C) && HIBIT_CHAR(C)))
-+#define VALID_KEY(C) (((C) & 0x80) ? 1 : LOBIT_CHAR(C))
- #define ctrl(c) ((c) & 0x1f) /* control character mapping */
-
- #define STDIN_FD 0
diff --git a/chinese/pine4/files/patch-ao b/chinese/pine4/files/patch-ao
deleted file mode 100644
index a8fc50f65d57..000000000000
--- a/chinese/pine4/files/patch-ao
+++ /dev/null
@@ -1,272 +0,0 @@
---- pico/file.c.orig Tue Mar 23 09:26:04 1999
-+++ pico/file.c Thu Oct 14 10:53:41 1999
-@@ -63,17 +63,17 @@
- return(s);
-
- if(gmode&MDSCUR){
-- emlwrite("File reading disabled in secure mode",NULL);
-+ emlwrite("安全模式中已關閉讀取檔案的功\能",NULL);
- return(0);
- }
-
- if (strlen(fname) == 0) {
-- emlwrite("No file name entered",NULL);
-+ emlwrite("尚未輸入檔案名",NULL);
- return(0);
- }
-
- if((gmode & MDTREE) && !in_oper_tree(fname)){
-- emlwrite("Can't read file from outside of %s", opertree);
-+ emlwrite("無法讀取 %s 以外的檔案", opertree);
- return(0);
- }
-
-@@ -137,13 +137,13 @@
-
- menu_ins[last_menu].name = "^T";
- menu_ins[last_menu].key = (CTRL|'T');
-- menu_ins[last_menu].label = "To Files";
-+ menu_ins[last_menu].label = "檔案列表";
- KS_OSDATASET(&menu_ins[last_menu], KS_NONE);
-
- if(Pmaster && Pmaster->msgntext){
- menu_ins[++last_menu].name = "^W";
- menu_ins[last_menu].key = (CTRL|'W');
-- menu_ins[last_menu].label = msg ? "InsertFile" : "InsertMsg";
-+ menu_ins[last_menu].label = msg ? "插入檔案" : "插入訊息";
- KS_OSDATASET(&menu_ins[last_menu], KS_NONE);
- }
-
-@@ -159,44 +159,43 @@
- if(gmode & MDCMPLT){
- menu_ins[++last_menu].name = msg ? "" : "TAB";
- menu_ins[last_menu].key = (CTRL|'I');
-- menu_ins[last_menu].label = msg ? "" : "Complete";
-+ menu_ins[last_menu].label = msg ? "" : "完成";
- KS_OSDATASET(&menu_ins[last_menu], KS_NONE);
- }
-
- menu_ins[++last_menu].name = NULL;
- }
-
-- sprintf(prompt, "%s to insert from %s %s: ",
-- msg ? "Number of message" : "File",
-+ sprintf(prompt, "自%s%s插入的%s:",
- (msg || (gmode&MDCURDIR))
-- ? "current"
-- : ((gmode & MDTREE) || opertree[0]) ? opertree : "home",
-- msg ? "folder" : "directory");
-+ ? "目前的"
-+ : ((gmode & MDTREE) || opertree[0]) ? opertree : "家",
-+ msg ? "檔案匣" : "目錄", msg ? "信件編號" : "檔案");
- s = mlreplyd(prompt, fname, NLINE, QDEFLT, msg ? NULL : menu_ins);
- /* something to read and it was edited or the default accepted */
- if(fname[0] && (s == TRUE || s == FALSE)){
- bye++;
- if(msg){
- if((*Pmaster->msgntext)(atol(fname), insmsgchar))
-- emlwrite("Message %s included", fname);
-+ emlwrite("信件 %s 已含入", fname);
- }
- else{
- bye++;
- if(gmode&MDSCUR){
-- emlwrite("Can't insert file in restricted mode",NULL);
-+ emlwrite("在限制模式中無法插入檔案",NULL);
- }
- else{
- if((gmode & MDTREE)
- && !compresspath(opertree, fname, NLINE)){
- emlwrite(
-- "Can't insert file from outside of %s: too many ..'s",
-+ "無法在 %s 以外的地方插入檔案:太多 .. 了",
- opertree);
- }
- else{
- fixpath(fname, NLINE);
-
- if((gmode & MDTREE) && !in_oper_tree(fname))
-- emlwrite("Can't insert file from outside of %s",
-+ emlwrite("無法在 %s 以外的地方插入檔案",
- opertree);
- else
- retval = ifile(fname);
-@@ -255,7 +254,7 @@
- break;
- case (CTRL|'T'):
- if(msg){
-- emlwrite("Can't select messages yet!", NULL);
-+ emlwrite("還無法選擇信件!", NULL);
- }
- else{
- if(*fname && isdir(fname, NULL, NULL))
-@@ -270,7 +269,7 @@
- if((s = FileBrowse(dir, NLINE, fname, NLINE,
- NULL, FB_READ)) == 1){
- if(gmode&MDSCUR){
-- emlwrite("Can't insert in restricted mode",
-+ emlwrite("在限制模式中無法插入",
- NULL);
- sleep(2);
- }
-@@ -311,7 +310,7 @@
-
- if(gmode&MDSCUR){
- emlwrite(
-- "\007Restricted mode disallows uploaded command",
-+ "\007限制模式中不允許\上載",
- NULL);
- return(0);
- }
-@@ -411,20 +410,20 @@
- strcpy(curbp->b_fname, fname);
- if ((s=ffropen(fname)) != FIOSUC){ /* Hard file open. */
- if(s == FIOFNF) /* File not found. */
-- emlwrite("New file", NULL);
-+ emlwrite("新檔", NULL);
- else
- fioperr(s, fname);
- }
- else{
-- emlwrite("Reading file", NULL);
-+ emlwrite("讀取檔案", NULL);
- nline = 0L;
- done = newline = 0;
- while(!done)
- if((s = ffgetline(line, NLINE, 1)) == FIOEOF){
- curbp->b_flag &= ~(BFTEMP|BFCHG);
- gotobob(FALSE, 1);
-- sprintf(line,"Read %d line%s",
-- nline, (nline > 1) ? "s" : "");
-+ sprintf(line,"讀取第 %d 行",
-+ nline);
- emlwrite(line, NULL);
- break;
- }
-@@ -482,14 +481,14 @@
- fname[0] = '\0';
-
- menu_write[0].name = "^T";
-- menu_write[0].label = "To Files";
-+ menu_write[0].label = "檔案列表";
- menu_write[0].key = (CTRL|'T');
- menu_write[1].name = "TAB";
-- menu_write[1].label = "Complete";
-+ menu_write[1].label = "完成";
- menu_write[1].key = (CTRL|'I');
- menu_write[2].name = NULL;
- for(;!(gmode & MDTOOL);){
-- s = mlreplyd("File Name to write : ", fname, NFILEN,
-+ s = mlreplyd("欲寫入的檔名:", fname, NFILEN,
- QDEFLT|QFFILE, menu_write);
-
- switch(s){
-@@ -500,7 +499,7 @@
- }
- case TRUE:
- if((gmode & MDTREE) && !compresspath(opertree, fname, NFILEN)){
-- emlwrite("Can't write outside of %s: too many ..'s",
-+ emlwrite("無法寫入 %s 以外的檔案:太多 .. 了",
- opertree);
- sleep(2);
- continue;
-@@ -508,7 +507,7 @@
- else{
- fixpath(fname, NFILEN); /* fixup ~ in file name */
- if((gmode & MDTREE) && !in_oper_tree(fname)){
-- emlwrite("Can't write outside of %s", opertree);
-+ emlwrite("無法寫入 %s 以外的檔案", opertree);
- sleep(2);
- continue;
- }
-@@ -592,12 +591,12 @@
- strcpy(fname, shows);
- }
- else {
-- emlwrite("Cannot write. File name too long!!",NULL);
-+ emlwrite("無法寫入。檔名過長!",NULL);
- sleep(3);
- }
- }
- else if (s == -1){
-- emlwrite("Cannot write. File name too long!!",NULL);
-+ emlwrite("無法寫入。檔名過長!",NULL);
- sleep(3);
- }
- refresh(FALSE, 1);
-@@ -635,7 +634,7 @@
- return(ABORT);
- }
- }
-- emlwrite("Writing...", NULL);
-+ emlwrite("正在寫入...", NULL);
-
- if ((s=writeout(fname, 0)) != -1) {
- if(!(gmode&MDTOOL)){
-@@ -652,9 +651,9 @@
- }
-
- if(s > 1)
-- emlwrite("Wrote %d lines", (void *)s);
-+ emlwrite("寫入 %d 行", (void *)s);
- else
-- emlwrite("Wrote 1 line", NULL);
-+ emlwrite("寫入 1 行", NULL);
- }
- return ((s == -1) ? FALSE : TRUE);
- }
-@@ -680,12 +679,12 @@
- if ((curbp->b_flag&BFCHG) == 0) /* Return, no changes. */
- return (TRUE);
- if (curbp->b_fname[0] == 0) { /* Must have a name. */
-- emlwrite("No file name", NULL);
-+ emlwrite("沒有檔名", NULL);
- sleep(2);
- return (FALSE);
- }
-
-- emlwrite("Writing...", NULL);
-+ emlwrite("正在寫入...", NULL);
- if ((s=writeout(curbp->b_fname, 0)) != -1) {
- curbp->b_flag &= ~BFCHG;
- wp = wheadp; /* Update mode lines. */
-@@ -696,10 +695,10 @@
- wp = wp->w_wndp;
- }
- if(s > 1){
-- emlwrite("Wrote %d lines", (void *)s);
-+ emlwrite("寫入 %d 行", (void *)s);
- }
- else
-- emlwrite("Wrote 1 line", NULL);
-+ emlwrite("寫入 1 行", NULL);
- }
- return (s);
- }
-@@ -818,7 +817,7 @@
- curbp->b_flag &= ~BFTEMP; /* and are not temporary*/
- curbp->b_linecnt = -1; /* must be recalculated */
-
-- emlwrite("Inserting %s.", fname);
-+ emlwrite("正在插入 %s。", fname);
- done = newline = 0;
- nline = 0L;
- while(!done)
-@@ -828,7 +827,7 @@
- else
- forwchar(FALSE, 1);
-
-- sprintf(line,"Inserted %d line%s", nline, (nline>1) ? "s" : "");
-+ sprintf(line,"已插入 %d 行", nline);
- emlwrite(line, NULL);
- break;
- }
-@@ -916,7 +915,7 @@
- strcat(fn, S_FILESEP);
- }
- else{
-- emlwrite("File name too BIG!!",0);
-+ emlwrite("檔名太大了!!",0);
- sleep(3);
- *fn = '\0';
- }
diff --git a/chinese/pine4/files/patch-ap b/chinese/pine4/files/patch-ap
deleted file mode 100644
index 08b06bcef213..000000000000
--- a/chinese/pine4/files/patch-ap
+++ /dev/null
@@ -1,20 +0,0 @@
---- pico/main.c.orig Fri Sep 24 05:44:10 1999
-+++ pico/main.c Thu Oct 14 10:53:41 1999
-@@ -66,7 +66,7 @@
- { F9, (CTRL|'K')},
- { F10, (CTRL|'U')},
- { F11, (CTRL|'C')},
--#ifdef SPELLER
-+#if defined(SPELLER) && !defined(__FreeBSD__)
- { F12, (CTRL|'T')}
- #else
- { F12, (CTRL|'D')}
-@@ -459,7 +459,7 @@
- gmode ^= MDSSPD;
- break;
- case 'q': /* -q for termcap takes precedence */
-- gmode ^= MDTCAPWINS;
-+ gmode |= MDTCAPWINS;
- break;
- case 'w': /* -w turn off word wrap */
- gmode ^= MDWRAP;
diff --git a/chinese/pine4/files/patch-aq b/chinese/pine4/files/patch-aq
deleted file mode 100644
index 9dbff8413d32..000000000000
--- a/chinese/pine4/files/patch-aq
+++ /dev/null
@@ -1,117 +0,0 @@
---- pico/pico.c.orig Fri Jun 11 06:56:16 1999
-+++ pico/pico.c Thu Oct 14 10:53:41 1999
-@@ -313,7 +313,7 @@
- c = GetKey();
- if (term.t_nrow < 6 && c != NODATA){
- (*term.t_beep)();
-- emlwrite("Please make the screen bigger.", NULL);
-+ emlwrite("請將畫面調大一些。", NULL);
- continue;
- }
-
-@@ -555,9 +555,9 @@
- }
-
- if(c&CTRL)
-- emlwrite("\007Unknown Command: ^%c", (void *)(c&0xff));
-+ emlwrite("\007未知的命令:^%c", (void *)(c&0xff));
- else
-- emlwrite("\007Unknown Command", NULL);
-+ emlwrite("\007未知的命令", NULL);
-
- lastflag = 0; /* Fake last flags. */
- return (FALSE);
-@@ -610,7 +610,7 @@
- return(TRUE);
- }
- else{
-- emlwrite("Cancel Cancelled", NULL);
-+ emlwrite("取消", NULL);
- curwp->w_flag |= WFMODE; /* and modeline so we */
- sgarbk = TRUE; /* redraw the keymenu */
- pclear(term.t_nrow - 1, term.t_nrow + 1);
-@@ -619,17 +619,17 @@
- }
- }
- else switch(mlyesno(Pmaster->headents
-- ? "Cancel message (answering \"Yes\" will abandon your mail message)"
-+ ? "\"取消\"這個動作將會放棄你目前的信件。確定取消嗎"
- : (anycb() == FALSE)
-- ? "Cancel Edit (and abandon changes)"
-- : "Cancel Edit",
-+ ? "取消編輯(並放棄所有的改變)"
-+ : "取消編輯",
- FALSE)){
- case TRUE:
- pico_all_done = COMP_CANCEL;
- return(TRUE);
-
- case ABORT:
-- emlwrite("\007Cancel Cancelled", NULL);
-+ emlwrite("\007取消", NULL);
- break;
-
- default:
-@@ -667,7 +667,7 @@
-
- /* First, make sure there are no outstanding problems */
- if(AttachError()){
-- emlwrite("\007Problem with attachments! Fix errors or delete attachments.", NULL);
-+ emlwrite("\007有問題的附件! 請修復或刪除該附件。", NULL);
- return(FALSE);
- }
-
-@@ -701,7 +701,7 @@
- if (f != FALSE /* Argument forces it. */
- || anycb() == FALSE /* All buffers clean. */
- /* User says it's OK. */
-- || (s=mlyesno("Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES)", -1)) == FALSE) {
-+ || (s=mlyesno("存入更改過的緩衝區 (回答 \"No\" 將清除所有已做過的修改)", -1)) == FALSE) {
- vttidy();
- #if defined(USE_TERMCAP) || defined(USE_TERMINFO) || defined(VMS)
- kbdestroy(kbesc);
-@@ -714,7 +714,7 @@
- wquit(1, 0);
- }
- else if(s == ABORT){
-- emlwrite("Exit cancelled", NULL);
-+ emlwrite("取消離開", NULL);
- if(term.t_mrow == 0)
- curwp->w_flag |= WFHARD; /* cause bottom 3 lines to paint */
- }
-@@ -748,7 +748,7 @@
- ctrlg(f, n)
- int f, n;
- {
-- emlwrite("Cancelled", NULL);
-+ emlwrite("取消", NULL);
- return (ABORT);
- }
-
-@@ -759,7 +759,7 @@
- rdonly()
- {
- (*term.t_beep)();
-- emlwrite("Key illegal in VIEW mode", NULL);
-+ emlwrite("這不是一個在 VIEW 模式中合法的命令", NULL);
- return(FALSE);
- }
-
-@@ -1323,7 +1323,7 @@
- wp->doto = 0;
- }
- else
-- emlwrite("Can't allocate space for text", NULL);
-+ emlwrite("無法配置文字的記憶體空間", NULL);
-
- return((void *)wp);
- }
-@@ -1411,7 +1411,7 @@
- register LINE *lp;
-
- if((lp = lalloc(0)) == NULL){
-- emlwrite("Can't allocate space for more characters",NULL);
-+ emlwrite("無法配置記憶體空間給更多的字元",NULL);
- return(0);
- }
-
diff --git a/chinese/pine4/files/patch-ar b/chinese/pine4/files/patch-ar
deleted file mode 100644
index 2124b48d896b..000000000000
--- a/chinese/pine4/files/patch-ar
+++ /dev/null
@@ -1,11 +0,0 @@
---- pico/pilot.c.orig Tue Aug 25 01:37:39 1998
-+++ pico/pilot.c Thu Oct 14 10:53:42 1999
-@@ -222,7 +222,7 @@
- sup_keyhelp = !sup_keyhelp;
- break;
- case 'q': /* -q for termcap takes precedence */
-- gmode ^= MDTCAPWINS;
-+ gmode |= MDTCAPWINS;
- break;
- case 'z': /* -z to suspend */
- gmode ^= MDSSPD;
diff --git a/chinese/pine4/files/patch-as b/chinese/pine4/files/patch-as
deleted file mode 100644
index d3c4726ef8ea..000000000000
--- a/chinese/pine4/files/patch-as
+++ /dev/null
@@ -1,233 +0,0 @@
---- pico/search.c.orig Tue Oct 5 05:49:41 1999
-+++ pico/search.c Thu Oct 14 11:36:00 1999
-@@ -131,9 +131,9 @@
- while(1){
-
- if (gmode & MDREPLACE)
-- status = srpat("Search", defpat, repl_mode);
-+ status = srpat("搜尋", defpat, repl_mode);
- else
-- status = readpattern("Search", TRUE);
-+ status = readpattern("搜尋", TRUE);
-
- switch(status){
- case TRUE: /* user typed something */
-@@ -146,14 +146,14 @@
-
- saved_state = save_pico_state();
- (*Pmaster->helper)(Pmaster->search_help,
-- "Help for Searching", 1);
-+ "搜尋的輔助說明", 1);
- if(saved_state){
- restore_pico_state(saved_state);
- free_pico_state(saved_state);
- }
- }
- else
-- pico_help(SearchHelpText, "Help for Searching", 1);
-+ pico_help(SearchHelpText, "搜尋的輔助說明", 1);
-
- case (CTRL|'L'): /* redraw requested */
- refresh(FALSE, 1);
-@@ -235,7 +235,7 @@
-
- default:
- if(status == ABORT)
-- emlwrite("Search Cancelled", NULL);
-+ emlwrite("取消搜尋", NULL);
- else
- mlerase();
-
-@@ -283,16 +283,16 @@
-
- /* and complain if not there */
- if (status == FALSE){
-- emlwrite("\"%s\" not found", defpat);
-+ emlwrite("找不到 \"%s\"", defpat);
- }
- else if((gmode & MDREPLACE) && repl_mode == TRUE){
- status = replace_pat(defpat, &wrapt2); /* replace pattern */
- if (wrapt == TRUE || wrapt2 == TRUE)
-- emlwrite("Replacement %srapped",
-- (status == ABORT) ? "cancelled but w" : "W");
-+ emlwrite("取代%s由檔案起始從頭搜尋",
-+ (status == ABORT) ? "已取消,但" : "");
- }
- else if(wrapt == TRUE){
-- emlwrite("Search Wrapped", NULL);
-+ emlwrite("從頭搜尋", NULL);
- }
- else if(status == TRUE){
- emlwrite("", NULL);
-@@ -321,7 +321,7 @@
- /* additional 'replace all' menu option */
- menu_pat[0].name = "^X";
- menu_pat[0].key = (CTRL|'X');
-- menu_pat[0].label = "Repl All";
-+ menu_pat[0].label = "取代所有";
- KS_OSDATASET(&menu_pat[0], KS_NONE);
- menu_pat[1].name = NULL;
-
-@@ -333,10 +333,10 @@
- pputs(origpat, 1); /* highlight word */
- (*term.t_rev)(0);
-
-- sprintf(prompt, "Replace%s \"", repl_all ? " every" : "");
-+ sprintf(prompt, "取代%s \"", repl_all ? "每一個" : "");
-
- expandp(&defpat[0], &prompt[strlen(prompt)], NPAT/2);
-- strcat(prompt, "\" with");
-+ strcat(prompt, "\" 為");
- if(rpat[0] != 0){
- strcat(prompt, " [");
- expandp(rpat, &prompt[strlen(prompt)], NPAT/2);
-@@ -378,14 +378,14 @@
-
- saved_state = save_pico_state();
- (*Pmaster->helper)(Pmaster->search_help,
-- "Help for Searching", 1);
-+ "搜尋的輔助說明", 1);
- if(saved_state){
- restore_pico_state(saved_state);
- free_pico_state(saved_state);
- }
- }
- else
-- pico_help(SearchHelpText, "Help for Searching", 1);
-+ pico_help(SearchHelpText, "搜尋的輔助說明", 1);
-
- case (CTRL|'L'): /* redraw requested */
- refresh(FALSE, 1);
-@@ -395,18 +395,18 @@
- case (CTRL|'X'): /* toggle replace all option */
- if (repl_all){
- repl_all = FALSE;
-- menu_pat[0].label = "Repl All";
-+ menu_pat[0].label = "取代所有";
- }
- else{
- repl_all = TRUE;
-- menu_pat[0].label = "Repl One";
-+ menu_pat[0].label = "取代一個";
- }
-
- break;
-
- default:
- if(status == ABORT)
-- emlwrite("Replacement Cancelled", NULL);
-+ emlwrite("取消取代", NULL);
- else
- mlerase();
- chword(defpat, origpat);
-@@ -455,9 +455,9 @@
- (*term.t_rev)(0);
- fflush(stdout);
-
-- strcpy(prompt, "Replace \"");
-+ strcpy(prompt, "取代 \"");
- expandp(&orig[0], &prompt[strlen(prompt)], NPAT/2);
-- strcat(prompt, "\" with \"");
-+ strcat(prompt, "\" 為 \"");
- expandp(&repl[0], &prompt[strlen(prompt)], NPAT/2);
- strcat(prompt, "\"");
-
-@@ -471,13 +471,13 @@
- chword(realpat, realpat); /* replace word by itself */
- update();
- if(status == ABORT){ /* if cancelled return */
-- emlwrite("Replace All cancelled after %d changes", (char *) n);
-+ emlwrite("在取消「取代所有」之前,已做過 %d 個改變", (char *) n);
- return (ABORT); /* ... else keep looking */
- }
- }
- }
- else{
-- emlwrite("No more matches for \"%s\"", orig);
-+ emlwrite("沒有符合 \"%s\" 的字串了", orig);
- return (FALSE);
- }
- }
-@@ -495,33 +495,33 @@
- EXTRAKEYS menu_pat[7];
-
- menu_pat[i = 0].name = "^Y";
-- menu_pat[i].label = "FirstLine";
-+ menu_pat[i].label = "第一行";
- menu_pat[i].key = (CTRL|'Y');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^V";
-- menu_pat[i].label = "LastLine";
-+ menu_pat[i].label = "最後一行";
- menu_pat[i].key = (CTRL|'V');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^R";
-- menu_pat[i].label = repl_mode ? "No Replace" : "Replace";
-+ menu_pat[i].label = repl_mode ? "不取代" : "取代";
- menu_pat[i].key = (CTRL|'R');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- if(!repl_mode){
- menu_pat[++i].name = "^T";
-- menu_pat[i].label = "LineNumber";
-+ menu_pat[i].label = "行號";
- menu_pat[i].key = (CTRL|'T');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^W";
-- menu_pat[i].label = "Start of Para";
-+ menu_pat[i].label = "段落起始";
- menu_pat[i].key = (CTRL|'W');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^O";
-- menu_pat[i].label = "End of Para";
-+ menu_pat[i].label = "段落結尾";
- menu_pat[i].key = (CTRL|'O');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
- }
-@@ -577,7 +577,7 @@
- EXTRAKEYS menu_pat[2];
-
- menu_pat[i = 0].name = "^T";
-- menu_pat[i].label = "No Line Number";
-+ menu_pat[i].label = "無行號";
- menu_pat[i].key = (CTRL|'T');
- KS_OSDATASET(&menu_pat[i++], KS_NONE);
-
-@@ -622,28 +622,28 @@
- EXTRAKEYS menu_pat[6];
-
- menu_pat[i = 0].name = "^Y";
-- menu_pat[i].label = "FirstLine";
-+ menu_pat[i].label = "第一行";
- menu_pat[i].key = (CTRL|'Y');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^V";
-- menu_pat[i].label = "LastLine";
-+ menu_pat[i].label = "最後一行";
- menu_pat[i].key = (CTRL|'V');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- if(text_mode){
- menu_pat[++i].name = "^T";
-- menu_pat[i].label = "LineNumber";
-+ menu_pat[i].label = "行號";
- menu_pat[i].key = (CTRL|'T');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^W";
-- menu_pat[i].label = "Start of Para";
-+ menu_pat[i].label = "段落起始";
- menu_pat[i].key = (CTRL|'W');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
-
- menu_pat[++i].name = "^O";
-- menu_pat[i].label = "End of Para";
-+ menu_pat[i].label = "段落結尾";
- menu_pat[i].key = (CTRL|'O');
- KS_OSDATASET(&menu_pat[i], KS_NONE);
- }
diff --git a/chinese/pine4/files/patch-au b/chinese/pine4/files/patch-au
deleted file mode 100644
index 53169b4651a0..000000000000
--- a/chinese/pine4/files/patch-au
+++ /dev/null
@@ -1,51 +0,0 @@
---- pine/osdep/os-bsf.h.orig Thu Oct 8 05:51:40 1998
-+++ pine/osdep/os-bsf.h Thu Oct 14 10:53:42 1999
-@@ -74,7 +74,7 @@
- default-composer-hdrs or customized-hdrs to get at it. Instead of
- defining NEVER_ALLOW_CHANGING_FROM, an easier way of preventing From
- changing is to put the feature "no-allow-changing-from" in the
-- /usr/local/lib/pine.conf.fixed file.
-+ @@PREFIX@@/etc/pine.conf.fixed file.
- ----*/
- /* #define NEVER_ALLOW_CHANGING_FROM */
-
-@@ -87,7 +87,7 @@
- NOTE: You'll also have to make sure the appropriate osdep/postreap.*
- file is included in the os-*.ic file for your system.
- ----*/
--/* #define BACKGROUND_POST */
-+/* #define BACKGROUND_POST /* comment out to disable posting from child */
-
-
-
-@@ -160,8 +160,8 @@
-
-
- /*----- System-wide config file ----------------------------------------*/
--#define SYSTEM_PINERC "/usr/local/lib/pine.conf"
--#define SYSTEM_PINERC_FIXED "/usr/local/lib/pine.conf.fixed"
-+#define SYSTEM_PINERC "@@PREFIX@@/etc/pine.conf"
-+#define SYSTEM_PINERC_FIXED "@@PREFIX@@/etc/pine.conf.fixed"
-
-
-
-@@ -219,7 +219,9 @@
- /*----------------------------------------------------------------------
- If no nntp-servers are defined, this program will be used to post news.
- ----*/
--#define SENDNEWS "/usr/local/news/inews -h"
-+#define SENDNEWS "/usr/local/news/inews -h" /* For NN inews */
-+/*#define SENDNEWS "/usr/local/bin/inews -h" /* For INN inews */
-+/*#define SENDNEWS "/usr/local/bin/inews -h" /* For Cnews inews */
-
-
- /*--------- Program employed by users to change their password ---------*/
-@@ -268,7 +270,7 @@
- 8
- 9 logs gross details of command execution
- ----*/
--#define DEFAULT_DEBUG 2
-+#define DEFAULT_DEBUG 0
-
-
-
diff --git a/chinese/pine4/files/patch-av b/chinese/pine4/files/patch-av
deleted file mode 100644
index 2c40253ce567..000000000000
--- a/chinese/pine4/files/patch-av
+++ /dev/null
@@ -1,1435 +0,0 @@
---- pine/addrbook.c.orig Fri Sep 10 05:35:09 1999
-+++ pine/addrbook.c Thu Oct 14 11:37:56 1999
-@@ -129,14 +129,14 @@
- char *pcpine_help_addrbook PROTO((char *));
- #endif
-
--#define CLICKHERE "[ Address List ]"
--#define EMPTY "[ Empty ]"
--#define ZOOM_EMPTY "[ No Selected Entries in this Address Book ]"
--#define ADD_PERSONAL " [ Move here to add a Personal Address Book ]"
--#define ADD_GLOBAL " [ Move here to add a Global Address Book ]"
--#define DISTLIST "DISTRIBUTION LIST:"
--#define NOABOOKS "[ No Address Book Configured ]"
--#define CLICKHERECMB "[ Select Here to See Expanded List ]"
-+#define CLICKHERE "[ 地址列表 ]"
-+#define EMPTY "[ 沒有任何項目 ]"
-+#define ZOOM_EMPTY "[ 本列表中沒有任何已被選取的項目 ]"
-+#define ADD_PERSONAL " [ 移到這裡加入一個個人的地址簿 ]"
-+#define ADD_GLOBAL " [ 移到這裡加入一個整體的地址簿 ]"
-+#define DISTLIST "分類列表:"
-+#define NOABOOKS "[ 沒有已經設定好的地址簿 ]"
-+#define CLICKHERECMB "[ 選這裡以檢視展開後的列表 ]"
-
-
- /*
-@@ -287,7 +287,7 @@
-
- dprint(2, (debugfile, "parse_format: ignoring unrecognized word \"%s\" in address-book-formats\n", p));
- q_status_message1(SM_ORDER, warnings++==0 ? 1 : 0, 4,
-- "Ignoring unrecognized word \"%s\" in address-book-formats", p);
-+ "忽略地址簿格式中無法辨識的字 \"%s\"", p);
- /* put back space */
- if(r)
- *r = SPACE;
-@@ -357,7 +357,7 @@
-
- if(column == 0){
- q_status_message(SM_ORDER, 0, 4,
-- "address-book-formats has no recognizable words, using default format");
-+ "由於在地址簿格式中找不到足以辨識的字,因此使用預設模式");
- goto assign_default;
- }
-
-@@ -599,7 +599,7 @@
- }
- else{
- q_status_message(SM_ORDER | SM_DING, 5, 10,
-- "Bug in addrbook, not supposed to happen, re-syncing...");
-+ "地址簿功\能中出現未預期的錯誤,重新同步中...");
- dprint(1,
- (debugfile,
- "Bug in addrbook (null dlc in dlist(%ld), not supposed to happen\n",
-@@ -1705,14 +1705,14 @@
- mailcap_free(); /* free resources we won't be using for a while */
-
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1, (debugfile, "RESETTING address book... addr_book_screen!\n"));
- addrbook_reset();
- }
-
- ab_nesting_level = 1; /* come here only from main menu */
-
-- (void)addr_book(AddrBookScreen, "ADDRESS BOOK", NULL);
-+ (void)addr_book(AddrBookScreen, "地址簿", NULL);
- end_adrbks();
-
- pine_state->prev_screen = addr_book_screen;
-@@ -1728,14 +1728,14 @@
- mailcap_free(); /* free resources we won't be using for a while */
-
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1, (debugfile, "RESETTING address book... addr_book_config!\n"));
- addrbook_reset();
- }
-
- ab_nesting_level = 1;
-
-- (void)addr_book(AddrBookConfig, "SETUP ADDRESS BOOKS", NULL);
-+ (void)addr_book(AddrBookConfig, "設定地址簿", NULL);
- end_adrbks();
-
- pine_state->prev_screen = addr_book_screen;
-@@ -1759,7 +1759,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book... addr_book_oneaddr!\n"));
- addrbook_reset();
-@@ -1768,7 +1768,7 @@
-
- ab_nesting_level++;
-
-- p = addr_book(SelectAddr, "SELECT ADDRESS", NULL);
-+ p = addr_book(SelectAddr, "選擇地址", NULL);
-
- if(ab_nesting_level <= 1)
- end_adrbks();
-@@ -1844,7 +1844,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book... addr_book_compose!\n"));
- addrbook_reset();
-@@ -1853,7 +1853,7 @@
-
- ab_nesting_level++;
-
-- p = addr_book(SelectNicksCom, "COMPOSER: SELECT ADDRESS", error);
-+ p = addr_book(SelectNicksCom, "編輯器:選擇列表", error);
-
- if(ab_nesting_level <= 1)
- end_adrbks();
-@@ -1888,7 +1888,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book... addr_book_compose_lcc!\n"));
- addrbook_reset();
-@@ -1901,7 +1901,7 @@
- * We used to use SelectAddrLccCom here but decided it wasn't necessary
- * to restrict the selection to a list.
- */
-- p = addr_book(SelectNicksCom, "COMPOSER: SELECT LIST", error);
-+ p = addr_book(SelectNicksCom, "編輯器:選擇列表", error);
-
- if(ab_nesting_level <= 1)
- end_adrbks();
-@@ -1936,7 +1936,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book... addr_book_change_list!\n"));
- addrbook_reset();
-@@ -1945,7 +1945,7 @@
-
- ab_nesting_level++;
-
-- p = addr_book(SelectNicksCom, "ADDRESS BOOK (Update): SELECT ADDRESSES",
-+ p = addr_book(SelectNicksCom, "地址簿 (更新):選擇地址",
- error);
-
- if(ab_nesting_level <= 1)
-@@ -1978,7 +1978,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book...addr_book_bounce!\n"));
- addrbook_reset();
-@@ -1987,7 +1987,7 @@
-
- ab_nesting_level++;
-
-- p = addr_book(SelectManyNicks, "SELECT ADDRESSES", NULL);
-+ p = addr_book(SelectManyNicks, "選擇地址", NULL);
-
- if(ab_nesting_level <= 1)
- end_adrbks();
-@@ -2019,7 +2019,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book...addr_book_takeaddr!\n"));
- addrbook_reset();
-@@ -2028,7 +2028,7 @@
-
- ab_nesting_level++;
-
-- p = addr_book(SelectNickTake, "TAKEADDR: SELECT NICKNAME", NULL);
-+ p = addr_book(SelectNickTake, "選擇地址:選擇暱稱", NULL);
-
- if(ab_nesting_level <= 1)
- end_adrbks();
-@@ -2064,7 +2064,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book...addr_book_nick_for_edit!\n"));
- addrbook_reset();
-@@ -2079,7 +2079,7 @@
- * and this seemed to be the easiest way to accomplish that.
- */
- as.n_serv = 0;
-- p = addr_book(SelectNickCom, "SELECT NICKNAME", error);
-+ p = addr_book(SelectNickCom, "選擇暱稱", error);
- as.n_serv = save_n_serv;
-
- if(ab_nesting_level <= 1)
-@@ -2112,7 +2112,7 @@
- save_nesting_level = cpyint(ab_nesting_level);
- memcpy(save_jmp_buf, addrbook_changed_unexpectedly, sizeof(jmp_buf));
- if(setjmp(addrbook_changed_unexpectedly)){
-- q_status_message(SM_ORDER, 5, 10, "Resetting address book...");
-+ q_status_message(SM_ORDER, 5, 10, "正在重設地址簿...");
- dprint(1,
- (debugfile, "RESETTING address book...addr_book_selnick!\n"));
- addrbook_reset();
-@@ -2121,7 +2121,7 @@
-
- ab_nesting_level++;
-
-- p = addr_book(SelectNick, "SELECT NICKNAME", NULL);
-+ p = addr_book(SelectNick, "選擇暱稱", NULL);
-
- if(ab_nesting_level <= 1)
- end_adrbks();
-@@ -2144,8 +2144,8 @@
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-- {"P", "PrevEntry", {MC_PREVITEM,1,{'p'}}, KS_NONE},
-- {"N", "NextEntry", {MC_NEXTITEM,1,{'n'}}, KS_NONE},
-+ {"P", "前一個項目", {MC_PREVITEM,1,{'p'}}, KS_NONE},
-+ {"N", "次一個項目", {MC_NEXTITEM,1,{'n'}}, KS_NONE},
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
- NULL_MENU,
-@@ -2168,10 +2168,10 @@
-
- HELP_MENU,
- OTHER_MENU,
-- {";","Select",{MC_SELECT,1,{';'}},KS_NONE},
-- {"A","Apply",{MC_APPLY,1,{'a'}},KS_APPLY},
-- {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
-- {"Z","ZoomMode",{MC_ZOOM,1,{'z'}},KS_NONE},
-+ {";","選擇",{MC_SELECT,1,{';'}},KS_NONE},
-+ {"A","套用",{MC_APPLY,1,{'a'}},KS_APPLY},
-+ {":","選擇目前的",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
-+ {"Z","縮放模式",{MC_ZOOM,1,{'z'}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -2303,7 +2303,7 @@
- if(!init_addrbooks(HalfOpen, 1, !as.config, !are_selecting)){
- if(are_selecting){
- q_status_message(SM_ORDER | SM_DING, 0, 4,
-- "No Address Book Configured");
-+ "沒有已設定完成的地址簿");
- display_message(c);
- sleep(2);
- return NULL;
-@@ -2311,7 +2311,7 @@
- else if(!as.config){
- ps->next_screen = main_menu_screen;
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "No Address Book Configured, Use SETUP Addressbook screen");
-+ "沒有已設定完成的地址簿,請用 SETUP Addressbook 功\能畫面");
- ps->mangled_screen = 1;
- return NULL;
- }
-@@ -2321,7 +2321,7 @@
- readonly_warning(NO_DING, NULL);
- else if(as.adrbks[0].access == NoAccess)
- q_status_message(SM_ORDER, 0, 4,
-- "AddressBook not accessible, permission denied");
-+ "地址簿禁止被存取");
- }
-
- erase_checks();
-@@ -2466,10 +2466,10 @@
-
- if(style == AddrBookScreen){
- if(F_ON(F_CMBND_ABOOK_DISP,ps_global))
-- sprintf(buf, "ADDRESS BOOK%s", (as.n_addrbk > 1) ? "S" : "");
-+ sprintf(buf, "地址簿");
- else
-- sprintf(buf, "ADDRESS BOOK%s%s%s",
-- is_custom_title ? " <" : cur_is_open() ? "" : " LIST",
-+ sprintf(buf, "地址簿%s%s%s",
-+ is_custom_title ? " <" : cur_is_open() ? "" : "列表",
- is_custom_title ? pab->nickname : "",
- is_custom_title ? ">" : "");
-
-@@ -2534,7 +2534,7 @@
- km->how_many = 1;
-
- clrbitn(OTHER_KEY, bitmap);
-- menu_init_binding(km, 'E', MC_EXIT, "E", "Exit Setup", TWO_KEY);
-+ menu_init_binding(km, 'E', MC_EXIT, "E", "離開", TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_EXITMODE);
-
- /*
-@@ -2547,22 +2547,22 @@
- clrbitn(THREE_KEY, bitmap);
- menu_init_binding(km, 'A', MC_ADDABOOK, "A",
- add_is_global(as.top_ent+as.cur_row)
-- ? "[Add Glob Abook]"
-- : "[Add Pers Abook]",
-+ ? "[新增整體地址簿]"
-+ : "[新增個人地址簿]",
- ADD_KEY);
- def_key = ADD_KEY;
- }
- else{
-- menu_init_binding(km, 'D', MC_DELABOOK, "D", "Del Abook",
-+ menu_init_binding(km, 'D', MC_DELABOOK, "D", "刪除地址簿",
- DELETE_KEY);
-- menu_init_binding(km, '$', MC_SHUFFLE, "$", "Shuffle",
-+ menu_init_binding(km, '$', MC_SHUFFLE, "$", "重整",
- SENDTO_KEY);
-- menu_init_binding(km, 'C', MC_EDITABOOK, "C", "[Change]",
-+ menu_init_binding(km, 'C', MC_EDITABOOK, "C", "[修改]",
- THREE_KEY);
- menu_init_binding(km, 'A', MC_ADDABOOK, "A",
- add_is_global(as.top_ent+as.cur_row)
-- ? "Add Glob Abook"
-- : "Add Pers Abook",
-+ ? "新增整體地址簿"
-+ : "新增個人地址簿",
- ADD_KEY);
- }
- }
-@@ -2575,7 +2575,7 @@
- * The OTHER_KEY is used as the Exit key in selection mode.
- * This is because the TWO_KEY is being used for < actions.
- */
-- menu_init_binding(km, 'E', MC_EXIT, "E", "ExitSelect",
-+ menu_init_binding(km, 'E', MC_EXIT, "E", "離開",
- OTHER_KEY);
- KS_OSDATASET(&km->keys[OTHER_KEY], KS_EXITMODE);
-
-@@ -2595,8 +2595,8 @@
- clrbitn(TWO_KEY, bitmap);
- else{
- menu_init_binding(km, '<', cmd, "<",
-- cmd == MC_POPUP ? "AddressBkList"
-- : "Unexpand",
-+ cmd == MC_POPUP ? "地址簿列表"
-+ : "復原展開",
- TWO_KEY);
- menu_add_binding(km, ',', cmd);
- if(F_ON(F_ARROW_NAV,ps))
-@@ -2607,16 +2607,16 @@
- if(checkedn){
- if(entry_is_clickable_title(as.top_ent+as.cur_row)){
- menu_init_binding(km, 'S', MC_CHOICE, "S",
-- "Select", TWO_KEY);
-+ "選擇", TWO_KEY);
- }
- else{
- menu_init_binding(km, 'S', MC_CHOICE, "S",
-- "[Select]", TWO_KEY);
-+ "[選擇]", TWO_KEY);
- def_key = TWO_KEY;
- }
- }
- else
-- menu_init_binding(km, 'S', MC_CHOICE, "S", "Select",
-+ menu_init_binding(km, 'S', MC_CHOICE, "S", "選擇",
- TWO_KEY);
- }
- else
-@@ -2628,7 +2628,7 @@
- * key becomes the ViewAbook key.
- */
- if(entry_is_askserver(as.top_ent+as.cur_row) && !as.checkboxes){
-- menu_init_binding(km, '>', MC_QUERY_SERV, ">", "[Search]",
-+ menu_init_binding(km, '>', MC_QUERY_SERV, ">", "[搜尋]",
- THREE_KEY);
- menu_add_binding(km, 's', MC_QUERY_SERV);
- menu_add_binding(km, '.', MC_QUERY_SERV);
-@@ -2636,7 +2636,7 @@
- menu_add_binding(km, KEY_RIGHT, MC_QUERY_SERV);
- }
- else if(entry_is_clickable_title(as.top_ent+as.cur_row)){
-- menu_init_binding(km, '>', MC_OPENABOOK, ">", "[ViewAbook]",
-+ menu_init_binding(km, '>', MC_OPENABOOK, ">", "[檢視地址簿]",
- THREE_KEY);
- menu_add_binding(km, 'v', MC_OPENABOOK);
- menu_add_binding(km, '.', MC_OPENABOOK);
-@@ -2644,7 +2644,7 @@
- menu_add_binding(km, KEY_RIGHT, MC_OPENABOOK);
- }
- else if(cur_is_open()){
-- menu_init_binding(km, 'S', MC_CHOICE, "S", "[Select]",
-+ menu_init_binding(km, 'S', MC_CHOICE, "S", "[選取]",
- THREE_KEY);
- }
- else
-@@ -2657,7 +2657,7 @@
- */
- if(entry_is_clickable(as.top_ent+as.cur_row) &&
- !entry_is_clickable_title(as.top_ent+as.cur_row)){
-- menu_init_binding(km, '>', MC_EXPAND, ">", "Expand",
-+ menu_init_binding(km, '>', MC_EXPAND, ">", "展開",
- SENDTO_KEY);
- menu_add_binding(km, '.', MC_EXPAND);
- if(F_ON(F_ARROW_NAV,ps))
-@@ -2667,12 +2667,12 @@
- clrbitn(SENDTO_KEY, bitmap);
-
- if(cur_is_open() && as.checkboxes){
-- menu_init_binding(km, 'X', MC_TOGGLE, "X", "Set/Unset",
-+ menu_init_binding(km, 'X', MC_TOGGLE, "X", "設定/解除設定",
- DELETE_KEY);
-
- }
- else if(cur_is_open() && listmode_ok){
-- menu_init_binding(km, 'L', MC_LISTMODE, "L", "ListMode",
-+ menu_init_binding(km, 'L', MC_LISTMODE, "L", "列表模式",
- DELETE_KEY);
- }
- else
-@@ -2689,7 +2689,7 @@
- * reasonable function call.
- */
- km->keys[OTHER_KEY].name = "O";
-- km->keys[OTHER_KEY].label = "OTHER CMDS";
-+ km->keys[OTHER_KEY].label = "其他命令";
- km->keys[OTHER_KEY].bind.cmd = MC_OTHER;
- km->keys[OTHER_KEY].bind.ch[0] = 'O';
- km->keys[OTHER_KEY].bind.nch = 1;
-@@ -2708,13 +2708,13 @@
- if(F_OFF(F_EXPANDED_DISTLISTS,ps) &&
- entry_is_listent(as.top_ent+as.cur_row)){
- cmd = MC_UNEXPAND;
-- menu_init_binding(km, '<', cmd, "<", "Unexpand",
-+ menu_init_binding(km, '<', cmd, "<", "復原展開",
- TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_NONE);
- }
- else{
- cmd = MC_MAIN;
-- menu_init_binding(km, 'M', cmd, "<", "Main Menu",
-+ menu_init_binding(km, 'M', cmd, "<", "主選單",
- TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU);
- }
-@@ -2723,11 +2723,11 @@
- /*
- * Add or delete entries from this address book.
- */
-- menu_init_binding(km, '@', MC_ADD, "@", "AddNew",
-+ menu_init_binding(km, '@', MC_ADD, "@", "新增",
- ADD_KEY);
-- menu_init_binding(km, 'D', MC_DELETE, "D", "Delete",
-+ menu_init_binding(km, 'D', MC_DELETE, "D", "刪除",
- DELETE_KEY);
-- menu_init_binding(km, 'C', MC_COMPOSE, "C", "ComposeTo",
-+ menu_init_binding(km, 'C', MC_COMPOSE, "C", "編修",
- SENDTO_KEY);
- KS_OSDATASET(&km->keys[SENDTO_KEY], KS_COMPOSER);
- menu_init_binding(km, '#', MC_ROLE, "#", "Role",
-@@ -2756,7 +2756,7 @@
- if(F_OFF(F_EXPANDED_DISTLISTS,ps) &&
- entry_is_listent(as.top_ent+as.cur_row)){
- cmd = MC_UNEXPAND;
-- menu_init_binding(km, '<', cmd, "<", "Unexpand",
-+ menu_init_binding(km, '<', cmd, "<", "復原展開",
- TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_NONE);
- }
-@@ -2764,12 +2764,12 @@
- if(as.n_addrbk > 1 || as.n_serv){
- cmd = MC_POPUP;
- menu_init_binding(km, '<', cmd, "<",
-- "AddressBkList", TWO_KEY);
-+ "地址簿列表", TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_NONE);
- }
- else{
- cmd = MC_MAIN;
-- menu_init_binding(km, 'M', cmd, "<", "Main Menu",
-+ menu_init_binding(km, 'M', cmd, "<", "主選單",
- TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU);
- }
-@@ -2779,9 +2779,9 @@
- /*
- * Add or delete entries from this address book.
- */
-- menu_init_binding(km, '@', MC_ADD, "@", "AddNew",
-+ menu_init_binding(km, '@', MC_ADD, "@", "新增",
- ADD_KEY);
-- menu_init_binding(km, 'D', MC_DELETE, "D", "Delete",
-+ menu_init_binding(km, 'D', MC_DELETE, "D", "刪除",
- DELETE_KEY);
- }
- else{
-@@ -2791,14 +2791,14 @@
-
- /* Find someplace to put Main Menu command */
- if(cmd == MC_POPUP){
-- menu_init_binding(km, 'M', MC_MAIN, "M", "Main Menu",
-+ menu_init_binding(km, 'M', MC_MAIN, "M", "主選單",
- SECONDARY_MAIN_KEY);
- KS_OSDATASET(&km->keys[SECONDARY_MAIN_KEY],KS_MAINMENU);
- }
- else
- clrbitn(SECONDARY_MAIN_KEY, bitmap);
-
-- menu_init_binding(km, 'C', MC_COMPOSE, "C", "ComposeTo",
-+ menu_init_binding(km, 'C', MC_COMPOSE, "C", "編修",
- SENDTO_KEY);
- KS_OSDATASET(&km->keys[SENDTO_KEY], KS_COMPOSER);
- menu_init_binding(km, '#', MC_ROLE, "#", "Role",
-@@ -2810,7 +2810,7 @@
- * non-selection mode.
- */
- cmd = MC_MAIN;
-- menu_init_binding(km, 'M', cmd, "<", "Main Menu",
-+ menu_init_binding(km, 'M', cmd, "<", "主選單",
- TWO_KEY);
- KS_OSDATASET(&km->keys[TWO_KEY], KS_MAINMENU);
-
-@@ -2850,10 +2850,10 @@
- cmd = MC_VIEW_ENTRY;
-
- menu_init_binding(km, '>', cmd, ">",
-- cmd == MC_EXPAND ? "[Expand]" :
-- cmd == MC_QUERY_SERV ? "[Search]" :
-- cur_is_open() ? "[View/Update]"
-- : "[ViewAbook]",
-+ cmd == MC_EXPAND ? "[展開]" :
-+ cmd == MC_QUERY_SERV ? "[搜尋]" :
-+ cur_is_open() ? "[檢視/更新]"
-+ : "[檢視地址簿]",
- THREE_KEY);
-
- if(cmd == MC_QUERY_SERV)
-@@ -2992,13 +2992,13 @@
- }
-
- if(as.config)
-- helper(gAbookHelp, "HELP ON CONFIGURING ADDRESS BOOKS",
-+ helper(gAbookHelp, "設定地址簿的輔助說明",
- HLPD_NONE);
- else if(are_selecting)
-- helper(gAbookHelp, "HELP ON ADDRESS BOOK",
-+ helper(gAbookHelp, "地址簿的輔助說明",
- HLPD_SIMPLE | HLPD_NEWWIN);
- else /* general maintenance screen */
-- helper(gAbookHelp, "HELP ON ADDRESS BOOK", HLPD_NONE);
-+ helper(gAbookHelp, "地址簿的輔助說明", HLPD_NONE);
-
- /*
- * Helper() may have a Main Menu key. If user types that
-@@ -3072,7 +3072,7 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Can't happen in MC_UNEXPAND");
-+ "無法在 MC_UNEXPAND 時發生");
-
- break;
-
-@@ -3108,7 +3108,7 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Can't happen in MC_POPUP");
-+ "無法在 MC_POPUP 時發生");
-
- break;
-
-@@ -3179,11 +3179,11 @@
- }
- else if(dlc_to_flush->type == DlcTitleNoPerm)
- q_status_message(SM_ORDER, 0, 4,
-- "Cannot access address book.");
-+ "無法存取地址簿。");
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Can't happen in MC_OPENABOOK");
-+ "無法在 MC_OPENABOOK 時發生");
-
- break;
-
-@@ -3229,7 +3229,7 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Can't happen in MC_EXPAND");
-+ "無法在 MC_EXPAND 時發生");
-
- break;
-
-@@ -3241,7 +3241,7 @@
- /* Select an entry to mail to or a nickname to add to */
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
- q_status_message(SM_ORDER | SM_DING, 0, 4,
-- "No entries in address book. Use ExitSelect to leave address books");
-+ "地址簿中找不到任何項目. 請以 離開選擇(E) 離開");
- break;
- }
-
-@@ -3263,7 +3263,7 @@
- }
- else if(as.checkboxes && checkedn <= 0){
- q_status_message(SM_ORDER, 0, 1,
-- "Use \"X\" to mark addresses or lists");
-+ "使用 \"X\" 標記地址或列表");
- break;
- }
- else if(as.checkboxes){
-@@ -3347,7 +3347,7 @@
- if(selecting_mult_nicks){
- if(dl->type != ListHead && style == SelectAddrLccCom){
- q_status_message(SM_ORDER, 0, 4,
-- "You may only select lists for lcc, use bcc for other addresses");
-+ "僅能選擇 lcc 列表, 其他的地址請用 bcc");
- break;
- }
- else{
-@@ -3422,16 +3422,16 @@
- if(entry_is_clickable(as.top_ent+as.cur_row))
- clickable_warning(as.top_ent+as.cur_row);
- else if(entry_is_askserver(as.top_ent+as.cur_row))
-- q_status_message(SM_ORDER, 3, 4, "Use select to select an address or addresses from address books");
-+ q_status_message(SM_ORDER, 3, 4, "使用「選擇」來選擇地址簿中的地址");
- else
-- q_status_message(SM_ORDER, 3, 4, "No address selected");
-+ q_status_message(SM_ORDER, 3, 4, "尚未選擇任何地址");
-
- break;
- }
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Can't happen in MC_CHOICE");
-+ "無法在 MC_CHOICE 時發生");
-
- break;
-
-@@ -3455,7 +3455,7 @@
- if(adrbk_check_all_validity_now()){
- if(resync_screen(pab, style, checkedn)){
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Address book changed. AddNew cancelled. Try again.");
-+ "地址簿被改變了;取消新增。請重試一遍。");
- ps->mangled_screen = 1;
- break;
- }
-@@ -3470,7 +3470,7 @@
- dprint(9, (debugfile,
- "Calling edit_entry to add entry manually\n"));
- edit_entry(pab->address_book, (AdrBk_Entry *)NULL, NO_NEXT,
-- NotSet, 0, &warped, "add");
-+ NotSet, 0, &warped, "新增");
-
- /*
- * Warped means we got plopped down somewhere in the display
-@@ -3615,7 +3615,7 @@
- }
- else{
- q_status_message1(SM_ORDER|SM_DING, 0, 4,
-- "Missing \"}\" in config: %s", q);
-+ "設定檔中缺乏 \"}\":%s", q);
- if(nick)
- fs_give((void **)&nick);
- if(file)
-@@ -3650,7 +3650,7 @@
- ps->mangled_screen = 1;
- }
- else
-- q_status_message(SM_ORDER, 0, 4, "Not a changeable line");
-+ q_status_message(SM_ORDER, 0, 4, "不為可被更改的一行");
-
- break;
-
-@@ -3658,7 +3658,7 @@
- /*---------- Delete an address book -------------------*/
- case MC_DELABOOK:
- if(as.n_addrbk == 0){
-- q_status_message(SM_ORDER, 0, 4, "Nothing to delete");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可被刪除的項目");
- break;
- }
-
-@@ -3729,7 +3729,7 @@
- start_disp = 0;
- ps->mangled_body = 1;
- ps->mangled_footer = 1;
-- q_status_message(SM_ORDER, 0, 3, "Address book deleted");
-+ q_status_message(SM_ORDER, 0, 3, "地址簿已被刪除");
- }
- else{
- if(err){
-@@ -3747,7 +3747,7 @@
- case MC_SHUFFLE:
- if(entry_is_addkey(as.top_ent+as.cur_row)){
- q_status_message(SM_ORDER, 0, 4,
-- "Highlight entry you wish to shuffle");
-+ "標示想要重整的項目");
- break;
- }
-
-@@ -3820,8 +3820,8 @@
-
- q_status_message(SM_ORDER, 0, 3,
- msg ? msg :
-- (ret < 0) ? "Shuffle failed" :
-- "Address books shuffled");
-+ (ret < 0) ? "重整失敗" :
-+ "地址簿已重整");
- if(ret < 0)
- dprint(5, (debugfile, "addrbook shuffle failed: %s\n",
- msg ? msg : "?"));
-@@ -3848,7 +3848,7 @@
-
- if(new_top_ent == as.top_ent ||
- (as.cur_row + (as.top_ent-new_top_ent) > as.l_p_page - 1)){
-- q_status_message(SM_INFO, 0, 1, "Already on first line.");
-+ q_status_message(SM_INFO, 0, 1, "已經在第一行了。");
- }
- else{
- as.cur_row += (as.top_ent - new_top_ent);
-@@ -3906,7 +3906,7 @@
-
- if(new_end_line - as.top_ent <= as.l_p_page - 1 ||
- as.cur_row - (new_end_line-as.top_ent-(as.l_p_page-1)) < 0){
-- q_status_message(SM_INFO, 0, 1, "Already on last line.");
-+ q_status_message(SM_INFO, 0, 1, "已經在最後一行了。");
- }
- else{
- as.cur_row -= (new_end_line-as.top_ent-(as.l_p_page-1));
-@@ -3994,7 +3994,7 @@
- #endif
- default:
- q_status_message(SM_INFO, 0, 1,
-- "Can't happen in MC_MOUSE");
-+ "無法在 MC_MOUSE 時發生");
- break;
- }
- }
-@@ -4101,7 +4101,7 @@
- break;
-
- if(as.top_ent == new_top_ent && as.cur_row == (fl-as.top_ent)){
-- q_status_message(SM_INFO, 0, 1, "Already on first page.");
-+ q_status_message(SM_INFO, 0, 1, "已經在第一頁了。");
- break;
- }
-
-@@ -4137,7 +4137,7 @@
- as.cur_row -
- (new_end_line-as.top_ent-(as.l_p_page-1)) < 0){
- q_status_message(SM_INFO, 0, 1,
-- "Already on last page.");
-+ "已經在最後一頁了。");
- }
- else{
- as.cur_row -=
-@@ -4186,14 +4186,14 @@
- if(adrbk_check_all_validity_now()){
- if(resync_screen(pab, style, checkedn)){
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Address book changed. Delete cancelled. Try again.");
-+ "地址簿被改變了;取消刪除。請重試一遍。");
- ps->mangled_screen = 1;
- break;
- }
- }
-
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "No entries to delete");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供刪除的項目");
- break;
- }
-
-@@ -4255,7 +4255,7 @@
- case MC_TOGGLE:
- togglex:
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "No entries to select");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供刪除的項目");
- break;
- }
-
-@@ -4274,10 +4274,10 @@
-
- if(style == SelectAddrLccCom && dl->type == ListEnt)
- q_status_message(SM_ORDER, 0, 4,
-- "You may only select whole lists for lcc");
-+ "僅能選擇整個列表給 lcc");
- else if(style == SelectAddrLccCom && dl->type != ListHead)
- q_status_message(SM_ORDER, 0, 4,
-- "You may only select lists for lcc, use bcc for personal entries");
-+ "僅能選擇列表給 lcc,個人項目請用 bcc");
- else if(dl->type == ListHead || dl->type == Simple){
- current_changed_flag++;
- if(entry_is_checked(pab->address_book->checks,
-@@ -4294,11 +4294,11 @@
- }
- else
- q_status_message(SM_ORDER, 0, 4,
-- "You may not select list members, only whole lists or personal entries");
-+ "無法選擇列表成員,僅能選擇整個列表或個人項目");
- }
- else
- q_status_message(SM_ORDER, 0, 4,
-- "You may only select addresses or lists");
-+ "僅能選擇地址或列表");
-
- break;
-
-@@ -4316,7 +4316,7 @@
- ps->mangled_body = 1;
- start_disp = 0;
- q_status_message(SM_ORDER, 0, 4,
-- "Use \"X\" to select addresses or lists");
-+ "使用 \"X\" 標記地址或列表");
- break;
-
-
-@@ -4342,13 +4342,13 @@
- if(!directory_ok){
- q_status_message(SM_ORDER, 0, 4,
- (style == SelectAddrLccCom)
-- ? "Can't search server for Lcc"
-- : "Can't search server from here");
-+ ? "無法由伺服器搜尋 Lcc"
-+ : "無法由此搜尋伺服器");
- break;
- }
- else if(as.checkboxes){
- q_status_message(SM_ORDER, 0, 4,
-- "Can't search server when using ListMode");
-+ "使用 ListMode 時無法搜尋伺服器");
- break;
- }
-
-@@ -4403,14 +4403,14 @@
- /*----- Select entries to work on --*/
- case MC_SELECT:
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "No entries to select");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供選擇的項目");
- break;
- }
-
- if(!cur_is_open()){
- if(entry_is_askserver(as.top_ent+as.cur_row))
- q_status_message(SM_ORDER, 0, 4,
-- "Select is only available from within an expanded address book");
-+ "僅能在展開後的地址簿中選擇");
- else
- clickable_warning(as.top_ent+as.cur_row);
-
-@@ -4443,7 +4443,7 @@
- /*----------- Select current entry ----------*/
- case MC_SELCUR:
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "No entries to select");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供選擇的項目");
- break;
- }
-
-@@ -4504,7 +4504,7 @@
- dlc_restart = *dlc;
- as.zoomed = 0;
- q_status_message(SM_ORDER, 0, 2,
-- "Zoom Mode is now off, no entries selected");
-+ "縮放模式目前為關閉狀態,沒有任何被選擇的項目");
-
- warp_to_dlc(&dlc_restart, 0L);
- /* put current entry in middle of screen */
-@@ -4571,11 +4571,11 @@
- }
- else
- q_status_message(SM_ORDER, 0, 4,
-- "You may not select list members, only whole lists or personal entries");
-+ "無法選擇列表成員,僅能選擇整個列表或個人項目");
- }
- else
- q_status_message(SM_ORDER, 0, 4,
-- "You may only select addresses or lists");
-+ "僅能選擇地址或列表");
-
- break;
-
-@@ -4588,7 +4588,7 @@
- : NULL,
- &start_disp);
- else{
-- q_status_message(SM_ORDER, 0, 2, "Zoom Mode is now off");
-+ q_status_message(SM_ORDER, 0, 2, "現在關閉縮放模式");
- ab_unzoom(&start_disp);
- }
-
-@@ -4630,7 +4630,7 @@
- }
- else
- q_status_message(SM_ORDER, 0, 2,
-- "No selected entries to apply command to");
-+ "沒有已選擇的項目可供套用命令");
-
- break;
-
-@@ -4676,7 +4676,7 @@
- /*------ Copy entries into an abook ----*/
- case MC_SAVE:
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "No entries to save");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供存入的項目");
- break;
- }
-
-@@ -4698,7 +4698,7 @@
- /*------ Forward an entry in mail -----------*/
- case MC_FORWARD:
- if(!any_addrs_avail(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "No entries to forward");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供轉寄的項目");
- break;
- }
-
-@@ -4713,14 +4713,14 @@
- }
-
- if(!is_addr(as.top_ent+as.cur_row)){
-- q_status_message(SM_ORDER, 0, 4, "Nothing to forward");
-+ q_status_message(SM_ORDER, 0, 4, "沒有東西可以轉寄");
- break;
- }
-
- dl = dlist(as.top_ent+as.cur_row);
- if(dl->type != ListHead && dl->type != Simple){
- q_status_message(SM_ORDER, 0, 4,
-- "Can only forward whole entries");
-+ "僅能轉寄整個列表");
- break;
- }
-
-@@ -4752,18 +4752,18 @@
- case MC_UNKNOWN:
- if(c == 'e' && !are_selecting){
- q_status_message(SM_ORDER | SM_DING, 0, 2,
-- "Command \"E\" not defined. Use \"View/Update\" to edit an entry");
-+ "\"E\" 這個命令尚未被定義. 請使用 \"檢視/編輯\" 編輯選項");
- break;
- }
- else if(c == 's'
- && !(are_selecting || entry_is_clickable(as.top_ent+as.cur_row))){
- q_status_message(SM_ORDER | SM_DING, 0, 2,
-- "Command \"S\" not defined. Use \"AddNew\" to create a list");
-+ "\"S\" 這個命令尚未被定義. 請使用 \"新增\" 建立列表");
- break;
- }
- else if(c == 'z' && !are_selecting){
- q_status_message(SM_ORDER | SM_DING, 0, 2,
-- "Command \"Z\" not defined. Use \"View/Update\" to add to a list");
-+ "\"Z\" 這個命令尚未被定義. 請使用 \"檢視/更新\" 新增至列表");
- break;
- }
- /* else, fall through */
-@@ -4801,7 +4801,7 @@
- as.zoomed = 1;
-
- if(as.selections){
-- q_status_message(SM_ORDER, 0, 2, "Zoom Mode is now on");
-+ q_status_message(SM_ORDER, 0, 2, "現在開啟縮放模式");
- if(cur_is_open()){
- dl = dlist(as.top_ent+as.cur_row);
- if((dl->type == ListHead ||
-@@ -4849,7 +4849,7 @@
- }
- else{
- as.zoomed = 0;
-- q_status_message(SM_ORDER, 0, 2, "No selected entries to zoom on");
-+ q_status_message(SM_ORDER, 0, 2, "沒有已選擇的項目可供放大");
- }
- }
-
-@@ -4910,7 +4910,7 @@
- char *name;
- {
- q_status_message2(SM_ORDER | (bell ? SM_DING : 0), 0, 4,
-- "AddressBook%s%s is Read Only",
-+ "地址簿%s%s 是唯讀的",
- name ? " " : "",
- name ? name : "");
- }
-@@ -4931,11 +4931,11 @@
- dl = dlist(cur_line);
- if(dl->type == NoAbooks)
- q_status_message(SM_ORDER, 0, 4,
-- "No address books configured, use Setup");
-+ "沒有已設定好的地址簿,請用 Setup");
- else if(dl->type == Empty)
-- q_status_message(SM_ORDER, 0, 4, "Address Book is Empty");
-+ q_status_message(SM_ORDER, 0, 4, "地址簿是空的");
- else
-- q_status_message(SM_ORDER, 0, 4, "Distribution List is Empty");
-+ q_status_message(SM_ORDER, 0, 4, "分類列表是空的");
- }
-
-
-@@ -4952,9 +4952,9 @@
- register AddrScrn_Disp *dl;
-
- dl = dlist(cur_line);
-- q_status_message1(SM_ORDER, 0, 4, "%s not expanded, use \">\" to expand",
-- (dl->type == Title || dl->type == ClickHereCmb) ? "Address Book"
-- : "Distribution List");
-+ q_status_message1(SM_ORDER, 0, 4, "%s 未被展開,使用 \">\" 來展開",
-+ (dl->type == Title || dl->type == ClickHereCmb) ? "地址簿"
-+ : "分類列表");
- }
-
-
-@@ -4970,7 +4970,7 @@
- char *what;
- {
- q_status_message1(SM_INFO | (bell ? SM_DING : 0), 0, 2,
-- "Address book %s cancelled", what);
-+ "地址簿%s已取消", what);
- }
-
-
-@@ -4980,7 +4980,7 @@
- void
- no_tabs_warning()
- {
-- q_status_message(SM_ORDER, 0, 4, "Tabs not allowed in address book");
-+ q_status_message(SM_ORDER, 0, 4, "地址簿中不允許\有 Tab 存在");
- }
-
-
-@@ -4999,12 +4999,12 @@
- {
- int ret = 0;
- static ESCKEY_S opts[] = {
-- {'c', 'c', "C", "ComposeTo"},
-- {'d', 'd', "D", "Delete"},
-- {'%', '%', "%", "Print"},
-- {'f', 'f', "F", "Forward"},
-- {'s', 's', "S", "Save"},
-- {'#', '#', "#", "Role"},
-+ {'c', 'c', "C", "編排"},
-+ {'d', 'd', "D", "刪除"},
-+ {'%', '%', "%", "列印"},
-+ {'f', 'f', "F", "轉寄"},
-+ {'s', 's', "S", "存檔"},
-+ {'#', '#', "#", "角色"},
- { 0, '%', "", ""},
- {-1, 0, NULL, NULL}};
- #define PHANTOM_PRINT 6
-@@ -5014,7 +5014,7 @@
-
- opts[PHANTOM_PRINT].ch = (F_ON(F_ENABLE_PRYNT, ps_global)) ? 'y' : -1;
-
-- switch(radio_buttons("APPLY command : ", command_line, opts, 0, 'z',
-+ switch(radio_buttons("套用命令:", command_line, opts, 0, 'z',
- NO_HELP, RB_NORM)){
- case 'c':
- ret = ab_compose_to_addr(cur_line, 1, 0);
-@@ -5041,7 +5041,7 @@
- break;
-
- case 'z':
-- cmd_cancelled("Apply command");
-+ cmd_cancelled("套用命令");
- break;
- }
-
-@@ -5063,22 +5063,22 @@
- int *start_disp;
- {
- static ESCKEY_S sel_opts1[] = {
-- {'a', 'a', "A", "unselect All"},
-+ {'a', 'a', "A", "取消所有選擇"},
- { 0 , 'c', "C", NULL},
-- {'b', 'b', "B", "Broaden selctn"},
-- {'n', 'n', "N", "Narrow selctn"},
-- {'f', 'f', "F", "Flip selected"},
-+ {'b', 'b', "B", "擴大選擇"},
-+ {'n', 'n', "N", "縮小選擇"},
-+ {'f', 'f', "F", "切換選擇"},
- {-1, 0, NULL, NULL}
- };
- static char *sel_pmt1 = "ALTER message selection : ";
- static ESCKEY_S sel_opts2[] = {
-- {'a', 'a', "A", "select All"},
-- {'c', 'c', "C", "select Cur"},
-- {'t', 't', "T", "Text"},
-- {'s', 's', "S", "Status"},
-+ {'a', 'a', "A", "選擇全部"},
-+ {'c', 'c', "C", "選擇目前的"},
-+ {'t', 't', "T", "文字"},
-+ {'s', 's', "S", "狀態"},
- {-1, 0, NULL, NULL}
- };
-- static char *sel_pmt2 = "SELECT criteria : ";
-+ static char *sel_pmt2 = "選擇標準:";
- ESCKEY_S *sel_opts;
- HelpType help = NO_HELP;
- adrbk_cntr_t num, ab_count;
-@@ -5106,8 +5106,8 @@
- if(dl && (dl->type == ListHead || dl->type == Simple)){
- sel_opts1[1].label = entry_is_selected(abook->selects,
- (a_c_arg_t)dl->elnum)
-- ? "unselect Cur"
-- : "select Cur";
-+ ? "取消目前的選擇"
-+ : "選擇目前的";
- sel_opts1[1].ch = 'c';
- }
- else
-@@ -5129,7 +5129,7 @@
-
- default:
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Unsupported Select option");
-+ "尚未支援的選項");
- return;
- }
- }
-@@ -5138,8 +5138,8 @@
- (dl->type == ListHead || dl->type == Simple)){
- sel_opts1[1].label = entry_is_selected(abook->selects,
- (a_c_arg_t)dl->elnum)
-- ? "unselect Cur"
-- : "select Cur";
-+ ? "取消目前的選擇"
-+ : "選擇目前的";
- sel_opts1[1].ch = 'c';
- }
- else
-@@ -5156,7 +5156,7 @@
-
- switch(q){
- case 'x': /* cancel */
-- cmd_cancelled("Select command");
-+ cmd_cancelled("選擇命令");
- break;
-
- case 'c': /* select/unselect current */
-@@ -5168,7 +5168,7 @@
- if(as.selections == 0 && as.zoomed){
- as.zoomed = 0;
- q_status_message(SM_ORDER, 0, 2,
-- "Zoom Mode is now off, no entries selected");
-+ "縮放模式目前為關閉狀態,沒有任何被選擇的項目");
- do_warp++;
- }
- else if(as.zoomed){
-@@ -5207,17 +5207,17 @@
- if(as.selections == 0 && as.zoomed){
- as.zoomed = 0;
- q_status_message(SM_ORDER, 0, 2,
-- "Zoom Mode is now off, all entries UNselected");
-+ "縮放模式目前為關閉狀態,取消所有已選擇的項目");
- do_warp++;
- }
- else{
- char bb[100];
-
-- sprintf(bb, "%s entries UNselected%s%s%s",
-+ sprintf(bb, "%s 個項目被取消選擇%s%s%s",
- comatose(prevsel-as.selections),
-- as.selections ? ", still " : "",
-+ as.selections ? ",仍有 " : "",
- as.selections ? comatose(as.selections) : "",
-- as.selections ? " selected in other addrbooks" : "");
-+ as.selections ? " 個項目選擇於其他地址簿中" : "");
- q_status_message(SM_ORDER, 0, 2, bb);
- if(as.zoomed)
- do_beginning++;
-@@ -5233,7 +5233,7 @@
- }
- }
-
-- q_status_message1(SM_ORDER, 0, 2, "All %s entries selected",
-+ q_status_message1(SM_ORDER, 0, 2, "已選擇所有 %s 的項目",
- comatose(ab_count));
- if(prevsel == 0 && as.selections > 0 &&
- !as.zoomed && F_ON(F_AUTO_ZOOM, ps)){
-@@ -5270,14 +5270,14 @@
- do_beginning++;
- else{
- as.zoomed = 0;
-- q_status_message(SM_ORDER, 0, 2, "Zoom Mode is now off");
-+ q_status_message(SM_ORDER, 0, 2, "現在關閉縮放模式");
- do_warp++;
- }
- }
- else
- do_warp++;
-
-- q_status_message1(SM_ORDER, 0, 2, "%s entries now selected",
-+ q_status_message1(SM_ORDER, 0, 2, "項目 %s 現在已被選擇",
- comatose(as.selections));
-
- break;
-@@ -5303,7 +5303,7 @@
- if(as.selections == 0){
- as.zoomed = 0;
- q_status_message(SM_ORDER, 0, 2,
-- "Zoom Mode is now off");
-+ "現在關閉縮放模式");
- do_warp++;
- }
- else
-@@ -5322,63 +5322,63 @@
- if(prevsel == as.selections && prevsel > 0){
- if(as.selections == 1)
- q_status_message(SM_ORDER, 0, 2,
-- "No change resulted, 1 entry remains selected");
-+ "沒有導致任何改變,仍有一個項目被選擇");
- else
- q_status_message1(SM_ORDER, 0, 2,
-- "No change resulted, %s entries remain selected",
-+ "沒有導致任何改變,仍有 %s 個項目被選擇",
- comatose(as.selections));
- }
- else if(prevsel == 0){
- if(as.selections == 1)
- q_status_message(SM_ORDER, 0, 2,
-- "Select matched 1 entry");
-+ "選擇符合的一個項目");
- else if(as.selections > 1)
- q_status_message1(SM_ORDER, 0, 2,
-- "Select matched %s entries",
-+ "選擇符合的 %s 個項目",
- comatose(as.selections));
- else
- q_status_message(SM_ORDER, 0, 2,
-- "Select failed! No entries selected");
-+ "選擇失敗!沒有任何項目被選擇");
- }
- else if(as.selections == 0){
- if(prevsel == 1)
- q_status_message(SM_ORDER, 0, 2,
-- "The single selected entry is UNselected");
-+ "取消已被選擇的單一項目");
- else
- q_status_message1(SM_ORDER, 0, 2,
-- "All %s entries UNselected",
-+ "所有 %s 個項目都被取消選擇",
- comatose(prevsel));
- }
- else if(narrow){
- if(as.selections == 1 && (prevsel-as.selections) == 1)
- q_status_message(SM_ORDER, 0, 2,
-- "1 entry now selected, 1 entry was UNselected");
-+ "一項目被選擇,一項目被取消選擇");
- else if(as.selections == 1)
- q_status_message1(SM_ORDER, 0, 2,
-- "1 entry now selected, %s entries were UNselected",
-+ "一項目被選擇,%s 個項目被取消選擇",
- comatose(prevsel-as.selections));
- else if((prevsel-as.selections) == 1)
- q_status_message1(SM_ORDER, 0, 2,
-- "%s entries now selected, 1 entry was UNselected",
-+ "%s 個項目被選擇,一項目被取消選擇",
- comatose(as.selections));
- else
- q_status_message2(SM_ORDER, 0, 2,
-- "%s entries now selected, %s entries were UNselected",
-+ "%s 個項目被選擇,%s 個項目被取消選擇",
- comatose(as.selections),
- comatose(prevsel-as.selections));
- }
- else{
- if((as.selections-prevsel) == 1)
- q_status_message1(SM_ORDER, 0, 2,
-- "1 new entry selected, %s entries now selected",
-+ "一個新項目被選擇,目前有 %s 個項目已被選擇",
- comatose(as.selections));
- else if(as.selections == 1)
- q_status_message1(SM_ORDER, 0, 2,
-- "%s new entries selected, 1 entry now selected",
-+ "%s 個新項目被選擇,一個項目已被選擇",
- comatose(as.selections-prevsel));
- else
- q_status_message2(SM_ORDER, 0, 2,
-- "%s new entries selected, %s entries now selected",
-+ "%s 個新項目被選擇,目前有 %s 個項目已被選擇",
- comatose(as.selections-prevsel),
- comatose(as.selections));
- }
-@@ -5388,17 +5388,17 @@
-
- default :
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Unsupported Select option");
-+ "尚未支援的選項");
- break;
- }
- }
- else{
- if(F_ON(F_CMBND_ABOOK_DISP,ps_global))
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Select is only available from within an expanded address book");
-+ "僅支援自展開的地址簿中選擇");
- else
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Select is only available when viewing an individual address book");
-+ "選擇僅能在檢視個人地址簿時使用");
-
- return;
- }
-@@ -5457,11 +5457,11 @@
- int narrow;
- {
- static ESCKEY_S ab_sel_type_opt[] = {
-- {'s', 's', "S", "Simple"},
-- {'l', 'l', "L", "List"},
-+ {'s', 's', "S", "簡單"},
-+ {'l', 'l', "L", "列表"},
- {-1, 0, NULL, NULL}
- };
-- static char *ab_sel_type = "Select Lists or Simples (non Lists) ? ";
-+ static char *ab_sel_type = "選擇列表或簡單(無列表)?";
- int type;
- adrbk_cntr_t num, ab_count;
-
-@@ -5479,7 +5479,7 @@
- break;
-
- case 'x':
-- cmd_cancelled("Select");
-+ cmd_cancelled("選擇");
- return -1;
-
- default:
-@@ -5599,7 +5599,7 @@
- }
-
- if(type == 'x' || r == 'x'){
-- cmd_cancelled("Select");
-+ cmd_cancelled("選擇");
- return -1;
- }
-
-@@ -5682,7 +5682,7 @@
- break;
-
- default:
-- q_status_message(SM_ORDER | SM_DING, 3, 3, "Unknown type");
-+ q_status_message(SM_ORDER | SM_DING, 3, 3, "未知的型態");
- return(err);
- }
-
-@@ -5801,18 +5801,18 @@
- new_top_ent = NO_LINE;
-
- if(rc == -2)
-- cancel_warning(NO_DING, "search");
-+ cancel_warning(NO_DING, "搜尋");
-
- else if(rc == -1)
-- q_status_message(SM_ORDER, 0, 4, "Word not found");
-+ q_status_message(SM_ORDER, 0, 4, "找不到該字");
-
- else if(rc == 0){ /* search succeeded */
-
- if(wrapped == 1)
-- q_status_message(SM_INFO, 0, 2, "Search wrapped to beginning");
-+ q_status_message(SM_INFO, 0, 2, "從頭搜尋");
- else if(wrapped == 2)
- q_status_message(SM_INFO, 0, 2,
-- "Current line contains the only match");
-+ "目前這行僅包含唯一符合的目標");
-
- /* know match is on the same page */
- if(!*warped &&
-@@ -6454,7 +6454,7 @@
-
- dprint(7, (debugfile, "- search_book -\n"));
-
-- sprintf(prompt, "Word to search for [%s]: ", search_string);
-+ sprintf(prompt, "欲搜尋的字串 [%s]: ", search_string);
- help = NO_HELP;
- nsearch_string[0] = '\0';
-
-@@ -6466,12 +6466,12 @@
- ekey[1].ch = ctrl('Y');
- ekey[1].rval = 10;
- ekey[1].name = "^Y";
-- ekey[1].label = "First Adr";
-+ ekey[1].label = "第一個地址";
-
- ekey[2].ch = ctrl('V');
- ekey[2].rval = 11;
- ekey[2].name = "^V";
-- ekey[2].label = "Last Adr";
-+ ekey[2].label = "最後一個地址";
-
- ekey[3].ch = -1;
-
-@@ -6488,11 +6488,11 @@
- warp_to_beginning(); /* go to top of addrbooks */
- if((nl=first_selectable_line(0L)) != NO_LINE){
- *new_line = nl;
-- q_status_message(SM_INFO, 0, 2, "Searched to first entry");
-+ q_status_message(SM_INFO, 0, 2, "搜尋至第一個項目");
- return 0;
- }
- else{
-- q_status_message(SM_INFO, 0, 2, "No entries");
-+ q_status_message(SM_INFO, 0, 2, "沒有任何項目");
- return -1;
- }
- }
-@@ -6501,11 +6501,11 @@
- warp_to_end(); /* go to bottom */
- if((nl=first_selectable_line(0L)) != NO_LINE){
- *new_line = nl;
-- q_status_message(SM_INFO, 0, 2, "Searched to last entry");
-+ q_status_message(SM_INFO, 0, 2, "搜尋至最終項");
- return 0;
- }
- else{
-- q_status_message(SM_INFO, 0, 2, "No entries");
-+ q_status_message(SM_INFO, 0, 2, "沒有任何項目");
- return -1;
- }
- }
diff --git a/chinese/pine4/files/patch-aw b/chinese/pine4/files/patch-aw
deleted file mode 100644
index 8aae8b22f837..000000000000
--- a/chinese/pine4/files/patch-aw
+++ /dev/null
@@ -1,698 +0,0 @@
---- pine/adrbkcmd.c.orig Thu Sep 30 07:21:15 1999
-+++ pine/adrbkcmd.c Thu Oct 14 11:42:22 1999
-@@ -112,23 +112,23 @@
- static struct key abook_view_keys[] =
- {HELP_MENU,
- OTHER_MENU,
-- {"<","Abook",{MC_EXIT,2,{'<',','}},KS_NONE},
-- {"U","Update",{MC_EDIT,1,{'u'}},KS_NONE},
-- {"C","ComposeTo",{MC_COMPOSE,1,{'c'}},KS_COMPOSER},
-+ {"<","地址簿",{MC_EXIT,2,{'<',','}},KS_NONE},
-+ {"U","更新",{MC_EDIT,1,{'u'}},KS_NONE},
-+ {"C","編修",{MC_COMPOSE,1,{'c'}},KS_COMPOSER},
- RCOMPOSE_MENU,
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
- PRYNTTXT_MENU,
- WHEREIS_MENU,
-- {"F", "Fwd Email", {MC_FORWARD, 1, {'f'}}, KS_FORWARD},
-+ {"F", "信件轉寄", {MC_FORWARD, 1, {'f'}}, KS_FORWARD},
- SAVE_MENU,
-
- HELP_MENU,
- OTHER_MENU,
-- {"V","ViewLink",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
-+ {"V","檢視鏈結",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
- NULL_MENU,
-- {"^B","PrevLink",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-- {"^F","NextLink",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {"^B","前一鏈結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","下一鏈結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -141,7 +141,7 @@
- static struct key abook_text_keys[] =
- {HELP_MENU,
- NULL_MENU,
-- {"E","Exit Viewer",{MC_EXIT,1,{'e'}},KS_NONE},
-+ {"E","離開",{MC_EXIT,1,{'e'}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -150,7 +150,7 @@
- PRYNTTXT_MENU,
- WHEREIS_MENU,
- FWDEMAIL_MENU,
-- {"S", "Save", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}};
-+ {"S", "存檔", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}};
- INST_KEY_MENU(abook_text_km, abook_text_keys);
-
- #define VIEW_ABOOK_NONE 0
-@@ -303,7 +303,7 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(out_store);
- sargs.text.src = CharStar;
-- sargs.text.desc = "expanded entry";
-+ sargs.text.desc = "已展開的項目";
- sargs.text.handles = handles;
-
- if(offset){ /* resize? preserve paging! */
-@@ -312,13 +312,13 @@
- offset = 0L;
- }
-
-- sargs.bar.title = "ADDRESS BOOK (View)";
-+ sargs.bar.title = "地址簿(檢視)";
- sargs.bar.style = TextPercent;
- sargs.proc.tool = process_abook_view_cmd;
- sargs.proc.data.i = VIEW_ABOOK_NONE;
- sargs.resize_exit = 1;
- sargs.help.text = h_abook_view;
-- sargs.help.title = "HELP FOR ADDRESS BOOK VIEW";
-+ sargs.help.title = "檢視地址簿的輔助說明";
- sargs.keys.menu = &abook_view_keymenu;
- setbitmap(sargs.keys.bitmap);
-
-@@ -428,7 +428,7 @@
- if(adrbk_check_all_validity_now()){
- if(resync_screen(pab, AddrBookScreen, 0)){
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Address book changed. Update cancelled. Try again.");
-+ "地址簿已被更動。取消更新。請重試一遍。");
- ps_global->mangled_screen = 1;
- break;
- }
-@@ -456,7 +456,7 @@
- abe_copy = copy_ae(abe);
- dprint(9, (debugfile,"Calling edit_entry to edit from view\n"));
- edit_entry(pab->address_book, abe_copy, entry,
-- abe->tag, 0, &warped, "update");
-+ abe->tag, 0, &warped, "更新");
- /*
- * The ABOOK_EDITED case doesn't mean that we necessarily
- * changed something, just that we might have but we know
-@@ -506,7 +506,7 @@
- h_ab_text_or_vcard, RB_NORM);
- switch(i){
- case 'x':
-- cancel_warning(NO_DING, "forward");
-+ cancel_warning(NO_DING, "轉寄");
- rv = 0;
- break;
-
-@@ -741,8 +741,8 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(store);
- sargs.text.src = CharStar;
-- sargs.text.desc = "expanded entry";
-- sargs.bar.title = "ADDRESS BOOK (Rich View)";
-+ sargs.text.desc = "已展開的項目";
-+ sargs.bar.title = "地址簿 (完整檢視)";
- sargs.bar.style = TextPercent;
- sargs.keys.menu = &abook_text_km;
- setbitmap(sargs.keys.bitmap);
-@@ -812,8 +812,8 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(store);
- sargs.text.src = src;
-- sargs.text.desc = "expanded entry";
-- sargs.bar.title = "MESSAGE TEXT";
-+ sargs.text.desc = "已展開的項目";
-+ sargs.bar.title = "訊息文字";
- sargs.bar.style = TextPercent;
- sargs.keys.menu = &abook_text_km;
- setbitmap(sargs.keys.bitmap);
-@@ -836,19 +836,19 @@
- */
- static struct headerentry headents_for_edit[]={
- {"Nickname : ", "Nickname", h_composer_abook_nick, 12, 0, NULL,
-- verify_nick, NULL, NULL, addr_book_nick_for_edit, "To AddrBk", NULL,
-+ verify_nick, NULL, NULL, addr_book_nick_for_edit, "地址簿", NULL,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
- {"Fullname : ", "Fullname", h_composer_abook_full, 12, 0, NULL,
-- NULL, NULL, NULL, view_message_for_pico, "To Message", NULL,
-+ NULL, NULL, NULL, view_message_for_pico, "資料匣", NULL,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
- {"Fcc : ", "FileCopy", h_composer_abook_fcc, 12, 0, NULL,
-- NULL, NULL, NULL, folders_for_fcc, "To Fldrs", NULL,
-+ NULL, NULL, NULL, folders_for_fcc, "資料匣", NULL,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
- {"Comment : ", "Comment", h_composer_abook_comment, 12, 0, NULL,
-- NULL, NULL, NULL, view_message_for_pico, "To Message", NULL,
-+ NULL, NULL, NULL, view_message_for_pico, "資料匣", NULL,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
- {"Addresses : ", "Addresses", h_composer_abook_addrs, 12, 0, NULL,
-- verify_addr, NULL, NULL, addr_book_change_list, "To AddrBk", NULL,
-+ verify_addr, NULL, NULL, addr_book_change_list, "地址簿", NULL,
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE},
- {NULL, NULL, NO_HELP, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, KS_NONE}
-@@ -963,7 +963,7 @@
- pbuf.canceltest = warped ? pico_cancel_for_adrbk_edit
- : pico_cancel_for_adrbk_take;
- pbuf.expander = expand_addrs_for_pico;
-- pbuf.ctrlr_label = "RichView";
-+ pbuf.ctrlr_label = "完整表頭";//"RichView";
- pbuf.resize = resize_for_pico;
- pbuf.winch_cleanup = winch_cleanup;
- pbuf.suspend = do_suspend;
-@@ -979,7 +979,7 @@
- pbuf.browse_help = h_composer_browse;
- pbuf.attach_help = h_composer_ctrl_j;
- pbuf.composer_help = h_composer;
-- sprintf(titlebar, "ADDRESS BOOK (%c%s)",
-+ sprintf(titlebar, "地址簿 (%c%s)",
- readonly ? 'V' : islower((unsigned char)(*cmd))
- ? toupper((unsigned char)*cmd)
- : *cmd,
-@@ -1574,12 +1574,12 @@
- ps_global->redrawer = redraw_pico;
- fix_windsize(ps_global);
-
-- switch(want_to("Exit and save changes ", 'y', 0, NO_HELP, WT_NORM)){
-+ switch(want_to("存檔並離開 ", 'y', 0, NO_HELP, WT_NORM)){
- case 'y':
- break;
-
- case 'n':
-- rstr = "Use ^C to abandon changes you've made";
-+ rstr = "以 ^C 放棄曾做過的改變";
- break;
- }
-
-@@ -1603,8 +1603,8 @@
- char *rstr = NULL;
- void (*redraw)() = ps_global->redrawer;
-
-- strcat(strcat(strcpy(prompt, "Cancel "), word),
-- " (answering \"Yes\" will abandon any changes made) ");
-+ strcat(strcat(strcpy(prompt, "取消"), word),
-+ " (回答 \"是\" 將放棄曾作過的改變) ");
- ps_global->redrawer = redraw_pico;
- fix_windsize(ps_global);
-
-@@ -1627,7 +1627,7 @@
- pico_cancel_for_adrbk_take(redraw_pico)
- void (*redraw_pico)();
- {
-- return(pico_cancelexit_for_adrbk("take", redraw_pico));
-+ return(pico_cancelexit_for_adrbk("擷取", redraw_pico));
- }
-
-
-@@ -1635,7 +1635,7 @@
- pico_cancel_for_adrbk_edit(redraw_pico)
- void (*redraw_pico)();
- {
-- return(pico_cancelexit_for_adrbk("changes", redraw_pico));
-+ return(pico_cancelexit_for_adrbk("修改", redraw_pico));
- }
-
-
-@@ -1752,16 +1752,16 @@
-
- if(ps_global->readonly_pinerc){
- q_status_message1(SM_ORDER, 0, 3,
-- "%s cancelled: config file not changeable",
-- edit ? "Change" : "Add");
-+ "取消%s:設定檔無法被修改",
-+ edit ? "修改" : "新增");
- return -1;
- }
-
- if(global && vars[V_GLOB_ADDRBOOK].is_fixed ||
- !global && vars[V_ADDRESSBOOK].is_fixed){
- q_status_message1(SM_ORDER, 0, 3,
-- "Cancelled: Sys. Mgmt. does not allow changing %saddress books",
-- global ? "global " : "");
-+ "動作取消:系統管理員不允許\改變%s地址簿",
-+ global ? "整體的" : "");
-
- return -1;
- }
-@@ -1811,7 +1811,7 @@
- pbuf.browse_help = h_composer_browse;
- pbuf.attach_help = h_composer_ctrl_j;
- pbuf.composer_help = h_composer;
-- sprintf(titlebar, "%s ADDRESS BOOK", edit ? "CHANGE" : "ADD");
-+ sprintf(titlebar, "%s地址簿", edit ? "修改" : "新增");
- pbuf.pine_anchor = set_titlebar(titlebar,
- ps_global->mail_stream,
- ps_global->context_current,
-@@ -1932,8 +1932,8 @@
- if(editor_result & COMP_CANCEL){
- ret = -1;
- q_status_message1(SM_ORDER, 0, 3,
-- "Address book %s is cancelled",
-- edit ? "change" : "add");
-+ "取消地址簿的%s",
-+ edit ? "修改" : "新增");
- }
- else if(editor_result & COMP_EXIT){
- if(!strcmp(server, def_serv ? def_serv : "") &&
-@@ -1941,8 +1941,8 @@
- !strcmp(nickname, def_nick ? def_nick : "")){
- ret = -1;
- q_status_message1(SM_ORDER, 0, 3,
-- "No change: Address book %s is cancelled",
-- edit ? "change" : "add");
-+ "沒有改變:取消地址簿的%s",
-+ edit ? "修改" : "新增");
- }
- else{
-
-@@ -2009,8 +2009,8 @@
-
- if(*tmp == '\0'){
- q_status_message1(SM_ORDER, 0, 3,
-- "Address book %s is cancelled",
-- edit ? "change" : "add");
-+ "取消地址簿的%s",
-+ edit ? "修改" : "新增");
- ret = -1;
- goto get_out;
- }
-@@ -2035,8 +2035,8 @@
- if(set_variable_list(global ? V_GLOB_ADDRBOOK : V_ADDRESSBOOK,
- new_list, TRUE)){
- q_status_message1(SM_ORDER, 0, 3,
-- "%s cancelled: couldn't save pine configuration file",
-- edit ? "Change" : "Add");
-+ "取消%s:無法存入 pine 的設定檔",
-+ edit ? "修改" : "新增");
-
- set_current_val(&vars[global ? V_GLOB_ADDRBOOK : V_ADDRESSBOOK],
- TRUE, FALSE);
-@@ -2209,7 +2209,7 @@
-
- if(ps_global->readonly_pinerc){
- if(err)
-- *err = "Delete cancelled: config file not changeable";
-+ *err = "取消刪除:設定檔無法被改變";
-
- return -1;
- }
-@@ -2226,10 +2226,10 @@
- if(err){
- if(pab->type & GLOBAL)
- *err =
-- "Cancelled: Sys. Mgmt. does not allow changing global address book config";
-+ "動作取消:系統管理員不允許\改變整體的地址簿設定";
- else
- *err =
-- "Cancelled: Sys. Mgmt. does not allow changing address book config";
-+ "動作取消:系統管理員不允許\改變地址簿設定";
- }
-
- return -1;
-@@ -2282,8 +2282,8 @@
-
- if(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}};
-
- sprintf(tmp,
-@@ -2301,7 +2301,7 @@
-
- case 'x':
- if(err)
-- *err = "Delete cancelled";
-+ *err = "取消刪除";
-
- return -1;
- }
-@@ -2312,7 +2312,7 @@
- case 'n':
- case 'x':
- if(err)
-- *err = "Delete cancelled";
-+ *err = "取消刪除";
-
- return -1;
-
-@@ -2357,7 +2357,7 @@
- case 'x': /* Cancel */
- default:
- if(err)
-- *err = "Delete cancelled";
-+ *err = "取消刪除";
-
- return -1;
- }
-@@ -2377,7 +2377,7 @@
- case 'x':
- default:
- if(err)
-- *err = "Delete cancelled";
-+ *err = "取消刪除";
-
- return -1;
-
-@@ -2438,7 +2438,7 @@
- case 'n':
- default:
- if(err)
-- *err = "Delete cancelled";
-+ *err = "取消刪除";
-
- return -1;
- }
-@@ -2577,7 +2577,7 @@
- /* this also frees old variable contents for us */
- if(set_variable_list(varnum, new_list, TRUE)){
- if(err)
-- *err = "Delete cancelled: couldn't save pine configuration file";
-+ *err = "取消刪除:無法存入 pine 的設定檔";
-
- set_current_val(&vars[varnum], TRUE, FALSE);
- free_list_array(&new_list);
-@@ -2644,7 +2644,7 @@
-
- if(ps_global->readonly_pinerc){
- if(msg)
-- *msg = cpystr("Shuffle cancelled: config file not changeable");
-+ *msg = cpystr("取消重整:設定檔無法被改變");
-
- return -1;
- }
-@@ -2654,12 +2654,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';
-@@ -2667,7 +2667,7 @@
- if(pab->type & GLOBAL){
- if(vars[V_GLOB_ADDRBOOK].is_fixed){
- if(msg)
-- *msg = cpystr("Cancelled: Sys. Mgmt. does not allow changing global address book config");
-+ *msg = cpystr("動作取消:系統管理員不允許\改變整體的地址簿設定");
-
- return -1;
- }
-@@ -2687,7 +2687,7 @@
- else{
- if(vars[V_ADDRESSBOOK].is_fixed){
- if(msg)
-- *msg = cpystr("Cancelled: Sys. Mgmt. does not allow changing address book config");
-+ *msg = cpystr("動作取消:系統管理員不允許\改變地址簿設定");
-
- return -1;
- }
-@@ -2726,7 +2726,7 @@
-
- if(rv == 'x'){
- if(msg)
-- *msg = cpystr("Shuffle cancelled");
-+ *msg = cpystr("取消重整");
-
- return -1;
- }
-@@ -2769,7 +2769,7 @@
- enum {NotSet, Pers, Glob, Empty} type1, type2;
- int i, j, retval = -1;
- struct variable *vars = ps_global->vars;
-- char *cancel_msg = "Shuffle cancelled: couldn't save configuration file";
-+ char *cancel_msg = "取消重整:無法存入設定檔";
-
- dprint(5, (debugfile, "- do_the_shuffle(%d, %d) -\n", anum1, anum2));
-
-@@ -2783,7 +2783,7 @@
- if(type1 == Empty){
- if(msg)
- *msg =
-- cpystr("Shuffle cancelled: highlight entry you wish to shuffle");
-+ cpystr("取消重整:請先標示欲重整的項目");
-
- return(retval);
- }
-@@ -2800,14 +2800,14 @@
-
- if((type1 == Pers || type2 == Pers) && vars[V_ADDRESSBOOK].is_fixed){
- if(msg)
-- *msg = cpystr("Cancelled: Sys. Mgmt. does not allow changing address book configuration");
-+ *msg = cpystr("動作取消:系統管理員不允許\改變地址簿設定");
-
- return(retval);
- }
-
- if((type1 == Glob || type2 == Glob) && vars[V_GLOB_ADDRBOOK].is_fixed){
- if(msg)
-- *msg = cpystr("Cancelled: Sys. Mgmt. does not allow changing global address book config");
-+ *msg = cpystr("動作取消:系統管理員不允許\改變整體的地址簿設定");
-
- return(retval);
- }
-@@ -3312,7 +3312,7 @@
- AdrBk_Entry *abe;
- VCARD_INFO_S *vinfo;
- static ESCKEY_S ab_export_opts[] = {
-- {ctrl('T'), 10, "^T", "To Files"},
-+ {ctrl('T'), 10, "^T", "檔案列表"},
- {-1, 0, NULL, NULL},
- {-1, 0, NULL, NULL}};
- static ESCKEY_S vcard_or_addresses[] = {
-@@ -3335,7 +3335,7 @@
-
- switch(i){
- case 'x':
-- cancel_warning(NO_DING, "export");
-+ cancel_warning(NO_DING, "匯出");
- return(ret);
-
- case 'a':
-@@ -3364,7 +3364,7 @@
- ab_export_opts[++r].ch = ctrl('I');
- ab_export_opts[r].rval = 11;
- ab_export_opts[r].name = "TAB";
-- ab_export_opts[r].label = "Complete";
-+ ab_export_opts[r].label = "完成";
- }
-
- ab_export_opts[++r].ch = -1;
-@@ -3377,7 +3377,7 @@
- if(r < 0){
- switch(r){
- case -1:
-- cancel_warning(NO_DING, "export");
-+ cancel_warning(NO_DING, "匯出");
- break;
-
- case -2:
-@@ -3787,7 +3787,7 @@
- switch(want_to("Expand nicknames", 'y', 'x', h_ab_forward,WT_NORM)){
- case 'x':
- gf_clear_so_writec((STORE_S *) pb->contents.text.data);
-- cancel_warning(NO_DING, "forward");
-+ cancel_warning(NO_DING, "轉寄");
- goto bomb;
-
- case 'y':
-@@ -3871,7 +3871,7 @@
-
- gf_clear_so_writec((STORE_S *) pb->contents.text.data);
-
-- pine_send(outgoing, &body, "FORWARDING ADDRESS BOOK ENTRY", role, NULL,
-+ pine_send(outgoing, &body, "轉寄地址簿項目", role, NULL,
- NULL, NULL, NULL, NULL, 0);
-
- ps->mangled_screen = 1;
-@@ -4339,8 +4339,8 @@
- char tmp[200];
- ACTION_LIST_S *action_list = NULL, *al;
- static ESCKEY_S save_or_export[] = {
-- {'s', 's', "S", "Save"},
-- {'e', 'e', "E", "Export"},
-+ {'s', 's', "S", "存檔"},
-+ {'e', 'e', "E", "匯出"},
- {-1, 0, NULL, NULL}};
-
- sprintf(tmp, "Save%s to address book or Export to filesystem ? ",
-@@ -4351,7 +4351,7 @@
- h_ab_save_exp, RB_NORM);
- switch(i){
- case 'x':
-- cancel_warning(NO_DING, "save");
-+ cancel_warning(NO_DING, "存檔");
- return(0);
-
- case 'e':
-@@ -4534,7 +4534,7 @@
- if(action_list)
- fs_give((void **)&action_list);
-
-- cancel_warning(NO_DING, "save");
-+ cancel_warning(NO_DING, "存檔");
- return(ret);
- }
-
-@@ -4715,7 +4715,7 @@
- q_status_message(SM_ORDER | SM_DING, 3, 4,
- "Save only partially completed");
- else
-- cancel_warning(NO_DING, "save");
-+ cancel_warning(NO_DING, "存檔");
- }
- else if (how_many_to_copy + how_many_no_action -
- (skip_dups ? how_many_dups : 0) > 0){
-@@ -4792,15 +4792,15 @@
- curopen = cur_is_open();
- if(!agg && curopen){
- static ESCKEY_S prt[] = {
-- {'a', 'a', "A", "AddressBook"},
-- {'e', 'e', "E", "Entry"},
-+ {'a', 'a', "A", "地址簿"},
-+ {'e', 'e', "E", "項目"},
- {-1, 0, NULL, NULL}};
-
- prompt = "Print Address Book or just this Entry? ";
- switch(radio_buttons(prompt, -FOOTER_ROWS(ps_global), prt, 'a', 'x',
- NO_HELP, RB_NORM)){
- case 'x' :
-- cancel_warning(NO_DING, "print");
-+ cancel_warning(NO_DING, "列印");
- ps_global->mangled_footer = 1;
- return 0;
-
-@@ -4871,7 +4871,7 @@
- switch(want_to("Expand nicknames", 'y', 'x', h_ab_forward,
- WT_NORM)){
- case 'x':
-- cancel_warning(NO_DING, "print");
-+ cancel_warning(NO_DING, "列印");
- ps_global->mangled_footer = 1;
- return 0;
-
-@@ -5145,7 +5145,7 @@
- if(F_ON(F_CMBND_ABOOK_DISP,ps_global))
- lineno = 0L - XTRA_TITLE_LINES_IN_OLD_ABOOK_DISP;
- else{
-- print_text1(" ADDRESS BOOK %s\n\n",
-+ print_text1(" 地址簿 %s\n\n",
- as.adrbks[as.cur].nickname);
- lineno = 0L;
- }
-@@ -5211,7 +5211,7 @@
- dprint(2, (debugfile, "- ab_agg_delete -\n"));
-
- if(agg){
-- sprintf(prompt, "Really delete %d selected entries", as.selections);
-+ sprintf(prompt, "確定刪除 %d 選取的項目", as.selections);
- ch = want_to(prompt, 'n', 'n', NO_HELP, WT_NORM);
- if(ch == 'y'){
- adrbk_cntr_t newelnum, flushelnum = NO_NEXT;
-@@ -5378,7 +5378,7 @@
- }
- }
- else
-- cmd_cancelled("Apply Delete command");
-+ cmd_cancelled("套用刪除命令");
- }
-
- return(ret);
-@@ -5426,7 +5426,7 @@
- ? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf,
- abe->fullname, NULL)
- : abe->nickname ? abe->nickname : "";
-- cmd = "Really delete \"%.50s\"";
-+ cmd = "確定刪除 \"%.50s\"";
- break;
-
- case ListHead:
-@@ -5434,13 +5434,13 @@
- ? (char *)rfc1522_decode((unsigned char *)tmp_20k_buf,
- abe->fullname, NULL)
- : abe->nickname ? abe->nickname : "";
-- cmd = "Really delete ENTIRE list \"%.50s\"";
-+ cmd = "確定刪除「整個」列表 \"%.50s\"";
- break;
-
- case ListEnt:
- dname = (char *)rfc1522_decode((unsigned char *)tmp_20k_buf,
- listmem_from_dl(abook, dl), NULL);
-- cmd = "Really delete \"%.100s\" from list";
-+ cmd = "確定自列表中刪除 \"%.100s\"";
- break;
- }
-
-@@ -5539,7 +5539,7 @@
- return 0;
- }
- else{
-- q_status_message(SM_INFO, 0, 2, "Entry not deleted");
-+ q_status_message(SM_INFO, 0, 2, "該項目未被刪除");
- return 0;
- }
- }
-@@ -5675,7 +5675,7 @@
- if(r == 1 || r != 10 && fbuf[0] == '\0'){
- ps->mangled_footer = 1;
- if(error)
-- *error = cpystr("Cancelled");
-+ *error = cpystr("取消");
-
- return(ret);
- }
-@@ -5716,7 +5716,7 @@
- pbuf.browse_help = h_composer_browse;
- pbuf.attach_help = h_composer_ctrl_j;
- pbuf.composer_help = h_composer;
-- pbuf.pine_anchor = set_titlebar("SEARCH DIRECTORY SERVER",
-+ pbuf.pine_anchor = set_titlebar("搜尋地址伺服器",
- ps_global->mail_stream,
- ps_global->context_current,
- ps_global->cur_folder,
-@@ -5990,10 +5990,10 @@
-
- HELP_MENU,
- OTHER_MENU,
-- {"V","ViewLink",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
-+ {"V","檢視鏈結",{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
- NULL_MENU,
-- {"^B","PrevLink",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-- {"^F","NextLink",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {"^B","前一鏈結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","次一鏈結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -6027,13 +6027,13 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(srcstore);
- sargs.text.src = srctype;
-- sargs.text.desc = "expanded entry";
-+ sargs.text.desc = "已展開的項目";
- sargs.text.handles= handles;
-- sargs.bar.title = "DIRECTORY ENTRY";
-+ sargs.bar.title = "地址項目";
- sargs.proc.tool = process_ldap_cmd;
- sargs.proc.data.p = (void *) winning_e;
- sargs.help.text = h_ldap_view;
-- sargs.help.title = "HELP FOR DIRECTORY VIEW";
-+ sargs.help.title = "地址項目的輔助說明";
- sargs.keys.menu = &ldap_view_keymenu;
- setbitmap(sargs.keys.bitmap);
-
-@@ -6511,7 +6511,7 @@
- struct headerentry *he;
- void (*redraw_pico)();
- {
-- return("Cancelled");
-+ return("取消");
- }
-
-
diff --git a/chinese/pine4/files/patch-ax b/chinese/pine4/files/patch-ax
deleted file mode 100644
index ebcc481b2ef7..000000000000
--- a/chinese/pine4/files/patch-ax
+++ /dev/null
@@ -1,1256 +0,0 @@
---- pine/folder.c.orig Thu Oct 14 17:19:43 1999
-+++ pine/folder.c Thu Oct 14 17:19:45 1999
-@@ -58,10 +58,10 @@
- #include "headers.h"
-
-
--#define CLICKHERE "[ Select Here to See Expanded List ]"
--#define CLICKHERETOO "[ ** Empty List ** Select Here to Try Re-Expanding ]"
-+#define CLICKHERE "[ 選這裡以檢視展開的列表 ]"
-+#define CLICKHERETOO "[ ** 空的列表 ** 選這裡來重新展開 ]"
- #define CLICKHERETOONEWS \
-- "[ ** Empty List ** Use \"A Subscribe\" to subscribe to a newsgroup ]"
-+ "[ ** 空的列表 ** 使用 \"A Subscribe\" 來訂閱一個新聞組群 ]"
- #define ALL_FOUND(X) (((X)->dir->status & CNTXT_NOFIND) == 0 && \
- ((X)->dir->status & CNTXT_PARTFIND) == 0)
- #define FLDR_NAME(X) ((X) ? ((X)->nickname ? (X)->nickname : (X)->name) :"")
-@@ -70,13 +70,13 @@
- FOLDERS((S)->text.handles->h.f.context)) \
- : NULL)
- #define SUBSCRIBE_PMT \
-- "Enter newsgroup name (or partial name to get a list): "
--#define LISTMODE_GRIPE "Use \"X\" to mark selections in list mode"
--#define SEL_ALTER_PMT "ALTER folder selection : "
--#define SEL_TEXT_PMT "Select by folder Name or Contents ? "
--#define SEL_PROP_PMT "Select by which folder property ? "
-+ "輸入新聞組群名稱(或部份名稱以取得列表):"
-+#define LISTMODE_GRIPE "以 \"X\" 來在列表模式中標示選擇"
-+#define SEL_ALTER_PMT "更改資料匣的選擇:"
-+#define SEL_TEXT_PMT "根據資料匣名稱或內容選擇?"
-+#define SEL_PROP_PMT "根據哪一個資料匣性質?"
- #define DIR_FOLD_PMT \
-- "Folder by the same name *MAY* get deleted as well. Continue"
-+ "同名稱的資料匣 *可能* 被刪除。繼續"
-
- #define mail_list(S, R, N) mail_list_internal(S, R, N)
-
-@@ -319,15 +319,15 @@
- /*
- * Various screen keymenu/command binding s.
- */
--#define PREVC_MENU {"P", "PrevCltn", {MC_PREVITEM, 1, {'p'}}, KS_NONE}
--#define NEXTC_MENU {"N", "NextCltn", {MC_NEXTITEM, 2, {'n',TAB}}, KS_NONE}
--#define DELC_MENU {"D", "Del Cltn", {MC_DELETE,2,{'d',KEY_DEL}}, KS_NONE}
--#define PREVF_MENU {"P", "PrevFldr", {MC_PREV_HANDLE, 3, \
-+#define PREVC_MENU {"P", "前一總集", {MC_PREVITEM, 1, {'p'}}, KS_NONE}
-+#define NEXTC_MENU {"N", "次一總集", {MC_NEXTITEM, 2, {'n',TAB}}, KS_NONE}
-+#define DELC_MENU {"D", "刪除總集", {MC_DELETE,2,{'d',KEY_DEL}}, KS_NONE}
-+#define PREVF_MENU {"P", "前一資料匣", {MC_PREV_HANDLE, 3, \
- {'p', ctrl('B'), KEY_LEFT}}, KS_NONE}
--#define NEXTF_MENU {"N", "NextFldr", {MC_NEXT_HANDLE, 4, \
-+#define NEXTF_MENU {"N", "次一資料匣", {MC_NEXT_HANDLE, 4, \
- {'n', ctrl('F'), TAB, KEY_RIGHT}}, \
- KS_NONE}
--#define CIND_MENU {"I", "CurIndex", {MC_INDEX,1,{'i'}}, KS_FLDRINDEX}
-+#define CIND_MENU {"I", "索引", {MC_INDEX,1,{'i'}}, KS_FLDRINDEX}
-
- static struct {
- int num_done;
-@@ -337,8 +337,8 @@
- static struct key context_mgr_keys[] =
- {HELP_MENU,
- OTHER_MENU,
-- {"<", "Main Menu", {MC_MAIN,3,{'m','<',','}}, KS_EXITMODE},
-- {">", "[View Cltn]",
-+ {"<", "主選單", {MC_MAIN,3,{'m','<',','}}, KS_EXITMODE},
-+ {">", "[檢視總集]",
- {MC_CHOICE,5,{'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE},
- PREVC_MENU,
- NEXTC_MENU,
-@@ -370,15 +370,15 @@
- static struct key context_cfg_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},
-+ {"E", "離開設定", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-+ {"C", "[修改]", {MC_EDIT,3,{'c',ctrl('M'),ctrl('J')}}, KS_NONE},
- PREVC_MENU,
- NEXTC_MENU,
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
-- {"A", "Add Cltn", {MC_ADD,1,{'a'}}, KS_NONE},
-+ {"A", "新增總集", {MC_ADD,1,{'a'}}, KS_NONE},
- DELC_MENU,
-- {"$", "Shuffle", {MC_SHUFFLE,1,{'$'}},KS_NONE},
-+ {"$", "重整", {MC_SHUFFLE,1,{'$'}},KS_NONE},
- WHEREIS_MENU,
-
- HELP_MENU,
-@@ -397,9 +397,9 @@
-
- static struct key context_select_keys[] =
- {HELP_MENU,
-- {"E", "ExitSelect", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-+ {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
- NULL_MENU,
-- {">", "[View Cltn]",
-+ {">", "[檢視總集]",
- {MC_CHOICE, 5, {'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE},
- PREVC_MENU,
- NEXTC_MENU,
-@@ -413,9 +413,9 @@
-
- static struct key context_fcc_keys[] =
- {HELP_MENU,
-- {"E", "ExitSelect", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-+ {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
- NULL_MENU,
-- {">", "[View Cltn]",
-+ {">", "[檢視總集]",
- {MC_CHOICE, 5, {'v','>','.',ctrl('M'),ctrl('J')}}, KS_NONE},
- PREVC_MENU,
- NEXTC_MENU,
-@@ -437,23 +437,23 @@
- NEXTF_MENU,
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
-- {"A","Add",{MC_ADDFLDR,1,{'a'}},KS_NONE},
-+ {"A","新增",{MC_ADDFLDR,1,{'a'}},KS_NONE},
- DELETE_MENU,
-- {"R","Rename",{MC_RENAMEFLDR,1,{'r'}}, KS_NONE},
-+ {"R","更名",{MC_RENAMEFLDR,1,{'r'}}, KS_NONE},
- WHEREIS_MENU,
-
- HELP_MENU,
- OTHER_MENU,
- QUIT_MENU,
- MAIN_MENU,
-- {"V", "[View Fldr]", {MC_OPENFLDR}, KS_NONE},
-+ {"V", "[檢視檔案匣]", {MC_OPENFLDR}, KS_NONE},
- GOTO_MENU,
- CIND_MENU,
- COMPOSE_MENU,
-- {"%", "Print", {MC_PRINTFLDR,1,{'%'}}, KS_PRINT},
-- {"Z", "ZoomMode", {MC_ZOOM,1,{'z'}}, KS_NONE},
-- {";","Select",{MC_SELECT,1,{';'}},KS_SELECT},
-- {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECT},
-+ {"%", "列印", {MC_PRINTFLDR,1,{'%'}}, KS_PRINT},
-+ {"Z", "縮放模式", {MC_ZOOM,1,{'z'}}, KS_NONE},
-+ {";","選擇",{MC_SELECT,1,{';'}},KS_SELECT},
-+ {":","選擇目前的",{MC_SELCUR,1,{':'}},KS_SELECT},
-
- HELP_MENU,
- OTHER_MENU,
-@@ -479,7 +479,7 @@
-
- static struct key folder_sel_keys[] =
- {HELP_MENU,
-- {"E", "ExitSelect", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-+ {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
- NULL_MENU,
- {NULL, NULL, {MC_CHOICE,3,{0,ctrl('M'),ctrl('J')}},
- KS_NONE},
-@@ -498,14 +498,14 @@
-
- static struct key folder_sub_keys[] =
- {HELP_MENU,
-- {"S", "Subscribe", {MC_CHOICE,1,{'s'}}, KS_NONE},
-- {"E", "ExitSubscb", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-- {NULL, "[Select]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE},
-+ {"S", "訂閱\", {MC_CHOICE,1,{'s'}}, KS_NONE},
-+ {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-+ {NULL, "[選擇]", {MC_CHOICE,3,{'s',ctrl('M'),ctrl('J')}}, KS_NONE},
- PREVF_MENU,
- NEXTF_MENU,
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
-- {"L", "List Mode", {MC_LISTMODE, 1, {'l'}}, KS_NONE},
-+ {"L", "列表模式", {MC_LISTMODE, 1, {'l'}}, KS_NONE},
- NULL_MENU,
- NULL_MENU,
- WHEREIS_MENU};
-@@ -518,8 +518,8 @@
- static struct key folder_post_keys[] =
- {HELP_MENU,
- NULL_MENU,
-- {"E", "ExitSelect", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-- {"S", "[Select]", {MC_CHOICE, 3, {'s',ctrl('M'),ctrl('J')}}, KS_NONE},
-+ {"E", "離開", {MC_EXIT,1,{'e'}}, KS_EXITMODE},
-+ {"S", "[選擇]", {MC_CHOICE, 3, {'s',ctrl('M'),ctrl('J')}}, KS_NONE},
- PREVF_MENU,
- NEXTF_MENU,
- PREVPAGE_MENU,
-@@ -562,10 +562,10 @@
- fs.agg_ops = F_ON(F_ENABLE_AGG_OPS, ps_global) != 0;
- fs.relative_path = 1;
- fs.f.valid = fl_val_gen;
-- fs.f.title.bar = "FOLDER LIST";
-+ fs.f.title.bar = "信件匣列表";
- fs.f.title.style = FolderName;
- fs.f.help.text = h_folder_maint;
-- fs.f.help.title = "HELP FOR FOLDERS";
-+ fs.f.help.title = "信件匣列表的輔助說明";
- fs.km = &folder_km;
-
- if(context_isambig(ps->cur_folder)){
-@@ -646,12 +646,12 @@
- mailcap_free(); /* free resources we won't be using for a while */
-
- memset(&css, 0, sizeof(CONT_SCR_S));
-- css.title = "SETUP COLLECTION LIST";
-+ css.title = "設定總集列表";
- css.print_string = "contexts ";
- css.start = ps->context_current;
- css.contexts = &ps_global->context_list;
- css.help.text = h_collection_maint;
-- css.help.title = "HELP FOR SETUP COLLECTION";
-+ css.help.title = "設定總集的輔助說明";
- css.keymenu = &c_cfg_km;
- css.edit = 1;
-
-@@ -694,10 +694,10 @@
- fs.context = *cntxtp;
- fs.combined_view = !sublist && F_ON(F_CMBND_FOLDER_DISP, ps_global) != 0;
- fs.f.valid = fl_val_gen;
-- fs.f.title.bar = "GOTO: SELECT FOLDER";
-+ fs.f.title.bar = "前往:選擇資料匣";
- fs.f.title.style = FolderName;
- fs.f.help.text = h_folder_open;
-- fs.f.help.title = "HELP FOR OPENING FOLDERS";
-+ fs.f.help.title = "開啟資料匣的輔助說明";
- fs.km = &folder_sel_km;
-
- /* If we were provided a string,
-@@ -706,7 +706,7 @@
- if(sublist && *folder && context_isambig(folder)){
- if((*cntxtp)->use & CNTXT_INCMNG){
- q_status_message(SM_ORDER, 0, 3,
-- "All folders displayed for Incoming Collection");
-+ "所有的資料匣被顯示為來源總集");
- }
- else{
- folder_sublist_context(folder, *cntxtp, &fake_context,
-@@ -757,10 +757,10 @@
- fs.context = *cntxtp;
- fs.combined_view = F_ON(F_CMBND_FOLDER_DISP, ps_global) != 0;
- fs.f.valid = fl_val_gen;
-- fs.f.title.bar = "SAVE: SELECT FOLDER";
-+ fs.f.title.bar = "存檔:選擇資料匣";
- fs.f.title.style = MessageNumber;
- fs.f.help.text = h_folder_save;
-- fs.f.help.title = "HELP FOR SAVING MESSAGES TO FOLDERS";
-+ fs.f.help.title = "將信件存入資料匣的輔助說明";
- fs.km = &folder_sel_km;
-
- /* If we were provided a string,
-@@ -769,7 +769,7 @@
- if(sublist && *folder && context_isambig(folder)){
- if((*cntxtp)->use & CNTXT_INCMNG){
- q_status_message(SM_ORDER, 0, 3,
-- "All folders displayed for Incoming Collection");
-+ "所有的資料匣被顯示為來源總集");
- }
- else{
- folder_sublist_context(folder, *cntxtp, &fake_context,
-@@ -947,7 +947,7 @@
- /* leave (*new_dir)->ref == NULL */
- }
-
-- sprintf(tmp_20k_buf, "List of folders matching \"%s*\"", folder);
-+ sprintf(tmp_20k_buf, "符合 \"%s*\" 的資料匣列表", folder);
- (*new_dir)->desc = cpystr(tmp_20k_buf);
- }
-
-@@ -1147,12 +1147,12 @@
- CONT_SCR_S css;
-
- memset(&css, 0, sizeof(CONT_SCR_S));
-- css.title = "COLLECTION LIST";
-+ css.title = "總集列表";
- css.print_string = "contexts ";
- css.start = start;
- css.contexts = &ps_global->context_list;
- css.help.text = h_collection_screen;
-- css.help.title = "HELP FOR COLLECTION LIST";
-+ css.help.title = "總集列表的輔助說明";
- css.keymenu = km;
- css.edit = edit_config;
-
-@@ -1224,7 +1224,7 @@
- pbuf.browse_help = h_composer_browse;
- pbuf.attach_help = h_composer_ctrl_j;
- pbuf.composer_help = h_composer;
-- sprintf(tmp, "FOLDER COLLECTION %s", func);
-+ sprintf(tmp, "資料匣總集 %s", func);
- pbuf.pine_anchor = set_titlebar(tmp, ps_global->mail_stream,
- ps_global->context_current,
- ps_global->cur_folder,ps_global->msgmap,
-@@ -1473,10 +1473,10 @@
- else
- exists = (i & FEX_ISDIR);
-
-- sprintf(prompt, "Exit%s" ,
-+ sprintf(prompt, "離開%s" ,
- exists
-- ? " and save changes"
-- : ", saving changes and creating Path");
-+ ? " 並存檔"
-+ : ",存檔並建立路徑");
- if(want_to(prompt, 'y', 0, NO_HELP, WT_NORM) == 'y'){
- if(!exists && !mail_create(NULL, tmp)){
- flush_status_messages(1); /* mail_create gripes */
-@@ -1508,7 +1508,7 @@
- char *rstr = NULL;
- void (*redraw)() = ps_global->redrawer;
- #define CCA_PROMPT \
-- "Cancel Add (answering \"Yes\" will abandon any changes made) "
-+ "取消新增 (回答 \"Yes\" 將放棄先前做過的任何改變) "
-
- ps_global->redrawer = redraw_pico;
- fix_windsize(ps_global);
-@@ -1623,7 +1623,7 @@
- FSTATE_S *fs;
- {
- if(f->subscribed){
-- q_status_message1(SM_ORDER, 0, 4, "Already subscribed to \"%s\"",
-+ q_status_message1(SM_ORDER, 0, 4, "已訂閱\至 \"%s\"",
- FLDR_NAME(f));
- return(0);
- }
-@@ -1667,7 +1667,7 @@
- }
- else{
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Formatting Error: Can't create space for list");
-+ "格式化錯誤:無法為列表建立空間");
- return(NULL);
- }
-
-@@ -1688,7 +1688,7 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(screen_text);
- sargs.text.src = CharStar;
-- sargs.text.desc = "folder list";
-+ sargs.text.desc = "信件匣列表";
- if(sargs.text.handles = folder_list_handle(fs, handles))
- sargs.start.on = Handle;
-
-@@ -1991,7 +1991,7 @@
- else if(fp->fs->combined_view
- && (F_ON(F_CMBND_SUBDIR_DISP, ps_global)
- || !c_list->dir->prev)){
-- static char *emptiness = "[No Folders in Collection]";
-+ static char *emptiness = "[總集中沒有資料匣]";
-
- gf_puts(folder_list_center_space(emptiness, cols), pc);
- len = folder_list_write(pc, c_list, -1, emptiness,
-@@ -2001,7 +2001,7 @@
- else if(fp->fs->combined_view
- && (F_ON(F_CMBND_SUBDIR_DISP, ps_global)
- || !c_list->dir->prev)){
-- static char *unexpanded = "[Select Here to See Expanded List]";
-+ static char *unexpanded = "[選這裡以檢視展開後的列表]";
-
- gf_puts(folder_list_center_space(unexpanded, cols), pc);
- len = folder_list_write(pc, c_list, -1, unexpanded,
-@@ -2220,11 +2220,11 @@
- q_status_message(SM_ORDER, 0, 1, LISTMODE_GRIPE);
- }
- else
-- q_status_message(SM_ORDER, 0, 4, "Already in List Mode");
-+ q_status_message(SM_ORDER, 0, 4, "已經處於列表模式中");
- }
- else
- q_status_message(SM_ORDER, 0, 4,
-- "No Folders! Can't enter List Mode");
-+ "沒有資料匣!無法進入列表模式");
-
- break;
-
-@@ -2250,7 +2250,7 @@
- sparms->text.handles->h.f.index);
- else
- q_status_message(SM_ORDER, 0, 4,
-- "No Folders! Nothing to View");
-+ "沒有資料匣!沒有可供檢視的項目");
-
- break;
-
-@@ -2341,7 +2341,7 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 0, 4,
-- "Empty folder collection. No folder to rename!");
-+ "空的資料匣總集。沒有可供更名的資料匣!");
-
- break;
-
-@@ -2351,7 +2351,7 @@
- if(!(sparms->text.handles
- && folder_total(FOLDERS(sparms->text.handles->h.f.context)))){
- q_status_message(SM_ORDER | SM_DING, 0, 4,
-- "Empty folder collection. No folder to delete!");
-+ "空的資料匣總集。沒有可供刪除的資料匣!");
- }
- else{
- char next_folder[MAILTMPLEN+1];
-@@ -2455,7 +2455,7 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 0, 4,
-- "Empty folder collection. No folder to select!");
-+ "空的資料匣總集。沒有可供選擇的資料匣!");
-
- break;
-
-@@ -2471,11 +2471,11 @@
- if(sparms->text.handles->h.f.context->use & CNTXT_ZOOM){
- sparms->text.handles->h.f.context->use &= ~CNTXT_ZOOM;
- q_status_message(SM_ORDER, 0, 3,
-- "Folder List Zoom mode is now off");
-+ "資料匣列表縮放模式目前為關閉狀態");
- }
- else{
- q_status_message1(SM_ORDER, 0, 3,
-- "In Zoomed list of %s folders. Use \"Z\" to restore regular list",
-+ "在 %s 個資料匣縮放的列表中。使用 \"Z\" 來回復正常列表",
- int2string(n));
- sparms->text.handles->h.f.context->use |= CNTXT_ZOOM;
- }
-@@ -2495,10 +2495,10 @@
- }
- else
- q_status_message(SM_ORDER, 0, 3,
-- "No selected folders to Zoom on");
-+ "尚未選擇供放大的資料匣。");
- }
- else
-- q_status_message(SM_ORDER, 0, 4, "No Folders to Zoom on!");
-+ q_status_message(SM_ORDER, 0, 4, "沒有可供放大的資料匣!");
-
- break;
-
-@@ -2611,7 +2611,7 @@
- empty++;
-
- if(empty)
-- q_status_message(SM_ORDER | SM_DING, 3, 3, "Empty folder list!");
-+ q_status_message(SM_ORDER | SM_DING, 3, 3, "空的資料匣列表!");
-
- return(rv);
- }
-@@ -2652,14 +2652,14 @@
- ? sparms->text.handles->h.f.context->dir->prev
- : FPROC(sparms)->fs->context->dir->prev){
- sparms->keys.menu->keys[KM_COL_KEY].bind.ch[0] = 'e';
-- sparms->keys.menu->keys[KM_COL_KEY].label = "ParentDir";
-+ sparms->keys.menu->keys[KM_COL_KEY].label = "上層目錄";
- sparms->keys.menu->keys[KM_COL_KEY].bind.cmd = MC_PARENT;
- }
- else if((FPROC(sparms)->fs->context->next
- || FPROC(sparms)->fs->context->prev)
- && !FPROC(sparms)->fs->combined_view){
- sparms->keys.menu->keys[KM_COL_KEY].bind.ch[0] = 'e';
-- sparms->keys.menu->keys[KM_COL_KEY].label = "ClctnList";
-+ sparms->keys.menu->keys[KM_COL_KEY].label = "總集列表";
- sparms->keys.menu->keys[KM_COL_KEY].bind.cmd = MC_EXIT;
- }
- else{
-@@ -2671,7 +2671,7 @@
- sparms->keys.menu->keys[KM_MAIN_KEY].bind.cmd = MC_NONE;
- sparms->keys.menu->keys[KM_MAIN_KEY].bind.nch = 0;
-
-- sparms->keys.menu->keys[KM_COL_KEY].label = "Main Menu";
-+ sparms->keys.menu->keys[KM_COL_KEY].label = "主選單";
- sparms->keys.menu->keys[KM_COL_KEY].bind.cmd = MC_MAIN;
- sparms->keys.menu->keys[KM_COL_KEY].bind.ch[0] = 'm';
- }
-@@ -2687,7 +2687,7 @@
- FOLDERS(sparms->text.handles->h.f.context)))){
- if(fp->isdir){
- if(fp->isfolder){
-- sparms->keys.menu->keys[KM_SEL_KEY].label = "View Dir";
-+ sparms->keys.menu->keys[KM_SEL_KEY].label = "檢視目錄";
- menu_clear_binding(sparms->keys.menu, 'v');
- menu_clear_binding(sparms->keys.menu, ctrl('M'));
- menu_clear_binding(sparms->keys.menu, ctrl('J'));
-@@ -2697,7 +2697,7 @@
- setbitn(KM_ALTVIEW_KEY, sparms->keys.bitmap);
- }
- else{
-- sparms->keys.menu->keys[KM_SEL_KEY].label = "[View Dir]";
-+ sparms->keys.menu->keys[KM_SEL_KEY].label = "[檢視目錄]";
- menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
- menu_add_binding(sparms->keys.menu, ctrl('M'), MC_CHOICE);
- menu_add_binding(sparms->keys.menu, ctrl('J'), MC_CHOICE);
-@@ -2705,7 +2705,7 @@
- }
- }
- else{
-- sparms->keys.menu->keys[KM_SEL_KEY].label = "[View Fldr]";
-+ sparms->keys.menu->keys[KM_SEL_KEY].label = "[檢視資料匣]";
- menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
- menu_add_binding(sparms->keys.menu, ctrl('M'), MC_CHOICE);
- menu_add_binding(sparms->keys.menu, ctrl('J'), MC_CHOICE);
-@@ -2715,7 +2715,7 @@
- else if(FPROC(sparms)->fs->combined_view
- && sparms->text.handles && sparms->text.handles->h.f.context
- && !sparms->text.handles->h.f.context->dir->prev){
-- sparms->keys.menu->keys[KM_SEL_KEY].label = "[View Cltn]";
-+ sparms->keys.menu->keys[KM_SEL_KEY].label = "[檢視總集]";
- menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
- menu_add_binding(sparms->keys.menu, ctrl('M'), MC_CHOICE);
- menu_add_binding(sparms->keys.menu, ctrl('J'), MC_CHOICE);
-@@ -2758,7 +2758,7 @@
- ? sparms->text.handles->h.f.context->dir->prev
- : FPROC(sparms)->fs->context->dir->prev){
- sparms->keys.menu->keys[FC_COL_KEY].name = "<";
-- sparms->keys.menu->keys[FC_COL_KEY].label = "ParentDir";
-+ sparms->keys.menu->keys[FC_COL_KEY].label = "上層目錄";
- sparms->keys.menu->keys[FC_COL_KEY].bind.cmd = MC_PARENT;
- sparms->keys.menu->keys[FC_COL_KEY].bind.ch[0] = '<';
- sparms->keys.menu->keys[FC_COL_KEY].bind.ch[1] = ',';
-@@ -2774,7 +2774,7 @@
- || FPROC(sparms)->fs->context->prev)
- && !FPROC(sparms)->fs->combined_view){
- sparms->keys.menu->keys[FC_COL_KEY].name = "<";
-- sparms->keys.menu->keys[FC_COL_KEY].label = "ClctnList";
-+ sparms->keys.menu->keys[FC_COL_KEY].label = "總集列表";
- sparms->keys.menu->keys[FC_COL_KEY].bind.cmd = MC_COLLECTIONS;
- sparms->keys.menu->keys[FC_COL_KEY].bind.ch[0] = '<';
- sparms->keys.menu->keys[FC_COL_KEY].bind.ch[1] = ',';
-@@ -2791,7 +2791,7 @@
- * turn off "ExitSelect" in first slot
- */
- sparms->keys.menu->keys[FC_COL_KEY].name = "E";
-- sparms->keys.menu->keys[FC_COL_KEY].label = "ExitSelect";
-+ sparms->keys.menu->keys[FC_COL_KEY].label = "離開";
- sparms->keys.menu->keys[FC_COL_KEY].bind.cmd = MC_EXIT;
- sparms->keys.menu->keys[FC_COL_KEY].bind.nch = 1;
- sparms->keys.menu->keys[FC_COL_KEY].bind.ch[0] = 'e';
-@@ -2803,7 +2803,7 @@
- FOLDERS(sparms->text.handles->h.f.context)))
- && fp->isdir){
- sparms->keys.menu->keys[FC_SEL_KEY].name = ">";
-- sparms->keys.menu->keys[FC_SEL_KEY].label = "[View Dir]";
-+ sparms->keys.menu->keys[FC_SEL_KEY].label = "[檢視目錄]";
- menu_clear_binding(sparms->keys.menu, 's');
- menu_add_binding(sparms->keys.menu, 'v', MC_CHOICE);
- menu_add_binding(sparms->keys.menu, '>', MC_CHOICE);
-@@ -2813,7 +2813,7 @@
- }
- else{
- sparms->keys.menu->keys[FC_SEL_KEY].name = "S";
-- sparms->keys.menu->keys[FC_SEL_KEY].label = "[Select]";
-+ sparms->keys.menu->keys[FC_SEL_KEY].label = "[選擇]";
- menu_clear_binding(sparms->keys.menu, 'v');
- menu_clear_binding(sparms->keys.menu, '>');
- menu_clear_binding(sparms->keys.menu, '.');
-@@ -2851,14 +2851,14 @@
- if(FPROC(sparms)->fs->list_cntxt){
- clrbitn(SB_LIST_KEY, sparms->keys.bitmap);
- sparms->keys.menu->keys[SB_SEL_KEY].name = "X";
-- sparms->keys.menu->keys[SB_SEL_KEY].label = "[Set/Unset]";
-+ sparms->keys.menu->keys[SB_SEL_KEY].label = "[設定/取消設定]";
- sparms->keys.menu->keys[SB_SEL_KEY].bind.cmd = MC_SELCUR;
- sparms->keys.menu->keys[SB_SEL_KEY].bind.ch[0] = 'x';
- }
- else{
- clrbitn(SB_SUB_KEY, sparms->keys.bitmap);
- sparms->keys.menu->keys[SB_SEL_KEY].name = "S";
-- sparms->keys.menu->keys[SB_SEL_KEY].label = "[Subscribe]";
-+ sparms->keys.menu->keys[SB_SEL_KEY].label = "[訂閱\]";
- sparms->keys.menu->keys[SB_SEL_KEY].bind.cmd = MC_CHOICE;
- sparms->keys.menu->keys[SB_SEL_KEY].bind.ch[0] = 's';
- }
-@@ -2934,7 +2934,7 @@
-
- default :
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Unsupported Select option");
-+ "未支援的選項");
- return(0);
- }
- }
-@@ -2948,7 +2948,7 @@
- */
- switch(q){
- case 'x': /* cancel */
-- cmd_cancelled("Select command");
-+ cmd_cancelled("選取命令");
- return(0);
-
- case 'c' : /* toggle current's selected state */
-@@ -2959,10 +2959,10 @@
- for(total = i = 0; i < n; i++)
- folder_entry(i, FOLDERS(context))->selected = old_tot == 0;
-
-- q_status_message4(SM_ORDER, 0, 2, "%s%s folder%s %sselected",
-- old_tot ? "" : "All ",
-+ q_status_message3(SM_ORDER, 0, 2, "%s%s 個資料匣已被%s選擇",
-+ old_tot ? "" : "全部 ",
- comatose(old_tot ? old_tot : n),
-- plural(old_tot ? old_tot : n), old_tot ? "UN" : "");
-+ old_tot ? "取消" : "");
- return(1);
-
- case 't' : /* Text */
-@@ -2979,7 +2979,7 @@
-
- default :
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Unsupported Select option");
-+ "未支援的選項");
- return(0);
- }
-
-@@ -3007,34 +3007,30 @@
-
- if(!(diff = (total = selected_folders(context)) - old_tot)){
- if(narrow)
-- q_status_message4(SM_ORDER, 0, 2,
-- "%s. %s folder%s remain%s selected.",
-- j ? "No change resulted"
-- : "No messages in intersection",
-- comatose(old_tot), plural(old_tot),
-- (old_tot == 1L) ? "s" : "");
-+ q_status_message2(SM_ORDER, 0, 2,
-+ "%s。 仍有 %s 個資料匣被選擇。",
-+ j ? "沒有造成改變"
-+ : "交點中沒有信件",
-+ comatose(old_tot));
- else if(old_tot && j)
- q_status_message(SM_ORDER, 0, 2,
-- "No change resulted. Matching folders already selected.");
-+ "沒有造成改變。符合的資料匣已經被選擇了。");
- else
- q_status_message1(SM_ORDER | SM_DING, 0, 2,
-- "Select failed! No %sfolders selected.",
-- old_tot ? "additional " : "");
-+ "選擇失敗!沒有%s資料匣被選擇。",
-+ old_tot ? "額外的" : "");
- }
- else if(old_tot){
- sprintf(tmp_20k_buf,
-- "Select matched %ld folder%s. %s %sfolder%s %sselected.",
-+ "選擇符合的 %ld 個資料匣!共計 %s 個資料匣被%s選擇。",
- (diff > 0) ? diff : old_tot + diff,
-- plural((diff > 0) ? diff : old_tot + diff),
- comatose((diff > 0) ? total : -diff),
-- (diff > 0) ? "total " : "",
-- plural((diff > 0) ? total : -diff),
-- (diff > 0) ? "" : "UN");
-+ (diff > 0) ? "" : "取消");
- q_status_message(SM_ORDER, 0, 2, tmp_20k_buf);
- }
- else
-- q_status_message2(SM_ORDER, 0, 2, "Select matched %s folder%s.",
-- comatose(diff), plural(diff));
-+ q_status_message1(SM_ORDER, 0, 2, "選擇符合的 %s 個資料匣!",
-+ comatose(diff));
-
- return(1);
- }
-@@ -3221,9 +3217,9 @@
- fp->prev = context->dir;
- fp->status |= CNTXT_SUBDIR;
- context->dir = fp;
-- q_status_message2(SM_ORDER, 0, 3, "Now in %sdirectory: %s",
-+ q_status_message2(SM_ORDER, 0, 3, "目前在 %s目錄中:%s",
- folder_total(FOLDERS(context))
-- ? "" : "EMPTY ", fp->ref);
-+ ? "" : "空的 ", fp->ref);
- rv++;
- }
- else
-@@ -3242,7 +3238,7 @@
- char *p;
-
- /* Provide context in new collection header */
-- sprintf(tmp_20k_buf, "Dir: %s",
-+ sprintf(tmp_20k_buf, "目錄:%s",
- ((p = strstr(cntxt->context, "%s")) && !*(p+2)
- && !strncmp(fdp->ref, cntxt->context, p - cntxt->context))
- ? fdp->ref + (p - cntxt->context) : fdp->ref);
-@@ -3289,12 +3285,12 @@
- context->dir = fp;
-
- if(fp->status & CNTXT_SUBDIR)
-- q_status_message1(SM_ORDER, 0, 3, "Now in directory: %s",
-+ q_status_message1(SM_ORDER, 0, 3, "目前所在目錄:%s",
- strsquish(tmp_20k_buf + 500, fp->ref,
- ps_global->ttyo->screen_cols - 22));
- else
- q_status_message(SM_ORDER, 0, 3,
-- "Returned to collection's top directory");
-+ "回到總集的最上層目錄");
-
- rv++;
- }
-@@ -3483,12 +3479,12 @@
- if(context->use & CNTXT_INCMNG){
- char inbox_host[MAXPATH], *beg, *end = NULL;
- ESCKEY_S *special_key;
-- static ESCKEY_S host_key[] = {{ctrl('X'),12,"^X","Use Inbox Host"},
-+ static ESCKEY_S host_key[] = {{ctrl('X'),12,"^X","使用 Inbox 的主機"},
- {-1, 0, NULL, NULL}};
-
- if(ps_global->readonly_pinerc){
- q_status_message(SM_ORDER,3,5,
-- "Addition cancelled: config file not editable");
-+ "取消新增:無法編輯設定檔");
- return(FALSE);
- }
-
-@@ -3510,7 +3506,7 @@
- else
- special_key = NULL;
-
-- sprintf(tmp, "Name of server to contain added folder : ");
-+ sprintf(tmp, "包含新增資料匣的主機名:");
- help = NO_HELP;
- while(1){
- int flags = OE_APPEND_CURRENT;
-@@ -3528,7 +3524,7 @@
- }
- else if(rc == 1){
- q_status_message(SM_ORDER,0,2,
-- "Addition of new folder cancelled");
-+ "取消新增資料匣");
- return(FALSE);
- }
- else if(rc == 0)
-@@ -3538,7 +3534,7 @@
-
- if(offset = strlen(add_folder)){ /* must be host for incoming */
- int i;
-- sprintf(tmp, "Folder on \"%s\" to add : ", add_folder);
-+ sprintf(tmp, "加入在 \"%s\" 上的資料匣:", add_folder);
- for(i = offset;i >= 0; i--)
- add_folder[i+1] = add_folder[i];
-
-@@ -3547,7 +3543,7 @@
- add_folder[++offset] = '\0'; /* +2, total */
- }
- else
-- sprintf(tmp, "Folder name to add : ");
-+ sprintf(tmp, "新增資料匣名稱:");
-
- help = NO_HELP;
- while(1){
-@@ -3555,14 +3551,14 @@
-
- p = NULL;
- if(isdir){
-- add_key[0].label = "Create Folder";
-+ add_key[0].label = "建立資料匣";
- if(tmp[0] == 'F')
-- rplstr(tmp, 6, "Directory");
-+ rplstr(tmp, 6, "目錄");
- }
- else{
-- add_key[0].label = "Create Directory";
-+ add_key[0].label = "建立目錄";
- if(tmp[0] == 'D')
-- rplstr(tmp, 9, "Folder");
-+ rplstr(tmp, 9, "資料匣");
- }
-
- flags = OE_APPEND_CURRENT;
-@@ -3576,10 +3572,10 @@
- if(!ps_global->show_dot_names && add_folder[offset] == '.'){
- if(cnt++ <= 0)
- q_status_message(SM_ORDER,3,3,
-- "Folder name can't begin with dot");
-+ "資料匣不能以點 \".\" 為名稱開頭");
- else
- q_status_message1(SM_ORDER,3,3,
-- "Config feature \"%s\" enables names beginning with dot",
-+ "設定檔中 \"%s\" 的功\能可使資料匣以點 \".\" 為名稱開頭",
- feature_list_name(F_ENABLE_DOT_FOLDERS));
-
- display_message(NO_OP_COMMAND);
-@@ -3598,7 +3594,7 @@
- }
- else if(*p == context->dir->delim){
- q_status_message(SM_ORDER|SM_DING, 3, 3,
-- "Can't have trailing directory delimiters!");
-+ "不能有目錄尾端的分隔號 \"/\"!");
- display_message('X');
- continue;
- }
-@@ -3620,7 +3616,7 @@
- : NO_HELP;
- }
- else if(rc == 1 || add_folder[0] == '\0') {
-- q_status_message(SM_ORDER,0,2, "Addition of new folder cancelled");
-+ q_status_message(SM_ORDER,0,2, "取消新增資料匣");
- return(FALSE);
- }
- }
-@@ -3639,7 +3635,7 @@
-
- help = NO_HELP;
- if(context->use & CNTXT_INCMNG){
-- sprintf(tmp, "Nickname for folder \"%s\" : ", &add_folder[offset]);
-+ sprintf(tmp, "資料匣\"%s\" 的暱稱:", &add_folder[offset]);
- while(1){
- int flags = OE_APPEND_CURRENT;
-
-@@ -3660,7 +3656,7 @@
- }
- else if(rc == 1 || (rc != 3 && !*nickname)){
- q_status_message(SM_ORDER,0,2,
-- "Addition of new folder cancelled");
-+ "取消新增資料匣");
- return(FALSE);
- }
- }
-@@ -3675,7 +3671,7 @@
- f = folder_entry(offset, FOLDERS(context));
- if(!strucmp(FLDR_NAME(f), nickname[0] ? nickname : add_folder)){
- q_status_message1(SM_ORDER | SM_DING, 0, 3,
-- "Incoming folder \"%s\" already exists",
-+ "新進資料匣(Incoming folder) \"%s\" 已存在",
- nickname[0] ? nickname : add_folder);
- return(FALSE);
- }
-@@ -3728,18 +3724,18 @@
- if(nickname[0])
- strcpy(add_folder, nickname); /* known by new name */
-
-- q_status_message1(SM_ORDER, 0, 3, "Folder \"%s\" created",add_folder);
-+ q_status_message1(SM_ORDER, 0, 3, "資料匣 \"%s\" 已建立",add_folder);
- return_val = add_folder;
- }
- else if(context_isambig(add_folder)){
- free_folder_list(context);
-- q_status_message2(SM_ORDER, 0, 3, "%s \"%s\" created",
-- isdir ? "Directory" : "Folder", add_folder);
-+ q_status_message2(SM_ORDER, 0, 3, "%s \"%s\" 已建立",
-+ isdir ? "目錄" : "資料匣", add_folder);
- return_val = add_folder;
- }
- else
- q_status_message1(SM_ORDER, 0, 3,
-- "Folder \"%s\" created outside current collection",
-+ "資料匣 \"%s\" 建立於目前的總集之外",
- add_folder);
-
- return(return_val != NULL);
-@@ -3778,13 +3774,13 @@
- subscribe_keys[i = 0].ch = ctrl('T');
- subscribe_keys[i].rval = 12;
- subscribe_keys[i].name = "^T";
-- subscribe_keys[i++].label = "To All Grps";
-+ subscribe_keys[i++].label = "給所有的組群";
-
- if(F_ON(F_ENABLE_TAB_COMPLETE,ps_global)){
- subscribe_keys[i].ch = ctrl('I');
- subscribe_keys[i].rval = 11;
- subscribe_keys[i].name = "TAB";
-- subscribe_keys[i++].label = "Complete";
-+ subscribe_keys[i++].label = "完成";
- }
-
- subscribe_keys[i].ch = -1;
-@@ -3845,7 +3841,7 @@
- }
- else{
- q_status_message(SM_ORDER, 0, 2,
-- "No group substring to match! Use ^T to list all news groups.");
-+ "沒有符合的組群字串!請用 ^T 列出所有新聞組群。");
- continue;
- }
-
-@@ -3898,10 +3894,10 @@
- else{
- if(rc == 12)
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "No groups to select from!");
-+ "沒有可供選擇的組群!");
- else
- q_status_message1(SM_ORDER, 3, 3,
-- "News group \"%s\" didn't match any existing groups",
-+ "新聞組群 \"%s\" 不符合任何現存的組群",
- folder);
- free_folder_list(&subscribe_cntxt);
-
-@@ -3946,7 +3942,7 @@
- if(rc < 0){
- folder[0] = '\0'; /* make sure not to return partials */
- if(rc == -1)
-- q_status_message(SM_ORDER, 0, 3, "Subscribe cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消訂閱\");
- }
- else{
- if(folders){ /*------ Actually do the subscription -----*/
-@@ -3968,7 +3964,7 @@
- */
- q_status_message1(errors ?SM_INFO : SM_ORDER,
- errors ? 0 : 3, 3,
-- "Error subscribing to \"%s\"",
-+ "訂閱\至 \"%s\" 時發生錯誤",
- (char *) flp->name);
- errors++;
- }
-@@ -3992,13 +3988,13 @@
-
- if(n == 0)
- q_status_message(SM_ORDER | SM_DING, 3, 5,
-- "Subscriptions failed, subscribed to no new groups");
-+ "訂閱\失敗,沒有訂閱\任何新組群");
- else
- q_status_message3(SM_ORDER | (errors ? SM_DING : 0),
- errors ? 3 : 0,3,
-- "Subscribed to %s new groups%s%s",
-+ "訂閱\至 %s 個新組群%s%s",
- comatose((long)n),
-- errors ? ", failed on " : "",
-+ errors ? ",發生錯誤於 " : "",
- errors ? comatose((long)errors) : "");
-
- free_strlist(&folders);
-@@ -4007,7 +4003,7 @@
- (void) context_apply(tmp_20k_buf, &subscribe_cntxt, folder);
- if(mail_subscribe(NULL, tmp_20k_buf) == 0L){
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Error subscribing to \"%s\"", folder);
-+ "訂閱\至 \"%s\" 時發生錯誤", folder);
- }
- else if(ALL_FOUND(cntxt)){
- /*---- Update the screen display data structures -----*/
-@@ -4021,7 +4017,7 @@
- }
-
- if(folder[0])
-- q_status_message1(SM_ORDER, 0, 3, "Subscribed to \"%s\"", folder);
-+ q_status_message1(SM_ORDER, 0, 3, "訂閱\至 \"%s\"", folder);
- }
-
- free_fdir(&subscribe_cntxt.dir, 1);
-@@ -4062,19 +4058,19 @@
-
- if(NEWS_TEST(context)){
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Can't rename bulletin boards or news groups!");
-+ "無法更改電子佈告欄或新聞組群的名稱!");
- return(0);
- }
- else if(!folder_total(FOLDERS(context))){
- q_status_message(SM_ORDER | SM_DING, 0, 4,
-- "Empty folder collection. No folder to rename!");
-+ "空的資料匣總集。沒有可供更名的資料匣!");
- return(0);
- }
- else if((new_f = folder_entry(index, FOLDERS(context)))
- && (!strucmp(FLDR_NAME(new_f), ps_global->inbox_name)
- || new_f->parent)) {
- q_status_message1(SM_ORDER | SM_DING, 3, 4,
-- "Can't change special folder name \"%s\"",
-+ "無法更改特殊資料匣 \"%s\" 的名稱",
- new_f->parent
- ? new_f->nickname
- : ps_global->inbox_name);
-@@ -4090,11 +4086,11 @@
-
- ren_cur = strcmp(folder, ps_global->cur_folder) == 0;
-
-- sprintf(prompt, "Rename %s to : ",
-+ sprintf(prompt, "將 %s 更名為:",
- (context->use & CNTXT_INCMNG)
-- ? "nickname"
-+ ? "暱稱"
- : (isdir = new_f->isdir)
-- ? "directory" : "folder");
-+ ? "目錄" : "資料匣");
- help = NO_HELP;
- strcpy(new_name, folder);
- while(1) {
-@@ -4115,10 +4111,10 @@
- if(!ps_global->show_dot_names && *new_name == '.'){
- if(cnt++ <= 0)
- q_status_message(SM_ORDER,3,3,
-- "Folder name can't begin with dot");
-+ "資料匣不能以點 \".\" 為名稱開頭");
- else
- q_status_message1(SM_ORDER,3,3,
-- "Config feature \"%s\" enables names beginning with dot",
-+ "設定檔中 \"%s\" 的功\能可使資料匣以點 \".\" 為名稱開頭",
- feature_list_name(F_ENABLE_DOT_FOLDERS));
-
- display_message(NO_OP_COMMAND);
-@@ -4127,13 +4123,13 @@
-
- if(folder_index(new_name, context, FI_ANY) >= 0){
- q_status_message1(SM_ORDER, 3, 3,
-- "Folder \"%s\" already exists",
-+ "資料匣 \"%s\" 已存在",
- pretty_fn(new_name));
- display_message(NO_OP_COMMAND);
- continue;
- }
- else if(!strucmp(new_name, ps_global->inbox_name)){
-- q_status_message1(SM_ORDER, 3, 3, "Can't rename folder to %s",
-+ q_status_message1(SM_ORDER, 3, 3, "無法將資料匣更名至 %s",
- ps_global->inbox_name);
- display_message(NO_OP_COMMAND);
- continue;
-@@ -4156,7 +4152,7 @@
- if(rc == 1
- || !(*new_name || (context->use & CNTXT_INCMNG))
- || !strcmp(new_name, folder)){
-- q_status_message(SM_ORDER, 0, 2, "Folder rename cancelled");
-+ q_status_message(SM_ORDER, 0, 2, "取消資料匣更名");
- return(0);
- }
-
-@@ -4237,7 +4233,7 @@
- /* renaming sent-mail or saved-messages */
- if(context_create(context, NULL, folder)){
- q_status_message3(SM_ORDER,0,3,
-- "Folder \"%s\" renamed to \"%s\". New \"%s\" created",
-+ "資料匣 \"%s\" 名稱改為 \"%s\"。建立新的 \"%s\"",
- folder, new_name,
- pretty_fn(
- (strcmp(ps_global->VAR_DEFAULT_SAVE_FOLDER,
-@@ -4248,7 +4244,7 @@
- }
- else{
- q_status_message1(SM_ORDER | SM_DING, 3, 4,
-- "Error creating new \"%s\"", folder);
-+ "建立新的資料匣 \"%s\" 時發生錯誤", folder);
-
- dprint(2, (debugfile, "Error creating \"%s\" in %s context\n",
- folder, context->context));
-@@ -4256,7 +4252,7 @@
- }
- else
- q_status_message2(SM_ORDER, 0, 3,
-- "Folder \"%s\" renamed to \"%s\"",
-+ "資料匣 \"%s\" 名稱改為 \"%s\"",
- pretty_fn(folder), pretty_fn(new_name));
-
- free_folder_list(context);
-@@ -4294,7 +4290,7 @@
- int ret, close_opened = 0, blast_folder = 1;
-
- if(NEWS_TEST(context)){
-- static char fmt[] = "Really unsubscribe from \"%.*s\"";
-+ static char fmt[] = "確定自 \"%.*s\" 中解除訂閱\嗎";
-
- folder = folder_entry(index, FOLDERS(context))->name;
- /* 4 is strlen("%.*s") */
-@@ -4316,7 +4312,7 @@
- (void) context_apply(tmp_20k_buf, context, folder);
- if(!mail_unsubscribe(NULL, tmp_20k_buf)){
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Error unsubscribing from \"%s\"", folder);
-+ "自 \"%s\" 取消訂閱\時發生錯誤", folder);
- return(0);
- }
-
-@@ -4333,12 +4329,12 @@
-
- if(ps_global->readonly_pinerc && (context->use & CNTXT_INCMNG)){
- q_status_message(SM_ORDER,3,5,
-- "Deletion cancelled: config file not editable");
-+ "取消刪除:無法編輯設定檔");
- return(0);
- }
- else if(strucmp(folder, ps_global->inbox_name) == 0 || fp->parent) {
- q_status_message1(SM_ORDER | SM_DING, 3, 4,
-- "Can't delete special folder \"%s\".", ps_global->inbox_name);
-+ "無法刪除特殊資料匣 \"%s\"。", ps_global->inbox_name);
- return(0);
- }
- else if(context == ps_global->context_current
-@@ -4353,7 +4349,7 @@
-
- if(ret){
- q_status_message1(SM_ORDER | SM_DING, 3, 4,
-- "Can't delete non-empty directory \"%s\".",
-+ "無法刪除非空的目錄 \"%s\"。",
- folder);
- return(0);
- }
-@@ -4364,19 +4360,19 @@
- */
- if(folder_index(folder, context, FI_FOLDER) >= 0
- && (ret = want_to(DIR_FOLD_PMT,'n','x',NO_HELP,WT_NORM)) != 'y'){
-- q_status_message(SM_ORDER,0,3, (ret == 'x') ? "Delete cancelled"
-- : "No folder deleted");
-+ q_status_message(SM_ORDER,0,3, (ret == 'x') ? "取消刪除"
-+ : "沒有任何資料匣被刪除");
- return(0);
- }
- }
-
- if(context->use & CNTXT_INCMNG){
- static ESCKEY_S delf_opts[] = {
-- {'n', 'n', "N", "Nickname only"},
-- {'b', 'b', "B", "Both Folder and Nickname"},
-+ {'n', 'n', "N", "僅有暱稱"},
-+ {'b', 'b', "B", "資料匣與暱稱"},
- {-1, 0, NULL, NULL}
- };
--#define DELF_PROMPT "DELETE only Nickname or Both nickname and folder? "
-+#define DELF_PROMPT "刪除「僅有暱稱」或「資料匣與暱稱」?"
-
- switch(radio_buttons(DELF_PROMPT, -FOOTER_ROWS(ps_global),
- delf_opts,'n','x',NO_HELP,RB_NORM)){
-@@ -4385,7 +4381,7 @@
- break;
-
- case 'x' :
-- cmd_cancelled("Delete");
-+ cmd_cancelled("刪除");
- return(0);
-
- default :
-@@ -4393,13 +4389,13 @@
- }
- }
- else{
-- sprintf(ques_buf, "DELETE \"%s\"%s", folder,
-- close_opened ? " (the currently open folder)"
-- : fp->isdir ? " (a directory)" : "");
-+ sprintf(ques_buf, "刪除 \"%s\"%s", folder,
-+ close_opened ? " (目前開啟的資料匣)"
-+ : fp->isdir ? " (目錄)" : "");
-
- if((ret = want_to(ques_buf, 'n', 'x', NO_HELP, WT_NORM)) != 'y'){
-- q_status_message(SM_ORDER,0,3, (ret == 'x') ? "Delete cancelled"
-- : "No folder deleted");
-+ q_status_message(SM_ORDER,0,3, (ret == 'x') ? "取消刪除"
-+ : "沒有任何資料匣被刪除");
- return(0);
- }
- }
-@@ -4444,13 +4440,13 @@
- /*
- * BUG: what if sent-mail or saved-messages????
- */
-- q_status_message1(SM_ORDER,3,3,"Delete of \"%s\" Failed!", folder);
-+ q_status_message1(SM_ORDER,3,3,"刪除 \"%s\" 失敗!", folder);
- return(0);
- }
- }
-
-- q_status_message2(SM_ORDER, 0, 3, "%s \"%s\" deleted.",
-- blast_folder ? "Folder" : "Nickname", folder);
-+ q_status_message2(SM_ORDER, 0, 3, "%s \"%s\" 已刪除。",
-+ blast_folder ? "資料匣" : "暱稱", folder);
-
-
- if(context->use & CNTXT_INCMNG){
-@@ -4539,7 +4535,7 @@
- int flags;
-
- pat[0] = '\0';
-- sprintf(prompt, "String in folder %s to match : ", kind);
-+ sprintf(prompt, "資料匣 %s 中欲符合的字串:", kind);
-
- while(1){
- flags = OE_APPEND_CURRENT | OE_DISALLOW_HELP;
-@@ -4557,7 +4553,7 @@
- return(1);
-
- case 1 :
-- cmd_cancelled("Select");
-+ cmd_cancelled("選擇");
-
- default :
- return(0);
-@@ -4629,7 +4625,7 @@
- return(1);
- }
-
-- cmd_cancelled("Select");
-+ cmd_cancelled("選擇");
- return(0);
- }
-
-@@ -4662,7 +4658,7 @@
- if(!strucmp(folder = f->name, ps_global->inbox_name))
- return(FEX_ISFILE);
-
-- sprintf(tmp, "Scanning \"%.*s\"", 40, FLDR_NAME(f));
-+ sprintf(tmp, "正在掃描 \"%.*s\"", 40, FLDR_NAME(f));
- we_cancel = busy_alarm(1, tmp, NULL, 0);
-
- mm_list_info = &ldata; /* tie down global reference */
-@@ -4800,7 +4796,7 @@
- return(1);
- }
-
-- cmd_cancelled("Select");
-+ cmd_cancelled("選擇");
- return(0);
- }
-
-@@ -4822,7 +4818,7 @@
- while(1){
- flags = OE_APPEND_CURRENT | OE_DISALLOW_HELP;
- sprintf(number, "%ld", *count);
-- sprintf(prompt, "Select folders with messages %s : ", tense[*cmp]);
-+ sprintf(prompt, "選擇有信件 %s 的資料匣:", tense[*cmp]);
- r = optionally_enter(number, -FOOTER_ROWS(ps_global), 0, 31,
- prompt, sel_num_opt, NO_HELP, &flags);
- switch (r){
-@@ -4831,7 +4827,7 @@
- break;
- else if((*count = atol(number)) < 0L)
- q_status_message(SM_ORDER, 3, 3,
-- "Can't have NEGATIVE message count!");
-+ "不可有「負的」信件數量!");
- else
- return(1); /* success */
-
-@@ -4992,7 +4988,7 @@
- for(; i >= 0; i--)
- folder_entry(i, FOLDERS(context))->scanned = 0;
-
-- cmd_cancelled("Select");
-+ cmd_cancelled("選擇");
- rv = 0;
- break;
- }
-@@ -5937,7 +5933,7 @@
-
- if(p = context_digest(c_string, dcontext, host, rcontext, view)){
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Bad context, %s : %s", p, c_string);
-+ "錯誤的內容,%s:%s", p, c_string);
- fs_give((void **) &c_string);
- if(nickname)
- fs_give((void **)&nickname);
-@@ -5978,14 +5974,14 @@
-
- /* fix up label */
- if(NEWS_TEST(c)){
-- sprintf(tmp_20k_buf, "%sews groups%s%s",
-- (*host) ? "N" : "Local n", (*host) ? " on " : "",
-+ sprintf(tmp_20k_buf, "%s文組群%s%s",
-+ (*host) ? "新" : "本地的新", (*host) ? " 於 " : "",
- (*host) ? host : "");
- }
- else{
- p = srchstr(rcontext, "[]");
-- sprintf(tmp_20k_buf, "%solders%s%s in %.*s%s",
-- (*host) ? "F" : "Local f", (*host) ? " on " : "",
-+ sprintf(tmp_20k_buf, "%s料匣%s%s在 %.*s%s",
-+ (*host) ? "資" : "本地的資", (*host) ? " 於 " : "",
- (*host) ? host : "", p ? p - rcontext : 0,
- rcontext, (p && (p - rcontext) > 0) ? "" : "home directory");
- }
-@@ -7225,7 +7221,7 @@
- if(error && num_in_error){
- cnt_errs = num_in_error;
- memset((void *)ng_error, 0, (size_t)90);
-- sprintf(ng_error, "Unknown news group%s: ", plural(num_in_error));
-+ sprintf(ng_error, "未知的新聞組群:");
- ep = ng_error + strlen(ng_error);
- }
- for(ntmp = nglist; ntmp; ntmp = ntmp->next){
diff --git a/chinese/pine4/files/patch-ay b/chinese/pine4/files/patch-ay
deleted file mode 100644
index 5ce90a71098d..000000000000
--- a/chinese/pine4/files/patch-ay
+++ /dev/null
@@ -1,165 +0,0 @@
---- pine/help.c.orig Wed Sep 15 04:31:21 1999
-+++ pine/help.c Thu Oct 14 11:43:45 1999
-@@ -53,12 +53,12 @@
- {NULL,NULL,{MC_EXIT,1,{'e'}}, KS_EXITMODE},
- {NULL,NULL,{MC_EXIT,1,{'e'}}, KS_EXITMODE},
- {NULL,NULL,{MC_VIEW_HANDLE,3,{'v',ctrl('m'),ctrl('j')}},KS_NONE},
-- {"^B","PrevLink",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-- {"^F","NextLink",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {"^B","前一鏈結",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","次一鏈結",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
- PRYNTMSG_MENU,
-- {"Z","Print All",{MC_PRINTALL,1,{'z'}},KS_NONE},
-+ {"Z","列印全部",{MC_PRINTALL,1,{'z'}},KS_NONE},
- NULL_MENU,
- WHEREIS_MENU};
- INST_KEY_MENU(help_keymenu, help_keys);
-@@ -77,7 +77,7 @@
- static struct key gripe_modal_keys[] =
- {NULL_MENU,
- NULL_MENU,
-- {"Ret","Finished",{MC_EXIT,2,{ctrl('m'),ctrl('j')}},KS_NONE},
-+ {"Ret","完畢",{MC_EXIT,2,{ctrl('m'),ctrl('j')}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -263,7 +263,7 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(store);
- sargs.text.src = CharStar;
-- sargs.text.desc = "help text";
-+ sargs.text.desc = "輔助說明文字";
- if(sargs.text.handles = handles)
- while(sargs.text.handles->type == URL
- && !sargs.text.handles->h.url.path
-@@ -296,7 +296,7 @@
- }
-
- if(!sargs.bar.title)
-- sargs.bar.title = "HELP TEXT";
-+ sargs.bar.title = "輔助說明文字";
- }
-
- sargs.bar.style = TextPercent;
-@@ -313,18 +313,18 @@
- setbitmap(sargs.keys.bitmap);
- if(flags & HLPD_FROMHELP){
- km.keys[HLP_EXIT_KEY].name = "P";
-- km.keys[HLP_EXIT_KEY].label = "Prev Help";
-+ km.keys[HLP_EXIT_KEY].label = "前一說明";
- km.keys[HLP_EXIT_KEY].bind.cmd = MC_FINISH;
- km.keys[HLP_EXIT_KEY].bind.ch[0] = 'p';
-
- km.keys[HLP_SUBEXIT_KEY].name = "E";
-- km.keys[HLP_SUBEXIT_KEY].label = "Exit Help";
-+ km.keys[HLP_SUBEXIT_KEY].label = "離開";
- km.keys[HLP_SUBEXIT_KEY].bind.cmd = MC_EXIT;
- km.keys[HLP_SUBEXIT_KEY].bind.ch[0] = 'e';
- }
- else if(text == h_special_help_nav){
- km.keys[HLP_EXIT_KEY].name = "P";
-- km.keys[HLP_EXIT_KEY].label = "Prev Help";
-+ km.keys[HLP_EXIT_KEY].label = "前一說明";
- km.keys[HLP_EXIT_KEY].bind.cmd = MC_FINISH;
- km.keys[HLP_EXIT_KEY].bind.ch[0] = 'p';
-
-@@ -333,12 +333,12 @@
- }
- else{
- km.keys[HLP_EXIT_KEY].name = "E";
-- km.keys[HLP_EXIT_KEY].label = "Exit Help";
-+ km.keys[HLP_EXIT_KEY].label = "離開";
- km.keys[HLP_EXIT_KEY].bind.cmd = MC_EXIT;
- km.keys[HLP_EXIT_KEY].bind.ch[0] = 'e';
-
- km.keys[HLP_SUBEXIT_KEY].name = "?";
-- km.keys[HLP_SUBEXIT_KEY].label = "Help Help";
-+ km.keys[HLP_SUBEXIT_KEY].label = "輔助說明";
- km.keys[HLP_SUBEXIT_KEY].bind.cmd = MC_HELP;
- km.keys[HLP_SUBEXIT_KEY].bind.ch[0] = '?';
- }
-@@ -507,7 +507,7 @@
- }
-
- sparms->keys.menu->keys[HLP_VIEW_HANDLE].name = "V";
-- sparms->keys.menu->keys[HLP_VIEW_HANDLE].label = "[View Link]";
-+ sparms->keys.menu->keys[HLP_VIEW_HANDLE].label = "[檢視鏈結]";
- }
- }
-
-@@ -558,7 +558,7 @@
- print_text(NEWLINE);
-
- if(error = gf_pipe(helper_getc, print_char))
-- q_status_message1(SM_ORDER | SM_DING, 3, 3, "Printing Error: %s", error);
-+ q_status_message1(SM_ORDER | SM_DING, 3, 3, "列印錯誤:%s", error);
-
- print_char(ctrl('L')); /* new page. */
- }
-@@ -588,7 +588,7 @@
- #endif
- if(ps_global->intr_pending){
- q_status_message(SM_ORDER, 3, 3,
-- "Print of all help cancelled");
-+ "取消列印所有的輔助說明");
- break;
- }
-
-@@ -977,7 +977,7 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = tmp_text;
- sargs.text.src = CharStar;
-- sargs.text.desc = "journal";
-+ sargs.text.desc = "日誌";
- sargs.bar.title = title;
- sargs.start.on = LastPage;
-
-@@ -1336,7 +1336,7 @@
- #endif
- }
- else if(ch == 'x'){
-- q_status_message(SM_ORDER, 0, 3, "Bug report cancelled.");
-+ q_status_message(SM_ORDER, 0, 3, "取消錯誤回報。");
- return(-1);
- }
- }
-@@ -1463,13 +1463,13 @@
- if(in_handle){
- hp_menu[++i].type = tQueue;
- hp_menu[i].label.style = lNormal;
-- hp_menu[i].label.string = "View Help Section";
-+ hp_menu[i].label.string = "檢視輔助說明章節";
- hp_menu[i].data.val = 'V';
- }
-
- hp_menu[++i].type = tQueue;
- hp_menu[i].label.style = lNormal;
-- hp_menu[i].label.string = "Exit Help";
-+ hp_menu[i].label.string = "離開";
- hp_menu[i].data.val = 'E';
-
- hp_menu[++i].type = tTail;
-@@ -1494,18 +1494,18 @@
- if(in_handle){
- hp_menu[++i].type = tQueue;
- hp_menu[i].label.style = lNormal;
-- hp_menu[i].label.string = "View Help Section";
-+ hp_menu[i].label.string = "檢視該節說明";
- hp_menu[i].data.val = 'V';
- }
-
- hp_menu[++i].type = tQueue;
- hp_menu[i].label.style = lNormal;
-- hp_menu[i].label.string = "Previous Help Section";
-+ hp_menu[i].label.string = "前一節";
- hp_menu[i].data.val = 'P';
-
- hp_menu[++i].type = tQueue;
- hp_menu[i].label.style = lNormal;
-- hp_menu[i].label.string = "Exit Help";
-+ hp_menu[i].label.string = "離開";
- hp_menu[i].data.val = 'E';
-
- hp_menu[++i].type = tTail;
diff --git a/chinese/pine4/files/patch-az b/chinese/pine4/files/patch-az
deleted file mode 100644
index 1782f39a69e1..000000000000
--- a/chinese/pine4/files/patch-az
+++ /dev/null
@@ -1,21 +0,0 @@
---- pine/init.c.orig Sat Oct 2 07:54:14 1999
-+++ pine/init.c Thu Oct 14 13:35:02 1999
-@@ -339,7 +339,7 @@
-
- /*----------------------------------------------------------------------
- These are the variables that control a number of pine functions. They
--come out of the .pinerc and the /usr/local/lib/pine.conf files. Some can
-+come out of the .pinerc and the @@PREFIX@@/etc/pine.conf files. Some can
- be set by the user while in Pine. Eventually all the local ones should
- be so and maybe the global ones too.
-
-@@ -660,6 +660,9 @@
- GLO_NORM_FORE_COLOR = cpystr(colorx(DEFAULT_NORM_FORE));
- GLO_NORM_BACK_COLOR = cpystr(colorx(DEFAULT_NORM_BACK));
- #endif
-+
-+ F_TURN_ON(F_TCAP_WINS,ps);
-+ F_TURN_ON(F_QUELL_INTERNAL_MSG,ps);
-
- /* Set the default mail directory */
- build_path(buf, GLO_MAIL_DIRECTORY, "[]");
diff --git a/chinese/pine4/files/patch-ba b/chinese/pine4/files/patch-ba
deleted file mode 100644
index 4c5ba5c9ed15..000000000000
--- a/chinese/pine4/files/patch-ba
+++ /dev/null
@@ -1,1126 +0,0 @@
---- pine/mailcmd.c.orig Wed Nov 17 09:51:48 1999
-+++ pine/mailcmd.c Fri Nov 19 18:24:04 1999
-@@ -115,39 +115,39 @@
- /*
- * List of Select options used by apply_* functions...
- */
--static char *sel_pmt1 = "ALTER message selection : ";
-+static char *sel_pmt1 = "更改信件的選擇:";
- ESCKEY_S sel_opts1[] = {
-- {'a', 'a', "A", "unselect All"},
-+ {'a', 'a', "A", "取消所有選擇"},
- {'c', 'c', "C", NULL},
-- {'b', 'b', "B", "Broaden selctn"},
-- {'n', 'n', "N", "Narrow selctn"},
-- {'f', 'f', "F", "Flip selected"},
-+ {'b', 'b', "B", "擴大選擇"},
-+ {'n', 'n', "N", "縮小選擇"},
-+ {'f', 'f', "F", "切換選擇"},
- {-1, 0, NULL, NULL}
- };
-
-
--char *sel_pmt2 = "SELECT criteria : ";
-+char *sel_pmt2 = "選擇標準:";
- static ESCKEY_S sel_opts2[] = {
-- {'a', 'a', "A", "select All"},
-- {'c', 'c', "C", "select Cur"},
-- {'n', 'n', "N", "Number"},
-- {'d', 'd', "D", "Date"},
-- {'t', 't', "T", "Text"},
-- {'s', 's', "S", "Status"},
-+ {'a', 'a', "A", "選擇所有"},
-+ {'c', 'c', "C", "選擇目前的"},
-+ {'n', 'n', "N", "數目"},
-+ {'d', 'd', "D", "日期"},
-+ {'t', 't', "T", "文字"},
-+ {'s', 's', "S", "狀態"},
- {-1, 0, NULL, NULL}
- };
-
-
--static char *sel_pmt3 = "APPLY command : ";
-+static char *sel_pmt3 = "套用命令:";
- static ESCKEY_S sel_opts3[] = {
-- {'d', 'd', "D", "Del"},
-- {'u', 'u', "U", "Undel"},
-- {'r', 'r', "R", "Reply"},
-- {'f', 'f', "F", "Forward"},
-- {'%', '%', "%", "Print"},
-- {'t', 't', "T", "TakeAddr"},
-- {'s', 's', "S", "Save"},
-- {'e', 'e', "E", "Export"},
-+ {'d', 'd', "D", "刪除"},
-+ {'u', 'u', "U", "復原刪除"},
-+ {'r', 'r', "R", "回覆"},
-+ {'f', 'f', "F", "轉寄"},
-+ {'%', '%', "%", "列印"},
-+ {'t', 't', "T", "地址簿"},
-+ {'s', 's', "S", "存檔"},
-+ {'e', 'e', "E", "匯出"},
- { -1, 0, NULL, NULL},
- { -1, 0, NULL, NULL},
- { -1, 0, NULL, NULL},
-@@ -157,24 +157,24 @@
-
-
- static char *sel_flag =
-- "Select New, Deleted, Answered, or Important messages ? ";
-+ "選擇 新的,已刪除的,已回覆的,或重要的信件?";
- static char *sel_flag_not =
-- "Select NOT New, NOT Deleted, NOT Answered or NOT Tagged msgs ? ";
-+ "選擇 非新的,非已刪除的,非已回覆的,或非被標記的信件?";
- static ESCKEY_S sel_flag_opt[] = {
-- {'n', 'n', "N", "New"},
-- {'*', '*', "*", "Important"},
-- {'d', 'd', "D", "Deleted"},
-- {'a', 'a', "A", "Answered"},
-- {'!', '!', "!", "Not"},
-+ {'n', 'n', "N", "新的"},
-+ {'*', '*', "*", "重要的"},
-+ {'d', 'd', "D", "已刪除的"},
-+ {'a', 'a', "A", "已回覆的"},
-+ {'!', '!', "!", "非"},
- {-1, 0, NULL, NULL}
- };
-
-
- static ESCKEY_S sel_date_opt[] = {
- {0, 0, NULL, NULL},
-- {ctrl('P'), 12, "^P", "Prev Day"},
-- {ctrl('N'), 13, "^N", "Next Day"},
-- {ctrl('X'), 11, "^X", "Cur Msg"},
-+ {ctrl('P'), 12, "^P", "前一天"},
-+ {ctrl('N'), 13, "^N", "後一天"},
-+ {ctrl('X'), 11, "^X", "目前的"},
- {ctrl('W'), 14, "^W", "Toggle When"},
- {KEY_UP, 12, "", ""},
- {KEY_DOWN, 13, "", ""},
-@@ -183,23 +183,23 @@
-
-
- static char *sel_text =
-- "Select based on To, From, Cc, Recip, Subject fields or All message text ? ";
-+ "選擇以 收件人,寄件人,副本,領受者,主題 等欄位為主,或所有的訊息文字?";
- static char *sel_not_text =
-- "Select based on NOT To, From, Cc, Recip, Subject fields or All message text ? ";
-+ "選擇「不」以 收件人,寄件人,副本,領受者,主題 等欄位為主,或所有的訊息文字?";
- static ESCKEY_S sel_text_opt[] = {
-- {'f', 'f', "F", "From"},
-- {'s', 's', "S", "Subject"},
-- {'t', 't', "T", "To"},
-- {'a', 'a', "A", "All Text"},
-- {'c', 'c', "C", "Cc"},
-- {'!', '!', "!", "Not"},
-- {'r', 'r', "R", "Recipient"},
-- {'p', 'p', "P", "Participant"},
-+ {'f', 'f', "F", "寄件人"},
-+ {'s', 's', "S", "主題"},
-+ {'t', 't', "T", "收件人"},
-+ {'a', 'a', "A", "所有的訊息文字"},
-+ {'c', 'c', "C", "副本"},
-+ {'!', '!', "!", "非"},
-+ {'r', 'r', "R", "領受者"},
-+ {'p', 'p', "P", "關係者"},
- {-1, 0, NULL, NULL}
- };
-
- static char *select_num =
-- "Enter comma-delimited list of numbers (dash between ranges): ";
-+ "輸入以逗點分隔的數字串列(範圍以破折號區分):";
-
-
- /*----------------------------------------------------------------------
-@@ -248,7 +248,7 @@
- case MC_HELP :
- if(state->nr_mode) {
- q_status_message(SM_ORDER, 0, 3,
-- "No help text currently available");
-+ "目前無法取得文字說明");
- break;
- }
-
-@@ -277,7 +277,7 @@
-
- /*------- View message text --------*/
- case MC_VIEW_TEXT :
-- if(any_messages(msgmap, NULL, "to View")){
-+ if(any_messages(msgmap, NULL, "可供檢視")){
- state->next_screen = mail_view_screen;
- #if defined(DOS) && !defined(WIN32)
- flush_index_cache(); /* save room on PC */
-@@ -301,10 +301,10 @@
- mn_dec_cur(stream, msgmap);
- if(i == mn_get_cur(msgmap))
- q_status_message(SM_ORDER, 0, 2,
-- "Already on first message in Zoomed Index");
-+ "已經到縮放索引中的第一封訊息了");
- }
- else
-- q_status_message(SM_ORDER, 0, 1, "Already on first message");
-+ q_status_message(SM_ORDER, 0, 1, "已經到第一封訊息了");
- }
-
- break;
-@@ -316,7 +316,7 @@
- && (i = mn_get_cur(msgmap)) < mn_get_total(msgmap)){
- mn_inc_cur(stream, msgmap);
- if(i == mn_get_cur(msgmap))
-- any_messages(NULL, "more", "in Zoomed Index");
-+ any_messages(NULL, "更多的", "在可縮放索引中");
- }
- else{
- prompt[0] = '\0';
-@@ -333,7 +333,7 @@
- strcat(prompt, ". No more folders to TAB to.");
- }
-
-- any_messages(NULL, (mn_get_total(msgmap) > 0L) ? "more" : NULL,
-+ any_messages(NULL, (mn_get_total(msgmap) > 0L) ? "更多的" : NULL,
- prompt[0] ? prompt : NULL);
-
- if(!IS_NEWS(stream))
-@@ -511,9 +511,9 @@
- }
- }
- else
-- q_status_message1(SM_ORDER, 0, 2, "No more %ss",
-+ q_status_message1(SM_ORDER, 0, 2, "沒有更多的%s了",
- (state->context_current->use&CNTXT_INCMNG)
-- ? "incoming folder" : "news group");
-+ ? "新進資料匣" : "新聞組群");
-
- break;
- }
-@@ -530,9 +530,9 @@
- */
- if(F_OFF(F_AUTO_OPEN_NEXT_UNREAD, state)){
- static ESCKEY_S next_opt[] = {
-- {'y', 'y', "Y", "Yes"},
-- {'n', 'n', "N", "No"},
-- {TAB, 'n', "Tab", "NextNew"},
-+ {'y', 'y', "Y", "是"},
-+ {'n', 'n', "N", "否"},
-+ {TAB, 'n', "Tab", "下一新的"},
- {-1, 0, NULL, NULL}
- };
-
-@@ -558,7 +558,7 @@
- else
- any_messages(NULL,
- (mn_get_total(msgmap) > 0L)
-- ? IS_NEWS(stream) ? "more undeleted" : "more new"
-+ ? IS_NEWS(stream) ? "更多遭復原刪除的" : "更多新的"
- : NULL,
- NULL);
- }
-@@ -576,7 +576,7 @@
- * global "zoom mode" flag to suppress messags from the index
- * should suffice.
- */
-- if(any_messages(msgmap, NULL, "to Zoom on")){
-+ if(any_messages(msgmap, NULL, "可供放大")){
- if(unzoom_index(state, msgmap)){
- dprint(4, (debugfile, "\n\n ---- Exiting ZOOM mode ----\n"));
- q_status_message(SM_ORDER,0,2, "Index Zoom Mode is now off");
-@@ -593,7 +593,7 @@
- "All messages selected, so not entering Index Zoom Mode");
- }
- else
-- any_messages(NULL, "selected", "to Zoom on");
-+ any_messages(NULL, "被選中的", "可供放大");
- }
-
- break;
-@@ -601,7 +601,7 @@
-
- /*---------- print message on paper ----------*/
- case MC_PRINTMSG :
-- if(any_messages(msgmap, NULL, "to print"))
-+ if(any_messages(msgmap, NULL, "可供列印"))
- cmd_print(state, msgmap, 0, in_index);
-
- break;
-@@ -609,7 +609,7 @@
-
- /*---------- Take Address ----------*/
- case MC_TAKE :
-- if(any_messages(msgmap, NULL, "to Take address from"))
-+ if(any_messages(msgmap, NULL, "可供取得地址"))
- cmd_take_addr(state, msgmap, 0);
-
- break;
-@@ -617,7 +617,7 @@
-
- /*---------- Save Message ----------*/
- case MC_SAVE :
-- if(any_messages(msgmap, NULL, "to Save"))
-+ if(any_messages(msgmap, NULL, "可供存檔"))
- cmd_save(state, stream, msgmap, 0);
-
- break;
-@@ -625,7 +625,7 @@
-
- /*---------- Export message ----------*/
- case MC_EXPORT :
-- if(any_messages(msgmap, NULL, "to Export")){
-+ if(any_messages(msgmap, NULL, "可供匯出")){
- cmd_export(state, msgmap, question_line, 0);
- state->mangled_footer = 1;
- }
-@@ -638,9 +638,9 @@
- dprint(2, (debugfile, "\n - expunge -\n"));
- if(IS_NEWS(stream) && stream->rdonly){
- if((del_count = count_flagged(stream, F_DEL)) > 0L){
-- state->mangled_footer = 1;
-- sprintf(prompt, "Exclude %ld message%s from %s", del_count,
-- plural(del_count), pretty_fn(state->cur_folder));
-+
-+ sprintf(prompt, "自 %s 中排除 %ld 封信件",
-+ pretty_fn(state->cur_folder), del_count);
- if(F_ON(F_FULL_AUTO_EXPUNGE, state)
- || (F_ON(F_AUTO_EXPUNGE, state)
- && (state->context_current
-@@ -662,21 +662,20 @@
-
- state->mangled_body = 1;
- state->mangled_header = 1;
-- q_status_message2(SM_ORDER, 0, 4, "%s message%s excluded",
-- long2string(del_count),
-- plural(del_count));
-+ q_status_message1(SM_ORDER, 0, 4, "%s 封信件被排除了",
-+ long2string(del_count));
- }
- else
-- any_messages(NULL, NULL, "Excluded");
-+ any_messages(NULL, NULL, "排除在外");
- }
- else
-- any_messages(NULL, "deleted", "to Exclude");
-+ any_messages(NULL, "被刪除", "可供排除");
-
- break;
- }
- else if(READONLY_FOLDER){
- q_status_message(SM_ORDER, 0, 4,
-- "Can't expunge. Folder is read-only");
-+ "無法刪除。信件匣是唯讀的");
- break;
- }
-
-@@ -695,7 +694,7 @@
- ret = 'y';
-
- if(ret == 'x')
-- cmd_cancelled("Expunge");
-+ cmd_cancelled("刪除");
-
- if(ret != 'y')
- break;
-@@ -763,11 +762,11 @@
- if(state->expunge_count <= 0)
- if(del_count)
- q_status_message1(SM_ORDER, 0, 3,
-- "No messages expunged from folder \"%s\"",
-+ "沒有任何信件自信件匣 \"%s\" 中刪除",
- pretty_fn(state->cur_folder));
- else
- q_status_message(SM_ORDER, 0, 3,
-- "No messages marked deleted. No messages expunged.");
-+ "沒有任何信件被標示為刪除。沒有信件被刪除。");
-
- break;
-
-@@ -799,8 +798,8 @@
-
- if(del_count > 0L){
- state->mangled_footer = 1;
-- sprintf(prompt, "UNexclude %ld message%s in %s", del_count,
-- plural(del_count), pretty_fn(state->cur_folder));
-+ sprintf(prompt, "%ld 封信件在信件匣 %s 中被復原排除", del_count,
-+ pretty_fn(state->cur_folder));
- if(F_ON(F_FULL_AUTO_EXPUNGE, state)
- || (F_ON(F_AUTO_EXPUNGE, state)
- && (state->context_current
-@@ -818,29 +817,28 @@
- */
- refresh_sort(msgmap, FALSE);
- state->mangled_header = 1;
-- q_status_message2(SM_ORDER, 0, 4,
-- "%s message%s UNexcluded",
-- long2string(del_count),
-- plural(del_count));
-+ q_status_message1(SM_ORDER, 0, 4,
-+ "%s 封信件被復原排除",
-+ long2string(del_count));
-
- if(!visible) /* hilite last message */
- mn_set_cur(msgmap, mn_get_total(msgmap));
- }
- else
-- any_messages(NULL, NULL, "UNexcluded");
-+ any_messages(NULL, NULL, "已復原排除");
- }
- else
-- any_messages(NULL, "excluded", "to UNexclude");
-+ any_messages(NULL, "已被排除", "可供復原排除");
- }
- else
-- any_messages(NULL, "excluded", "to UNexclude");
-+ any_messages(NULL, "已被排除", "可供復原排除");
-
- break;
-
-
- /*------- Make Selection -----------*/
- case MC_SELECT :
-- if(any_messages(msgmap, NULL, "to Select")){
-+ if(any_messages(msgmap, NULL, "可供選擇")){
- aggregate_select(state, msgmap, question_line, in_index);
- if(in_index && any_lflagged(msgmap, MN_SLCT) > 0L
- && !any_lflagged(msgmap, MN_HIDE)
-@@ -872,7 +870,7 @@
- unzoom_index(state, msgmap);
- }
- else
-- any_messages(NULL, NULL, "to Apply command to. Try \"Select\"");
-+ any_messages(NULL, NULL, "可供套用命令。試試 \"選擇\"");
- }
-
- break;
-@@ -950,21 +948,21 @@
- {
- if(cmd == ctrl('Q') || cmd == ctrl('S'))
- q_status_message1(SM_ASYNC, 0, 2,
-- "%s char received. Set \"preserve-start-stop\" feature in Setup/Config.",
-+ "收到 %s 字元。以 設定/環境設定 開啟 \"preserve-start-stop\"。",
- pretty_command(cmd));
- else if(cmd == KEY_JUNK)
- q_status_message3(SM_ORDER, 0, 2,
-- "Invalid key pressed.%s%s%s",
-- (help) ? " Use " : "",
-+ "輸入了無效的按鍵。%s%s%s",
-+ (help) ? "請以 " : "",
- (help) ? help : "",
-- (help) ? " for help" : "");
-+ (help) ? " 呼叫輔助說明" : "");
- else
- q_status_message4(SM_ORDER, 0, 2,
-- "Command \"%s\" not defined for this screen.%s%s%s",
-+ "命令 \"%s\" 未在此畫面定義。%s%s%s",
- pretty_command(cmd),
-- (help) ? " Use " : "",
-+ (help) ? "請以 " : "",
- (help) ? help : "",
-- (help) ? " for help" : "");
-+ (help) ? " 呼叫輔助說明。" : "");
- }
-
-
-@@ -1237,11 +1235,9 @@
- char *type, *cmd;
- {
- if(mn_get_total(map) <= 0L){
-- q_status_message4(SM_ORDER, 0, 2, "No %s%smessages%s%s",
-+ q_status_message2(SM_ORDER, 0, 2, "沒有%s信件%s",
- type ? type : "",
-- type ? " " : "",
-- (!cmd || *cmd != '.') ? " " : "",
-- cmd ? cmd : "in folder");
-+ cmd ? cmd : "在信件匣中");
- return(FALSE);
- }
-
-@@ -1265,8 +1261,8 @@
- {
- if(READONLY_FOLDER || state->dead_stream){
- q_status_message2(SM_ORDER | (state->dead_stream ? SM_DING : 0), 0, 3,
-- "Can't %s message. Folder is %s.", cmd,
-- (state->dead_stream) ? "closed" : "read-only");
-+ "無法%s信件。信件匣是%s的。", cmd,
-+ (state->dead_stream) ? "關閉" : "唯讀");
- return(FALSE);
- }
-
-@@ -1286,7 +1282,7 @@
- cmd_cancelled(cmd)
- char *cmd;
- {
-- q_status_message1(SM_INFO, 0, 2, "%s cancelled", cmd ? cmd : "Command");
-+ q_status_message1(SM_INFO, 0, 2, "取消%s", cmd ? cmd : "命令");
- }
-
-
-@@ -1312,7 +1308,7 @@
-
- dprint(4, (debugfile, "\n - delete message -\n"));
- if(!(any_messages(msgmap, NULL, "to Delete")
-- && can_set_flag(state, "delete")))
-+ && can_set_flag(state, "刪除")))
- return;
-
- if(state->io_error_on_stream) {
-@@ -1322,16 +1318,15 @@
-
- if(agg){
- sequence = selected_sequence(state->mail_stream, msgmap, &del_count);
-- sprintf(prompt, "%ld selected message%s marked for deletion",
-- del_count, plural(del_count));
-+ sprintf(prompt, "%ld 封信件被標示為待刪除", del_count);
- }
- else{
- msgno = mn_get_cur(msgmap);
- del_count = 1L; /* return current */
- sequence = cpystr(long2string(mn_m2raw(msgmap, mn_get_cur(msgmap))));
- lastmsg = (msgno >= mn_get_total(msgmap));
-- sprintf(prompt, "%s%s marked for deletion",
-- lastmsg ? "Last message" : "Message ",
-+ sprintf(prompt, "%s%s 被標示為待刪除",
-+ lastmsg ? "最後一封信" : "信件 ",
- lastmsg ? "" : long2string(msgno));
- }
-
-@@ -1361,8 +1356,8 @@
- strcpy(nextfolder, state->cur_folder);
- strcat(prompt, next_folder(NULL, nextfolder, nextfolder,
- state->context_current, NULL)
-- ? ". Press TAB for next folder."
-- : ". No more folders to TAB to.");
-+ ? "。 以 TAB 鍵切換至下一信件匣。"
-+ : "。 已無更多信件匣可供切換了。");
- }
- }
-
-@@ -1393,7 +1388,7 @@
-
- dprint(4, (debugfile, "\n - undelete -\n"));
- if(!(any_messages(msgmap, NULL, "to Undelete")
-- && can_set_flag(state, "undelete")))
-+ && can_set_flag(state, "復原刪除")))
- return;
-
- if(agg){
-@@ -1418,13 +1413,13 @@
- update_titlebar_status();
- q_status_message(SM_ORDER, 0, 3,
- wasdeleted
-- ? "Deletion mark removed, message won't be deleted"
-- : "Message not marked for deletion; no action taken");
-+ ? "已移除刪除標記,信件將不會遭刪除"
-+ : "信件尚未被標示為刪除:沒有採取任何行動");
- }
- else
-- q_status_message2(SM_ORDER, 0, 3,
-- "Deletion mark removed from %s message%s",
-- comatose(del_count), plural(del_count));
-+ q_status_message1(SM_ORDER, 0, 3,
-+ "移除 %s 封信件上的刪除標記",
-+ comatose(del_count));
-
- if(state->io_error_on_stream) {
- state->io_error_on_stream = 0;
-@@ -1488,7 +1483,7 @@
- };
-
- if(!(any_messages(msgmap, NULL, "to Flag")
-- && can_set_flag(state, "flag")))
-+ && can_set_flag(state, "標示")))
- return;
-
- if(state->io_error_on_stream) {
-@@ -1844,7 +1839,7 @@
- if(msgno_any_deletedparts(stream, msgmap)
- && want_to("Saved copy will NOT include entire message! Continue",
- 'y', 'n', NO_HELP, WT_FLUSH_IN | WT_SEQ_SENSITIVE) != 'y'){
-- cmd_cancelled("Save message");
-+ cmd_cancelled("信件存檔");
- return;
- }
-
-@@ -1967,32 +1962,32 @@
- ekey[rc].ch = ctrl('T');
- ekey[rc].rval = 2;
- ekey[rc].name = "^T";
-- ekey[rc++].label = "To Fldrs";
-+ ekey[rc++].label = "信件匣列表";
-
- if(saveable_count > 1){
- ekey[rc].ch = ctrl('P');
- ekey[rc].rval = 10;
- ekey[rc].name = "^P";
-- ekey[rc++].label = "Prev Collection";
-+ ekey[rc++].label = "前一總集";
-
- ekey[rc].ch = ctrl('N');
- ekey[rc].rval = 11;
- ekey[rc].name = "^N";
-- ekey[rc++].label = "Next Collection";
-+ ekey[rc++].label = "後一總集";
- }
-
- if(F_ON(F_ENABLE_TAB_COMPLETE, ps_global)){
- ekey[rc].ch = TAB;
- ekey[rc].rval = 12;
- ekey[rc].name = "TAB";
-- ekey[rc++].label = "Complete";
-+ ekey[rc++].label = "完成";
- }
-
- if(F_ON(F_ENABLE_SUB_LISTS, ps_global)){
- ekey[rc].ch = ctrl('X');
- ekey[rc].rval = 14;
- ekey[rc].name = "^X";
-- ekey[rc++].label = "ListMatches";
-+ ekey[rc++].label = "列出符合";
- }
-
- if(saveable_count > 1){
-@@ -2129,7 +2124,7 @@
- /* else fall thru like they cancelled */
-
- case 1 :
-- cmd_cancelled("Save message");
-+ cmd_cancelled("信件存檔");
- done--;
- break;
-
-@@ -3260,16 +3255,16 @@
- }
-
- sprintf(tmp_20k_buf,
-- "Folder \"%.15s%s\" in <%.15s%s> doesn't exist. Create",
-+ "信件匣 \"%.15s%s\" 在 <%.15s%s> 不存在。要建立",
- folder, (strlen(folder) > 15) ? "..." : "",
- context->nickname,
- (strlen(context->nickname) > 15) ? "..." : "");
- }
- else
-- sprintf(tmp_20k_buf,"Folder \"%.40s\" doesn't exist. Create", folder);
-+ sprintf(tmp_20k_buf,"信件匣 \"%.40s\" 不存在。要建立", folder);
-
- if(want_to(tmp_20k_buf, 'y', 'n', NO_HELP, WT_SEQ_SENSITIVE) != 'y'){
-- cmd_cancelled("Save message");
-+ cmd_cancelled("信件存檔");
- return(-1);
- }
-
-@@ -3395,14 +3390,14 @@
- export_opts[i = 0].ch = ctrl('T');
- export_opts[i].rval = 10;
- export_opts[i].name = "^T";
-- export_opts[i++].label = "To Files";
-+ export_opts[i++].label = "檔案列表";
-
- #if !defined(DOS) && !defined(MAC) && !defined(OS2)
- if(ps_global->VAR_DOWNLOAD_CMD && ps_global->VAR_DOWNLOAD_CMD[0]){
- export_opts[i].ch = ctrl('V');
- export_opts[i].rval = 12;
- export_opts[i].name = "^V";
-- export_opts[i++].label = "Downld Msg";
-+ export_opts[i++].label = "下載";
- }
- #endif /* !(DOS || MAC) */
-
-@@ -3410,7 +3405,7 @@
- export_opts[i].ch = ctrl('I');
- export_opts[i].rval = 11;
- export_opts[i].name = "TAB";
-- export_opts[i++].label = "Complete";
-+ export_opts[i++].label = "完成";
- }
-
- #if 0
-@@ -3419,7 +3414,7 @@
- export_opts[i].ch = ctrl('X');
- export_opts[i].rval = 14;
- export_opts[i].name = "^X";
-- export_opts[i++].label = "ListMatches";
-+ export_opts[i++].label = "列出符合";
- }
- #endif
-
-@@ -3433,7 +3428,7 @@
- if(r < 0){
- switch(r){
- case -1:
-- cmd_cancelled("Export message");
-+ cmd_cancelled("匯出信件");
- break;
-
- case -2:
-@@ -3455,7 +3450,7 @@
-
- if(ps_global->restricted){
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Download disallowed in restricted mode");
-+ "限制模式中不允許\下載");
- goto fini;
- }
-
-@@ -3474,7 +3469,7 @@
- || !format_message(mn_m2raw(msgmap, mn_get_cur(msgmap)),
- env, b, FM_NEW_MESS | FM_NOWRAP, pc)){
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- err = "Error writing tempfile for download");
-+ err = "寫入下載暫存檔時發生錯誤");
- break;
- }
-
-@@ -3487,18 +3482,18 @@
- (void) close_system_pipe(&syspipe);
- else
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- err = "Error running download command");
-+ err = "執行下載命令時發生錯誤");
- }
-
- unlink(tfp);
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- err = "Error building temp file for download");
-+ err = "無法建立供下載使用的暫存檔");
-
- fs_give((void **)&tfp);
- if(!err)
-- q_status_message(SM_ORDER, 0, 3, "Download Command Completed");
-+ q_status_message(SM_ORDER, 0, 3, "下載命令完成");
-
- goto fini;
- }
-@@ -3612,7 +3607,7 @@
- STORE_S *store = NULL;
- struct variable *vars = ps->vars;
- static ESCKEY_S simple_export_opts[] = {
-- {ctrl('T'), 10, "^T", "To Files"},
-+ {ctrl('T'), 10, "^T", "檔案列表"},
- {-1, 0, NULL, NULL},
- {-1, 0, NULL, NULL}};
-
-@@ -3620,7 +3615,7 @@
- simple_export_opts[r].ch = ctrl('I');
- simple_export_opts[r].rval = 11;
- simple_export_opts[r].name = "TAB";
-- simple_export_opts[r].label = "Complete";
-+ simple_export_opts[r].label = "完成";
- }
-
- if(!srctext){
-@@ -3693,7 +3688,7 @@
- break;
-
- case -1:
-- cmd_cancelled("Export");
-+ cmd_cancelled("匯出");
- break;
-
- case -2:
-@@ -4365,32 +4360,32 @@
- ekey[rc].ch = (allow_list) ? ctrl('T') : 0 ;
- ekey[rc].rval = (allow_list) ? 2 : 0;
- ekey[rc].name = (allow_list) ? "^T" : "";
-- ekey[rc++].label = (allow_list) ? "ToFldrs" : "";
-+ ekey[rc++].label = (allow_list) ? "檔案列表" : "";
-
- if(ps_global->context_list->next){
- ekey[rc].ch = ctrl('P');
- ekey[rc].rval = 10;
- ekey[rc].name = "^P";
-- ekey[rc++].label = "Prev Collection";
-+ ekey[rc++].label = "前一總集";
-
- ekey[rc].ch = ctrl('N');
- ekey[rc].rval = 11;
- ekey[rc].name = "^N";
-- ekey[rc++].label = "Next Collection";
-+ ekey[rc++].label = "後一總集";
- }
-
- if(F_ON(F_ENABLE_TAB_COMPLETE,ps_global)){
- ekey[rc].ch = TAB;
- ekey[rc].rval = 12;
- ekey[rc].name = "TAB";
-- ekey[rc++].label = "Complete";
-+ ekey[rc++].label = "完成";
- }
-
- if(F_ON(F_ENABLE_SUB_LISTS, ps_global)){
- ekey[rc].ch = ctrl('X');
- ekey[rc].rval = 14;
- ekey[rc].name = "^X";
-- ekey[rc++].label = "ListMatches";
-+ ekey[rc++].label = "列出符合";
- }
-
- if(ps_global->context_list->next){
-@@ -4508,15 +4503,15 @@
- newfolder);
- else if(tc->use & CNTXT_INCMNG)
- q_status_message1(SM_ORDER, 0, 3,
-- "Can't find Incoming Folder: %s",
-+ "找不到新進信件匣:%s",
- newfolder);
- else if(context_isambig(newfolder))
- q_status_message3(SM_ORDER, 0, 3,
-- "Can't find folder \"%s\" in %.*s",
-- newfolder, (void *) 50, tc->nickname);
-+ "在 %.*s 中找不到信件匣 \"%s\"",
-+ (void *) 50, tc->nickname, newfolder);
- else
- q_status_message1(SM_ORDER, 0, 3,
-- "Can't find folder \"%s\"",
-+ "找不到信件匣 \"%s\"",
- newfolder);
-
- return(NULL);
-@@ -4529,7 +4524,7 @@
- /* fall thru like they cancelled */
-
- case 1 : /* o_e says user cancel */
-- cmd_cancelled("Open folder");
-+ cmd_cancelled("開啟信件匣");
- return(NULL);
-
- case 2 : /* o_e says user wants list */
-@@ -4762,7 +4757,7 @@
- else if ((new_context->use & CNTXT_INCMNG)
- && (folder_index(newfolder, new_context, FI_FOLDER) < 0)){
- q_status_message1(SM_ORDER, 3, 4,
-- "Can't find Incoming Folder %s.", newfolder);
-+ "找不到新進信件匣 %s。", newfolder);
- return(0);
- }
- }
-@@ -4802,11 +4797,10 @@
- clear_index_cache();
- /* MUST sort before restoring msgno! */
- refresh_sort(ps_global->msgmap, FALSE);
-- q_status_message3(SM_ORDER, 0, 3,
-- "Opened folder \"%s\" with %s message%s",
-+ q_status_message2(SM_ORDER, 0, 3,
-+ "信件匣 \"%s\" 已開啟,共 %s 封信件",
- ps_global->inbox_name,
-- long2string(mn_get_total(ps_global->msgmap)),
-- plural(mn_get_total(ps_global->msgmap)));
-+ long2string(mn_get_total(ps_global->msgmap)));
- #ifdef _WINDOWS
- mswin_settitle(ps_global->inbox_name);
- #endif
-@@ -4846,7 +4840,7 @@
- }
- }
-
-- strcat(strncat(strcpy(status_msg, "Opening \""),
-+ strcat(strncat(strcpy(status_msg, "正在開啟 \""),
- pretty_fn(newfolder), 70), "\"");
- we_cancel = busy_alarm(1, status_msg, NULL, 1);
-
-@@ -4930,7 +4924,7 @@
- && !mn_get_revsort(ps_global->msgmap)))
- refresh_sort(ps_global->msgmap, FALSE);
-
-- q_status_message1(SM_ORDER, 0, 3, "Folder \"%s\" reopened",
-+ q_status_message1(SM_ORDER, 0, 3, "重新開啟資料匣 \"%s\"",
- old_folder);
- }
- }
-@@ -5018,14 +5012,13 @@
-
- /* UWIN doesn't want to see this message */
- if(!ps_global->nr_mode)
-- q_status_message7(SM_ORDER, 0, 4, "%s \"%s\" opened with %s message%s%s",
-+ q_status_message7(SM_ORDER, 0, 4, "%s \"%s\" 已開啟,共 %s 封信",
- IS_NEWS(ps_global->mail_stream)
-- ? "News group" : "Folder",
-+ ? "新聞組群" : "信件匣",
- pretty_fn(newfolder),
- comatose(mn_get_total(ps_global->msgmap)),
-- plural(mn_get_total(ps_global->msgmap)),
-- READONLY_FOLDER ? " READONLY" : "",
-- NULL, NULL);
-+ READONLY_FOLDER ? " 唯讀" : "",
-+ NULL, NULL, NULL);
-
- #ifdef _WINDOWS
- mswin_settitle(pretty_fn(newfolder));
-@@ -5191,9 +5184,9 @@
- char ing[4];
-
- if(final_msg)
-- strcpy(ing, "ed");
-+ strcpy(ing, "已");
- else
-- strcpy(ing, "ing");
-+ strcpy(ing, "正");
-
- buff1[0] = '\0';
- buff2[0] = '\0';
-@@ -5202,7 +5195,7 @@
- stream->mailbox));
- if(!stream->rdonly){
-
-- q_status_message1(SM_INFO, 0, 1, "Closing \"%s\"...", folder);
-+ q_status_message1(SM_INFO, 0, 1, "正在關閉 \"%s\"...", folder);
- flush_status_messages(1);
-
- /*
-@@ -5255,10 +5248,8 @@
- }
- else{
- sprintf(prompt_b,
-- "Expunge the %ld deleted message%s from \"%s\"",
-- delete_count,
-- delete_count == 1 ? "" : "s",
-- short_folder_name);
-+ "自 \"%s\" 中刪除 %ld 封信件", short_folder_name,
-+ delete_count);
- ret = want_to(prompt_b, 'y', 0, NO_HELP, WT_NORM);
- }
-
-@@ -5269,13 +5260,10 @@
-
- if(ret == 'y'){
- sprintf(buff2,
-- "Clos%s \"%.30s\". %s %s message%s and delet%s %s.",
-+ "%s關閉 \"%.30s\"。保留 %s 封並刪除 %s 封信件。",
- ing,
- pretty_fn(folder),
-- final_msg ? "Kept" : "Keeping",
- comatose((stream->nmsgs - delete_count)),
-- plural(stream->nmsgs - delete_count),
-- ing,
- long2string(delete_count));
- if(final_msg)
- *final_msg = cpystr(buff2);
-@@ -5348,17 +5336,15 @@
-
- if(stream->nmsgs){
- sprintf(buff2,
-- "Clos%s folder \"%s\". %s%s%s message%s.",
-+ "%s關閉信件匣 \"%s\"。保留%s%s 封信件。",
- ing,
- pretty_fn(folder),
-- final_msg ? "Kept" : "Keeping",
-- (stream->nmsgs == 1L) ? " single" : " all ",
-+ (stream->nmsgs == 1L) ? " 一" : "全部共 ",
- (stream->nmsgs > 1L)
-- ? comatose(stream->nmsgs) : "",
-- plural(stream->nmsgs));
-+ ? comatose(stream->nmsgs) : "");
- }
- else{
-- sprintf(buff2, "Clos%s empty folder \"%s\"",
-+ sprintf(buff2, "%s關閉空的信件匣 \"%s\"",
- ing, pretty_fn(folder));
- }
-
-@@ -5377,7 +5363,7 @@
- q_status_message(SM_ORDER,
- F_ON(F_AUTO_READ_MSGS,ps_global) ? 0 : 3, 5, moved_msg);
-
-- sprintf(buff2, "Clos%s news group \"%s\"",
-+ sprintf(buff2, "%s關閉新聞組群 \"%s\"",
- ing, pretty_fn(folder));
-
- if(F_ON(F_NEWS_CATCHUP, ps_global)){
-@@ -5414,7 +5400,7 @@
- }
- else
- sprintf(buff2,
-- "Clos%s read-only folder \"%s\". No changes to save",
-+ "%s關閉唯讀的信件匣 \"%s\"。未存入任何改變",
- ing, pretty_fn(folder));
-
- if(final_msg)
-@@ -6093,18 +6079,18 @@
- if(in_index && F_ON(F_PRINT_INDEX, state)){
- char m[10];
- static ESCKEY_S prt_opts[] = {
-- {'i', 'i', "I", "Index"},
-+ {'i', 'i', "I", "索引"},
- {'m', 'm', "M", NULL},
- {-1, 0, NULL, NULL}};
-
-- sprintf(m, "Message%s", (msgs>1L) ? "s" : "");
-+ sprintf(m, "信件");
- prt_opts[1].label = m;
-- sprintf(prompt, "Print %sFolder Index or %s %s? ",
-- agg ? "selected " : "", agg ? "selected" : "current", m);
-+ sprintf(prompt, "印出 %s信件匣索引或 %s %s? ",
-+ agg ? "已被選擇的 " : "", agg ? "已被選擇的" : "目前的", m);
- switch(radio_buttons(prompt, -FOOTER_ROWS(state), prt_opts, 'm', 'x',
- NO_HELP, RB_NORM|RB_SEQ_SENSITIVE)){
- case 'x' :
-- cmd_cancelled("Print");
-+ cmd_cancelled("列印");
- if(agg)
- restore_selected(msgmap);
-
-@@ -6121,11 +6107,11 @@
- }
-
- if(do_index)
-- sprintf(prompt, "%sFolder Index ", agg ? "Selected " : "");
-+ sprintf(prompt, "%s信件匣索引 ", agg ? "已被選擇的" : "");
- else if(msgs > 1L)
-- sprintf(prompt, "%s messages ", long2string(msgs));
-+ sprintf(prompt, "%s 封信件 ", long2string(msgs));
- else
-- sprintf(prompt, "Message %s ", long2string(mn_get_cur(msgmap)));
-+ sprintf(prompt, "第 %s 封信件", long2string(mn_get_cur(msgmap)));
-
- if(open_printer(prompt) < 0){
- if(agg)
-@@ -6389,7 +6375,7 @@
- /* else fall thru as if cancelled */
-
- case 1 :
-- cmd_cancelled("Pipe command");
-+ cmd_cancelled("導向(Pipe)命令");
- done++;
- break;
-
-@@ -6725,7 +6711,7 @@
- sel_opts = sel_opts2;
- if(old_tot = any_lflagged(msgmap, MN_SLCT)){
- i = get_lflag(state->mail_stream, msgmap, mn_get_cur(msgmap), MN_SLCT);
-- sel_opts1[1].label = "unselect Cur" + (i ? 0 : 2);
-+ sel_opts1[1].label = "取消目前選擇" + (i ? 0 : 2);
- sel_opts += 2; /* disable extra options */
- switch(q = radio_buttons(sel_pmt1, q_line, sel_opts1, 'c', 'x', help,
- RB_NORM)){
-@@ -6769,7 +6755,7 @@
- */
- switch(q){
- case 'x': /* cancel */
-- cmd_cancelled("Select command");
-+ cmd_cancelled("選取命令");
- return;
-
- case 'c' : /* select/unselect current */
-@@ -6978,14 +6964,14 @@
- sel_opts3[i].ch = '*';
- sel_opts3[i].rval = '*';
- sel_opts3[i].name = "*";
-- sel_opts3[i++].label = "Flag";
-+ sel_opts3[i++].label = "旗標";
- }
-
- if(F_ON(F_ENABLE_PIPE,state)){ /* pipe? */
- sel_opts3[i].ch = '|';
- sel_opts3[i].rval = '|';
- sel_opts3[i].name = "|";
-- sel_opts3[i++].label = "Pipe";
-+ sel_opts3[i++].label = "導向(Pipe)";
- }
-
- /*
-@@ -6997,7 +6983,7 @@
- sel_opts3[i].ch = 'b';
- sel_opts3[i].rval = 'b';
- sel_opts3[i].name = "B";
-- sel_opts3[i++].label = "Bounce";
-+ sel_opts3[i++].label = "退信";
- }
-
- if(F_ON(F_ENABLE_PRYNT, state)){
-@@ -7068,7 +7054,7 @@
- break;
-
- case 'x' : /* cancel */
-- cmd_cancelled("Apply command");
-+ cmd_cancelled("套用命令");
- rv = 0;
- break;
-
-@@ -7185,7 +7171,7 @@
- *t = '\0';
-
- if(r == 1 || numbers[0] == '\0'){
-- cmd_cancelled("Selection by number");
-+ cmd_cancelled("根據數字選擇");
- return(1);
- }
- else
-@@ -7311,7 +7297,7 @@
- prompt, sel_date_opt, help, &flags);
- switch (r){
- case 1 :
-- cmd_cancelled("Selection by date");
-+ cmd_cancelled("根據日期選擇");
- return(1);
-
- case 3 :
-@@ -7433,15 +7419,15 @@
- ekey[0].ch = ctrl('T');
- ekey[0].name = "^T";
- ekey[0].rval = 10;
-- ekey[0].label = "Cur To";
-+ ekey[0].label = "目前收信人";
- ekey[1].ch = ctrl('R');
- ekey[1].name = "^R";
- ekey[1].rval = 11;
-- ekey[1].label = "Cur From";
-+ ekey[1].label = "目前寄件人";
- ekey[2].ch = ctrl('W');
- ekey[2].name = "^W";
- ekey[2].rval = 12;
-- ekey[2].label = "Cur Cc";
-+ ekey[2].label = "目前副本";
- break;
-
- case 's' :
-@@ -7449,7 +7435,7 @@
- ekey[0].ch = ctrl('X');
- ekey[0].name = "^X";
- ekey[0].rval = 13;
-- ekey[0].label = "Cur Subject";
-+ ekey[0].label = "目前主題";
- break;
-
- case 'a' :
-@@ -7560,7 +7546,7 @@
- }
-
- if(type == 'x' || r == 'x'){
-- cmd_cancelled("Selection by text");
-+ cmd_cancelled("根據文字選擇");
- return(1);
- }
-
-@@ -7818,7 +7804,7 @@
- NO_HELP, RB_NORM);
-
- if(s == 'x'){
-- cmd_cancelled("Selection by status");
-+ cmd_cancelled("根據狀態選擇");
- return(1);
- }
- else if(s == '!')
-@@ -7915,7 +7901,7 @@
-
- /*----- String together the prompt ------*/
- tmp[1] = '\0';
-- strcpy(prompt, "Choose type of sort, or Reverse current sort : ");
-+ strcpy(prompt, "選取排序方式,或反轉目前的排序:");
- for(i = 0; state->sort_types[i] != EndofList; i++) {
- sorts[i].rval = i;
- p = sorts[i].label = sort_name(state->sort_types[i]);
-@@ -7932,7 +7918,7 @@
- sorts[i].ch = 'r';
- sorts[i].rval = 'r';
- sorts[i].name = cpystr("R");
-- sorts[i].label = "Reverse";
-+ sorts[i].label = "反轉";
- sorts[++i].ch = -1;
- help = h_select_sort;
-
-@@ -7945,7 +7931,7 @@
- }
- else{
- retval = 0;
-- cmd_cancelled("Sort");
-+ cmd_cancelled("排序");
- }
-
- while(--i >= 0)
diff --git a/chinese/pine4/files/patch-bb b/chinese/pine4/files/patch-bb
deleted file mode 100644
index 5b9e0dc13987..000000000000
--- a/chinese/pine4/files/patch-bb
+++ /dev/null
@@ -1,319 +0,0 @@
---- pine/mailindx.c.orig Tue Nov 9 08:20:33 1999
-+++ pine/mailindx.c Fri Nov 19 16:18:24 1999
-@@ -55,10 +55,10 @@
- /*
- * Some common Command Bindings
- */
--#define VIEWMSG_MENU {">", "[ViewMsg]", \
-+#define VIEWMSG_MENU {">", "[檢視信件]", \
- {MC_VIEW_TEXT, 5,{'v','.','>',ctrl('M'),ctrl('J')}}, \
- KS_VIEW}
--#define FLDRSORT_MENU {"$", "SortIndex", {MC_SORT,1,{'$'}}, KS_SORT}
-+#define FLDRSORT_MENU {"$", "排序索引", {MC_SORT,1,{'$'}}, KS_SORT}
-
-
- /*
-@@ -67,7 +67,7 @@
- static struct key index_keys[] =
- {HELP_MENU,
- OTHER_MENU,
-- {"<", "FldrList", {MC_FOLDERS,2,{'<',','}}, KS_NONE},
-+ {"<", "信件匣列表", {MC_FOLDERS,2,{'<',','}}, KS_NONE},
- VIEWMSG_MENU,
- PREVMSG_MENU,
- NEXTMSG_MENU,
-@@ -94,9 +94,9 @@
- HELP_MENU,
- OTHER_MENU,
- {"X",NULL,{MC_EXPUNGE,1,{'x'}},KS_NONE},
-- {"&","unXclude",{MC_UNEXCLUDE,1,{'&'}},KS_NONE},
-- {";","Select",{MC_SELECT,1,{';'}},KS_SELECT},
-- {"A","Apply",{MC_APPLY,1,{'a'}},KS_APPLY},
-+ {"&","取消排除(exclude)",{MC_UNEXCLUDE,1,{'&'}},KS_NONE},
-+ {";","選擇",{MC_SELECT,1,{';'}},KS_SELECT},
-+ {"A","套用",{MC_APPLY,1,{'a'}},KS_APPLY},
- FLDRSORT_MENU,
- JUMP_MENU,
- HDRMODE_MENU,
-@@ -106,8 +106,8 @@
-
- HELP_MENU,
- OTHER_MENU,
-- {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
-- {"Z","ZoomMode",{MC_ZOOM,1,{'z'}},KS_ZOOM},
-+ {":","選擇",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
-+ {"Z","縮放模式",{MC_ZOOM,1,{'z'}},KS_ZOOM},
- LISTFLD_MENU,
- RCOMPOSE_MENU,
- NULL_MENU,
-@@ -175,9 +175,9 @@
-
- static struct key simple_index_keys[] =
- {HELP_MENU,
-- {"E","ExitSelect",{MC_EXIT,1,{'e'}},KS_EXITMODE},
-+ {"E","離開",{MC_EXIT,1,{'e'}},KS_EXITMODE},
- NULL_MENU,
-- {"S","[Select]",{MC_SELECT,3,{'s',ctrl('M'),ctrl('J')}},KS_SELECT},
-+ {"S","[選擇]",{MC_SELECT,3,{'s',ctrl('M'),ctrl('J')}},KS_SELECT},
- PREVMSG_MENU,
- NEXTMSG_MENU,
- PREVPAGE_MENU,
-@@ -388,14 +388,14 @@
- if(flags & INDX_HEADER)
- set_titlebar((stream == ps_global->mail_stream)
- ? (style == MsgIndex || style == MultiMsgIndex)
-- ? "MESSAGE INDEX"
-- : "ZOOMED MESSAGE INDEX"
-+ ? "信件索引"
-+ : "縮放後的信件索引"
- : (!strcmp(folder, INTERRUPTED_MAIL))
-- ? "COMPOSE: SELECT INTERRUPTED"
-+ ? "編輯:選擇被中斷的"
- : (ps_global->VAR_FORM_FOLDER
- && !strcmp(ps_global->VAR_FORM_FOLDER, folder))
-- ? "COMPOSE: SELECT FORM LETTER"
-- : "COMPOSE: SELECT POSTPONED",
-+ ? "編輯:選擇樣版信件"
-+ : "編輯:選擇被暫緩的",
- stream, cntxt, folder, msgmap, 1, MessageNumber, 0, 0);
-
- if(flags & INDX_FOOTER) {
-@@ -487,7 +487,7 @@
- {
- dprint(1, (debugfile, "\n\n ---- MAIL INDEX ----\n"));
- if(!state->mail_stream) {
-- q_status_message(SM_ORDER, 0, 3, "No folder is currently open");
-+ q_status_message(SM_ORDER, 0, 3, "目前尚無已開啟的信件匣");
- state->prev_screen = mail_index_screen;
- state->next_screen = main_menu_screen;
- return;
-@@ -695,7 +695,7 @@
- if(F_ON(F_SHOW_CURSOR, state) && cur_row < 0){
- q_status_message(SM_ORDER,
- (ch==NO_OP_IDLE || ch==NO_OP_COMMAND) ? 0 : 3, 5,
-- "No messages in folder");
-+ "信件匣中沒有信");
- cur_row = state->ttyo->screen_rows - FOOTER_ROWS(state);
- display_message(ch);
- }
-@@ -822,7 +822,7 @@
- k = i;
- if(++j >= id.lines_per_page){
- if((id.msg_at_top = i) == 1L)
-- q_status_message(SM_ORDER, 0, 1, "First Index page");
-+ q_status_message(SM_ORDER, 0, 1, "索引第一頁");
-
- break;
- }
-@@ -831,7 +831,7 @@
- if(i <= 1L){
- if(mn_get_cur(msgmap) == 1L)
- q_status_message(SM_ORDER, 0, 1,
-- "Already at start of Index");
-+ "已經在索引的起頭了");
-
- break;
- }
-@@ -851,7 +851,7 @@
- k = i;
- if(++j >= id.lines_per_page){
- if(i+id.lines_per_page >= mn_get_total(msgmap))
-- q_status_message(SM_ORDER, 0, 1, "Last Index page");
-+ q_status_message(SM_ORDER, 0, 1, "索引最終頁");
-
- id.msg_at_top = i;
- break;
-@@ -860,7 +860,7 @@
-
- if(i >= mn_get_total(msgmap)){
- if(mn_get_cur(msgmap) == k)
-- q_status_message(SM_ORDER,0,1,"Already at end of Index");
-+ q_status_message(SM_ORDER,0,1,"已經在索引的結尾了");
-
- break;
- }
-@@ -1079,9 +1079,9 @@
- }
-
- q_status_message2(SM_ORDER, 0, 1,
-- "Message %s %sdeleted",
-+ "信件 %s %s刪除",
- long2string(mn_get_cur(msgmap)),
-- (del) ? "" : "already ");
-+ (del) ? "" : "已");
- }
-
- break;
-@@ -1103,9 +1103,9 @@
- }
-
- q_status_message2(SM_ORDER, 0, 1,
-- "Message %s %sdeleted",
-+ "信件 %s %s刪除",
- long2string(mn_get_cur(msgmap)),
-- (del) ? "UN" : "NOT ");
-+ (del) ? "已遭復原" : "未被");
- }
-
- break;
-@@ -2176,7 +2176,7 @@
- dprint(1, (debugfile,
- "parse_index_format: unrecognized token: %s\n", q));
- q_status_message1(SM_ORDER | SM_DING, 0, 3,
-- "Unrecognized string in index-format: %s", q);
-+ "索引格式中出現無法辨識的字串:%s", q);
- continue;
- }
-
-@@ -2218,7 +2218,7 @@
- if(!column){
- dprint(1, (debugfile, "Completely unrecognizable index-format\n"));
- q_status_message(SM_ORDER | SM_DING, 0, 3,
-- "Configured \"index-format\" unrecognizable. Using default.");
-+ "無法辨識已設定的 \"index-format\"。使用預設值。");
- return(0);
- }
-
-@@ -3130,7 +3130,7 @@
- sprintf(str, "%ld", idata->msgno);
- else if(idata->bogus < 2 && cdesc->ctype == iSubject)
- sprintf(str, "%-*.*s", width, width,
-- "[ No Message Text Available ]");
-+ "[ 無法取得信件 ]");
- }
- else
- switch(cdesc->ctype){
-@@ -4824,8 +4824,8 @@
- HelpType help;
- static char search_string[MAX_SEARCH+1] = { '\0' };
- static ESCKEY_S header_search_key[] = { {0, 0, NULL, NULL },
-- {ctrl('Y'), 10, "^Y", "First Msg"},
-- {ctrl('V'), 11, "^V", "Last Msg"},
-+ {ctrl('Y'), 10, "^Y", "第一封信"},
-+ {ctrl('V'), 11, "^V", "最後一封信"},
- {-1, 0, NULL, NULL} };
-
- dprint(4, (debugfile, "\n - search headers - \n"));
-@@ -4834,7 +4834,7 @@
- return;
- }
- else if(mn_total_cur(msgmap) > 1L){
-- q_status_message1(SM_ORDER, 0, 2, "%s msgs selected; Can't search",
-+ q_status_message1(SM_ORDER, 0, 2, "已選擇 %s 封信件;無法搜尋",
- comatose(mn_total_cur(msgmap)));
- return;
- }
-@@ -4845,13 +4845,13 @@
- new_string[0] = '\0';
-
- while(1) {
-- sprintf(prompt, "Word to search for [%s] : ", search_string);
-+ sprintf(prompt, "搜尋[%s]:", search_string);
-
- if(F_ON(F_ENABLE_AGG_OPS, ps_global)){
- header_search_key[0].ch = ctrl('X');
- header_search_key[0].rval = 12;
- header_search_key[0].name = "^X";
-- header_search_key[0].label = "Select Matches";
-+ header_search_key[0].label = "選取符合者";
- }
- else{
- header_search_key[0].ch = header_search_key[0].rval = 0;
-@@ -4870,7 +4870,7 @@
- continue;
- }
- else if(rc == 10){
-- q_status_message(SM_ORDER, 0, 3, "Searched to First Message.");
-+ q_status_message(SM_ORDER, 0, 3, "搜尋至第一封信件。");
- if(any_lflagged(msgmap, MN_HIDE)){
- do{
- selected = sorted_msg;
-@@ -4886,7 +4886,7 @@
- return;
- }
- else if(rc == 11){
-- q_status_message(SM_ORDER, 0, 3, "Searched to Last Message.");
-+ q_status_message(SM_ORDER, 0, 3, "搜尋至最後一封信件。");
- if(any_lflagged(msgmap, MN_HIDE)){
- do{
- selected = sorted_msg;
-@@ -4911,7 +4911,7 @@
- }
-
- if(rc == 1 || (new_string[0] == '\0' && search_string[0] == '\0')) {
-- cmd_cancelled("Search");
-+ cmd_cancelled("搜尋");
- return;
- }
-
-@@ -4950,21 +4950,21 @@
- }
-
- if(ps_global->intr_pending){
-- q_status_message1(SM_ORDER, 0, 3, "Search cancelled.%s",
-+ q_status_message1(SM_ORDER, 0, 3, "取消搜尋。%s",
- select_all ? " Selected set may be incomplete.":"");
- }
- else if(select_all){
-- q_status_message1(SM_ORDER, 0, 3, "%s messages found matching word",
-+ q_status_message1(SM_ORDER, 0, 3, "共 %s 封信件找到符合的字串",
- long2string(selected));
- }
- else if(selected){
-- q_status_message1(SM_ORDER, 0, 3, "Word found%s",
-+ q_status_message1(SM_ORDER, 0, 3, "字串已找到%s",
- (i <= sorted_msg)
-- ? ". Search wrapped to beginning" : "");
-+ ? "。重頭搜尋" : "");
- mn_set_cur(msgmap, i);
- }
- else
-- q_status_message(SM_ORDER, 0, 3, "Word not found");
-+ q_status_message(SM_ORDER, 0, 3, "找不到字串");
-
- #ifndef DOS
- intr_handling_off();
-@@ -5224,7 +5224,7 @@
- && LEVELSORT(ps_global->mail_stream)))
- sort_func = percent_sorted;
-
-- sprintf(sort_msg, "Sorting \"%s\"",
-+ sprintf(sort_msg, "正在排序 \"%s\"",
- strsquish(tmp_20k_buf + 500, ps_global->cur_folder,
- ps_global->ttyo->screen_cols - 20));
- we_cancel = busy_alarm(1, sort_msg, sort_func, 1);
-@@ -5310,9 +5310,9 @@
- new_sort = mn_get_sort(msgmap);
- new_rev = mn_get_revsort(msgmap);
- q_status_message2(SM_ORDER, 3, 3,
-- "Sort %s! Restored %s sort.",
-+ "排序%s!回復至 %s 排序。",
- ps_global->intr_pending
-- ? "Canceled" : "Failed",
-+ ? "已取消" : "失敗",
- sort_name(new_sort));
- }
-
-@@ -6135,7 +6135,7 @@
- icache.name = temp_nam(NULL, "pi");
-
- if((icache.cache = (void *)fopen(icache.name,"w+b")) == NULL){
-- sprintf(tmp_20k_buf, "Can't open index cache: %s",icache.name);
-+ sprintf(tmp_20k_buf, "無法開啟索引快取:%s",icache.name);
- fatal(tmp_20k_buf);
- }
-
-@@ -6531,10 +6531,10 @@
- && format_message(mn_m2raw(ps_global->msgmap,
- mn_get_cur(ps_global->msgmap)),
- env, body, FM_NEW_MESS, pc)){
-- sprintf(title, "Folder %s -- Message %ld of %ld",
-+ sprintf(title, "信件匣 %s -- %ld 封信件中的第 %ld 封",
- strsquish(tmp_20k_buf + 500, ps_global->cur_folder, 50),
-- mn_get_cur(ps_global->msgmap),
-- mn_get_total(ps_global->msgmap));
-+ mn_get_total(ps_global->msgmap),
-+ mn_get_cur(ps_global->msgmap));
- *text = so_text(so);
- *l = strlen((char *)so_text(so));
- *style = GETTEXT_TEXT;
diff --git a/chinese/pine4/files/patch-bc b/chinese/pine4/files/patch-bc
deleted file mode 100644
index d5d513e08a05..000000000000
--- a/chinese/pine4/files/patch-bc
+++ /dev/null
@@ -1,652 +0,0 @@
---- pine/mailpart.c.orig Wed Oct 13 01:07:42 1999
-+++ pine/mailpart.c Thu Oct 14 12:25:59 1999
-@@ -142,18 +142,18 @@
- {HELP_MENU,
- OTHER_MENU,
- {"<",NULL,{MC_EXIT,2,{'<',','}},KS_EXITMODE},
-- {">","[View]",{MC_VIEW_ATCH,5,{'v','>','.',ctrl('M'),ctrl('J')}},
-+ {">","[檢視]",{MC_VIEW_ATCH,5,{'v','>','.',ctrl('M'),ctrl('J')}},
- KS_VIEW},
-- {"P", "PrevAttch",{MC_PREVITEM,4,{'p',ctrl('B'),ctrl('P'),KEY_UP}},
-+ {"P", "前一附件",{MC_PREVITEM,4,{'p',ctrl('B'),ctrl('P'),KEY_UP}},
- KS_PREVMSG},
-- {"N", "NextAtch",
-+ {"N", "次一附件",
- {MC_NEXTITEM, 5, {'n','\t',ctrl('F'),ctrl('N'), KEY_DOWN}},
- KS_NEXTMSG},
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
- DELETE_MENU,
- UNDELETE_MENU,
-- {"S", "Save", {MC_SAVETEXT,1,{'s'}}, KS_SAVE},
-+ {"S", "存檔", {MC_SAVETEXT,1,{'s'}}, KS_SAVE},
- {NULL, NULL, {MC_EXPORT, 1, {'e'}}, KS_EXPORT},
-
- HELP_MENU,
-@@ -162,9 +162,9 @@
- QUIT_MENU,
- PIPE_MENU,
- BOUNCE_MENU,
-- {"A","AboutAttch",{MC_ABOUTATCH,1,{'a'}},KS_NONE},
-+ {"A","關於附件",{MC_ABOUTATCH,1,{'a'}},KS_NONE},
- WHEREIS_MENU,
-- {"%", "Print", MC_PRINTMSG,1,{'%'}, KS_PRINT},
-+ {"%", "列印", MC_PRINTMSG,1,{'%'}, KS_PRINT},
- INDEX_MENU,
- REPLY_MENU,
- FORWARD_MENU};
-@@ -182,10 +182,10 @@
- {HELP_MENU,
- OTHER_MENU,
- {"<",NULL,{MC_EXIT,2,{'<',','}},KS_EXITMODE},
-- {"Ret","[View Hilite]",{MC_VIEW_HANDLE,3,
-+ {"Ret","[檢視 Hilite]",{MC_VIEW_HANDLE,3,
- {ctrl('m'),ctrl('j'),KEY_RIGHT}},KS_NONE},
-- {"^B","Prev URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-- {"^F","Next URL",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {"^B","前一 URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","次一 URL",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
- DELETE_MENU,
-@@ -201,7 +201,7 @@
- BOUNCE_MENU,
- NULL_MENU,
- WHEREIS_MENU,
-- {"%", "Print", MC_PRINTMSG,1,{'%'}, KS_PRINT},
-+ {"%", "列印", MC_PRINTMSG,1,{'%'}, KS_PRINT},
- NULL_MENU,
- REPLY_MENU,
- FORWARD_MENU};
-@@ -338,12 +338,12 @@
-
- if(mn_total_cur(ps->msgmap) > 1L){
- q_status_message(SM_ORDER | SM_DING, 0, 3,
-- "Can only view one message's attachments at a time.");
-+ "同一時間僅能檢視一封信的附件!");
- return;
- }
- else if(ps->atmts && ps->atmts->description && !(ps->atmts + 1)->description)
- q_status_message1(SM_ASYNC, 0, 3,
-- "Message %s has only one part (the message body), and no attachments.",
-+ "信件 %s 僅有一部分(信件本體),沒有附件。",
- long2string(mn_get_cur(ps->msgmap)));
-
- /*
-@@ -486,7 +486,7 @@
- break;
-
- if(ps->mangled_header){
-- set_titlebar("ATTACHMENT INDEX", ps->mail_stream,
-+ set_titlebar("附件索引", ps->mail_stream,
- ps->context_current, ps->cur_folder, ps->msgmap, 1,
- MessageNumber, 0, 0);
- ps->mangled_header = 0;
-@@ -524,7 +524,7 @@
- last_type = current->attp->body->type;
- last_subtype = current->attp->body->subtype;
-
-- sprintf(backtag, "Msg #%ld", mn_get_cur(ps->msgmap));
-+ sprintf(backtag, "信件 #%ld", mn_get_cur(ps->msgmap));
- km->keys[ATT_PARENT_KEY].label = backtag;
-
- if(F_OFF(F_ENABLE_PIPE, ps))
-@@ -550,7 +550,7 @@
- clrbitn(ATT_PRINT_KEY, bitmap);
-
- km->keys[ATT_EXPORT_KEY].name = "E";
-- km->keys[ATT_EXPORT_KEY].label = "Export";
-+ km->keys[ATT_EXPORT_KEY].label = "匯出";
- }
-
- if(km_popped){
-@@ -616,7 +616,7 @@
- break;
- }
-
-- helper(h_attachment_screen, "HELP FOR ATTACHMENT INDEX", 0);
-+ helper(h_attachment_screen, "附件索引的輔助說明", 0);
- ps->mangled_screen = 1;
- break;
-
-@@ -645,7 +645,7 @@
- if(ctmp = next_attline(current))
- current = ctmp;
- else
-- q_status_message(SM_ORDER, 0, 1, "Already on last attachment");
-+ q_status_message(SM_ORDER, 0, 1, "已經到最後一附件了");
-
- break;
-
-@@ -653,7 +653,7 @@
- if(ctmp = prev_attline(current))
- current = ctmp;
- else
-- q_status_message(SM_ORDER, 0, 1, "Already on first attachment");
-+ q_status_message(SM_ORDER, 0, 1, "已經到第一個附件了");
-
- break;
-
-@@ -667,7 +667,7 @@
- }
- else
- q_status_message(SM_ORDER, 0, 1,
-- "Already on last page of attachments");
-+ "已經在附件的最後一頁了");
-
-
- break;
-@@ -688,7 +688,7 @@
- }
- else
- q_status_message(SM_ORDER, 0, 1,
-- "Already on first page of attachments");
-+ "已經在附件的第一頁了");
-
- break;
-
-@@ -1150,7 +1150,7 @@
- {
- bitmap_t bitmap;
-
-- set_titlebar("ATTACHMENT INDEX", ps_global->mail_stream,
-+ set_titlebar("附件索引", ps_global->mail_stream,
- ps_global->context_current, ps_global->cur_folder,
- ps_global->msgmap, 1, FolderName,0,0);
-
-@@ -1318,7 +1318,7 @@
- gf_io_t pc;
- STORE_S *store;
- static ESCKEY_S att_save_opts[] = {
-- {ctrl('T'), 10, "^T", "To Files"},
-+ {ctrl('T'), 10, "^T", "檔案列表"},
- {-1, 0, NULL, NULL},
- {-1, 0, NULL, NULL},
- {-1, 0, NULL, NULL}};
-@@ -1347,7 +1347,7 @@
- att_save_opts[++r].ch = ctrl('V');
- att_save_opts[r].rval = 12;
- att_save_opts[r].name = "^V";
-- att_save_opts[r].label = "Downld Msg";
-+ att_save_opts[r].label = "下載信件";
- }
- #endif /* !(DOS || MAC) */
-
-@@ -1355,7 +1355,7 @@
- att_save_opts[++r].ch = ctrl('I');
- att_save_opts[r].rval = 11;
- att_save_opts[r].name = "TAB";
-- att_save_opts[r].label = "Complete";
-+ att_save_opts[r].label = "完成";
- }
-
- att_save_opts[++r].ch = -1;
-@@ -1389,7 +1389,7 @@
-
- if(ps_global->restricted){
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Download disallowed in restricted mode");
-+ "限制模式中不允許\下載");
- return;
- }
-
-@@ -1397,7 +1397,7 @@
- tfp = temp_nam(NULL, "pd");
- dprint(1, (debugfile, "Download attachment called!\n"));
- if(store = so_get(FileStar, tfp, WRITE_ACCESS|OWNER_ONLY)){
-- sprintf(prompt_buf, "Saving to \"%.50s\"", tfp);
-+ sprintf(prompt_buf, "正在存入 \"%.50s\"", tfp);
- we_cancel = init_att_progress(prompt_buf,
- ps_global->mail_stream,
- a->body);
-@@ -1406,7 +1406,7 @@
- if(err = detach(ps_global->mail_stream, msgno,
- a->number, &len, pc, NULL))
- q_status_message2(SM_ORDER | SM_DING, 3, 5,
-- "%s: Error writing attachment to \"%s\"",
-+ "%s: \\寫入附件至 \"%s\" 時發生錯誤",
- err, tfp);
-
- /* cancel regardless, so it doesn't get in way of xfer */
-@@ -1423,18 +1423,18 @@
- (void)close_system_pipe(&syspipe);
- else
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- err = "Error running download command");
-+ err = "執行下載命令時發生錯誤");
- }
-
- unlink(tfp);
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- err = "Error building temp file for download");
-+ err = "建立暫存檔時發生錯誤");
-
- fs_give((void **)&tfp);
- if(!err)
-- q_status_message1(SM_ORDER, 0, 4, "Part %s downloaded",
-+ q_status_message1(SM_ORDER, 0, 4, "已下載第 %s 部份",
- a->number);
-
- return;
-@@ -1446,12 +1446,12 @@
-
- if((store = so_get(FileStar, full_filename, WRITE_ACCESS)) == NULL){
- q_status_message2(SM_ORDER | SM_DING, 3, 5,
-- "Error opening destination %s: %s",
-+ "開啟目地檔 %s 時發生錯誤:%s",
- full_filename, error_description(errno));
- return;
- }
-
-- sprintf(prompt_buf, "Saving to \"%.50s\"", full_filename);
-+ sprintf(prompt_buf, "正在存入 \"%.50s\"", full_filename);
- we_cancel = init_att_progress(prompt_buf, ps_global->mail_stream, a->body);
-
- gf_set_so_writec(&pc, store);
-@@ -1470,7 +1470,7 @@
- truncate(full_filename, (over == -1) ? orig_size : 0);
-
- q_status_message2(SM_ORDER | SM_DING, 3, 5,
-- "%s: Error writing attachment to \"%s\"",
-+ "%s:寫入附件至 \"%s\" 時發生錯誤",
- err, full_filename);
- }
- else{
-@@ -1548,7 +1548,7 @@
- MESSAGECACHE *mc;
- STORE_S *so;
-
-- sprintf(nmsgs, "Attached Msg (part %s) ", a->number);
-+ sprintf(nmsgs, "附加的信件 (第 %s 部份) ", a->number);
- if(save_prompt(ps_global, &cntxt, newfolder, nmsgs,
- a->body->nested.msg->env, msgno, a->number)){
- save_folder = (strucmp(newfolder, ps_global->inbox_name) == 0)
-@@ -1570,11 +1570,11 @@
- a->body->size.bytes, flags, date, so);
- if(rv == 1)
- q_status_message2(SM_ORDER, 0, 4,
-- "Attached message (part %s) saved to \"%s\"",
-+ "附加的 digest(第 %s 部份) 存為 \"%s\"",
- a->number,
- save_folder);
- else if(rv == -1)
-- cmd_cancelled("Attached message Save");
-+ cmd_cancelled("存入附加訊息");
- /* else whatever broke in save_fetch_append shoulda bitched */
-
- so_give(&so);
-@@ -1616,7 +1616,7 @@
- if(MIME_MSG(part->body.type, part->body.subtype))
- cnt++;
-
-- sprintf(nmsgs, "%d Msg Digest (part %s) ", cnt, a->number);
-+ sprintf(nmsgs, "%d 信件 Digest (第 %s 部份) ", cnt, a->number);
-
- if(save_prompt(ps_global, &cntxt, newfolder, nmsgs, NULL, 0, NULL)){
- save_folder = (strucmp(newfolder, ps_global->inbox_name) == 0)
-@@ -1650,11 +1650,11 @@
-
- if(rv == 1)
- q_status_message2(SM_ORDER, 0, 4,
-- "Attached digest (part %s) saved to \"%s\"",
-+ "附加的 digest(第 %s 部份) 存為 \"%s\"",
- a->number,
- save_folder);
- else if(rv == -1)
-- cmd_cancelled("Attached digest Save");
-+ cmd_cancelled("存入附加的 digest");
- /* else whatever broke in save_fetch_append shoulda bitched */
-
- if(our_stream)
-@@ -1708,7 +1708,7 @@
- ATTACH_S *ap = a;
- STORE_S *store;
- static ESCKEY_S opts[] = {
-- {ctrl('T'), 10, "^T", "To Files"},
-+ {ctrl('T'), 10, "^T", "檔案列表"},
- {-1, 0, NULL, NULL},
- {-1, 0, NULL, NULL}};
-
-@@ -1716,7 +1716,7 @@
- opts[i].ch = ctrl('I');
- opts[i].rval = 11;
- opts[i].name = "TAB";
-- opts[i].label = "Complete";
-+ opts[i].label = "完成";
- }
-
- filename[0] = full_filename[0] = '\0';
-@@ -1729,12 +1729,12 @@
- if(rv < 0){
- switch(rv){
- case -1:
-- cmd_cancelled("Export");
-+ cmd_cancelled("匯出檔案");
- break;
-
- case -2:
- q_status_message1(SM_ORDER, 0, 2,
-- "Can't export to file outside of %s",
-+ "無法將檔案匯出至 %s 以外的地方",
- ps_global->VAR_OPER_DIR);
- break;
- }
-@@ -1748,17 +1748,17 @@
- q_status_message(SM_ORDER | SM_DING, 3, 4, err);
- else
- q_status_message3(SM_ORDER, 0, 4,
-- "Attached message (part %s) %s to \"%s\"",
-+ "附件(第 %s 部份)%s至 \"%s\"",
- a->number,
-- over==0 ? "written"
-- : over==1 ? "overwritten" : "appended",
-+ over==0 ? "寫入"
-+ : over==1 ? "覆蓋\" : "附加",
- full_filename);
-
- so_give(&store);
- }
- else
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Error opening file \"%s\" to export message: %s",
-+ "無法開啟檔案 \"%s\" 以供匯出信件:%s",
- full_filename, error_description(errno));
- }
-
-@@ -1781,7 +1781,7 @@
- ATTACH_S *ap;
- STORE_S *store;
- static ESCKEY_S opts[] = {
-- {ctrl('T'), 10, "^T", "To Files"},
-+ {ctrl('T'), 10, "^T", "檔案列表"},
- {-1, 0, NULL, NULL},
- {-1, 0, NULL, NULL}};
-
-@@ -1789,7 +1789,7 @@
- opts[i].ch = ctrl('I');
- opts[i].rval = 11;
- opts[i].name = "TAB";
-- opts[i].label = "Complete";
-+ opts[i].label = "完成";
- }
-
- filename[0] = full_filename[0] = '\0';
-@@ -1802,12 +1802,12 @@
- if(rv < 0){
- switch(rv){
- case -1:
-- cmd_cancelled("Export");
-+ cmd_cancelled("匯出檔案");
- break;
-
- case -2:
- q_status_message1(SM_ORDER, 0, 2,
-- "Can't export to file outside of %s",
-+ "無法將檔案匯出至 %s 以外的地方",
- ps_global->VAR_OPER_DIR);
- break;
- }
-@@ -1829,7 +1829,7 @@
- sprintf(tmp_20k_buf, " [Unknown Message subtype: %s ]\n",
- ap->body->subtype);
- if(!so_puts(store, tmp_20k_buf))
-- err = "Can't write export file";
-+ err = "無法寫入匯出檔";
- }
- else{
- count++;
-@@ -1838,29 +1838,29 @@
- }
- }
- else if(!so_puts(store, "Unknown type in Digest"))
-- err = "Can't write export file";
-+ err = "無法寫入匯出檔";
- }
-
- so_give(&store);
-
- if(err){
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Error exporting: %s", err);
-+ "匯出檔案時發生錯誤:%s", err);
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "%s messages exported before error occurred", err);
-+ "%s 封信件在錯誤產生之前被匯出", err);
- }
- else
- q_status_message4(SM_ORDER, 0, 4,
-- "%s messages in digest (part %s) %s to \"%s\"",
-+ "共 %s 封信件(第 %s 部份)%s至 \"%s\"",
- long2string(count),
- a->number,
-- over==0 ? "written"
-- : over==1 ? "overwritten" : "appended",
-+ over==0 ? "被寫入"
-+ : over==1 ? "被覆蓋\" : "被附加",
- full_filename);
- }
- else
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Error opening file \"%s\" to export digest: %s",
-+ "無法開啟檔案 \"%s\" 以供匯出 digest:%s",
- full_filename, error_description(errno));
- }
-
-@@ -1929,7 +1929,7 @@
-
-
- q_status_message2(SM_ORDER | SM_DING, 3, 3,
-- "Error printing message %s, part %s",
-+ "無法列印第 %s 封信件的第 %s 部份",
- long2string(msgno), a->number);
- return(0);
- }
-@@ -2010,14 +2010,14 @@
- /*----- Can't display this type ------*/
- if(a->body->encoding < ENCOTHER)
- q_status_message4(SM_ORDER | SM_DING, 3, 5,
-- "Don't know how to display %s%s%s attachments.%s",
-+ "不知如何顯示 %s%s%s 的附件。%s",
- body_type_names(a->body->type),
- a->body->subtype ? "/" : "",
- a->body->subtype ? a->body->subtype :"",
-- (flags & DA_SAVE) ? " Try Save." : "");
-+ (flags & DA_SAVE) ? " 試試存檔。" : "");
- else
- q_status_message1(SM_ORDER | SM_DING, 3, 5,
-- "Don't know how to unpack \"%s\" encoding",
-+ "不知如何解開 \"%s\" 的編碼",
- body_encodings[(a->body->encoding <= ENCMAX)
- ? a->body->encoding : ENCOTHER]);
-
-@@ -2239,7 +2239,7 @@
- clear_index_cache_ent(msgno);
-
- if(store = format_text_att(msgno, a, &handles)){
-- scroll_attachment("ATTACHED TEXT", store, CharStar, handles, a, flags);
-+ scroll_attachment("附件文字", store, CharStar, handles, a, flags);
- free_handles(&handles);
- so_give(&store); /* free resources associated with store */
- }
-@@ -2407,22 +2407,22 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(store);
- sargs.text.src = src;
-- sargs.text.desc = "attachment";
-+ sargs.text.desc = "附件";
- sargs.text.handles = handles;
- sargs.bar.title = title;
- sargs.proc.tool = process_attachment_cmd;
- sargs.proc.data.p = (void *) a;
- sargs.help.text = h_mail_text_att_view;
-- sargs.help.title = "HELP FOR ATTACHED TEXT VIEW";
-+ sargs.help.title = "檢視附件文字的輔助說明";
- sargs.keys.menu = &att_view_keymenu;
- setbitmap(sargs.keys.bitmap);
-
- /* First, fix up "back" key */
- if(flags & DA_FROM_VIEW){
-- att_view_keymenu.keys[ATV_BACK_KEY].label = "MsgText";
-+ att_view_keymenu.keys[ATV_BACK_KEY].label = "信件文字";
- }
- else{
-- att_view_keymenu.keys[ATV_BACK_KEY].label = "AttchIndex";
-+ att_view_keymenu.keys[ATV_BACK_KEY].label = "附件索引";
- }
-
- if(!handles){
-@@ -2854,9 +2854,9 @@
- sargs.text.text = so_text(store);
- sargs.text.src = CharStar;
- sargs.text.desc = "attachment info";
-- sargs.bar.title = "ABOUT ATTACHMENT";
-+ sargs.bar.title = "附件資訊";
- sargs.help.text = h_simple_text_view;
-- sargs.help.title = "HELP FOR \"ABOUT ATTACHMENT\"";
-+ sargs.help.title = "\"關於附件\"的輔助說明";
-
- scrolltool(&sargs);
-
-@@ -2900,7 +2900,7 @@
- role = combine_inherited_role(role);
- else{
- role = NULL;
-- cmd_cancelled("Forward");
-+ cmd_cancelled("轉寄");
- mail_free_envelope(&outgoing);
- return;
- }
-@@ -2971,7 +2971,7 @@
- else /* partially formatted outgoing message */
- pine_send(outgoing, &body,
- ps_global->nr_mode
-- ? "SEND MESSAGE" : "FORWARD MESSAGE",
-+ ? "送出信件" : "轉寄信件",
- role, NULL, NULL, redraft_pos, NULL, NULL, FALSE);
-
- ps_global->mangled_screen = 1;
-@@ -2989,12 +2989,12 @@
- so_give((STORE_S **) &msgtext);
- free_redraft_pos(&redraft_pos);
- q_status_message(SM_ORDER | SM_DING, 4, 5,
-- "Error fetching message contents. Can't forward message.");
-+ "取得信件內容時發生錯誤。無法轉寄信件。");
- }
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Error allocating message text");
-+ "無法配置信件文字");
-
- mail_free_envelope(&outgoing);
- free_action(&role);
-@@ -3032,7 +3032,7 @@
-
- ret = 'n';
- if(ps_global->full_header)
-- ret = want_to("Forward message as an attachment", 'n', 0,
-+ ret = want_to("將信件以附件形式轉寄", 'n', 0,
- NO_HELP, WT_SEQ_SENSITIVE);
- /* Setup possible role */
- if(!ps_global->anonymous && nonempty_patterns()){
-@@ -3042,7 +3042,7 @@
- role = combine_inherited_role(role);
- else{ /* cancel reply */
- role = NULL;
-- cmd_cancelled("Forward");
-+ cmd_cancelled("轉寄");
- mail_free_envelope(&outgoing);
- so_give((STORE_S **) &msgtext);
- return;
-@@ -3118,7 +3118,7 @@
- pine_simple_send(outgoing, &body, NULL, NULL, NULL, 1);
- else /* partially formatted outgoing message */
- pine_send(outgoing, &body,
-- ps_global->nr_mode ? "SEND MESSAGE" : "FORWARD MESSAGE",
-+ ps_global->nr_mode ? "送出信件" : "轉寄信件",
- role, NULL, NULL, redraft_pos, NULL, NULL, FALSE);
-
- ps_global->mangled_screen = 1;
-@@ -3135,16 +3135,16 @@
- else{
- so_give((STORE_S **) &msgtext);
- q_status_message(SM_ORDER | SM_DING, 4, 5,
-- "Error fetching message contents. Can't forward message.");
-+ "取得信件內容時發生錯誤。無法轉寄信件。");
- }
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Error allocating message text");
-+ "無法配置信件文字");
- }
- else
- q_status_message1(SM_ORDER,3,4,
-- "Error fetching message %s. Can't forward it.",
-+ "取得信件 %s 的內容時發生錯誤。無法轉寄它。",
- long2string(msgno));
-
- mail_free_envelope(&outgoing);
-@@ -3206,7 +3206,7 @@
- role = combine_inherited_role(role);
- else{ /* cancel reply */
- role = NULL;
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
- goto seeyalater;
- }
- }
-@@ -3248,7 +3248,7 @@
- : ps_global->VAR_SIGNATURE_FILE,
- &redraft_pos)){
- /* partially formatted outgoing message */
-- pine_send(outgoing, &body, "COMPOSE MESSAGE REPLY",
-+ pine_send(outgoing, &body, "編輯信件回函",
- role, fcc.tptr, NULL, redraft_pos, NULL, NULL, 0);
-
- pine_free_body(&body);
-@@ -3256,13 +3256,13 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Error building message body");
-+ "無法建立信件本體");
-
- fs_give((void **) &tp);
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Error allocating message text");
-+ "無法配置信件文字");
- }
-
- seeyalater:
-@@ -3332,7 +3332,7 @@
-
- sprintf(prompt, "Pipe %sattachment %s to %s: ", raw ? "RAW " : "",
- a->number, capture ? "" : "(Free Output) ");
-- pipe_opt[1].label = raw ? "DecodedData" : "Raw Data";
-+ pipe_opt[1].label = raw ? "解碼後的資料" : "原始資料";
- pipe_opt[2].label = capture ? "Free Output" : "Capture Output";
- flags = OE_APPEND_CURRENT | OE_SEQ_SENSITIVE;
- rc = optionally_enter(pipe_command, -FOOTER_ROWS(ps_global), 0,
-@@ -3350,7 +3350,7 @@
- }
- else if(rc == 0){
- if(pipe_command[0] == '\0'){
-- cmd_cancelled("Pipe command");
-+ cmd_cancelled("導向命令");
- break;
- }
-
-@@ -3428,7 +3428,7 @@
- break;
- }
- else if(rc == 1){
-- cmd_cancelled("Pipe");
-+ cmd_cancelled("導向");
- break;
- }
- else if(rc = 3)
diff --git a/chinese/pine4/files/patch-bd b/chinese/pine4/files/patch-bd
deleted file mode 100644
index d53ca5eb8e00..000000000000
--- a/chinese/pine4/files/patch-bd
+++ /dev/null
@@ -1,561 +0,0 @@
---- pine/mailview.c.orig Tue Nov 16 03:03:45 1999
-+++ pine/mailview.c Fri Nov 19 16:18:24 1999
-@@ -162,8 +162,8 @@
- static struct key view_keys[] =
- {HELP_MENU,
- OTHER_MENU,
-- {"<","MsgIndex",{MC_INDEX,3,{'i','<',','}},KS_FLDRINDEX},
-- {">","ViewAttch",{MC_VIEW_ATCH,3,{'v','>','.'}},KS_NONE},
-+ {"<","索引",{MC_INDEX,3,{'i','<',','}},KS_FLDRINDEX},
-+ {">","檢視附件",{MC_VIEW_ATCH,3,{'v','>','.'}},KS_NONE},
- PREVMSG_MENU,
- NEXTMSG_MENU,
- PREVPAGE_MENU,
-@@ -188,11 +188,11 @@
-
- HELP_MENU,
- OTHER_MENU,
-- {"Ret","[View Hilite]",{MC_VIEW_HANDLE,3,
-+ {"Ret","[檢視 Hilite]",{MC_VIEW_HANDLE,3,
- {ctrl('m'),ctrl('j'),KEY_RIGHT}},KS_NONE},
-- {":","SelectCur",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
-- {"^B","Prev URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-- {"^F","Next URL",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
-+ {":","選擇",{MC_SELCUR,1,{':'}},KS_SELECTCUR},
-+ {"^B","前一 URL",{MC_PREV_HANDLE,1,{ctrl('B')}},KS_NONE},
-+ {"^F","次一 URL",{MC_NEXT_HANDLE,1,{ctrl('F')}},KS_NONE},
- JUMP_MENU,
- TAB_MENU,
- HDRMODE_MENU,
-@@ -222,7 +222,7 @@
- #define FLAG_KEY 34
- #define VIEW_PIPE_KEY 35
-
--static struct key nr_anon_view_keys[] =
-+static struct key nr_anon_view_keys[] =
- {HELP_MENU,
- WHEREIS_MENU,
- QUIT_MENU,
-@@ -246,7 +246,7 @@
- NEXTMSG_MENU,
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
-- {"F", "Fwd Email", {MC_FORWARD,1,{'f'}}, KS_FORWARD},
-+ {"F", "信件轉寄", {MC_FORWARD,1,{'f'}}, KS_FORWARD},
- JUMP_MENU,
- PRYNTTXT_MENU,
- SAVE_MENU,
-@@ -268,7 +268,7 @@
- static struct key simple_text_keys[] =
- {HELP_MENU,
- NULL_MENU,
-- {"E","Exit Viewer",{MC_EXIT,1,{'e'}},KS_EXITMODE},
-+ {"E","離開",{MC_EXIT,1,{'e'}},KS_EXITMODE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -277,7 +277,7 @@
- PRYNTTXT_MENU,
- WHEREIS_MENU,
- FWDEMAIL_MENU,
-- {"S", "Save", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}};
-+ {"S", "存檔", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}};
- INST_KEY_MENU(simple_text_keymenu, simple_text_keys);
-
-
-@@ -437,7 +437,7 @@
- * we were viewing. If so, make sure we don't just come back.
- */
- if(mn_get_total(ps->msgmap) <= 0L || !ps->mail_stream){
-- q_status_message(SM_ORDER, 0, 3, "No messages to read!");
-+ q_status_message(SM_ORDER, 0, 3, "沒有可供讀取的信件!");
- ps->next_screen = mail_index_screen;
- break;
- }
-@@ -452,7 +452,7 @@
- body = NULL;
- if(!(env = mail_fetchstructure(ps->mail_stream, raw_msgno, &body))
- || !(mc = mail_elt(ps->mail_stream, raw_msgno))){
-- q_status_message1(SM_ORDER, 3, 3, "Error getting message %s data",
-+ q_status_message1(SM_ORDER, 3, 3, "取得信件 %s 的資料時發生錯誤",
- comatose(mn_get_cur(ps->msgmap)));
- dprint(1, (debugfile, "!!!! ERROR fetching %s of msg %ld\n",
- env ? "elt" : "env", mn_get_cur(ps->msgmap)));
-@@ -510,7 +510,7 @@
- memset(&scrollargs, 0, sizeof(SCROLL_S));
- scrollargs.text.text = so_text(store);
- scrollargs.text.src = src;
-- scrollargs.text.desc = "message";
-+ scrollargs.text.desc = "信件";
-
- /*
- * make first selectable handle the default
-@@ -536,11 +536,11 @@
- offset = 0L;
- }
-
-- scrollargs.bar.title = "MESSAGE TEXT";
-+ scrollargs.bar.title = "信件文字";
- scrollargs.end_scroll = view_end_scroll;
- scrollargs.resize_exit = 1;
- scrollargs.help.text = h_mail_view;
-- scrollargs.help.title = "HELP FOR MESSAGE TEXT VIEW";
-+ scrollargs.help.title = "信件文字的輔助說明";
- scrollargs.keys.menu = &view_keymenu;
- scrollargs.keys.what = save_what;
- setbitmap(scrollargs.keys.bitmap);
-@@ -1327,7 +1327,7 @@
- /*---- format and copy envelope ----*/
- if(ps_global->full_header)
- q_status_message(SM_INFO, 0, 3,
-- "Full header mode ON. All header text being included");
-+ "完整標頭模式開啟。所有的標頭文字都包含在內");
-
- HD_INIT(&h, ps_global->VAR_VIEW_HEADERS, ps_global->view_all_except,
- FE_DEFAULT);
-@@ -1366,7 +1366,7 @@
- if(append_file_name)
- fs_give((void **)&append_file_name);
-
-- q_status_message1(SM_ORDER,3,3,"Can't make temp file: %s",
-+ q_status_message1(SM_ORDER,3,3,"無法建立暫存檔:%s",
- error_description(errno));
- return(0);
- }
-@@ -1675,7 +1675,7 @@
- write_error:
-
- if(!(flgs & FM_DISPLAY))
-- q_status_message1(SM_ORDER, 3, 4, "Error writing message: %s",
-+ q_status_message1(SM_ORDER, 3, 4, "寫入信件時發生錯誤:%s",
- decode_err ? decode_err : error_description(errno));
-
- return(0);
-@@ -2237,12 +2237,12 @@
- char prompt[256], tmp[MAILTMPLEN];
- int rc, flags, local_h;
- static ESCKEY_S launch_opts[] = {
-- {'y', 'y', "Y", "Yes"},
-- {'n', 'n', "N", "No"},
-+ {'y', 'y', "Y", "是"},
-+ {'n', 'n', "N", "否"},
- {-2, 0, NULL, NULL},
- {-2, 0, NULL, NULL},
-- {0, 'u', "U", "editURL"},
-- {0, 'a', "A", "editApp"},
-+ {0, 'u', "U", "編輯 URL"},
-+ {0, 'a', "A", "編輯應用程式"},
- {-1, 0, NULL, NULL}};
-
- if(handle->type == URL){
-@@ -2268,11 +2268,11 @@
- if(!local_h){
- if(ps_global->vars[V_BROWSER].is_fixed){
- q_status_message(SM_ORDER, 3, 4,
-- "URL-Viewer is disabled by sys-admin");
-+ "URL 檢視程式已被系統管理員關閉");
- return(0);
- }
- else{
-- if(want_to("No URL-Viewer application defined. Define now",
-+ if(want_to("尚未定義 URL 檢視程式!現在定義",
- 'y', 0, NO_HELP, WT_SEQ_SENSITIVE) == 'y'){
- /* Prompt for the displayer? */
- tmp[0] = '\0';
-@@ -2316,7 +2316,7 @@
- }
- else{
- q_status_message1(SM_ORDER | SM_DING, 2, 2,
-- "Browser not found: %s",
-+ "找不到瀏覽器:%s",
- error_description(errno));
- continue;
- }
-@@ -2360,8 +2360,8 @@
- max(0,sc - 25), handle->h.url.path+7,
- (strlen(handle->h.url.path+7) > max(0,sc-25)) ? "..." : "");
- else
-- sprintf(prompt, "View selected %s %s%.*s%s ? ",
-- (handle->type == URL) ? "URL" : "Attachment",
-+ sprintf(prompt, "檢視選擇的 %s %s%.*s%s ? ",
-+ (handle->type == URL) ? "URL" : "附件",
- (handle->type == URL) ? "\"" : "",
- max(0,sc-27),
- (handle->type == URL) ? handle->h.url.path : "",
-@@ -2420,10 +2420,10 @@
- OE_KEEP_TRAILING_SPACE |
- OE_DISALLOW_HELP;
-
-- sprintf(prompt, "Viewer command: ");
-+ sprintf(prompt, "檢視器命令:");
-
- rc = optionally_enter(tmp, -FOOTER_ROWS(ps_global), 0,
-- MAILTMPLEN - 1, "Viewer Command: ",
-+ MAILTMPLEN - 1, "檢視器命令:",
- NULL, NO_HELP, &flags);
- if(rc == 0){
- if(flags & OE_USER_MODIFIED){
-@@ -3763,11 +3763,11 @@
- mode = PIPE_RESET | PIPE_USER ;
- if(syspipe = open_system_pipe(cmd, NULL, NULL, mode, 0)){
- close_system_pipe(&syspipe);
-- q_status_message(SM_ORDER, 0, 4, "VIEWER command completed");
-+ q_status_message(SM_ORDER, 0, 4, "檢視器命令完成");
- }
- else
- q_status_message1(SM_ORDER, 3, 4,
-- "Cannot spawn command : %s", cmd);
-+ "無法起始命令:%s", cmd);
- }
- else if(f = url_local_handler(handle->h.url.path)){
- if((*f)(handle->h.url.path) > 1)
-@@ -3775,7 +3775,7 @@
- }
- else
- q_status_message1(SM_ORDER, 2, 2,
-- "\"URL-Viewer\" not defined: Can't open %s",
-+ "尚未定義 \"URL-檢視器\":無法開啟 %s",
- handle->h.url.path);
-
- return(rv);
-@@ -3787,7 +3787,7 @@
- int return_value;
- {
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "Can't spawn. Command too long.");
-+ "無法起始。命令太長。");
- return(return_value);
- }
-
-@@ -4132,7 +4132,7 @@
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Can't create space for composer");
-+ "無法替編輯器建立空間");
-
- outta_here:
- if(outgoing)
-@@ -4203,7 +4203,7 @@
- else if(errstr)
- q_status_message(SM_ORDER|SM_DING, 3, 3, errstr);
- else
-- cmd_cancelled("URL Launch");
-+ cmd_cancelled("檢視 URL");
-
- break;
-
-@@ -4226,7 +4226,7 @@
- if(uid_val != ps_global->mail_stream->uid_validity){
- /* Complain! */
- q_status_message(SM_ORDER|SM_DING, 3, 3,
-- "Warning! Referenced folder changed since URL recorded");
-+ "警告!參考資料匣已於 URL 記錄後改變");
- }
-
- if(uid){
-@@ -4242,7 +4242,7 @@
-
- if(i > mn_get_total(ps_global->msgmap))
- q_status_message(SM_ORDER, 2, 3,
-- "Couldn't find specified article number");
-+ "找不到指定的文章編號");
- }
- else if(search){
- /*
-@@ -4263,9 +4263,9 @@
- if(i = any_lflagged(ps_global->msgmap, MN_SLCT)){
- extern long zoom_index();
-
-- q_status_message2(SM_ORDER, 0, 3,
-- "%s message%s selected",
-- long2string(i), plural(i));
-+ q_status_message1(SM_ORDER, 0, 3,
-+ "已選擇 %s 封信件",
-+ long2string(i));
- /* Zoom the index! */
- zoom_index(ps_global, ps_global->msgmap);
- }
-@@ -4413,7 +4413,7 @@
-
- if(auth && *auth != '*')
- q_status_message(SM_ORDER, 3, 3,
-- "Unsupported authentication method. Using standard login.");
-+ "未支援的認證方式。使用標準登入。");
-
- /*
- * At this point our structure should contain the
-@@ -4497,7 +4497,7 @@
-
- if(i > mn_get_total(ps_global->msgmap))
- q_status_message(SM_ORDER, 2, 3,
-- "Couldn't find specified article number");
-+ "找不到指定的文章編號");
- }
-
- break;
-@@ -4614,7 +4614,7 @@
- }
- else
- q_status_message1(SM_ORDER | SM_DING, 0, 3,
-- "Can't find fragment: %s", fragment);
-+ "找不到片斷:%s", fragment);
-
- return(1);
- }
-@@ -4641,7 +4641,7 @@
- dprint(2, (debugfile, "-- bogus url \"%s\": %s\n",
- url ? url : "<NULL URL>", reason));
- if(url)
-- q_status_message3(SM_ORDER|SM_DING, 2, 3, "Malformed \"%.*s\" URL: %s",
-+ q_status_message3(SM_ORDER|SM_DING, 2, 3, "格式錯誤的 \"%.*s\" URL:%s",
- (void *) (strchr(url, ':') - url), url, reason);
-
- return(0);
-@@ -4800,7 +4800,7 @@
-
- write_error:
- if(style == QStatus)
-- q_status_message1(SM_ORDER, 3, 4, "Error writing message: %s",
-+ q_status_message1(SM_ORDER, 3, 4, "寫入信件時發生錯誤:%s",
- error_description(errno));
-
- return(1);
-@@ -5053,7 +5053,7 @@
- gf_set_so_readc(&tmp_gc, df_store);
- if(errstr = dfilter(display_filter, tmp_store, tmp_pc, NULL)){
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Formatting error: %s", errstr);
-+ "格式錯誤:%s", errstr);
- rv = FHT_WRTERR;
- }
- else
-@@ -5063,7 +5063,7 @@
- }
- else{
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "No space for filtered text.");
-+ "沒有足夠的空間過濾文字。");
- rv = FHT_WRTERR;
- }
- }
-@@ -5105,7 +5105,7 @@
- if(errstr = gf_pipe(tmp_gc, final_pc)){
- rv = FHT_WRTERR;
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Can't build header : %s", errstr);
-+ "無法建立標頭:%s", errstr);
- }
- }
-
-@@ -5243,7 +5243,7 @@
- format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc);
- if(e->ngbogus)
- q_status_message(SM_ORDER, 0, 3,
-- "Unverified Newsgroup header -- Message MAY or MAY NOT have been posted");
-+ "未經證實的新聞組群標頭 -- 訊息可能從未被張貼");
- }
-
- if((which & FE_FOLLOWUPTO) && e->followup_to)
-@@ -6002,7 +6002,7 @@
- }
-
- if(!sparms->bar.title)
-- sparms->bar.title = "Text";
-+ sparms->bar.title = "文字";
-
- if(sparms->bar.style == TitleBarNone)
- sparms->bar.style = MsgTextPercent;
-@@ -6175,7 +6175,7 @@
- }
-
- if(first_view && num_display_lines >= scroll_text_lines())
-- q_status_message1(SM_INFO, 0, 1, "ALL of %s", STYLE_NAME(sparms));
-+ q_status_message1(SM_INFO, 0, 1, "%s全部", STYLE_NAME(sparms));
-
-
- force = 0; /* may not need to next time around */
-@@ -6313,7 +6313,7 @@
- whereis_pos.row = 0;
- if(sparms->help.text == NO_HELP || ps_global->nr_mode){
- q_status_message(SM_ORDER, 0, 5,
-- "No help text currently available");
-+ "目前尚無輔助說明");
- break;
- }
-
-@@ -6352,7 +6352,7 @@
- cur_top_line -= scroll_lines;
- if(cur_top_line <= 0){
- cur_top_line = 0;
-- q_status_message1(SM_INFO, 0, 1, "START of %s",
-+ q_status_message1(SM_INFO, 0, 1, "%s起始",
- STYLE_NAME(sparms));
- }
- }
-@@ -6368,7 +6368,7 @@
- }
-
- if(!next_handle)
-- q_status_message1(SM_ORDER, 0, 1, "Already at start of %s",
-+ q_status_message1(SM_ORDER, 0, 1, "已經在%s的起始",
- STYLE_NAME(sparms));
-
- }
-@@ -6386,12 +6386,12 @@
- cur_top_line += scroll_lines;
-
- if(cur_top_line + num_display_lines >= scroll_text_lines())
-- q_status_message1(SM_INFO, 0, 1, "END of %s",
-+ q_status_message1(SM_INFO, 0, 1, "%s結尾",
- STYLE_NAME(sparms));
- }
- else if(!sparms->end_scroll
- || !(done = (*sparms->end_scroll)(sparms))){
-- q_status_message1(SM_ORDER, 0, 1, "Already at end of %s",
-+ q_status_message1(SM_ORDER, 0, 1, "已經在%s的結尾",
- STYLE_NAME(sparms));
- /* hilite last available handle */
- if(sparms->text.handles){
-@@ -6461,11 +6461,11 @@
- whereis_pos.row = 0;
- cur_top_line++;
- if(cur_top_line + num_display_lines >= scroll_text_lines())
-- q_status_message1(SM_INFO, 0, 1, "END of %s",
-+ q_status_message1(SM_INFO, 0, 1, "%s結尾",
- STYLE_NAME(sparms));
- }
- else
-- q_status_message1(SM_ORDER, 0, 1, "Already at end of %s",
-+ q_status_message1(SM_ORDER, 0, 1, "已經在%s的結尾",
- STYLE_NAME(sparms));
- }
-
-@@ -6528,11 +6528,11 @@
- if(cur_top_line){
- cur_top_line--;
- if(cur_top_line == 0)
-- q_status_message1(SM_INFO, 0, 1, "START of %s",
-+ q_status_message1(SM_INFO, 0, 1, "%s起始",
- STYLE_NAME(sparms));
- }
- else
-- q_status_message1(SM_ORDER, 0, 1, "Already at start of %s",
-+ q_status_message1(SM_ORDER, 0, 1, "已經在%s的起始",
- STYLE_NAME(sparms));
- }
-
-@@ -6566,7 +6566,7 @@
- }
-
- q_status_message1(SM_ORDER, 0, 1,
-- "Already on last item in %s",
-+ "已經在%s中最後一個可選擇的項目上",
- STYLE_NAME(sparms));
- }
-
-@@ -6600,7 +6600,7 @@
- }
-
- q_status_message1(SM_ORDER, 0, 1,
-- "Already on first item in %s",
-+ "已經在%s中第一個可選擇的項目上",
- STYLE_NAME(sparms));
- }
-
-@@ -6751,8 +6751,8 @@
- q_status_message(SM_ORDER, 0, 3, tmp_20k_buf);
- else
- q_status_message2(SM_ORDER, 0, 3,
-- "%sFound on line %s on screen",
-- result ? "Search wrapped to start. " : "",
-+ "%s在畫面上第 %s 行找到",
-+ result ? "重頭搜尋。" : "",
- int2string(whereis_pos.row));
-
- if(key){
-@@ -6769,9 +6769,9 @@
- }
- }
- else if(found_on == -1)
-- cmd_cancelled("Search");
-+ cmd_cancelled("搜尋");
- else
-- q_status_message(SM_ORDER, 0, 3, "Word not found");
-+ q_status_message(SM_ORDER, 0, 3, "找不到該字");
- }
-
- break;
-@@ -7144,13 +7144,13 @@
- int rc, flags;
- static char search_string[MAX_SEARCH+1] = { '\0' };
- static ESCKEY_S word_search_key[] = { { 0, 0, "", "" },
-- {ctrl('Y'), 10, "^Y", "First Line"},
-- {ctrl('V'), 11, "^V", "Last Line"},
-+ {ctrl('Y'), 10, "^Y", "第一行"},
-+ {ctrl('V'), 11, "^V", "最後一行"},
- {-1, 0, NULL, NULL}
- };
-
- report[0] = '\0';
-- sprintf(prompt, "Word to search for [%s] : ", search_string);
-+ sprintf(prompt, "搜尋字串[%s]:", search_string);
- help = NO_HELP;
- nsearch_string[0] = '\0';
-
-@@ -7165,11 +7165,11 @@
- continue;
- }
- else if(rc == 10){
-- strcpy(report, "Searched to First Line.");
-+ strcpy(report, "搜尋至第一行。");
- return(-4);
- }
- else if(rc == 11){
-- strcpy(report, "Searched to Last Line.");
-+ strcpy(report, "搜尋至最後一行。");
- return(-5);
- }
-
-@@ -8308,12 +8308,12 @@
- if(*msg_p[0])
- for(i = 0; i < msg_q; i++)
- q_status_message2(SM_ORDER, 3, 4,
-- "%s Result: %s", title, msg_p[i]);
-+ "%s 結果:%s", title, msg_p[i]);
- else
- q_status_message2(SM_ORDER, 0, 4, "%s%s", title,
- alt_msg
- ? alt_msg
-- : " command completed with no output");
-+ : " 命令已完成(沒有輸出)");
-
- fclose(f);
- f = NULL;
-@@ -8326,7 +8326,7 @@
- q_status_message2(SM_ORDER, 0, 4, "%s%s", title,
- alt_msg
- ? alt_msg
-- : " command completed with no output");
-+ : " 命令已完成(沒有輸出)");
- fclose(f);
- f = NULL;
- }
-@@ -8341,7 +8341,7 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = f;
- sargs.text.src = FileStar;
-- sargs.text.desc = "output";
-+ sargs.text.desc = "輸出";
- sargs.bar.title = title;
- sargs.bar.style = TextPercent;
- sargs.help.text = h_simple_text_view;
-@@ -8542,7 +8542,7 @@
- break;
-
- case -1 :
-- cmd_cancelled("View");
-+ cmd_cancelled("檢視");
- break;
-
- default :
diff --git a/chinese/pine4/files/patch-be b/chinese/pine4/files/patch-be
deleted file mode 100644
index 7ffc020268fd..000000000000
--- a/chinese/pine4/files/patch-be
+++ /dev/null
@@ -1,84 +0,0 @@
---- pine/newmail.c.orig Tue Nov 2 08:13:10 1999
-+++ pine/newmail.c Fri Nov 19 16:18:24 1999
-@@ -318,24 +318,15 @@
- ENVELOPE *e;
- char subject[200], from[2*MAX_SCREEN_COLS],
- intro[MAX_SCREEN_COLS+1];
-- static char *carray[] = { "regarding",
-- "concerning",
-- "about",
-- "as to",
-- "as regards",
-- "as respects",
-- "in re",
-- "re",
-- "respecting",
-- "in point of",
-- "with regard to",
-- "subject:"
-+ static char *carray[] = { "關於",
-+ "有關",
-+ "標題為:"
- };
-
- e = mail_fetchstructure(stream, max_num, NULL);
-
- if(e && e->from){
-- sprintf(from, " %srom ", (number > 1L) ? "Most recent f" : "F");
-+ sprintf(from, " %srom ", (number > 1L) ? "最近來" : "來");
- if(e->from->personal)
- istrncpy(from + ((number > 1L) ? 18 : 6),
- (char *) rfc1522_decode((unsigned char *) tmp_20k_buf,
-@@ -352,13 +343,13 @@
-
- if(number <= 1L) {
- if(e && e->subject){
-- sprintf(subject, " %s ", carray[(unsigned)random()%12]);
-+ sprintf(subject, " %s ", carray[(unsigned)random()%2]);
- istrncpy(subject + strlen(subject),
- (char *) rfc1522_decode((unsigned char *) tmp_20k_buf,
- e->subject, NULL), 100);
- }
- else
-- strcpy(subject, " with no subject");
-+ strcpy(subject, " 沒有主題");
-
- if(!from[0])
- subject[1] = toupper((unsigned char)subject[1]);
-@@ -368,29 +359,29 @@
-
- if(!folder) {
- if(number > 1)
-- sprintf(intro, "%ld new messages!", number);
-+ sprintf(intro, "%ld 封新信件!", number);
- else
-- sprintf(intro, "New mail%s!",
-- (e && address_is_us(e->to, ps_global)) ? " to you" : "");
-+ sprintf(intro, "%s新信!",
-+ (e && address_is_us(e->to, ps_global)) ? "您有" : "");
- }
- else {
- long fl, tot, newfl;
-
- if(number > 1)
-- sprintf(intro, "%ld messages saved to folder \"%s\"", number,
-+ sprintf(intro, "%ld 封信件被存至資料匣 \"%s\"", number,
- folder);
- else
-- sprintf(intro, "Mail saved to folder \"%s\"", folder);
-+ sprintf(intro, "信件被存至資料匣 \"%s\"", folder);
-
- if((fl=strlen(folder)) > 10 &&
- (tot=strlen(intro) + strlen(from) + strlen(subject)) >
- ps_global->ttyo->screen_cols - 2){
- newfl = max(10, fl-(tot-(ps_global->ttyo->screen_cols - 2)));
- if(number > 1)
-- sprintf(intro, "%ld messages saved to folder \"...%s\"", number,
-+ sprintf(intro, "%ld 封信件被存至資料匣 \"...%s\"", number,
- folder+(fl-(newfl-3)));
- else
-- sprintf(intro, "Mail saved to folder \"...%s\"",
-+ sprintf(intro, "信件被存至資料匣 \"...%s\"",
- folder+(fl-(newfl-3)));
- }
- }
diff --git a/chinese/pine4/files/patch-bf b/chinese/pine4/files/patch-bf
deleted file mode 100644
index 19cd86975156..000000000000
--- a/chinese/pine4/files/patch-bf
+++ /dev/null
@@ -1,2316 +0,0 @@
---- 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 = "<Empty Value>";
-+#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 : "<NULL>");
- 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[] = "<No Email Address Available>";
-+ 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 @@
- : "<NULL VALUE>",
- (*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
-- : "<NULL VALUE>",
-- (*cl)->var->name);
-+ : "<NULL VALUE>");
-
- 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':
diff --git a/chinese/pine4/files/patch-bg b/chinese/pine4/files/patch-bg
deleted file mode 100644
index ccf347be3fc8..000000000000
--- a/chinese/pine4/files/patch-bg
+++ /dev/null
@@ -1,329 +0,0 @@
---- pine/pine.c.orig Tue Sep 21 07:17:58 1999
-+++ pine/pine.c Thu Oct 14 12:13:57 1999
-@@ -115,12 +115,12 @@
- OTHER_MENU,
- NULL_MENU,
- NULL_MENU,
-- {"P","PrevCmd",{MC_PREVITEM,3,{'p',ctrl('P'),KEY_UP}},KS_NONE},
-- {"N","NextCmd",{MC_NEXTITEM,3,{'n',ctrl('N'),KEY_DOWN}},KS_NONE},
-+ {"P","前一命令",{MC_PREVITEM,3,{'p',ctrl('P'),KEY_UP}},KS_NONE},
-+ {"N","次一命令",{MC_NEXTITEM,3,{'n',ctrl('N'),KEY_DOWN}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
-- {"R","RelNotes",{MC_RELNOTES,1,{'r'}},KS_NONE},
-- {"K","KBLock",{MC_KBLOCK,1,{'k'}},KS_NONE},
-+ {"R","出版說明",{MC_RELNOTES,1,{'r'}},KS_NONE},
-+ {"K","鍵盤鎖定",{MC_KBLOCK,1,{'k'}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
-
-@@ -130,10 +130,10 @@
- COMPOSE_MENU,
- LISTFLD_MENU,
- GOTO_MENU,
-- {"I","Index",{MC_INDEX,1,{'i'}},KS_FLDRINDEX},
-- {"J","Journal",{MC_JOURNAL,1,{'j'}},KS_REVIEW},
-- {"S","Setup",{MC_SETUP,1,{'s'}},KS_NONE},
-- {"A","AddrBook",{MC_ADDRBOOK,1,{'a'}},KS_ADDRBOOK},
-+ {"I","索引",{MC_INDEX,1,{'i'}},KS_FLDRINDEX},
-+ {"J","日誌",{MC_JOURNAL,1,{'j'}},KS_REVIEW},
-+ {"S","設定",{MC_SETUP,1,{'s'}},KS_NONE},
-+ {"A","地址簿",{MC_ADDRBOOK,1,{'a'}},KS_ADDRBOOK},
- RCOMPOSE_MENU,
- NULL_MENU};
- INST_KEY_MENU(main_keymenu, main_keys);
-@@ -542,7 +542,7 @@
- static struct key simple_file_keys[] =
- {HELP_MENU,
- NULL_MENU,
-- {"Q","Quit Viewer",{MC_EXIT,1,{'q'}},KS_NONE},
-+ {"Q","離開",{MC_EXIT,1,{'q'}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -551,15 +551,15 @@
- PRYNTTXT_MENU,
- WHEREIS_MENU,
- FWDEMAIL_MENU,
-- {"S", "Save", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}};
-+ {"S", "存檔", {MC_SAVETEXT,1,{'s'}}, KS_SAVE}};
- INST_KEY_MENU(simple_file_keymenu, simple_file_keys);
- #define SAVE_KEY 9
-
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(store);
- sargs.text.src = src;
-- sargs.text.desc = "file";
-- sargs.bar.title = "FILE VIEW";
-+ sargs.text.desc = "檔案";
-+ sargs.bar.title = "檢視檔案";
- sargs.bar.style = FileTextPercent;
- sargs.keys.menu = &simple_file_keymenu;
- setbitmap(sargs.keys.bitmap);
-@@ -771,7 +771,7 @@
- if(!pine_state->VAR_INBOX_PATH || !pine_state->VAR_INBOX_PATH[0]
- || strucmp(pine_state->VAR_INBOX_PATH, "inbox") == 0){
- HelpType help = NO_HELP;
-- static ESCKEY_S ekey[] = {{ctrl(T), 2, "^T", "To Fldrs"},
-+ static ESCKEY_S ekey[] = {{ctrl(T), 2, "^T", "資料匣"},
- {-1, 0, NULL, NULL}};
-
- pine_state->mangled_footer = 1;
-@@ -781,7 +781,7 @@
-
- rv = optionally_enter(int_mail, -FOOTER_ROWS(pine_state),
- 0, MAXPATH,
-- "No inbox! Folder to open as inbox : ",
-+ "沒有新進信件匣(inbox)!信件匣開啟為 inbox:",
- /* ekey */ NULL, help, &flags);
- if(rv == 3){
- help = (help == NO_HELP) ? h_sticky_inbox : NO_HELP;
-@@ -793,7 +793,7 @@
- }
-
- if(rv == 1){
-- q_status_message(SM_ORDER, 0, 2 ,"Folder open cancelled");
-+ q_status_message(SM_ORDER, 0, 2 ,"取消開啟信件匣");
- rv = 0; /* reset rv */
- }
- else if(rv == 2){
-@@ -812,7 +812,7 @@
- removing_leading_white_space(int_mail);
- if((!pine_state->VAR_INBOX_PATH
- || strucmp(pine_state->VAR_INBOX_PATH, "inbox") == 0)
-- && want_to("Preserve folder as \"inbox-path\" in PINERC",
-+ && want_to("在 PINERC 中保留資料匣為 \"inbox-path\"",
- 'y', 'n', NO_HELP, WT_NORM) == 'y'){
- set_variable(V_INBOX_PATH, int_mail, 1);
- }
-@@ -959,25 +959,25 @@
- *news_addition;
- int key_index; /* index into keymenu array for this cmd */
- } mkeys[] = {
-- {" %s HELP - Get help using Pine",
-+ {" %s 使用說明 - Pine 的使用說明",
- NULL, MAIN_HELP_KEY},
- {"", NULL, UNUSED},
-- {" %s COMPOSE MESSAGE - Compose and send%s a message",
-+ {" %s 寫信 - 寫信或是發表文章",
- "/post", MAIN_COMPOSE_KEY},
- {"", NULL, UNUSED},
-- {" %s MESSAGE INDEX - View messages in current folder",
-+ {" %s 查看信件匣 - 查看目前信件匣內的信件",
- NULL, MAIN_INDEX_KEY},
- {"", NULL, UNUSED},
-- {" %s FOLDER LIST - Select a folder%s to view",
-- " OR news group", MAIN_FOLDER_KEY},
-+ {" %s 信件匣列表 - 列出信件匣%s以供選擇",
-+ "或是新聞組群", MAIN_FOLDER_KEY},
- {"", NULL, UNUSED},
-- {" %s ADDRESS BOOK - Update address book",
-+ {" %s 地址簿 - 更新或修改地址簿的內容",
- NULL, MAIN_ADDRESS_KEY},
- {"", NULL, UNUSED},
-- {" %s SETUP - Configure Pine Options",
-+ {" %s 設定 - 設定 Pine 的內部參數",
- NULL, MAIN_SETUP_KEY},
- {"", NULL, UNUSED},
-- {" %s QUIT - Leave the Pine program",
-+ {" %s 離開 - 結束 Pine 的使用",
- NULL, MAIN_QUIT_KEY}
- };
-
-@@ -1307,7 +1307,7 @@
- pine_state->mangled_footer = 1;
- }
- else{
-- helper(main_menu_tx, "HELP FOR MAIN MENU", 0);
-+ helper(main_menu_tx, "主選單的輔助說明", 0);
- pine_state->mangled_screen = 1;
- }
-
-@@ -1335,7 +1335,7 @@
- just_a_navigate_cmd++;
- }
- else
-- q_status_message(SM_ORDER, 0, 2, "Already at top of list");
-+ q_status_message(SM_ORDER, 0, 2, "已經在列表頂端了");
-
- break;
-
-@@ -1351,14 +1351,14 @@
- just_a_navigate_cmd++;
- }
- else
-- q_status_message(SM_ORDER, 0, 2, "Already at bottom of list");
-+ q_status_message(SM_ORDER, 0, 2, "已經在列表底端了");
-
- break;
-
-
- /*---------- Release Notes ----------*/
- case MC_RELNOTES :
-- helper(h_news, "PINE RELEASE NOTES", 0);
-+ helper(h_news, "PINE 出版摘要", 0);
- pine_state->mangled_screen = 1;
- break;
-
-@@ -1615,7 +1615,7 @@
-
- /* paint the titlebar if needed */
- if(ps->mangled_header){
-- set_titlebar("MAIN MENU", ps->mail_stream, ps->context_current,
-+ set_titlebar("主選單", ps->mail_stream, ps->context_current,
- ps->cur_folder, ps->msgmap, 1, FolderName, 0, 0);
- ps->mangled_header = 0;
- }
-@@ -1784,15 +1784,15 @@
- {
- char prompt[80];
- char letters[20];
-- char *printer = "Printer";
-- char *passwd = "Newpassword";
-- char *config = "Config";
-- char *update = "Update";
-- char *sigedit = "Signature";
-- char *abooks = "AddressBooks";
-- char *clctns = "collectionList";
-- char *rules = "Rules";
-- char *color = "Kolor";
-+ char *printer = "印表機";
-+ char *passwd = "設定新密碼";
-+ char *config = "環境設定";
-+ char *update = "更新環境";
-+ char *sigedit = "編輯簽名檔";
-+ char *abooks = "地址簿";
-+ char *clctns = "總集列表";
-+ char *rules = "規則";
-+ char *color = "色彩";
- #ifdef ENABLE_LDAP
- char *dir = "Directory";
- #endif
-@@ -1881,13 +1881,13 @@
- }
-
- sprintf(prompt,
-- "Choose a setup task from %s : ",
-- F_ON(F_BLANK_KEYMENU,ps_global) ? letters : "the menu below");
-+ "請從%s選擇你所要設定的工作:",
-+ F_ON(F_BLANK_KEYMENU,ps_global) ? letters : "下列表單中");
-
- s = radio_buttons(prompt, ql, setup_names, deefault, 'x', help, RB_NORM);
- /* ^C */
- if(s == 'x') {
-- q_status_message(SM_ORDER,0,3,"Setup command cancelled");
-+ q_status_message(SM_ORDER,0,3,"取消設定指令");
- s = 'e';
- }
-
-@@ -2021,7 +2021,7 @@
- opts[ekey_num].ch = 'a';
- opts[ekey_num].rval = 'a';
- opts[ekey_num].name = "A";
-- opts[ekey_num++].label = "Addrbook";
-+ opts[ekey_num++].label = "地址簿";
- }
-
- if(F_OFF(F_DISABLE_ROLES_SETUP,ps)){ /* roles are allowed */
-@@ -2031,7 +2031,7 @@
- opts[ekey_num].ch = 'r';
- opts[ekey_num].rval = 'r';
- opts[ekey_num].name = "R";
-- opts[ekey_num++].label = "Roles";
-+ opts[ekey_num++].label = "角色";
- }
- else if(deefault != 'a')
- deefault = 's';
-@@ -2039,7 +2039,7 @@
- opts[ekey_num].ch = 's';
- opts[ekey_num].rval = 's';
- opts[ekey_num].name = "S";
-- opts[ekey_num++].label = "SetScores";
-+ opts[ekey_num++].label = "設定得分";
-
- #ifndef _WINDOWS
- if(ps->color_style != COL_NONE && pico_hascolor()){
-@@ -2050,7 +2050,7 @@
- opts[ekey_num].ch = 'i';
- opts[ekey_num].rval = 'i';
- opts[ekey_num].name = "I";
-- opts[ekey_num++].label = "Indexcolor";
-+ opts[ekey_num++].label = "索引色彩";
- #ifndef _WINDOWS
- }
- #endif
-@@ -2058,7 +2058,7 @@
- opts[ekey_num].ch = 'f';
- opts[ekey_num].rval = 'f';
- opts[ekey_num].name = "F";
-- opts[ekey_num++].label = "Filters";
-+ opts[ekey_num++].label = "過濾器";
-
- opts[ekey_num].ch = -1;
-
-@@ -2096,14 +2096,14 @@
- HELP_MENU,
- NULL_MENU,
- {"E",NULL,{MC_EXIT,1,{'e',ctrl('M'),ctrl('J')}},KS_NONE},
-- {"Ret","[Be Counted!]",{MC_VIEW_HANDLE,2,{ctrl('M'),ctrl('J')}},KS_NONE},
-+ {"Ret","[列入使用者總計中]",{MC_VIEW_HANDLE,2,{ctrl('M'),ctrl('J')}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- PREVPAGE_MENU,
- NEXTPAGE_MENU,
- PRYNTMSG_MENU,
- NULL_MENU,
-- {"R","RelNotes",{MC_RELNOTES,1,{'r'}},KS_NONE},
-+ {"R","出版說明",{MC_RELNOTES,1,{'r'}},KS_NONE},
- NULL_MENU};
- INST_KEY_MENU(nuov_keymenu, nuov_keys);
- #define NUOV_EXIT 2
-@@ -2202,13 +2202,13 @@
- memset(&sargs, 0, sizeof(SCROLL_S));
- sargs.text.text = so_text(store);
- sargs.text.src = CharStar;
-- sargs.text.desc = "greeting text";
-+ sargs.text.desc = "問候文字";
- sargs.text.handles = handles;
-- sargs.bar.title = "GREETING TEXT";
-+ sargs.bar.title = "問候文字";
- sargs.bar.style = TextPercent;
- sargs.proc.tool = nuov_processor;
- sargs.help.text = main_menu_tx;
-- sargs.help.title = "MAIN PINE HELP";
-+ sargs.help.title = "PINE 的主要輔助說明";
- sargs.resize_exit = 1;
- sargs.keys.menu = &km;
- km = nuov_keymenu;
-@@ -2218,11 +2218,11 @@
- setbitmap(sargs.keys.bitmap);
-
- if(ps->phone_home){
-- km.keys[NUOV_EXIT].label = "Exit this greeting";
-+ km.keys[NUOV_EXIT].label = "離開";
- km.keys[NUOV_EXIT].bind.nch = 1;
- }
- else{
-- km.keys[NUOV_EXIT].label = "[Exit this greeting]";
-+ km.keys[NUOV_EXIT].label = "[離開]";
- km.keys[NUOV_EXIT].bind.nch = 3;
- clrbitn(NUOV_VIEW, sargs.keys.bitmap);
- }
-@@ -2303,7 +2303,7 @@
- break;
-
- case MC_RELNOTES :
-- helper(h_news, "PINE RELEASE NOTES", 0);
-+ helper(h_news, "PINE 出版摘要", 0);
- ps_global->mangled_screen = 1;
- break;
-
-@@ -2422,7 +2422,7 @@
- dprint(1, (debugfile, "\n\n ---- QUIT SCREEN ----\n"));
-
- if(!pine_state->nr_mode && F_OFF(F_QUIT_WO_CONFIRM,pine_state)
-- && want_to("Really quit pine", 'y', 0, NO_HELP, WT_NORM) != 'y') {
-+ && want_to("真的要離開 Pine 嗎?", 'y', 0, NO_HELP, WT_NORM) != 'y') {
- pine_state->next_screen = pine_state->prev_screen;
- return;
- }
diff --git a/chinese/pine4/files/patch-bh b/chinese/pine4/files/patch-bh
deleted file mode 100644
index 2cbd9cd6cf29..000000000000
--- a/chinese/pine4/files/patch-bh
+++ /dev/null
@@ -1,145 +0,0 @@
---- pine/pine.h.orig Wed Nov 17 08:14:14 1999
-+++ pine/pine.h Fri Nov 19 16:18:24 1999
-@@ -357,7 +357,7 @@
- && (s) && !strucmp((s),"X-VCARD")))
- #define MIME_VCARD_A(a) MIME_VCARD((a)->body->type, (a)->body->subtype)
-
--#define STYLE_NAME(a) ((a)->text.desc ? (a)->text.desc : "text")
-+#define STYLE_NAME(a) ((a)->text.desc ? (a)->text.desc : "文字")
-
-
- /*
-@@ -1875,94 +1875,94 @@
- * Some standard Key/Command Bindings
- */
- #define NULL_MENU {NULL, NULL, {MC_NONE}, KS_NONE}
--#define HELP_MENU {"?", "Help", \
-+#define HELP_MENU {"?", "輔助說明", \
- {MC_HELP, 2, {'?',ctrl('G')}}, \
- KS_SCREENHELP}
--#define OTHER_MENU {"O", "OTHER CMDS", \
-+#define OTHER_MENU {"O", "其他命令", \
- {MC_OTHER, 1, {'o'}}, \
- KS_NONE}
--#define WHEREIS_MENU {"W", "WhereIs", \
-+#define WHEREIS_MENU {"W", "搜尋", \
- {MC_WHEREIS, 2, {'w',ctrl('W')}}, \
- KS_WHEREIS}
--#define MAIN_MENU {"M", "Main Menu", \
-+#define MAIN_MENU {"M", "主選單", \
- {MC_MAIN, 1, {'m'}}, \
- KS_MAINMENU}
--#define QUIT_MENU {"Q", "Quit Pine", \
-+#define QUIT_MENU {"Q", "結束 Pine", \
- {MC_QUIT, 1, {'q'}}, \
- KS_EXIT}
--#define PREVMSG_MENU {"P", "PrevMsg", \
-+#define PREVMSG_MENU {"P", "前一個", \
- {MC_PREVITEM, 1, {'p'}}, \
- KS_PREVMSG}
--#define NEXTMSG_MENU {"N", "NextMsg", \
-+#define NEXTMSG_MENU {"N", "下一個", \
- {MC_NEXTITEM, 1, {'n'}}, \
- KS_NEXTMSG}
--#define PREVPAGE_MENU {"-", "PrevPage", \
-+#define PREVPAGE_MENU {"-", "前一頁", \
- {MC_PAGEUP, 3, {'-',ctrl('Y'),KEY_PGUP}}, \
- KS_PREVPAGE}
--#define NEXTPAGE_MENU {"Spc", "NextPage", \
-+#define NEXTPAGE_MENU {"Spc", "下一頁", \
- {MC_PAGEDN, 4, {'+',' ',ctrl('V'),KEY_PGDN}}, \
- KS_NEXTPAGE}
--#define JUMP_MENU {"J", "Jump", \
-+#define JUMP_MENU {"J", "跳至", \
- {MC_JUMP, 1, {'j'}}, \
- KS_JUMPTOMSG}
--#define FWDEMAIL_MENU {"F", "Fwd Email", \
-+#define FWDEMAIL_MENU {"F", "信件轉寄", \
- {MC_FWDTEXT,1,{'f'}}, \
- KS_FORWARD}
--#define PRYNTMSG_MENU {"%", "Print", \
-+#define PRYNTMSG_MENU {"%", "列印", \
- {MC_PRINTMSG,1,{'%'}}, \
- KS_PRINT}
--#define PRYNTTXT_MENU {"%", "Print", \
-+#define PRYNTTXT_MENU {"%", "列印", \
- {MC_PRINTTXT,1,{'%'}}, \
- KS_PRINT}
--#define SAVE_MENU {"S", "Save", \
-+#define SAVE_MENU {"S", "存檔", \
- {MC_SAVE,1,{'s'}}, \
- KS_SAVE}
--#define EXPORT_MENU {"E", "Export", \
-+#define EXPORT_MENU {"E", "匯出", \
- {MC_EXPORT, 1, {'e'}}, \
- KS_EXPORT}
--#define COMPOSE_MENU {"C", "Compose", \
-+#define COMPOSE_MENU {"C", "編修", \
- {MC_COMPOSE,1,{'c'}}, \
- KS_COMPOSER}
--#define RCOMPOSE_MENU {"#", "Role", \
-+#define RCOMPOSE_MENU {"#", "角色", \
- {MC_ROLE,1,{'#'}}, \
- KS_NONE}
--#define DELETE_MENU {"D", "Delete", \
-+#define DELETE_MENU {"D", "刪除", \
- {MC_DELETE,2,{'d',KEY_DEL}}, \
- KS_DELETE}
--#define UNDELETE_MENU {"U", "Undelete", \
-+#define UNDELETE_MENU {"U", "復原刪除", \
- {MC_UNDELETE,1,{'u'}}, \
- KS_UNDELETE}
--#define REPLY_MENU {"R", "Reply", \
-+#define REPLY_MENU {"R", "回覆", \
- {MC_REPLY,1,{'r'}}, \
- KS_REPLY}
--#define FORWARD_MENU {"F", "Forward", \
-+#define FORWARD_MENU {"F", "轉寄", \
- {MC_FORWARD,1,{'f'}}, \
- KS_FORWARD}
--#define LISTFLD_MENU {"L", "ListFldrs", \
-+#define LISTFLD_MENU {"L", "資料匣列表", \
- {MC_COLLECTIONS,1,{'l'}}, \
- KS_FLDRLIST}
--#define INDEX_MENU {"I", "Index", \
-+#define INDEX_MENU {"I", "索引", \
- {MC_INDEX,1,{'i'}}, \
- KS_FLDRINDEX}
--#define GOTO_MENU {"G", "GotoFldr", \
-+#define GOTO_MENU {"G", "切換資料匣", \
- {MC_GOTO,1,{'g'}}, \
- KS_GOTOFLDR}
--#define TAKE_MENU {"T", "TakeAddr", \
-+#define TAKE_MENU {"T", "取得地址", \
- {MC_TAKE,1,{'t'}}, \
- KS_TAKEADDR}
--#define FLAG_MENU {"*", "Flag", \
-+#define FLAG_MENU {"*", "旗標", \
- {MC_FLAG,1,{'*'}}, \
- KS_FLAG}
--#define PIPE_MENU {"|", "Pipe", \
-+#define PIPE_MENU {"|", "導向(Pipe)", \
- {MC_PIPE,1,{'|'}}, \
- KS_NONE}
--#define BOUNCE_MENU {"B", "Bounce", \
-+#define BOUNCE_MENU {"B", "退信", \
- {MC_BOUNCE,1,{'b'}}, \
- KS_BOUNCE}
--#define HDRMODE_MENU {"H", "HdrMode", \
-+#define HDRMODE_MENU {"H", "完整標頭", \
- {MC_FULLHDR,1,{'h'}}, \
- KS_HDRMODE}
--#define TAB_MENU {"Tab", "NextNew", \
-+#define TAB_MENU {"Tab", "下一個新的", \
- {MC_TAB,1,{TAB}}, \
- KS_NONE}
-
-@@ -2831,7 +2831,7 @@
- } ATABLE_S;
-
-
--#define TAG_EMBED '\377' /* Announces embedded data in text string */
-+#define TAG_EMBED '\001' /* Announces embedded data in text string */
- #define TAG_INVON '\001' /* Supported character attributes */
- #define TAG_INVOFF '\002'
- #define TAG_BOLDON '\003'
diff --git a/chinese/pine4/files/patch-bi b/chinese/pine4/files/patch-bi
deleted file mode 100644
index bf9422b86b6f..000000000000
--- a/chinese/pine4/files/patch-bi
+++ /dev/null
@@ -1,219 +0,0 @@
---- pine/reply.c.orig Tue Nov 9 02:24:35 1999
-+++ pine/reply.c Fri Nov 19 16:18:24 1999
-@@ -110,9 +110,9 @@
- /*
- * Little defs to keep the code a bit neater...
- */
--#define FRM_PMT "Use \"Reply-To:\" address instead of \"From:\" address"
--#define ALL_PMT "Reply to all recipients"
--#define NEWS_PMT "Follow-up to news group(s), Reply via email to author or Both? "
-+#define FRM_PMT "使用 \"Reply-To:\" 地址代替 \"From:\" 地址"
-+#define ALL_PMT "回覆給所有的收信者"
-+#define NEWS_PMT "回覆至新聞組群,回函給作者或兩者皆要?"
- #define SIGDASHES "-- "
-
-
-@@ -343,7 +343,7 @@
- role = combine_inherited_role(role);
- else{ /* cancel reply */
- role = NULL;
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
- goto done_early;
- }
- }
-@@ -605,7 +605,7 @@
- #endif
-
- /* partially formatted outgoing message */
-- pine_send(outgoing, &body, "COMPOSE MESSAGE REPLY",
-+ pine_send(outgoing, &body, "編輯信件回函",
- role, fcc.tptr, &reply, redraft_pos, NULL, NULL, 0);
- done:
- pine_free_body(&body);
-@@ -683,7 +683,7 @@
- (ADDRESS *) NULL, env->from, 0);
-
- if(ret == 'x') {
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
- return(0);
- }
-
-@@ -732,7 +732,7 @@
- || (*saved_cc || *saved_resent))){
- *flags &= ~RSF_QUERY_REPLY_ALL;
- if((ret=want_to(ALL_PMT,'n','x',NO_HELP,WT_SEQ_SENSITIVE)) == 'x'){
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
- return(0);
- }
- else if(ret == 'y')
-@@ -890,21 +890,21 @@
- }
-
- if(flags & ROLE_REPLY)
-- prompt_fodder = "Reply";
-+ prompt_fodder = "回覆";
- else if(flags & ROLE_FORWARD)
-- prompt_fodder = "Forward";
-+ prompt_fodder = "轉寄";
- else
-- prompt_fodder = "Compose";
-+ prompt_fodder = "編輯";
-
- done = 0;
- while(!done){
- if(curpat){
- help = h_role_confirm;
- ekey[0].name = "Y";
-- ekey[0].label = "Yes";
-+ ekey[0].label = "是";
- ekey[1].name = "N";
-- ekey[1].label = "No Role";
-- ekey[2].label = "To Select Alternate Role";
-+ ekey[1].label = "否";
-+ ekey[2].label = "選擇替代角色";
- if(curpat->patgrp && curpat->patgrp->nick)
- sprintf(prompt, "Use role \"%.40s\" for %s? ",
- curpat->patgrp->nick, prompt_fodder);
-@@ -1523,8 +1523,8 @@
- {
- int ret, edited = 0;
- static ESCKEY_S rtq_opts[] = {
-- {'y', 'y', "Y", "Yes"},
-- {'n', 'n', "N", "No"},
-+ {'y', 'y', "Y", "是"},
-+ {'n', 'n', "N", "否"},
- {-1, 0, NULL, NULL}, /* may be overridden below */
- {-1, 0, NULL, NULL}
- };
-@@ -1534,19 +1534,18 @@
- return(1);
-
- while(1){
-- sprintf(tmp_20k_buf, "Include %s%soriginal message%s in Reply%s%s%s? ",
-- (many > 1L) ? comatose(many) : "",
-- (many > 1L) ? " " : "",
-- (many > 1L) ? "s" : "",
-- F_ON(F_ENABLE_EDIT_REPLY_INDENT, ps) ? " (using \"" : "",
-+ sprintf(tmp_20k_buf, "在回函%s%s%s中包含%s%s原本的訊息?",
-+ F_ON(F_ENABLE_EDIT_REPLY_INDENT, ps) ? "(使用 \"" : "",
- F_ON(F_ENABLE_EDIT_REPLY_INDENT, ps) ? *prefix : "",
-- F_ON(F_ENABLE_EDIT_REPLY_INDENT, ps) ? "\")" : "");
-+ F_ON(F_ENABLE_EDIT_REPLY_INDENT, ps) ? "\" 為引言標示代號)" : "",
-+ (many > 1L) ? comatose(many) : "",
-+ (many > 1L) ? " " : "");
-
- if(F_ON(F_ENABLE_EDIT_REPLY_INDENT, ps)){
- rtq_opts[2].ch = ctrl('R');
- rtq_opts[2].rval = 'r';
- rtq_opts[2].name = "^R";
-- rtq_opts[2].label = "Edit Indent String";
-+ rtq_opts[2].label = "編輯引言標示代號";
- }
- else
- rtq_opts[2].ch = -1;
-@@ -1557,7 +1556,7 @@
- rtq_opts, edited ? 'y' : 'n',
- 'x', NO_HELP, RB_SEQ_SENSITIVE)){
- case 'x':
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
- return(-1);
-
- case 'r':
-@@ -1576,7 +1575,7 @@
-
- switch(optionally_enter(buf, ps->ttyo->screen_rows > 4
- ? -FOOTER_ROWS(ps_global) : -1,
-- 0, 63, "Reply prefix : ",
-+ 0, 63, "引言標示代號:",
- NULL, NO_HELP, &flags)){
- case 0: /* entry successful, continue */
- if(flags & OE_USER_MODIFIED){
-@@ -1589,7 +1588,7 @@
- break;
-
- case 1:
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
-
- case -1:
- return(-1);
-@@ -2653,9 +2652,9 @@
- ENVELOPE *env, *outgoing;
- {
- int ret = 1;
-- static ESCKEY_S news_opt[] = { {'f', 'f', "F", "Follow-up"},
-- {'r', 'r', "R", "Reply"},
-- {'b', 'b', "B", "Both"},
-+ static ESCKEY_S news_opt[] = { {'f', 'f', "F", "回覆至版上"},
-+ {'r', 'r', "R", "回給作者"},
-+ {'b', 'b', "B", "兩者皆要"},
- {-1, 0, NULL, NULL} };
-
- if(env->newsgroups && *env->newsgroups && !reply_poster_followup(env))
-@@ -2679,7 +2678,7 @@
-
- case 'x' : /* cancel or unknown response */
- default :
-- cmd_cancelled("Reply");
-+ cmd_cancelled("回覆");
- ret = 0;
- break;
- }
-@@ -2687,7 +2686,7 @@
- if(ret > 1){
- if(env->followup_to){
- q_status_message(SM_ORDER, 2, 3,
-- "Posting to specified Followup-To groups");
-+ "刊登至特定的回覆組群");
- outgoing->newsgroups = cpystr(env->followup_to);
- }
- else if(!outgoing->newsgroups)
-@@ -3323,7 +3322,7 @@
- : 0;
-
- if(ret == 'x'){
-- cmd_cancelled("Forward");
-+ cmd_cancelled("轉寄");
- so_give((STORE_S **)&msgtext);
- goto clean;
- }
-@@ -3337,7 +3336,7 @@
- role = combine_inherited_role(role);
- else{ /* cancel reply */
- role = NULL;
-- cmd_cancelled("Forward");
-+ cmd_cancelled("轉寄");
- so_give((STORE_S **)&msgtext);
- goto clean;
- }
-@@ -3532,7 +3531,7 @@
- pine_simple_send(outgoing, &body, NULL, NULL, NULL, 1);
- else /* partially formatted outgoing message */
- pine_send(outgoing, &body,
-- ps->nr_mode ? "SEND MESSAGE" : "FORWARD MESSAGE",
-+ ps->nr_mode ? "送出信件" : "轉寄信件",
- role, NULL, NULL, redraft_pos, NULL, NULL, FALSE);
-
- clean:
-@@ -3555,7 +3554,7 @@
- mail_gc(ps->mail_stream, GC_TEXTS);
- #endif
- q_status_message(SM_ORDER | SM_DING, 4, 5,
-- "Error fetching message contents. Can't forward message.");
-+ "擷取信件內容時發生錯誤。無法轉寄信件。");
- goto clean;
- }
-
-@@ -3979,7 +3978,7 @@
- if(confirm_role(ROLE_COMPOSE, &role))
- role = combine_inherited_role(role);
- else{ /* cancel */
-- cmd_cancelled("Composition");
-+ cmd_cancelled("編輯");
- display_message('x');
- mail_free_envelope(&env);
- pine_free_body(&body);
diff --git a/chinese/pine4/files/patch-bj b/chinese/pine4/files/patch-bj
deleted file mode 100644
index e02082921340..000000000000
--- a/chinese/pine4/files/patch-bj
+++ /dev/null
@@ -1,109 +0,0 @@
---- pine/screen.c.orig Thu Sep 9 05:45:46 1999
-+++ pine/screen.c Thu Oct 14 12:03:27 1999
-@@ -578,7 +578,7 @@
-
-
- static struct key cancel_keys[] =
-- {{NULL,NULL,KS_NONE}, {"^C","Cancel",KS_NONE},
-+ {{NULL,NULL,KS_NONE}, {"^C","取消",KS_NONE},
- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
-@@ -1281,10 +1281,10 @@
- as.page_column = -1;
- is_context = strlen(as.context_name);
- sprintf(version, "PINE %s", pine_version);
-- ss_string = as.stream_status == Closed ? "(CLOSED)" :
-+ ss_string = as.stream_status == Closed ? "(已關閉)" :
- (as.stream_status == ReadOnly
- && !IS_NEWS(as.stream))
-- ? "(READONLY)" : "";
-+ ? "(唯讀)" : "";
- ss_len = strlen(ss_string);
-
- tit_len = strlen(as.title); /* fixed title field width */
-@@ -1301,17 +1301,17 @@
- /*
- * set location field's length and value based on requested style
- */
-- loc_label = (is_context) ? "Msg" : "Message";
-+ loc_label = (is_context) ? "信" : "信件";
- loc_len = strlen(loc_label);
- if(!mn_get_total(as.msgmap)){
-- sprintf(tmp_20k_buf, "No %ss", loc_label);
-+ sprintf(tmp_20k_buf, "沒有%s", loc_label);
- loc_len += 4;
- }else{
- switch(as.style){
- case FolderName : /* "x,xxx <loc_label>s" */
- loc_len += digit_count(mn_get_total(as.msgmap)) + 3;
-- sprintf(tmp_20k_buf, "%s %s%s", comatose(mn_get_total(as.msgmap)),
-- loc_label, plural(mn_get_total(as.msgmap)));
-+ sprintf(tmp_20k_buf, "%s 封%s", comatose(mn_get_total(as.msgmap)),
-+ loc_label);
- break;
- case MessageNumber : /* "<loc_label> xxx of xxx DEL" */
- num_len = digit_count(mn_get_total(as.msgmap));
-@@ -1319,7 +1319,7 @@
- as.cur_mess_col = sc - (2 * num_len) - 10;
- as.del_column = as.cur_mess_col + num_len
- + digit_count(as.current_msg) + 5;
-- sprintf(tmp_20k_buf, "%s %s of %s %s", loc_label,
-+ sprintf(tmp_20k_buf, "%s %s 之 %s %s", loc_label,
- strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
- strcpy(tmp_20k_buf + 1500, comatose(mn_get_total(as.msgmap))),
- BAR_STATUS(as.msg_state));
-@@ -1331,7 +1331,7 @@
- as.percent_column = as.cur_mess_col + num_len
- + digit_count(as.current_msg) + 7;
- as.del_column = as.percent_column + 4;
-- sprintf(tmp_20k_buf, "%s %s of %s %s %s", loc_label,
-+ sprintf(tmp_20k_buf, "%s %s 之 %s %s %s", loc_label,
- strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
- strcpy(tmp_20k_buf + 1500, comatose(mn_get_total(as.msgmap))),
- percentage(as.current_line, as.total_lines, 1),
-@@ -1342,7 +1342,7 @@
- case FileTextPercent :
- as.page_column = sc - (14 + 2*(num_len = digit_count(as.total_lines)));
- loc_len = 17 + 2*num_len;
-- sprintf(tmp_20k_buf, "Line %*ld of %*ld %s ",
-+ sprintf(tmp_20k_buf, "行 %*ld 之 %*ld %s ",
- num_len, as.current_line,
- num_len, as.total_lines,
- percentage(as.current_line, as.total_lines, 1));
-@@ -1417,7 +1417,7 @@
- ss_string);
- }
- else{
-- char *fmt = "Folder: %s%s";
-+ char *fmt = "信件匣:%s%s";
- if(fold_len + ss_len + 8 < avail) /* all of folder fit? */
- sprintf(fold_tmp, fmt, as.folder_name, ss_string);
- else if((fold_len/2) + ss_len + 8 < avail)
-@@ -1474,7 +1474,7 @@
-
- if(as.style == MsgTextPercent){
- as.percent_column += delta;
-- PutLine5(0, as.cur_mess_col, "%s of %s %s %s%s",
-+ PutLine5(0, as.cur_mess_col, "%s 之 %s %s %s%s",
- strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
- strcpy(tmp_20k_buf + 1500,
- comatose(mn_get_total(as.msgmap))),
-@@ -1483,7 +1483,7 @@
- repeat_char(max(0, -delta), SPACE));
- }
- else
-- PutLine4(0, as.cur_mess_col, "%s of %s %s%s",
-+ PutLine4(0, as.cur_mess_col, "%s 之 %s %s%s",
- strcpy(tmp_20k_buf + 1000, comatose(as.current_msg)),
- strcpy(tmp_20k_buf + 1500,
- comatose(mn_get_total(as.msgmap))),
-@@ -1610,7 +1610,7 @@
-
- as.current_line = new_line_number;
-
-- sprintf(tmp_20k_buf, "%*ld of %*ld %s ",
-+ sprintf(tmp_20k_buf, "%*ld 之 %*ld %s ",
- digit_count(as.total_lines), as.current_line,
- digit_count(as.total_lines), as.total_lines,
- percentage(as.current_line, as.total_lines, 0));
diff --git a/chinese/pine4/files/patch-bk b/chinese/pine4/files/patch-bk
deleted file mode 100644
index 96dd90aa74bf..000000000000
--- a/chinese/pine4/files/patch-bk
+++ /dev/null
@@ -1,1002 +0,0 @@
---- pine/send.c.orig Sat Nov 13 09:41:01 1999
-+++ pine/send.c Fri Nov 19 16:18:24 1999
-@@ -221,17 +221,17 @@
- * Various useful strings
- */
- #define INTRPT_PMT \
-- "Continue INTERRUPTED composition (answering \"n\" won't erase it)"
-+ "繼續編輯上次中斷的文章嗎(回答 \"否\" 將不會刪除它)"
- #define PSTPND_PMT \
-- "Continue postponed composition (answering \"No\" won't erase it)"
-+ "繼續編輯遭暫緩的文章嗎(回答 \"否\" 將不會刪除它)"
- #define FORM_PMT \
-- "Start composition from Form Letter Folder"
-+ "開始自來源信件匣中編輯"
- #define PSTPN_FORM_PMT \
-- "Save to Postponed or Form letter folder? "
-+ "要存至「暫緩」或「來源」信件匣?"
- #define POST_PMT \
-- "Posted message may go to thousands of readers. Really post"
-+ "這篇文章可能被數以千計的讀者閱\讀,確定要刊登嗎"
- #define INTR_DEL_PMT \
-- "Deleted messages will be removed from folder after use. Proceed"
-+ "刪除的信件於 Pine 使用後將被移出檔案匣。確定刪除嗎"
-
- #if defined(DOS) || defined(OS2)
- #define POST_PERM_GRIPE \
-@@ -276,7 +276,7 @@
- #define REDRAFT_PPND 0x01
- #define REDRAFT_DEL 0x02
-
--#define COMPOSE_MAIL_TITLE "COMPOSE MESSAGE"
-+#define COMPOSE_MAIL_TITLE "編輯信件"
-
- /*
- * Phone home hash controls
-@@ -344,7 +344,7 @@
-
- /* Setup role */
- if(role_select_screen(pine_state, &role, 1) < 0){
-- cmd_cancelled("Composition");
-+ cmd_cancelled("編輯文章");
- pine_state->next_screen = prev_screen;
- pine_state->redrawer = redraw;
- return;
-@@ -443,14 +443,14 @@
- mail_close(stream);
- if(ret == 'x'){
- q_status_message(SM_ORDER, 0, 3,
-- "Composition cancelled");
-+ "取消編輯");
- return;
- }
- }
- }
- else{
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Can't open Interrupted mailbox: %s",
-+ "無法開被中斷的信箱:%s",
- file_path);
- if(stream)
- mail_close(stream);
-@@ -532,14 +532,14 @@
-
- if(ret == 'x'){
- q_status_message(SM_ORDER, 0, 3,
-- "Composition cancelled");
-+ "取消編輯");
- done++;
- }
- }
- }
- else{
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Can't open Postponed mailbox: %s", mbox);
-+ "無法開遭暫緩的信箱:%s", mbox);
- if(stream)
- mail_close(stream);
- }
-@@ -627,7 +627,7 @@
-
- if(ret == 'x'){
- q_status_message(SM_ORDER, 0, 3,
-- "Composition cancelled");
-+ "取消編輯");
- done++;
- }
- }
-@@ -637,7 +637,7 @@
- }
- else{
- q_status_message1(SM_ORDER | SM_DING, 3, 3,
-- "Can't open form letter folder: %s", mbox);
-+ "無法開啟來源信件匣: %s", mbox);
- if(stream)
- mail_close(stream);
- }
-@@ -685,14 +685,14 @@
- role = combine_inherited_role(role);
- else{ /* cancel reply */
- role = NULL;
-- cmd_cancelled("Composition");
-+ cmd_cancelled("編輯文章");
- return;
- }
- }
- }
-
- if(role)
-- q_status_message1(SM_ORDER, 3, 4, "Composing using role \"%s\"",
-+ q_status_message1(SM_ORDER, 3, 4, "以 \"%s\" 的角色編輯",
- role->nick);
-
- /*
-@@ -842,8 +842,8 @@
- */
- if(!stream->nmsgs){
- q_status_message1(SM_ORDER | SM_DING, 3, 5,
-- "Empty folder! No messages really %s!",
-- (REDRAFT_PPND&flags) ? "postponed" : "interrupted");
-+ "空的信件匣。沒有信件真正被%s!",
-+ (REDRAFT_PPND&flags) ? "暫緩" : "中斷");
- return(redraft_cleanup(stream, FALSE, flags));
- }
- else if(stream == ps_global->mail_stream){
-@@ -869,10 +869,10 @@
- if(count_flagged(stream, F_DEL)
- && want_to(INTR_DEL_PMT, 'n', 0, NO_HELP, WT_NORM) == 'n'){
- q_status_message1(SM_ORDER, 3, 3,
-- "Undelete %s, and then continue message",
-+ "自%s復原刪除,並繼續該信件",
- (REDRAFT_PPND&flags)
-- ? "messages to remain postponed"
-- : "form letters you want to keep");
-+ ? "繼續暫緩的信件中"
-+ : "您想保留的信件中");
- continue;
- }
-
-@@ -883,7 +883,7 @@
- mn_give(&msgmap);
-
- if(rv){
-- q_status_message(SM_ORDER, 0, 3, "Composition cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消編輯");
- (void) redraft_cleanup(stream, FALSE, flags);
- return(0); /* special case */
- }
-@@ -1205,7 +1205,7 @@
- if(b->type == TYPEMULTIPART){
- if(strucmp(b->subtype, "mixed")){
- q_status_message1(SM_INFO, 3, 4,
-- "Converting Multipart/%s to Multipart/Mixed",
-+ "轉換 Multipart/%s 至 Multipart/Mixed",
- b->subtype);
- fs_give((void **)&b->subtype);
- b->subtype = cpystr("mixed");
-@@ -1213,7 +1213,7 @@
- }
- else{
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Unable to resume type %s/%s message",
-+ "無法繼續形態為 %s/%s 的信件",
- body_types[b->type], b->subtype);
- return(redraft_cleanup(stream, TRUE, flags));
- }
-@@ -1227,7 +1227,7 @@
- set_mime_type_by_grope(&part->body, NULL);
- if(part->body.type != TYPETEXT){
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Unable to resume; first part is non-text: %s/%s",
-+ "無法繼續;第一部份非純文字:%s/%s",
- body_types[part->body.type],
- part->body.subtype);
- return(redraft_cleanup(stream, TRUE, flags));
-@@ -1286,9 +1286,9 @@
-
- if(stream == ps_global->mail_stream){
- q_status_message2(SM_ORDER, 3, 7,
-- "No more %s, returning to \"%s\"",
-- (REDRAFT_PPND&flags) ? "postponed messages"
-- : "form letters",
-+ "沒有%s了,回到 \"%s\"",
-+ (REDRAFT_PPND&flags) ? "遭暫緩的信件"
-+ : " form letter ",
- ps_global->inbox_name);
- do_broach_folder(ps_global->inbox_name,
- ps_global->context_list);
-@@ -1309,7 +1309,7 @@
-
- if(!mail_delete(stream, mbox))
- q_status_message1(SM_ORDER|SM_DING, 3, 3,
-- "Can't delete %s", mbox);
-+ "無法刪除:%s", mbox);
-
- fs_give((void **) &mbox);
- stream = NULL;
-@@ -1331,7 +1331,7 @@
- {
- if(background_posting(FALSE)){
- q_status_message1(SM_ORDER, 0, 3,
-- "%s folder unavailable while background posting",
-+ "%s 信件匣在背景刊登時無法使用",
- type);
- return(failure);
- }
-@@ -1554,7 +1554,7 @@
-
- if(rc == 1 || (rc == 0 && !answer)) {
- q_status_message(SM_ORDER, 3, 4,
-- "Send cancelled (User-id must be provided before sending)");
-+ "取消寄件(寄件前必須提供使用者代號)");
- return(0);
- }
-
-@@ -1643,7 +1643,7 @@
-
- if(rc == 1 || (rc == 0 && !answer)) {
- q_status_message(SM_ORDER, 3, 4,
-- "Send cancelled (Host/domain name must be provided before sending)");
-+ "取消寄件(寄件前必須提供 主機/領域 名稱)");
- return(0);
- }
-
-@@ -1699,7 +1699,7 @@
-
- if(rc == 1 || (rc == 0 && answer[0] == '\0')) {
- q_status_message(SM_ORDER, 3, 4,
-- "Send cancelled (SMTP server must be provided before sending)");
-+ "取消寄件(寄件前必須提供 SMTP 伺服器)");
- return(0);
- }
-
-@@ -1726,31 +1726,31 @@
- */
- static struct headerentry he_template[]={
- {"From : ", "From", h_composer_from, 10, 0, NULL,
-- build_address, NULL, NULL, addr_book_compose, "To AddrBk", NULL,
-+ build_address, NULL, NULL, addr_book_compose, "地址簿", NULL,
- 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK},
- {"Reply-To: ", "Reply To", h_composer_reply_to, 10, 0, NULL,
-- build_address, NULL, NULL, addr_book_compose, "To AddrBk", NULL,
-+ build_address, NULL, NULL, addr_book_compose, "地址簿", NULL,
- 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK},
- {"To : ", "To", h_composer_to, 10, 0, NULL,
-- build_address, NULL, NULL, addr_book_compose, "To AddrBk", NULL,
-+ build_address, NULL, NULL, addr_book_compose, "地址簿", NULL,
- 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK},
- {"Cc : ", "Cc", h_composer_cc, 10, 0, NULL,
-- build_address, NULL, NULL, addr_book_compose, "To AddrBk", NULL,
-+ build_address, NULL, NULL, addr_book_compose, "地址簿", NULL,
- 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK},
- {"Bcc : ", "Bcc", h_composer_bcc, 10, 0, NULL,
-- build_address, NULL, NULL, addr_book_compose, "To AddrBk", NULL,
-+ build_address, NULL, NULL, addr_book_compose, "地址簿", NULL,
- 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK},
- {"Newsgrps: ", "Newsgroups", h_composer_news, 10, 0, NULL,
-- news_build, NULL, NULL, news_group_selector, "To NwsGrps", NULL,
-+ news_build, NULL, NULL, news_group_selector, "新聞組群列表", NULL,
- 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_NONE},
- {"Fcc : ", "Fcc", h_composer_fcc, 10, 0, NULL,
-- NULL, NULL, NULL, folders_for_fcc, "To Fldrs", NULL,
-+ NULL, NULL, NULL, folders_for_fcc, "資料匣列表", NULL,
- 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, KS_NONE},
- {"Lcc : ", "Lcc", h_composer_lcc, 10, 0, NULL,
-- build_addr_lcc, NULL, NULL, addr_book_compose_lcc,"To AddrBk", NULL,
-+ build_addr_lcc, NULL, NULL, addr_book_compose_lcc,"地址簿", NULL,
- 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_NONE},
- {"Attchmnt: ", "Attchmnt", h_composer_attachment, 10, 0, NULL,
-- NULL, NULL, NULL, NULL, "To Files", NULL,
-+ NULL, NULL, NULL, NULL, "檔案列表", NULL,
- 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, KS_NONE},
- {"Subject : ", "Subject", h_composer_subject, 10, 0, NULL,
- valid_subject, NULL, NULL, NULL, NULL, NULL,
-@@ -1785,7 +1785,7 @@
-
- static struct headerentry he_custom_addr_templ={
- NULL, NULL, h_composer_custom_addr,10, 0, NULL,
-- build_address, NULL, NULL, addr_book_compose, "To AddrBk", NULL,
-+ build_address, NULL, NULL, addr_book_compose, "地址簿", NULL,
- 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, KS_TOADDRBOOK};
- static struct headerentry he_custom_free_templ={
- NULL, NULL, h_composer_custom_free,10, 0, NULL,
-@@ -2068,7 +2068,7 @@
-
- default:
- q_status_message1(SM_ORDER,3,3,
-- "Unknown header type %d in pine_simple_send", (void *)pf->type);
-+ "在 pine_simple_send 中出現未知的標頭形態 %d", (void *)pf->type);
- break;
- }
- }
-@@ -2078,7 +2078,7 @@
- ekey[0].ch = ctrl('T');
- ekey[0].rval = 2;
- ekey[0].name = "^T";
-- ekey[0].label = "To AddrBk";
-+ ekey[0].label = "地址簿";
- ekey[1].ch = -1;
-
- /*----------------------------------------------------------------------
-@@ -2189,12 +2189,12 @@
- opts[i].ch = 'y';
- opts[i].rval = 'y';
- opts[i].name = "Y";
-- opts[i++].label = "Yes";
-+ opts[i++].label = "是";
-
- opts[i].ch = 'n';
- opts[i].rval = 'n';
- opts[i].name = "N";
-- opts[i++].label = "No";
-+ opts[i++].label = "否";
-
- verbose_requested = 0;
- if(F_ON(F_VERBOSE_POST, ps_global)){
-@@ -2241,7 +2241,7 @@
- dsn_show = (dsn_requested & DSN_SHOW);
- sprintf(tmp_20k_buf,
- "%s%s%s%s%s%sto \"%s\" ? ",
-- prmpt_cnf ? prmpt_cnf : "Send message ",
-+ prmpt_cnf ? prmpt_cnf : "送信 ",
- (verbose_requested || dsn_show)
- ? "(" : "",
- (verbose_requested)
-@@ -2379,7 +2379,7 @@
- if(!(outgoing->to || outgoing->cc || outgoing->bcc
- || lmc.so)){
- q_status_message(SM_ORDER, 3, 5,
-- "No recipients specified!");
-+ "尚未指定收件人!");
- continue;
- }
-
-@@ -2404,7 +2404,7 @@
- }
- else if(result == 0){
- q_status_message(SM_ORDER,3,5,
-- "Fcc Failed!. No message saved.");
-+ "Fcc 失敗!未存入任何信件。");
- retval = -1;
- dprint(1,
- (debugfile, "explicit fcc write failed!\n"));
-@@ -2422,7 +2422,7 @@
- }
- }
- else{
-- q_status_message(SM_ORDER, 0, 3, "Send cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消寄件");
- retval = -1;
- }
- }
-@@ -2450,7 +2450,7 @@
- break;
-
- case 1:
-- q_status_message(SM_ORDER, 0, 3, "Send cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消寄件");
- done++;
- retval = -1;
- break;
-@@ -2714,7 +2714,7 @@
- break;
-
- case 'x': /* ^C */
-- q_status_message(SM_ORDER, 0, 3, "Message cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消信件");
- dprint(4, (debugfile, "=== send: cancelled\n"));
- pbuf = save_previous_pbuf;
- return;
-@@ -3143,7 +3143,7 @@
-
- default:
- q_status_message1(SM_ORDER,3,7,
-- "Unknown header type %d in pine_send",
-+ "在 pine_send 中出現未知的標頭形態 %d",
- (void *)pf->type);
- break;
- }
-@@ -3170,7 +3170,7 @@
- !(role && role->from))){
- if(pf->canedit || !he->rich_header)
- q_status_message(SM_ORDER, 3, 3,
-- "Not allowed to change header \"From\"");
-+ "不允許\改變標頭 \"From\"");
-
- memset(he, 0, (size_t)sizeof(*he));
- pf->he = NULL;
-@@ -3529,7 +3529,7 @@
- ? "CANCEL" : "HUH?"));
- if((editor_result & COMP_CANCEL)
- && F_ON(F_QUELL_DEAD_LETTER, ps_global)){
-- q_status_message(SM_ORDER, 0, 3, "Message cancelled");
-+ q_status_message(SM_ORDER, 0, 3, "取消信件");
- break;
- }
-
-@@ -3553,7 +3553,7 @@
- && (check_addresses(&header) == CA_BAD)){
- /*--- Addresses didn't check out---*/
- q_status_message(SM_ORDER, 7, 7,
-- "Not allowed to postpone message until addresses are qualified");
-+ "直到地址合格之前不允許\暫緩信件");
- continue;
- }
-
-@@ -3612,7 +3612,7 @@
- if(!so_puts(lmc.so, tmp_20k_buf)){
- if(editor_result & COMP_CANCEL)
- q_status_message2(SM_ORDER | SM_DING, 3, 3,
-- "Can't write \"%s\": %s",
-+ "無法寫入 \"%s\": %s",
- folder, error_description(errno));
- else
- dprint(1, (debugfile, "* * * CAN'T WRITE %s: %s\n",
-@@ -3625,7 +3625,7 @@
- if(!ps_global->VAR_POSTPONED_FOLDER
- || !ps_global->VAR_POSTPONED_FOLDER[0]){
- q_status_message(SM_ORDER | SM_DING, 3, 3,
-- "No postponed file defined");
-+ "沒有已定義的暫緩檔");
- continue;
- }
-
-@@ -3655,7 +3655,7 @@
- }
- else{
- strcpy(folder, ps_global->VAR_POSTPONED_FOLDER);
-- strcpy(label, "postponed message");
-+ strcpy(label, "暫緩信件");
- }
-
- lmc.so = open_fcc(folder,&fcc_cntxt, 1, NULL, NULL);
-@@ -3797,10 +3797,10 @@
- && ps_global->VAR_FORM_FOLDER[0]
- && !strcmp(folder, ps_global->VAR_FORM_FOLDER))
- q_status_message(SM_ORDER, 0, 3,
-- "Composition saved to Form Letter Folder. Select Compose to send.");
-+ "文章已被存至來源信件匣。選擇「編輯」送出。");
- else
- q_status_message(SM_ORDER, 0, 3,
-- "Composition postponed. Select Compose to resume.");
-+ "文章已暫緩寄出。選擇「編輯」繼續編修。");
-
- break; /* postpone went OK, get out of here */
- }
-@@ -3810,15 +3810,15 @@
- if(fcc_result && folder)
- lc = last_cmpnt(folder);
-
-- q_status_message3(SM_ORDER, 0, 3, "Message cancelled%s%s%s",
-- (lc && *lc) ? " and copied to \"" : "",
-+ q_status_message3(SM_ORDER, 0, 3, "取消信件%s%s%s",
-+ (lc && *lc) ? " 並複製到 \"" : "",
- (lc && *lc) ? lc : "",
- (lc && *lc) ? "\" file" : "");
- break;
- }
- else{
- q_status_message(SM_ORDER, 0, 4,
-- "Continuing composition. Message not postponed or sent");
-+ "繼續編輯。信件未被暫緩或送出");
- body_start = 1;
- continue; /* postpone failed, jump back in to composer */
- }
-@@ -3834,7 +3834,7 @@
- /* --- If posting, confirm with user ----*/
- if(outgoing->newsgroups && *outgoing->newsgroups
- && want_to(POST_PMT, 'n', 'n', NO_HELP, WT_NORM) == 'n'){
-- q_status_message(SM_ORDER, 0, 3, "Message not posted");
-+ q_status_message(SM_ORDER, 0, 3, "文章未被刊登");
- dprint(4, (debugfile, "no post, continuing\n"));
- continue;
- }
-@@ -3843,13 +3843,13 @@
- || outgoing->newsgroups)){
- if(fcc && fcc[0]){
- if(F_OFF(F_AUTO_FCC_ONLY, ps_global) &&
-- want_to("No recipients, really copy only to Fcc ",
-+ want_to("尚未指定收件者,真的僅複製到 Fcc 中嗎",
- 'n', 'n', h_send_fcc_only, WT_NORM) != 'y')
- continue;
- }
- else{
- q_status_message(SM_ORDER, 3, 4,
-- "No recipients specified!");
-+ "尚未指定收件者!");
- dprint(4, (debugfile, "no recip, continuing\n"));
- continue;
- }
-@@ -3893,8 +3893,8 @@
- && !filter_message_text(sending_filter_requested, outgoing,
- *body, &orig_so, &header)){
- q_status_message1(SM_ORDER, 3, 3,
-- "Problem filtering! Nothing sent%s.",
-- fcc ? " or saved to fcc" : "");
-+ "過濾器有問題!沒有東西被送出%s。",
-+ fcc ? "或存至 fcc" : "");
- continue;
- }
-
-@@ -3985,7 +3985,7 @@
- }
- else if(!(result & (P_MAIL_BITS | P_NEWS_BITS))){
- q_status_message(SM_ORDER, 3, 5,
-- "Fcc Failed!. No message saved.");
-+ "Fcc 失敗!未存入任何信件。");
- dprint(1, (debugfile,
- "explicit fcc write failed!\n"));
- result |= P_FCC_LOSE;
-@@ -4052,7 +4052,7 @@
- }
- else if(!(result & (P_MAIL_BITS | P_NEWS_BITS))){
- q_status_message(SM_ORDER,3,5,
-- "Fcc Failed!. No message saved.");
-+ "Fcc 失敗!未存入任何信件。");
- dprint(1, (debugfile, "explicit fcc write failed!\n"));
- result |= P_FCC_LOSE;
- }
-@@ -4140,8 +4140,8 @@
- postpone_prompt()
- {
- int ret = 1;
-- static ESCKEY_S pstpn_form_opt[] = { {'p', 'p', "P", "Postponed Folder"},
-- {'f', 'f', "F", "Form Letter Folder"},
-+ static ESCKEY_S pstpn_form_opt[] = { {'p', 'p', "P", "暫緩檔案匣"},
-+ {'f', 'f', "F", "來源信件匣"},
- {-1, 0, NULL, NULL} };
-
- return(radio_buttons(PSTPN_FORM_PMT, -FOOTER_ROWS(ps_global),
-@@ -4296,23 +4296,23 @@
- char *buf;
- int *goodorbad;
- {
-- sprintf(buf, "Message %s%s%s%s%s%s%s.",
-+ sprintf(buf, "信件 %s%s%s%s%s%s%s.",
- (result & P_NEWS_WIN)
-- ? "posted"
-+ ? "已刊登"
- : (result & P_NEWS_LOSE)
-- ? "NOT posted" : "",
-+ ? "未被刊登" : "",
- ((result & P_NEWS_BITS) && (result & P_MAIL_BITS)
- && (result & P_FCC_BITS))
- ? ", "
- : ((result & P_NEWS_BITS) && (result & P_MAIL_BITS))
-- ? " and " : "",
-+ ? " 並 " : "",
- (result & P_MAIL_WIN)
-- ? "sent"
-+ ? "已寄出"
- : (result & P_MAIL_LOSE)
-- ? "NOT SENT" : "",
-+ ? "未寄出" : "",
- ((result & (P_MAIL_BITS | P_NEWS_BITS)) && (result & P_FCC_BITS))
-- ? " and copied to "
-- : (result & P_FCC_WIN) ? "ONLY copied to " : "",
-+ ? " 並被複製到 "
-+ : (result & P_FCC_WIN) ? "僅被複製到 " : "",
- (result & P_FCC_WIN) ? "\"" : "",
- (result & P_FCC_WIN) ? fcc_name : "",
- (result & P_FCC_WIN) ? "\"" : "");
-@@ -4351,7 +4351,7 @@
- || (F_ON(F_COMPOSE_REJECTS_UNQUAL, ps_global)
- && a->host[0] == '@'))){
- q_status_message2(SM_ORDER, 4, 7,
-- "Can't send to address %s: %s",
-+ "無法寄至 %s:%s",
- a->mailbox,
- (a->host[0] == '.')
- ? a->host
-@@ -4361,7 +4361,7 @@
- else if(ps_global->restricted
- && !address_is_us(*pf->addr, ps_global)){
- q_status_message(SM_ORDER, 3, 3,
-- "Restricted demo version of Pine. You may only send mail to yourself");
-+ "這是 Pine 的展示版。僅能寄信給自己");
- return(CA_BAD);
- }
- else if(a->mailbox && strucmp(a->mailbox, "mailer-daemon") == 0
-@@ -4558,7 +4558,7 @@
- if(!(n > 0L && n <= mn_get_total(ps_global->msgmap)
- && (e = mail_fetchstructure(ps_global->mail_stream,
- mn_m2raw(ps_global->msgmap, n), &b)))){
-- q_status_message(SM_ORDER|SM_DING,3,3,"Error inserting Message");
-+ q_status_message(SM_ORDER|SM_DING,3,3,"插入信件時發生錯誤");
- flush_status_messages(0);
- return(0L);
- }
-@@ -4573,7 +4573,7 @@
- /* actually write message text */
- if(!format_message(mn_m2raw(ps_global->msgmap, n), e, b,
- FM_NEW_MESS | FM_DISPLAY | FM_NOCOLOR, f)){
-- q_status_message(SM_ORDER|SM_DING,3,3,"Error inserting Message");
-+ q_status_message(SM_ORDER|SM_DING,3,3,"插入信件時發生錯誤");
- flush_status_messages(0);
- rv = 0L;
- }
-@@ -4667,12 +4667,12 @@
- opts[i].ch = 'y';
- opts[i].rval = 'y';
- opts[i].name = "Y";
-- opts[i++].label = "Yes";
-+ opts[i++].label = "是";
-
- opts[i].ch = 'n';
- opts[i].rval = 'n';
- opts[i].name = "N";
-- opts[i++].label = "No";
-+ opts[i++].label = "否";
-
- if(filters){
- /* set global_filter_pointer to desired filter or NULL if none */
-@@ -4680,12 +4680,12 @@
- opts[i].ch = ctrl('P');
- opts[i].rval = 10;
- opts[i].name = "^P";
-- opts[i++].label = "Prev Filter";
-+ opts[i++].label = "前一個過濾器";
-
- opts[i].ch = ctrl('N');
- opts[i].rval = 11;
- opts[i].name = "^N";
-- opts[i++].label = "Next Filter";
-+ opts[i++].label = "下一個過濾器";
-
- if(F_ON(F_FIRST_SEND_FILTER_DFLT, ps_global))
- filters = filters->next;
-@@ -4769,11 +4769,11 @@
-
- lparen = 0;
- dsn_show = (dsn_requested & DSN_SHOW);
-- strcpy(tmp_20k_buf, "Send message");
-- optp = &tmp_20k_buf[12];
-+ strcpy(tmp_20k_buf, "送出信件");
-+ optp = &tmp_20k_buf[8];
-
- if(F_ON(F_NO_FCC_ATTACH, ps_global) && !lmc.text_only)
-- sstrcpy(&optp, " and Fcc Atmts");
-+ sstrcpy(&optp, " 與 Fcc 附件?");
-
- if(filters){
- if(!lparen){
-@@ -4785,12 +4785,12 @@
- *optp++ = ' ';
-
- if(filters->filter){
-- sstrcpy(&optp, "filtered thru \"");
-+ sstrcpy(&optp, "經由過濾器 \"");
- sstrcpy(&optp, filters->filter);
- *optp++ = '\"';
- }
- else
-- sstrcpy(&optp, "unfiltered");
-+ sstrcpy(&optp, "未經過濾");
- }
-
- if(verbose_requested || background_requested){
-@@ -4804,10 +4804,10 @@
-
- sstrcpy(&optp, "in ");
- if(verbose_requested)
-- sstrcpy(&optp, "verbose ");
-+ sstrcpy(&optp, "顯示細節 ");
-
- if(background_requested)
-- sstrcpy(&optp, "background ");
-+ sstrcpy(&optp, "背景送出 ");
-
- sstrcpy(&optp, "mode");
- }
-@@ -4849,11 +4849,11 @@
- *p = ' ';
-
- if(verbose_label)
-- opts[verbose_label].label = verbose_requested ? "Normal" : "Verbose";
-+ opts[verbose_label].label = verbose_requested ? "通常" : "顯示細節";
-
- if(bg_label)
- opts[bg_label].label = background_requested
-- ? "Foreground" : "Background";
-+ ? "前景" : "背景";
-
- if(fcc_label)
- opts[fcc_label].label = lmc.text_only ? "Fcc Attchmnts"
-@@ -4885,11 +4885,11 @@
- break;
- }
- else if(rv == 'n'){ /* Declined! */
-- rstr = "No Message Sent";
-+ rstr = "沒有任何信件被送出";
- break;
- }
- else if(rv == 'z'){ /* Cancelled! */
-- rstr = "Send Cancelled";
-+ rstr = "取消送件";
- break;
- }
- else if(rv == 10){ /* PREVIOUS filter */
-@@ -5076,7 +5076,7 @@
- if(body->type != TYPEOTHER){
- rv = 1;
- q_status_message3(SM_ORDER, 0, 3,
-- "File %s attached as type %s/%s", file,
-+ "檔案 %s 附加為 %s/%s", file,
- body_types[body->type],
- body->subtype ? body->subtype : rfc822_default_subtype(body->type));
- }
-@@ -5125,7 +5125,7 @@
- (void) close_system_pipe(&syspipe);
- if((l = name_file_size(fname)) < 0L){
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Error determining size of %s: %s", fname,
-+ "決定檔案 %s 大小時發生錯誤:%s", fname,
- fnp = error_description(errno));
- dprint(1, (debugfile,
- "!!! Upload cmd \"%s\" failed for \"%s\": %s\n",
-@@ -5137,7 +5137,7 @@
- return(l >= 0);
- }
- else
-- q_status_message(SM_ORDER | SM_DING, 3, 4, "Error opening pipe");
-+ q_status_message(SM_ORDER | SM_DING, 3, 4, "開啟管線時發生錯誤");
-
- return(0);
- }
-@@ -5190,7 +5190,7 @@
- else if(reply->flags == REPLY_MSGNO)
- return;
-
-- we_cancel = busy_alarm(1, "Updating \"Answered\" Flags", NULL, 1);
-+ we_cancel = busy_alarm(1, "正在更新 \"已回覆\" 旗標", NULL, 1);
- if(!stream){
- if(stream = pine_mail_open(NULL, reply->mailbox, OP_SILENT)){
- ourstream++;
-@@ -5286,7 +5286,7 @@
- so_give(&tmpf_so);
- }
- else
-- errstr = "Can't create space for filter temporary file.";
-+ errstr = "無法建立過濾器的暫存檔。";
- }
- else if(include_hdrs){
- /*
-@@ -5344,13 +5344,13 @@
- so_give(&tmpf_so);
- }
- else
-- errstr = "Can't open temp file filter wrote.";
-+ errstr = "無法開啟過濾器的暫存檔。";
- }
- else
-- errstr = "Filter command returned error.";
-+ errstr = "過濾器指令傳回錯誤值。";
- }
- else
-- errstr = "Can't exec filter text.";
-+ errstr = "無法執行過濾器。";
- }
- else
- errstr = gf_filter(cmd, key ? filter_session_key() : NULL,
-@@ -5364,7 +5364,7 @@
- if(errstr){
- int ch;
-
-- fprintf(stdout, "\r\n%s Hit return to continue.", errstr);
-+ fprintf(stdout, "\r\n%s 鍵入 return 繼續。", errstr);
- fflush(stdout);
- while((ch = read_char(300)) != ctrl('M')
- && ch != NO_OP_IDLE)
-@@ -5460,7 +5460,7 @@
- if(tmp_so)
- so_give(&tmp_so);
-
-- q_status_message1(SM_ORDER | SM_DING, 3, 6, "Problem filtering: %s",
-+ q_status_message1(SM_ORDER | SM_DING, 3, 6, "過濾過程有問題:%s",
- errstr);
- dprint(1, (debugfile, "Filter FAILED: %s\n", errstr));
- }
-@@ -5545,11 +5545,11 @@
-
- loser = pine_simple_send(outgoing, &body, NULL, NULL, NULL, 0);
-
-- q_status_message(SM_ORDER, 0, 3, "Thanks for being counted!");
-+ q_status_message(SM_ORDER, 0, 3, "感謝您願意被計算為 Pine 的使用者!");
- }
- else
- q_status_message(SM_ORDER | SM_DING, 3, 4,
-- "Problem creating space for message text.");
-+ "建立訊息文字空間時發生錯誤。");
-
- mail_free_envelope(&outgoing);
- pine_free_body(&body);
-@@ -5633,7 +5633,7 @@
-
- if(!pf){
- q_status_message(SM_ORDER,3,3,
-- "Can't send message. No recipients specified!");
-+ "無法送信。尚未指定收信人!");
- return(0);
- }
-
-@@ -5642,7 +5642,7 @@
- gf_filter_init(); /* zero piped byte count, 'n */
- send_bytes_to_send = send_body_size(body); /* count body bytes */
- ps_global->c_client_error[0] = error_buf[0] = '\0';
-- we_cancel = busy_alarm(1, "Sending mail",
-+ we_cancel = busy_alarm(1, "正在寄信",
- send_bytes_to_send ? sent_percent : NULL, 1);
-
- /* try posting via local "<mta> <-t>" if specified */
-@@ -5827,7 +5827,7 @@
- struct headerentry *last_he = NULL;
-
- sprintf(error_buf,
-- "Mail not sent. Sending error%s%.40s",
-+ "信件未被寄出。寄件錯誤%s%.40s",
- (sending_stream && sending_stream->reply) ? ": ": ".",
- (sending_stream && sending_stream->reply)
- ? sending_stream->reply : "");
-@@ -5900,7 +5900,7 @@
- TIME_STAMP("smtp done", 1);
- }
- else if(!error_mess)
-- sprintf(error_mess = error_buf, "Error sending: %.60s",
-+ sprintf(error_mess = error_buf, "寄信時發生錯誤:%.60s",
- ps_global->c_client_error);
-
- if(verbose_file){
-@@ -5908,7 +5908,7 @@
- TIME_STAMP("verbose start", 1);
- fclose(verbose_send_output);
- verbose_send_output = NULL;
-- q_status_message(SM_ORDER, 0, 3, "Verbose SMTP output received");
-+ q_status_message(SM_ORDER, 0, 3, "收到詳細的 SMTP 輸出訊息");
- display_output_file(verbose_file, "Verbose SMTP Interaction",
- NULL, DOF_BRIEF);
- TIME_STAMP("verbose end", 1);
-@@ -5998,12 +5998,12 @@
- if(folder_index(fcc, *fcc_cntxt, FI_FOLDER) < 0){
- if(ps_global->context_list->next)
- sprintf(tmp_20k_buf,
-- "Folder \"%.20s\" in <%.30s> doesn't exist. Create",
-+ "信件匣 \"%.20s\" 在 <%.30s> 尚不存在。要新建",
- strsquish(tmp_20k_buf + 500, fcc, 20),
- strsquish(tmp_20k_buf + 1000,(*fcc_cntxt)->nickname,30));
- else
- sprintf(tmp_20k_buf,
-- "Folder \"%s\" doesn't exist. Create",
-+ "信件匣 \"%s\" 尚不存在。要新建",
- strsquish(tmp_20k_buf + 500, fcc, 40));
-
- if(force || want_to(tmp_20k_buf,'y','n',NO_HELP,WT_NORM) == 'y'){
-@@ -6040,7 +6040,7 @@
- ok++;
- }
- else{
-- sprintf(tmp_20k_buf,"Folder \"%s\" doesn't exist. Create",
-+ sprintf(tmp_20k_buf,"信件匣 \"%s\" 尚不存在。要新建",
- strsquish(tmp_20k_buf + 500, fcc, 40));
- if(force || want_to(tmp_20k_buf,'y','n',NO_HELP,WT_NORM) == 'y'){
- /*
-@@ -6074,8 +6074,8 @@
-
- if(ok == 0){
- if(ps_global->mm_log_error){
-- s1 = err_prefix ? err_prefix : "Fcc Error: ";
-- s2 = err_suffix ? err_suffix : " Message NOT sent or copied.";
-+ s1 = err_prefix ? err_prefix : "Fcc 錯誤:";
-+ s2 = err_suffix ? err_suffix : " 信件沒有被寄出或複製。";
-
- l1 = strlen(s1);
- l2 = strlen(s2);
-@@ -6093,10 +6093,10 @@
-
- }
- else
-- errstr = "Fcc creation error. Message NOT sent or copied.";
-+ errstr = "建立 Fcc 時發生錯誤。信件沒有被送出或複製。";
- }
- else
-- errstr = "Fcc creation rejected. Message NOT sent or copied.";
-+ errstr = "Fcc 之建立遭拒絕。信件沒有被送出或複製。";
-
- q_status_message(SM_ORDER | SM_DING, 3, 3, errstr);
- }
-@@ -6144,7 +6144,7 @@
- if(label && *label){
- char msg_buf[80];
-
-- strncat(strcpy(msg_buf, "Writing "), label, 70);
-+ strncat(strcpy(msg_buf, "正在寫入 "), label, 70);
- we_cancel = busy_alarm(1, msg_buf, NULL, 1);
- }
- else
-@@ -6180,7 +6180,7 @@
- we_cancel = 0;
-
- q_status_message1(SM_ORDER | SM_DING, 3, 5,
-- "Write to \"%s\" FAILED!!!", fcc);
-+ "寫入 \"%s\" 失敗!!!", fcc);
- dprint(1, (debugfile, "ERROR appending %s in \"%s\"",
- fcc, cntxt ? cntxt->context : "NULL"));
- return(0);
-@@ -6670,7 +6670,7 @@
- if((file_contents = (void *)so_get(FileStar, pa->filename,
- READ_ACCESS)) == NULL){
- q_status_message2(SM_ORDER | SM_DING, 3, 4,
-- "Error \"%s\", couldn't attach file \"%s\"",
-+ "錯誤 \"%s\",無法附加檔案 \"%s\"",
- error_description(errno), pa->filename);
- display_message('x');
- continue;
-@@ -7205,13 +7205,17 @@
- body->subtype = cpystr("octet-stream");
- }
-
-- /*
-- * Apply maximal encoding regardless of previous
-- * setting. This segment's either not text, or is
-- * unlikely to be readable with > 30% of the
-- * text encoded anyway, so we might as well save space...
-- */
-- new_encoding = ENCBINARY; /* > 30% 8 bit chars */
-+ if(body->type == TYPETEXT)
-+ /* Use ENC8BIT rather than ENCBINARY for TEXT */
-+ new_encoding = ENC8BIT;
-+ else
-+ /*
-+ * Apply maximal encoding regardless of previous
-+ * setting. This segment's either not text, or is
-+ * unlikely to be readable with > 30% of the
-+ * text encoded anyway, so we might as well save space...
-+ */
-+ new_encoding = ENCBINARY; /* > 30% 8 bit chars */
- }
- }
-
-@@ -7382,6 +7386,9 @@
- ps_global->VAR_CHAR_SET,
- encode_whole_header(field, header));
-
-+ if (!strcmp(field, "Subject"))
-+ value = text;
-+
- if(value && value == text){ /* no encoding was done, have to fold */
- int fold_by, len;
- char *actual_field;
-@@ -7835,7 +7842,7 @@
- break;
-
- default:
-- q_status_message1(SM_ORDER,3,7,"Unknown header type: %s",pf->name);
-+ q_status_message1(SM_ORDER,3,7,"未知的標頭形態:%s",pf->name);
- break;
- }
- }
-@@ -8156,7 +8163,8 @@
-
- switch (body->encoding) { /* all else needs filtering */
- case ENC8BIT: /* encode 8BIT into QUOTED-PRINTABLE */
-- gf_link_filter(gf_8bit_qp, NULL);
-+ if(F_OFF(F_ENABLE_8BIT, ps_global)) /* unless 8BIT enabled */
-+ gf_link_filter(gf_8bit_qp, NULL);
- break;
-
- case ENCBINARY: /* encode binary into BASE64 */
-@@ -8170,7 +8178,7 @@
-
- if(encode_error = gf_pipe(gc, l_putc)){ /* shove body part down pipe */
- q_status_message1(SM_ORDER | SM_DING, 3, 4,
-- "Encoding Error \"%s\"", encode_error);
-+ "編碼時發生錯誤 \"%s\"", encode_error);
- display_message('x');
- }
-
-@@ -8258,7 +8266,7 @@
- && !(so_puts(so, "Content-Transfer-Encoding: ")
- && so_puts(so, body_encodings[(body->encoding==ENCBINARY)
- ? ENCBASE64
-- : (body->encoding == ENC8BIT)
-+ : (body->encoding == ENC8BIT && F_OFF(F_ENABLE_8BIT, ps_global))
- ? ENCQUOTEDPRINTABLE
- : (body->encoding <= ENCMAX)
- ? body->encoding
-@@ -8924,7 +8932,7 @@
- || (forbid = pine_header_forbidden(name))){
- if(forbid)
- q_status_message1(SM_ORDER, 3, 3,
-- "Not allowed to change header \"%s\"", name);
-+ "不允許\改變標頭 \"%s\"", name);
-
- *t = save;
- continue;
-@@ -9070,7 +9078,7 @@
- if(ps_global->post){
- if(gripe)
- q_status_message(SM_ORDER|SM_DING, 3, 3,
-- "Can't post while posting!");
-+ "無法於正在刊登文章時再度刊登!");
- return(1);
- }
-
diff --git a/chinese/pine4/files/patch-bl b/chinese/pine4/files/patch-bl
deleted file mode 100644
index c546febae630..000000000000
--- a/chinese/pine4/files/patch-bl
+++ /dev/null
@@ -1,38 +0,0 @@
---- pine/signals.c.orig Wed Apr 21 08:25:18 1999
-+++ pine/signals.c Thu Oct 14 10:53:45 1999
-@@ -385,7 +385,7 @@
- ps_global->inbox_stream->rdonly = 1; /* and become read-only */
- mail_ping(ps_global->inbox_stream);
- q_status_message(SM_ASYNC, 3, 7,
-- "Another Pine is accessing Inbox. Session now Read-Only.");
-+ "另外一份 Pine 正在存取 Inbox。這個 session 進入唯讀狀態。");
- dprint(1, (debugfile, "** INBOX went read-only **\n\n"));
- }
-
-@@ -397,7 +397,7 @@
- ps_global->mail_stream->rdonly = 1; /* and become read-only */
- mail_ping(ps_global->mail_stream);
- q_status_message(SM_ASYNC, 3, 7,
-- "Another Pine is accessing folder. Session now Read-Only.");
-+ "另外一份 Pine 正在存取資料匣。這個 session 進入唯讀狀態。");
- dprint(1, (debugfile, "** secondary folder went read-only **\n\n"));
- }
- }
-@@ -535,7 +535,7 @@
- int retval = 1;
-
- dprint(9,(debugfile, "busy_alarm(%d, %s, %p, %d)\n",
-- seconds, msg ? msg : "Busy", pc_func, init_msg));
-+ seconds, msg ? msg : "請稍後", pc_func, init_msg));
-
- /*
- * If we're already busy'ing, and we don't have something special,
-@@ -559,7 +559,7 @@
- final_message = 1;
- }
- else{
-- strcpy(busy_message, "Busy");
-+ strcpy(busy_message, "請稍後");
- final_message = 0;
- }
-
diff --git a/chinese/pine4/files/patch-bm b/chinese/pine4/files/patch-bm
deleted file mode 100644
index 9900700c1630..000000000000
--- a/chinese/pine4/files/patch-bm
+++ /dev/null
@@ -1,40 +0,0 @@
---- pine/status.c.orig Thu Jul 8 07:42:17 1999
-+++ pine/status.c Thu Oct 14 10:53:45 1999
-@@ -72,7 +72,7 @@
- static struct key modal_message_keys[] =
- {NULL_MENU,
- NULL_MENU,
-- {"Ret","Finished",{MC_EXIT,2,{ctrl('m'),ctrl('j')}},KS_NONE},
-+ {"Ret","完畢",{MC_EXIT,2,{ctrl('m'),ctrl('j')}},KS_NONE},
- NULL_MENU,
- NULL_MENU,
- NULL_MENU,
-@@ -1022,8 +1022,8 @@
- * want_to's array passed to radio_buttions...
- */
- static ESCKEY_S yorn[] = {
-- {'y', 'y', "Y", "Yes"},
-- {'n', 'n', "N", "No"},
-+ {'y', 'y', "Y", "是"},
-+ {'n', 'n', "N", "否"},
- {-1, 0, NULL, NULL}
- };
-
-@@ -1232,7 +1232,7 @@
- memset(fkey_table, NO_OP_COMMAND, 12 * sizeof(int));
- if(help_text != NO_HELP){ /* if shown, always at position 0 */
- rb_keymenu.keys[0].name = "?";
-- rb_keymenu.keys[0].label = "Help";
-+ rb_keymenu.keys[0].label = "輔助說明";
- setbitn(0, bitmap);
- fkey_table[0] = ctrl('G');
- start++;
-@@ -1240,7 +1240,7 @@
-
- if(on_ctrl_C){ /* if shown, always at position 1 */
- rb_keymenu.keys[1].name = "^C";
-- rb_keymenu.keys[1].label = "Cancel";
-+ rb_keymenu.keys[1].label = "取消";
- setbitn(1, bitmap);
- fkey_table[1] = ctrl('C');
- start++;
diff --git a/chinese/pine4/files/patch-bn b/chinese/pine4/files/patch-bn
deleted file mode 100644
index 40313c775000..000000000000
--- a/chinese/pine4/files/patch-bn
+++ /dev/null
@@ -1,56 +0,0 @@
---- pine/takeaddr.c.orig Wed Oct 20 04:28:01 1999
-+++ pine/takeaddr.c Fri Nov 19 16:18:24 1999
-@@ -896,7 +896,7 @@
- return;
-
- take_to_addrbooks_cancel:
-- cancel_warning(NO_DING, "addition");
-+ cancel_warning(NO_DING, "新增");
- if(tas && *tas){
- restore_state(&((*tas)->state));
- (*tas)->pab = NULL;
-@@ -1395,7 +1395,7 @@
- break;
-
- case MC_EXIT: /* exit takeaddr screen */
-- cancel_warning(NO_DING, "addition");
-+ cancel_warning(NO_DING, "新增");
- ret = 1;
- done++;
- break;
-@@ -2872,7 +2872,7 @@
-
- switch(j){
- case 'x':
-- cancel_warning(NO_DING, "save");
-+ cancel_warning(NO_DING, "存檔");
- return;
-
- case 'e':
-@@ -2972,7 +2972,7 @@
-
- switch(i){
- case 'x':
-- cancel_warning(NO_DING, "export");
-+ cancel_warning(NO_DING, "匯出");
- return;
-
- case 'a':
-@@ -4947,7 +4947,7 @@
-
- switch(j){
- case 'x':
-- cancel_warning(NO_DING, "Save");
-+ cancel_warning(NO_DING, "存檔");
- break;
-
- case 'e':
-@@ -5165,7 +5165,7 @@
-
- switch(j){
- case 'x':
-- cancel_warning(NO_DING, "Export");
-+ cancel_warning(NO_DING, "匯出");
- break;
-
- case 't':
diff --git a/chinese/pine4/files/patch-bo b/chinese/pine4/files/patch-bo
deleted file mode 100644
index 9530a919ff12..000000000000
--- a/chinese/pine4/files/patch-bo
+++ /dev/null
@@ -1,65 +0,0 @@
---- build.orig Tue Nov 16 06:16:25 1999
-+++ build Fri Nov 19 16:18:24 1999
-@@ -80,8 +80,8 @@
- pine The Pine mailer. Once compiled this should work just fine on
- your system with no other files than this binary, and no
- modifications to your system. Optionally you may create two
-- configuration files, /usr/local/lib/pine.conf and
-- /usr/local/lib/pine.info. See the documentation for details.
-+ configuration files, /usr/local/etc/pine.conf and
-+ /usr/local/etc/pine.info. See the documentation for details.
-
- pico The standalone editor similar to the Pine message composer.
- This is a very simple straight forward text editor.
-@@ -279,11 +279,11 @@
-
- if [ -s c-client ] ; then rm -f c-client ; fi
- ln -s imap/c-client c-client
-- if [ -s mtest ] ; then rm -f mtest ; fi
-- ln -s imap/mtest mtest
-- if [ -s imapd ] ; then rm -f imapd ; fi
-- ln -s imap/imapd imapd
-- echo "Making c-client library, mtest and imapd"
-+# if [ -s mtest ] ; then rm -f mtest ; fi
-+# ln -s imap/mtest mtest
-+# if [ -s imapd ] ; then rm -f imapd ; fi
-+# ln -s imap/imapd imapd
-+ echo "Making c-client library"
- eval echo make "$makeargs" "$K1" "$K2" $ccltarg
- cd $PHOME/imap
- eval make "$makeargs" "$K1" "$K2" $ccltarg
-@@ -304,17 +304,17 @@
- cd $PHOME/bin
- rm -f pine mtest imapd pico pilot
- if [ -s ../pine/pine ] ; then ln ../pine/pine pine ; fi
-- if [ -s ../mtest/mtest ] ; then ln ../mtest/mtest mtest ; fi
-- if [ -s ../imapd/imapd ] ; then ln ../imapd/imapd imapd ; fi
-+# if [ -s ../mtest/mtest ] ; then ln ../mtest/mtest mtest ; fi
-+# if [ -s ../imapd/imapd ] ; then ln ../imapd/imapd imapd ; fi
- if [ -s ../pico/pico ] ; then ln ../pico/pico pico ; fi
- if [ -s ../pico/pilot ] ; then ln ../pico/pilot pilot ; fi
- cd $PHOME
- echo ''
- echo "Links to executables are in bin directory:"
-- size bin/pine bin/mtest bin/imapd bin/pico bin/pilot
-+ size bin/pine bin/pico bin/pilot
- case $maketarg in
- mnt) echo "Fixing stacksizes ..."
-- fixstk 64K bin/pine bin/pico bin/imapd bin/mtest bin/pilot
-+ fixstk 64K bin/pine bin/pico bin/pilot
- esac
- echo "Done"
- ;;
-@@ -326,10 +326,10 @@
- make clean
- echo "Cleaning Pine"
- cd $PHOME/pine
-- make -f makefile.ult clean
-+ make -f makefile.bsf clean
- echo "Cleaning pico"
- cd $PHOME/pico
-- make $makeargs -f makefile.ult clean
-+ make $makeargs -f makefile.bsf clean
- echo "Done"
- cd $PHOME
- ;;
diff --git a/chinese/pine4/files/patch-bp b/chinese/pine4/files/patch-bp
deleted file mode 100644
index 1f52e2192fe4..000000000000
--- a/chinese/pine4/files/patch-bp
+++ /dev/null
@@ -1,17 +0,0 @@
---- doc/pine.1.orig Wed Oct 13 02:29:13 1999
-+++ doc/pine.1 Thu Oct 14 10:53:45 1999
-@@ -296,11 +296,11 @@
- .br
- /etc/mime.types System-wide file ext. to MIME type mapping
- .br
--/usr/local/lib/pine.info Local pointer to system administrator.
-+@@PREFIX@@/etc/pine.info Local pointer to system administrator.
- .br
--/usr/local/lib/pine.conf System-wide configuration file.
-+@@PREFIX@@/etc/pine.conf System-wide configuration file.
- .br
--/usr/local/lib/pine.conf.fixed Non-overridable configuration file.
-+@@PREFIX@@/etc/pine.conf.fixed Non-overridable configuration file.
- .br
- /tmp/.\\usr\\spool\\mail\\xxxx Per-folder mailbox lock files.
- .br
diff --git a/chinese/pine4/files/patch-br b/chinese/pine4/files/patch-br
deleted file mode 100644
index 43139089e326..000000000000
--- a/chinese/pine4/files/patch-br
+++ /dev/null
@@ -1,57 +0,0 @@
---- pine/pine.hlp.orig Thu Nov 18 02:05:25 1999
-+++ pine/pine.hlp Fri Nov 19 16:18:25 1999
-@@ -492,9 +492,9 @@
-
- executable &lt;Unix search path&gt;/pine
- persnl cfg ~/.pinerc
-- global cfg /usr/local/lib/pine.conf
-- fixed cfg /usr/local/lib/pine.conf.fixed
-- local help /usr/local/lib/pine.info
-+ global cfg @@PREFIX@@/etc/pine.conf
-+ fixed cfg @@PREFIX@@/etc/pine.conf.fixed
-+ local help @@PREFIX@@/etc/pine.info
-
- interrupted ~/.pine-interrupted-mail
- debug ~/.pine-debugN
-@@ -507,7 +507,7 @@
- sentmail# ~/mail/sent-mail
- mailcap# ~/.mailcap + /etc/mailcap
- + /usr/etc/mailcap + /usr/local/etc/mailcap
-- mimetypes# ~/.mime.types + /etc/mime.types + /usr/local/lib/mime.types
-+ mimetypes# ~/.mime.types + /etc/mime.types + @@PREFIX@@/etc/mime.types
-
- news-spool varies across Unix flavors, e.g. /usr/spool/news or /var/news
- active-news varies across Unix flavors, e.g. /usr/lib/news/active
-@@ -932,9 +932,9 @@
- this link now to send a message to it:<BR>
- <A HREF="X-Pine-Gripe:_LOCAL_ADDRESS_?local"><!--#echo var="_LOCAL_FULLNAME_"--></A><P>
- <!--chtml endif-->
--<!--chtml if [ -r /usr/local/lib/pine.info ]-->
-+<!--chtml if [ -r @@PREFIX@@/etc/pine.info ]-->
- <HR WIDTH="75%">Local Support Contacts:<P>
--<!--#include file="/usr/local/lib/pine.info"-->
-+<!--#include file="@@PREFIX@@/etc/pine.info"-->
- <HR WIDTH="75%">
- <!--chtml endif-->
- <P>
-@@ -1022,7 +1022,7 @@
- <OL>
- <LI> <A HREF="#intro">Introduction</A>
- <LI> <A HREF="#pine_help">Pine Help</A>
--<!--chtml if [ -r /usr/local/lib/pine.info ]-->
-+<!--chtml if [ -r @@PREFIX@@/etc/pine.info ]-->
- <LI> <A HREF="#local_support">Local Support Contacts</A>
- <!--chtml endif-->
- <LI> <A HREF="#giving_cmds">Giving Commands in Pine</A>
-@@ -1135,9 +1135,9 @@
- at your site.)
-
-
--<!--chtml if [ -r /usr/local/lib/pine.info ]-->
-+<!--chtml if [ -r @@PREFIX@@/etc/pine.info ]-->
- <H2><A NAME="local_support">Local Support Contacts</A></H2>
--<!--#include file="/usr/local/lib/pine.info"-->
-+<!--#include file="@@PREFIX@@/etc/pine.info"-->
- <!--chtml endif-->
-
- <H2><A NAME="giving_cmds">Giving Commands in Pine</A></H2>
diff --git a/chinese/pine4/files/patch-bs b/chinese/pine4/files/patch-bs
deleted file mode 100644
index 5e7483470390..000000000000
--- a/chinese/pine4/files/patch-bs
+++ /dev/null
@@ -1,25 +0,0 @@
---- pine/mailcap.c.orig Wed Apr 21 08:13:38 1999
-+++ pine/mailcap.c Thu Oct 14 10:53:45 1999
-@@ -61,7 +61,7 @@
-
- Mime types makes mime assign attachment types according
- to file name extensions found in a system wide file
-- ``/usr/local/lib/mime.types'' and a user specific file
-+ ``@@PREFIX@@/etc/mime.types'' and a user specific file
- ``~/.mime.types'' . These files specify file extensions
- that will be connected to a mime type.
- *******************************************************
-@@ -96,11 +96,11 @@
- #define MC_PATH_SEPARATOR ':'
- #define MC_USER_FILE NULL
- #define MC_STDPATH \
-- ".mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"
-+ ".mailcap:/etc/mailcap:/usr/etc/mailcap:@@PREFIX@@/etc/mailcap"
- #define MT_PATH_SEPARATOR ':'
- #define MT_USER_FILE NULL
- #define MT_STDPATH \
-- ".mime.types:/etc/mime.types:/usr/local/lib/mime.types"
-+ ".mime.types:/etc/mime.types:@@PREFIX@@/etc/mime.types"
- #endif /* !DOS */
-
- #ifdef _WINDOWS
diff --git a/chinese/pine4/files/patch-bt b/chinese/pine4/files/patch-bt
deleted file mode 100644
index 0021207cd5b8..000000000000
--- a/chinese/pine4/files/patch-bt
+++ /dev/null
@@ -1,27 +0,0 @@
---- pine/osdep/expnfldr.orig Tue Dec 12 05:10:01 1995
-+++ pine/osdep/expnfldr Thu Oct 14 10:53:45 1999
-@@ -32,13 +32,13 @@
- } else if(ps_global->restricted
- && (strindex("./~", temp_filename[0]) != NULL
- || srchstr(temp_filename,"/../"))){
-- q_status_message(SM_ORDER, 0, 3, "Can only open local folders");
-+ q_status_message(SM_ORDER, 0, 3, "僅能開啟本地的檔案匣");
- return(0);
- } else if(temp_filename[0] == '*') {
- strcpy(filename, temp_filename);
- } else if(ps_global->VAR_OPER_DIR && srchstr(temp_filename,"..")){
- q_status_message(SM_ORDER, 0, 3,
-- "\"..\" not allowed in folder name");
-+ "檔案匣名稱中不允許\有 \"..\"");
- return(0);
- } else if (temp_filename[0] == '~'){
- if(fnexpand(temp_filename, sizeof(temp_filename)) == NULL) {
-@@ -46,7 +46,7 @@
- if(p != NULL)
- *p = '\0';
- q_status_message1(SM_ORDER, 3, 3,
-- "Error expanding folder name: \"%s\" unknown user",
-+ "檔案匣展開錯誤:\"%s\" 未知的使用者",
- temp_filename);
- return(0);
- }
diff --git a/chinese/pine4/files/patch-bu b/chinese/pine4/files/patch-bu
deleted file mode 100644
index 0b48520c36a4..000000000000
--- a/chinese/pine4/files/patch-bu
+++ /dev/null
@@ -1,21 +0,0 @@
---- pine/osdep/execview.orig Fri Nov 13 06:51:20 1998
-+++ pine/osdep/execview Thu Oct 14 10:53:45 1999
-@@ -45,14 +45,14 @@
- if(syspipe = open_system_pipe(command, r_file_h, NULL, mode, 0)){
- close_system_pipe(&syspipe);
- if(needsterminal == 1)
-- q_status_message(SM_ORDER, 0, 4, "VIEWER command completed");
-+ q_status_message(SM_ORDER, 0, 4, "VIEWER 命令完成");
- else if(needsterminal == 2)
-- display_output_file(result_file, "VIEWER", " command result", 1);
-+ display_output_file(result_file, "VIEWER", " 命令結果", 1);
- else
-- display_output_file(result_file, "VIEWER", " command launched", 1);
-+ display_output_file(result_file, "VIEWER", " 命令已啟動", 1);
- }
- else
-- q_status_message1(SM_ORDER, 3, 4, "Cannot spawn command : %s", cmd);
-+ q_status_message1(SM_ORDER, 3, 4, "無法起始命令:%s", cmd);
-
- fs_give((void **)&command);
- if(result_file)
diff --git a/chinese/pine4/files/patch-bv b/chinese/pine4/files/patch-bv
deleted file mode 100644
index f64c90e0f9f3..000000000000
--- a/chinese/pine4/files/patch-bv
+++ /dev/null
@@ -1,90 +0,0 @@
---- pine/osdep/print.orig Fri Nov 13 06:51:20 1998
-+++ pine/osdep/print Thu Oct 14 10:53:45 1999
-@@ -39,12 +39,12 @@
- HelpType help;
- char **list;
- static ESCKEY_S ekey[] = {
-- {'y', 'y', "Y", "Yes"},
-- {'n', 'n', "N", "No"},
-- {ctrl('P'), 10, "^P", "Prev Printer"},
-- {ctrl('N'), 11, "^N", "Next Printer"},
-+ {'y', 'y', "Y", "是"},
-+ {'n', 'n', "N", "否"},
-+ {ctrl('P'), 10, "^P", "前一印表機"},
-+ {ctrl('N'), 11, "^N", "下一印表機"},
- {-2, 0, NULL, NULL},
-- {'c', 'c', "C", "CustomPrint"},
-+ {'c', 'c', "C", "自定印表機"},
- {KEY_UP, 10, "", ""},
- {KEY_DOWN, 11, "", ""},
- {-1, 0, NULL, NULL}};
-@@ -61,7 +61,7 @@
-
- if(ps_global->VAR_PRINTER == NULL){
- q_status_message(SM_ORDER | SM_DING, 3, 5,
-- "No printer has been chosen. Use SETUP on main menu to make choice.");
-+ "尚未選擇印表機。請用主選單中的設定來選擇。");
- return(-1);
- }
-
-@@ -138,7 +138,7 @@
- switch(cmd){
- case 'y':
- q_status_message1(SM_ORDER, 0, 9,
-- "Printing with command \"%s\"", command);
-+ "正以 \"%s\" 命令列印中", command);
- done++;
- break;
-
-@@ -175,7 +175,7 @@
- if(trailer)
- fs_give((void **)&trailer);
-
-- sprintf(prompt, "Enter custom command : ");
-+ sprintf(prompt, "輸入自定的命令:");
- command[0] = '\0';
- rc = 1;
- help = NO_HELP;
-@@ -195,13 +195,13 @@
- removing_trailing_white_space(command);
- removing_leading_white_space(command);
- q_status_message1(SM_ORDER, 0, 9,
-- "Printing with command \"%s\"", command);
-+ "正以 \"%s\" 命令列印中", command);
- }
- }
- }
-
- if(cmd == 'x' || cmd == 'n'){
-- q_status_message(SM_ORDER, 0, 2, "Print cancelled");
-+ q_status_message(SM_ORDER, 0, 2, "取消列印");
- if(init)
- fs_give((void **)&init);
-
-@@ -221,7 +221,7 @@
- || strucmp(command, aname) == 0){
- /*----------- Printer attached to ansi device ---------*/
- q_status_message(SM_ORDER, 0, 9,
-- "Printing to attached desktop printer...");
-+ "正列印至桌上印表機...");
- display_message('x');
- xonxoff_proc(1); /* make sure XON/XOFF used */
- crlf_proc(1); /* AND LF->CR xlation */
-@@ -252,7 +252,7 @@
- else{
- fs_give((void **)&ps_global->print->result);
- q_status_message1(SM_ORDER | SM_DING, 3, 4,
-- "Error opening printer: %s",
-+ "印表機開啟錯誤:%s",
- error_description(errno));
- dprint(2, (debugfile, "Error popening printer \"%s\"\n",
- error_description(errno)));
-@@ -311,7 +311,7 @@
-
- fs_give((void **)&ps_global->print);
-
-- q_status_message(SM_ASYNC, 0, 3, "Print command completed");
-+ q_status_message(SM_ASYNC, 0, 3, "列印指令完成");
- display_message('x');
- }
-
diff --git a/chinese/pine4/files/patch-bw b/chinese/pine4/files/patch-bw
deleted file mode 100644
index ad6954b718b2..000000000000
--- a/chinese/pine4/files/patch-bw
+++ /dev/null
@@ -1,61 +0,0 @@
---- pine/osdep/termin.gen.orig Tue Oct 5 06:45:41 1999
-+++ pine/osdep/termin.gen Thu Oct 14 10:53:45 1999
-@@ -38,21 +38,19 @@
- * we're in again...
- */
- if(ps_global->expunge_count){
-- q_status_message3(SM_ORDER, 3, 3,
-- "%s message%s expunged from folder \"%s\"",
-- long2string(ps_global->expunge_count),
-- plural(ps_global->expunge_count),
-- pretty_fn(ps_global->cur_folder));
-+ q_status_message2(SM_ORDER, 3, 3,
-+ "自資料匣 \"%s\" 中刪除 %s 封信件",
-+ pretty_fn(ps_global->cur_folder),
-+ long2string(ps_global->expunge_count));
- ps_global->expunge_count = 0L;
- display_message('x');
- }
-
- if(ps_global->inbox_expunge_count){
-- q_status_message3(SM_ORDER, 3, 3,
-- "%s message%s expunged from folder \"%s\"",
-- long2string(ps_global->inbox_expunge_count),
-- plural(ps_global->inbox_expunge_count),
-- pretty_fn(ps_global->inbox_name));
-+ q_status_message2(SM_ORDER, 3, 3,
-+ "自資料匣 \"%s\" 中刪除 %s 封信件",
-+ pretty_fn(ps_global->inbox_name),
-+ long2string(ps_global->inbox_expunge_count));
- ps_global->inbox_expunge_count = 0L;
- display_message('x');
- }
-@@ -77,7 +75,7 @@
- int winner = 0;
-
- if(ps_global->post->status < 0){
-- q_status_message(SM_ORDER | SM_DING, 3, 3, "Abysmal failure!");
-+ q_status_message(SM_ORDER | SM_DING, 3, 3, "徹底失敗!");
- }
- else{
- (void) pine_send_status(ps_global->post->status,
-@@ -90,7 +88,7 @@
-
- if(!winner)
- q_status_message(SM_ORDER, 0, 3,
-- "Re-send via \"Compose\" then \"Yes\" to \"Continue INTERRUPTED?\"");
-+ "由 \"編修\" 再回答 \"是\" 來繼續重送 \"上次中斷的信件?\"");
-
- if(ps_global->post->fcc)
- fs_give((void **) &ps_global->post->fcc);
-@@ -121,8 +119,8 @@
-
-
- static struct key oe_keys[] =
-- {{"^G","Help",KS_SCREENHELP}, {"^C","Cancel",KS_NONE},
-- {"^T","xxx",KS_NONE}, {"Ret","Accept",KS_NONE},
-+ {{"^G","輔助說明",KS_SCREENHELP}, {"^C","取消",KS_NONE},
-+ {"^T","xxx",KS_NONE}, {"Ret","同意",KS_NONE},
- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
- {NULL,NULL,KS_NONE}, {NULL,NULL,KS_NONE},
diff --git a/chinese/pine4/files/patch-bx b/chinese/pine4/files/patch-bx
deleted file mode 100644
index 34d145354710..000000000000
--- a/chinese/pine4/files/patch-bx
+++ /dev/null
@@ -1,35 +0,0 @@
---- pico/makefile.bsf.orig Wed Aug 19 01:57:03 1998
-+++ pico/makefile.bsf Sun Apr 2 12:19:40 2000
-@@ -34,10 +34,10 @@
- MAKE= make
- OPTIMIZE= # -O
- PROFILE= # -pg
--DEBUG= -DDEBUG # -g
-+###DEBUG= -DDEBUG # -g
-
- STDCFLAGS= -DBSDI -DBSDI2 -DPOSIX -DJOB_CONTROL -DMOUSE
--CFLAGS= $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(STDCFLAGS)
-+CFLAGS+= $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(STDCFLAGS)
-
- # switches for library building
- LIBCMD= ar
---- pine/makefile.bsf.orig Fri Aug 28 00:49:51 1998
-+++ pine/makefile.bsf Sun Apr 2 12:20:02 2000
-@@ -48,7 +48,7 @@
- MAKE= make
- OPTIMIZE= # -O
- PROFILE= # -pg
--DEBUG= -DDEBUG # -g
-+#DEBUG= -DDEBUG # -g
-
- CCLIENTDIR= ../c-client
- PICODIR= ../pico
-@@ -67,7 +67,7 @@
- `cat $(CCLIENTDIR)/LDFLAGS`
-
- STDCFLAGS= -DBSDI -DSYSTYPE=\"BSF\" -DMOUSE
--CFLAGS= $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(LDAPCFLAGS) \
-+CFLAGS+= $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(LDAPCFLAGS) \
- $(STDCFLAGS)
-
- OFILES= addrbook.o adrbkcmd.o adrbklib.o args.o bldaddr.o context.o filter.o \
diff --git a/chinese/pine4/files/patch-bz b/chinese/pine4/files/patch-bz
deleted file mode 100644
index 84b342953976..000000000000
--- a/chinese/pine4/files/patch-bz
+++ /dev/null
@@ -1,20 +0,0 @@
-*** pine/newmail.c.orig Mon Sep 25 15:07:01 2000
---- pine/newmail.c Tue Sep 26 15:34:24 2000
-***************
-*** 342,348 ****
- e->from->personal, NULL),
- ps_global->ttyo->screen_cols);
- else
-! sprintf(from + ((number > 1L) ? 18 : 6), "%s%s%s",
- e->from->mailbox,
- e->from->host ? "@" : "",
- e->from->host ? e->from->host : "");
---- 342,349 ----
- e->from->personal, NULL),
- ps_global->ttyo->screen_cols);
- else
-! snprintf(from + ((number > 1L) ? 18 : 6), sizeof(from) - strlen(from),
-! "%s%s%s",
- e->from->mailbox,
- e->from->host ? "@" : "",
- e->from->host ? e->from->host : "");
diff --git a/chinese/pine4/files/pgpdecode b/chinese/pine4/files/pgpdecode
index 40625939c37c..1849ed714a5f 100644
--- a/chinese/pine4/files/pgpdecode
+++ b/chinese/pine4/files/pgpdecode
@@ -32,7 +32,7 @@ fi
trap "rm -f $STDOUT $STDERR; exit" 0 1 2 15
-if [ -x /usr/local/bin/pgpv ]
+if [ -x @@PREFIX@@/bin/pgpv ]
then
pgpv 2>&1 > $STDOUT |tee $STDERR > /dev/tty
else
diff --git a/chinese/pine4/files/pgpencrypt b/chinese/pine4/files/pgpencrypt
index 3baa1d2739eb..c1d821479a0c 100644
--- a/chinese/pine4/files/pgpencrypt
+++ b/chinese/pine4/files/pgpencrypt
@@ -3,7 +3,7 @@
# 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de>
# Wed 16 Sep 1998 23:46:43 WST Anthony Di Pietro <anthony@dino.omen.com.au>
# Modified to work with both PGP v2 and PGP v5.
-if [ -x /usr/local/bin/pgpe ]
+if [ -x @@PREFIX@@/bin/pgpe ]
then
pgpe -s -a -r $*
else
diff --git a/chinese/pine4/files/pgpsign b/chinese/pine4/files/pgpsign
index 6eff395c89c0..e938b0b6d63d 100644
--- a/chinese/pine4/files/pgpsign
+++ b/chinese/pine4/files/pgpsign
@@ -3,7 +3,7 @@
# 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de>
# Wed 16 Sep 1998 23:48:51 WST Anthony Di Pietro <anthony@dino.omen.com.au>
# Modified to work with both PGP v2 and PGP v5.
-if [ -x /usr/local/bin/pgps ]
+if [ -x @@PREFIX@@/bin/pgps ]
then
pgps -a -t
else
diff --git a/chinese/pine4/files/pine.conf b/chinese/pine4/files/pine.conf
index ef3a988472d9..5d41f3ef8b9e 100644
--- a/chinese/pine4/files/pine.conf
+++ b/chinese/pine4/files/pine.conf
@@ -32,7 +32,7 @@ feature-list=enable-8bit-esmtp-negotiation,
# Reflects capabilities of the display you have. Default: US-ASCII.
# Typical alternatives include ISO-8859-x, (x is a number between 1 and 9).
-character-set=ISO-8859-1
+character-set=big5
#
# needed for qmail 1.01 (also compatible with sendmail)
diff --git a/chinese/pine4/pkg-descr b/chinese/pine4/pkg-descr
index 2aa7607b60d6..2af1b5d43fc1 100644
--- a/chinese/pine4/pkg-descr
+++ b/chinese/pine4/pkg-descr
@@ -20,14 +20,3 @@ dot.pinerc.sample is an example configuration file(include PGP support) can be
put into your home directory as .pinerc.
Pine on WWW: http://www.washington.edu/pine/
-
-This version of zh-pine ports was based on pine4(pine 4.04) ports of FreeBSD,
-which is maintained by:
-
- - Adrian Penisoara (Ady)
- pine@freebsd.ady.ro
-
-zh-pine 4.21 ports for FreeBSD is maintained by:
-
- - Tai-hwa Liang
- avatar@www.mmlab.cse.yzu.edu.tw