[siptesttool commit] r302 - in trunk: . src zh_CN

5 views
Skip to first unread message

codesite...@google.com

unread,
Sep 11, 2007, 11:56:39 PM9/11/07
to siptest...@googlegroups.com
Author: ooopond
Date: Tue Sep 11 20:52:57 2007
New Revision: 302

Added:
trunk/src/mycanvas.cpp
trunk/src/mycanvas.h
Modified:
trunk/siptesttool.dsp
trunk/src/OsipProcess.cpp
trunk/src/OsipProcess.h
trunk/src/ScenariosControl.cpp
trunk/src/ScenariosControl.h
trunk/src/ScenariosControlPanel.h
trunk/src/ScenariosManager.cpp
trunk/src/TraceForm.cpp
trunk/src/TraceForm.h
trunk/src/app.h
trunk/zh_CN/SipTestTool.mo
trunk/zh_CN/SipTestTool.po

Log:
add message flow

Modified: trunk/siptesttool.dsp
==============================================================================
--- trunk/siptesttool.dsp (original)
+++ trunk/siptesttool.dsp Tue Sep 11 20:52:57 2007
@@ -70,6 +70,10 @@
# End Source File
# Begin Source File

+SOURCE=.\src\mycanvas.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\src\OsipProcess.cpp
# End Source File
# Begin Source File
@@ -115,6 +119,14 @@
# Begin Source File

SOURCE=.\src\app.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\mycanvas.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\src\mycanvas.h
# End Source File
# Begin Source File

Modified: trunk/src/OsipProcess.cpp
==============================================================================
--- trunk/src/OsipProcess.cpp (original)
+++ trunk/src/OsipProcess.cpp Tue Sep 11 20:52:57 2007
@@ -15,6 +15,22 @@
static wxMutex s_mutexProtectingGlobalStitMap;
StrLongHash GlobalRcvMsgStatistic,GlobalSntMsgStatistic;

+int GetSipMsgName(osip_message_t *osip,char *sName)
+{
+ if(NULL == sName)
+ return -1;
+
+ if(NULL == osip)
+ return -1;
+
+ if(MSG_IS_RESPONSE(osip))
+ sprintf(sName,"%d(%s)",osip->status_code,osip->cseq->method);
+ else
+ strcpy(sName,osip->sip_method);
+
+ return 0;
+}
+
void ClearGlobalStat(){
wxMutexLocker lock(s_mutexProtectingGlobalStitMap);
GlobalRcvMsgStatistic.clear();
@@ -299,7 +315,7 @@
address.sin_addr.s_addr = inet_addr(inet_ntoa( *( struct in_addr*)( hostp -> h_addr_list[0])));

wxString MsgDesc=_("Send Message");
- int TraceLevel=TL_SIP_MESSAGE;
+
if (TermIns) {
Uid=TermIns->Uid;
}
@@ -327,7 +343,12 @@
TermIns->pCallInfo->LogString(wxString::Format(wxString(wxT("[%s %d]"))+_("%s [Total Len:%d]:\n%s"),STT_LStr(host), port, MsgDesc.c_str(),msgLen, STT_LStr(msgP)));
}

- STT_TRACE(Uid,TraceLevel, wxString::Format(wxString(wxT("[%s %d]"))+_("%s [Total Len:%d]:\n%s"),STT_LStr(host), port, MsgDesc.c_str(),msgLen, STT_LStr(msgP)));
+ char sName[16]={0};
+ GetSipMsgName(sip,sName);
+
+ STT_TRACE(Uid,TL_SIP_MESSAGE, wxString::Format(wxT("[%d,%s:%d,%s,%d]:\n%s"),STT_MSG_OUTGOING,STT_LStr(host), port,STT_LStr(sName),msgLen, STT_LStr(msgP)));
+
+ /*STT_TRACE(Uid,TraceLevel, wxString::Format(wxString(wxT("[%s %d]"))+_("%s [Total Len:%d]:\n%s"),STT_LStr(host), port, MsgDesc.c_str(),msgLen, STT_LStr(msgP)));*/


wxMutexLocker lock(s_mutexProtectingSocked);
@@ -532,7 +553,7 @@
#define MAX_SIP_MSG_BUFFER 10000

//Because of Share bad data between Different thread, the design need to change,so backup it first.
-void ProcessSipBuffer(char*msg,int n/*,int UdpSocked, sockaddr*cliaddr,int len*/){
+void ProcessSipBuffer(char*msg,int n,sockaddr*cliaddr/*,int UdpSocked, sockaddr*cliaddr,int len*/){
osip_event_t *sipevent;
if (n>=MAX_SIP_MSG_BUFFER) n=MAX_SIP_MSG_BUFFER-1;
if (n==0) return;
@@ -575,7 +596,16 @@
if (TermInst){
TermInst->pCallInfo->LogString(wxString::Format(_("Recv Message [Total Len:%d]:\n%s"),n, STT_LStr(msg)));
}
- STT_TRACE(Uid,TL_SIP_MESSAGE,wxString::Format(_("Recv Message [Total Len:%d]:\n%s"),n, STT_LStr(msg)));
+
+ char sName[16]={0};
+ GetSipMsgName(sipevent->sip,sName);
+
+ wxString saddr(inet_ntoa(((struct sockaddr_in*)cliaddr)->sin_addr),wxConvUTF8);
+ saddr <<wxT(":")<< ntohs(((struct sockaddr_in*)cliaddr)->sin_port);
+ STT_TRACE(Uid,TL_MESSAGE,saddr);
+
+ STT_TRACE(Uid,TL_SIP_MESSAGE,wxString::Format(wxT("[%d,%s,%s,%d]:\n%s"),STT_MSG_INCOMMING,saddr.c_str(),STT_LStr(sName),n,STT_LStr(msg)));
+
if((status = osip_find_transaction_and_add_event(wxGetApp().osip,sipevent)) != 0){
if(MSG_IS_REQUEST(sipevent->sip)){
if (MSG_IS_ACK(sipevent->sip)){
@@ -618,7 +648,7 @@
OnRecvOsipMsg(0, NULL, sipevent->sip);
}
else{
- STT_TRACE(Uid,TL_SIP_MESSAGE,_("Maybe Later Response Come!!"));
+ STT_TRACE(Uid,TL_MESSAGE,_("Maybe Later Response Come!!"));
}
osip_event_free(sipevent);
}
@@ -626,7 +656,7 @@
}
else{
DoRecvMsgStatistic(sipevent->sip, msg,n,_("Junk"));
- STT_TRACE(-1,TL_SIP_MESSAGE,_("junk message recvd, throwed it up!"));
+ STT_TRACE(-1,TL_MESSAGE,_("junk message recvd, throwed it up!"));
STT_TRACE(-1,TL_SIP_MESSAGE,wxString::Format(_("Recv Message [Total Len:%d]:\n%s"),n, STT_LStr(msg)));
osip_event_free(sipevent);
}
@@ -749,7 +779,7 @@
if (result>0){
if(FD_ISSET(UdpSocked,&readfds)){
char msg[MAX_SIP_MSG_BUFFER];
- struct sockaddr_in cliaddr;
+ struct sockaddr cliaddr;
int n;
socklen_t len=sizeof(cliaddr);

@@ -762,7 +792,7 @@
}
}
else{
- wxGetApp().sipQueue.push_back(new SipRawMsg(msg,n));
+ wxGetApp().sipQueue.push_back(new SipRawMsg(msg,n,cliaddr));
//ProcessSipBuffer(msg,n/*,UdpSocked,(sockaddr*)&cliaddr,len*/);
}
}
@@ -770,7 +800,7 @@
for (int i=0;i<=len;i++){
if(FD_ISSET(RoundSocks[i],&readfds)){
char msg[MAX_SIP_MSG_BUFFER];
- struct sockaddr_in cliaddr;
+ struct sockaddr cliaddr;
int n;
socklen_t len=sizeof(cliaddr);

@@ -783,7 +813,7 @@
}
}
else{
- wxGetApp().sipQueue.push_back(new SipRawMsg(msg,n));
+ wxGetApp().sipQueue.push_back(new SipRawMsg(msg,n,cliaddr));
//ProcessSipBuffer(msg,n/*,ExtUdpSocks[i],(sockaddr*)&cliaddr,len*/);
}
}

Modified: trunk/src/OsipProcess.h
==============================================================================
--- trunk/src/OsipProcess.h (original)
+++ trunk/src/OsipProcess.h Tue Sep 11 20:52:57 2007
@@ -1,7 +1,20 @@
+/**
+ * @file 协议栈接口文件
+ *
+ * 协议栈接口文件
+ *
+ * @author wq1...@gmail.com
+ */
+
#ifndef __OSIP_PROCESS_H__
#define __OSIP_PROCESS_H__

+#include "wx/wx.h"
+#include <osip2/osip.h>
+#include <osip2/osip_dialog.h>
+
#ifdef __WIN32__
+ #include <winsock2.h>
typedef int socklen_t;
#else
#include <sys/time.h>
@@ -16,17 +29,21 @@
//Commit to diable the osip trace
//#define ENABLE_TRACE

-#ifdef __WIN32__
-#include <winsock2.h>
-#endif
-
-#include <osip2/osip.h>
-#include <osip2/osip_dialog.h>
-#include <wx/wx.h>
-
#define MAX_EX_SOCK_NUM MAX_TERM_NUM // ((FD_SETSIZE-1)>MAX_TERM_NUM?MAX_TERM_NUM:(FD_SETSIZE-1))
bool InitOsipSendSock(void);
void SetCallBacks(osip_t *osip);
+
+/**
+ * @defgroup NetwordRecvModule 网络接收模块
+
+这个模块所作的事情是循环的从网络接口中接收Sip文本消息,调用协议栈的解码函数将Sip请求转换成结构,再根据
+结构中具体的某个域的值决定这个Sip消息的目的用户(终端编号),然后根据消息类型的不同,将收到的Sip事件放入
+协议栈的状态机中或者调用应用程序的DisPatchEvt方法将其通知给某个特定的终端实例.
+
+\sa OsipRecvThread
+\sa MyApp::DisPatchEvt(int, SttEvt*)
+
+*/

class OsipRecvThread: public wxThread
{

Modified: trunk/src/ScenariosControl.cpp
==============================================================================
--- trunk/src/ScenariosControl.cpp (original)
+++ trunk/src/ScenariosControl.cpp Tue Sep 11 20:52:57 2007
@@ -511,7 +511,7 @@
ProcessSttEvt(evt,TermInst);
}

-extern void ProcessSipBuffer(char*msg,int n/*,int UdpSocked, sockaddr*cliaddr,int len*/);
+extern void ProcessSipBuffer(char*msg,int n,sockaddr*cliaddr/*,int UdpSocked, sockaddr*cliaddr,int len*/);
void *ScenarioControlThread::Entry(){
#define MAX_SIP_RAW_PROCESS_NUM 5
#define MAX_PROCESS_NUM_BEFORE_POLL 10
@@ -542,7 +542,7 @@
for (int i=0;i<MAX_SIP_RAW_PROCESS_NUM;i++){
SipRawMsg *evt=wxGetApp().sipQueue.pop();
if (evt){
- ProcessSipBuffer(evt->buf,evt->len);
+ ProcessSipBuffer(evt->buf,evt->len,&evt->from);
delete(evt);
}
else{

Modified: trunk/src/ScenariosControl.h
==============================================================================
--- trunk/src/ScenariosControl.h (original)
+++ trunk/src/ScenariosControl.h Tue Sep 11 20:52:57 2007
@@ -1,423 +1,419 @@
-#ifndef __SCENARIOS_CONTROL_H__
-#define __SCENARIOS_CONTROL_H__
-
-#include "ScenariosForm.h"
-#include "OsipProcess.h"
-
-typedef unsigned char U8;
-
-void DumpMsgKeyField(int Uid, osip_message_t *pomt);
-
-enum{
- STTEVT_BAD_EVENT=0,
- STTEVT_OSIP_EVENT,
- STTEVT_OSIP_TIMEOUT,
- STTEVT_TIMEROUT_EVENT,
- STTEVT_CASE_START,
- STTEVT_TERM_REGSTATE_CHANGE,
- STTEVT_SCEARIO_FINISH,
- STTEVT_CASE_FINISH,
-};
-
-class SttEvt{
-public:
- SttEvt(int et){EventType = et; Param3=NULL; Param4=NULL;};
- SttEvt(int type, osip_transaction_t *pott,osip_message_t *pomt,int t=STTEVT_OSIP_EVENT){
- EventType=t;
- Param1=type;
- Param3=pott;
- Param4=pomt;
- };
- SttEvt(int Uid,wxString name,int t=STTEVT_TIMEROUT_EVENT){
- EventType=t;
- StrParam1 = name;
- Param1=Uid;
- Param3=NULL; Param4=NULL;
- };
- SttEvt(int Uid,int t=STTEVT_CASE_START){
- EventType=t;
- Param1=Uid;
- Param3=NULL; Param4=NULL;
- };
- ~SttEvt(){
- if (GetEvtType() == STTEVT_OSIP_EVENT){
- osip_message_free(GetOsipMsgPtr());
- }
- };
- int GetEvtType(){return EventType;};
- void *GetPointer(){return Param3;};
- void SetPointer(void *p){Param3=p;};
- int GetUid(){return Param1;};
- int GetTimerIdent(){ return Param2;};
- void SetTimerIdent(int v){ Param2=v;};
- wxString& GetTimerName(){return StrParam1;};
- int GetOsipTransType(){return Param1;};
- osip_transaction_t *GetOsipTransPtr(){return (osip_transaction_t *)Param3;};
- osip_message_t *GetOsipMsgPtr(){return (osip_message_t *)Param4;};
- void Dump(int Uid);
-private:
- int EventType; ///< SipEvent TimerEvent
- int Param1; ///< use it as your wish
- int Param2; ///< use it as your wish
- wxString StrParam1;
- void *Param3; ///< When SipEvent,Convert to osip_event*
- void *Param4; ///< When SipEvent,Convert to osip_event*
-};
-
-enum{
- CALL_CB_IDLE,
- CALL_CB_WAITEND,
- CALL_CB_WAITCASEEND,
- CALL_CB_ACTIVE,
- CALL_CB_WAITSTART,
-};
-
-
-WX_DECLARE_STRING_HASH_MAP(osip_transaction_t *, StrTransPtrHash);
-
-//! 呼叫控制块
-/*!
- 呼叫控制块存储呼叫相关的变量的值,包括控制块状态(忙闲),呼叫范围变量,呼叫范围Sip事务等.
- 如果需要对呼叫范围进行扩展,可以在其中增加新的公共域
-*/
-class CallInfo{
- public:
- CallInfo(int i){State=CALL_CB_IDLE;UserIndexStart=-1; pCurSce=NULL; UsedTermNum=0; MyIndex=i; };
- int MyIndex;
- int UsedTermNum;
- int UserIndexStart;
- long SendRuleLineNo;
- Scenario *pCurSce;
- StrStrHash Varibles;
- StrTransPtrHash Transactions;
- wxArrayString Timers,exCallIds;
- void SetCallState(int state);
- int GetCallState();
- void LogEvent(SttEvt *);
- void LogString(const wxString&);
- const wxString& GetLog(){return Log;};
- long GetId(){ return id;};
- void ClearLog(){ Log.Clear(); };
- wxDateTime GetStartTime(){return startat;};
- private:
- int State;
- long id;
- wxMutex s_mutexProtectingState;
- wxString Log;
- wxDateTime startat;
-};
-
-
-class SttScenarioControl;
-#define AU_MAX_K_LEN 16
-#define AU_MAX_SQN_LEN 6
-
-WX_DEFINE_ARRAY(osip_dialog_t*, DialogPtrArray);
-
-//! 终端控制块
-/*!
- 终端控制块存储终端范围的相关变量并提供相关操作,主要包括呼叫控制块指针,以及终端范围内变量的值等.
-*/
-class TermControl{
-public:
- osip_message_t *ToSend; ///< Before Send Action Call Send Rules, the message to send is put here.
- CallInfo *pCallInfo;
- StrStrHash Varibles;
- SttScenarioControl*controller;
-
- U8 K[AU_MAX_K_LEN*2+1];
- U8 SQNms[32][AU_MAX_SQN_LEN];
+/**
+ * @file 场景控制接口
+ *
+ * 场景控制接口
+ *
+ * @author wq1...@gmail.com
+ */
+
+#ifndef __SCENARIOS_CONTROL_H__
+#define __SCENARIOS_CONTROL_H__
+
+#include "ScenariosForm.h"
+#include "OsipProcess.h"
+
+typedef unsigned char U8;
+
+void DumpMsgKeyField(int Uid, osip_message_t *pomt);
+
+enum{
+ STTEVT_BAD_EVENT=0,
+ STTEVT_OSIP_EVENT,
+ STTEVT_OSIP_TIMEOUT,
+ STTEVT_TIMEROUT_EVENT,
+ STTEVT_CASE_START,
+ STTEVT_TERM_REGSTATE_CHANGE,
+ STTEVT_SCEARIO_FINISH,
+ STTEVT_CASE_FINISH,
+};
+
+class SttEvt{
+public:
+ SttEvt(int et){EventType = et; Param3=NULL; Param4=NULL;};
+ SttEvt(int type, osip_transaction_t *pott,osip_message_t *pomt,int t=STTEVT_OSIP_EVENT){
+ EventType=t;
+ Param1=type;
+ Param3=pott;
+ Param4=pomt;
+ };
+ SttEvt(int Uid,wxString name,int t=STTEVT_TIMEROUT_EVENT){
+ EventType=t;
+ StrParam1 = name;
+ Param1=Uid;
+ Param3=NULL; Param4=NULL;
+ };
+ SttEvt(int Uid,int t=STTEVT_CASE_START){
+ EventType=t;
+ Param1=Uid;
+ Param3=NULL; Param4=NULL;
+ };
+ ~SttEvt(){
+ if (GetEvtType() == STTEVT_OSIP_EVENT){
+ osip_message_free(GetOsipMsgPtr());
+ }
+ };
+ int GetEvtType(){return EventType;};
+ void *GetPointer(){return Param3;};
+ void SetPointer(void *p){Param3=p;};
+ int GetUid(){return Param1;};
+ int GetTimerIdent(){ return Param2;};
+ void SetTimerIdent(int v){ Param2=v;};
+ wxString& GetTimerName(){return StrParam1;};
+ int GetOsipTransType(){return Param1;};
+ osip_transaction_t *GetOsipTransPtr(){return (osip_transaction_t *)Param3;};
+ osip_message_t *GetOsipMsgPtr(){return (osip_message_t *)Param4;};
+ void Dump(int Uid);
+private:
+ int EventType; ///< SipEvent TimerEvent
+ int Param1; ///< use it as your wish
+ int Param2; ///< use it as your wish
+ wxString StrParam1;
+ void *Param3; ///< When SipEvent,Convert to osip_event*
+ void *Param4; ///< When SipEvent,Convert to osip_event*
+};
+
+enum{
+ CALL_CB_IDLE,
+ CALL_CB_WAITEND,
+ CALL_CB_WAITCASEEND,
+ CALL_CB_ACTIVE,
+ CALL_CB_WAITSTART,
+};
+
+
+WX_DECLARE_STRING_HASH_MAP(osip_transaction_t *, StrTransPtrHash);
+
+class CallInfo{
+ public:
+ CallInfo(int i){State=CALL_CB_IDLE;UserIndexStart=-1; pCurSce=NULL; UsedTermNum=0; MyIndex=i; };
+ int MyIndex;
+ int UsedTermNum;
+ int UserIndexStart;
+ long SendRuleLineNo;
+ Scenario *pCurSce;
+ StrStrHash Varibles;
+ StrTransPtrHash Transactions;
+ wxArrayString Timers,exCallIds;
+ void SetCallState(int state);
+ int GetCallState();
+ void LogEvent(SttEvt *);
+ void LogString(const wxString&);
+ const wxString& GetLog(){return Log;};
+ long GetId(){ return id;};
+ void ClearLog(){ Log.Clear(); };
+ wxDateTime GetStartTime(){return startat;};
+ private:
+ int State;
+ long id;
+ wxMutex s_mutexProtectingState;
+ wxString Log;
+ wxDateTime startat;
+};
+
+
+class SttScenarioControl;
+#define AU_MAX_K_LEN 16
+#define AU_MAX_SQN_LEN 6
+
+WX_DEFINE_ARRAY(osip_dialog_t*, DialogPtrArray);
+
+class TermControl{
+public:
+ osip_message_t *ToSend; ///< Before Send Action Call Send Rules, the message to send is put here.
+ CallInfo *pCallInfo;
+ StrStrHash Varibles;
+ SttScenarioControl*controller;
+
+ U8 K[AU_MAX_K_LEN*2+1];
+ U8 SQNms[32][AU_MAX_SQN_LEN];
std::string lastnonce;
- std::string lastAlgorithm;
- int RemotePort;
-
- TermControl(SttScenarioControl*c,int id, int ct=1){
- controller=c;
- Uid=id;
- Registed=false;
- CallTimes = ct;
- pCallInfo=NULL;
- FinalMark=false;
- Varibles.clear();
- memset(SQNms,0,sizeof(SQNms));
- memset(K,'0',sizeof(K));
- sprintf((char*)K,"ims%06d",Uid);
- K[9]='0';
- K[AU_MAX_K_LEN*2]=0;
- RemotePort=0;
- };
- ~TermControl();
- int Uid;
+ std::string lastAlgorithm;
+ int RemotePort;
+
+ TermControl(SttScenarioControl*c,int id, int ct=1){
+ controller=c;
+ Uid=id;
+ Registed=false;
+ CallTimes = ct;
+ pCallInfo=NULL;
+ FinalMark=false;
+ Varibles.clear();
+ memset(SQNms,0,sizeof(SQNms));
+ memset(K,'0',sizeof(K));
+ sprintf((char*)K,"ims%06d",Uid);
+ K[9]='0';
+ K[AU_MAX_K_LEN*2]=0;
+ RemotePort=0;
+ };
+
+ ~TermControl();
+ int Uid;
bool FinalMark;
bool IsInThisCall(){
if (!pCallInfo) return false;
int idx = Uid - pCallInfo->UserIndexStart;
return (idx>=0) && (idx<pCallInfo->UsedTermNum);
- };
- void AppendTracer(TraceForm *win){Traces.Append(win);};
- void Trace(int Level, const wxString& Value);
- void OnScenarioEnd(bool IsSucc=true, wxString Res=wxT(""));
- bool DoDefaultProcess(SttEvt *evt);
- void SetRegisted(bool r);
- wxString GetVaribleValue(const wxString &key);
- void SetVaribleValue(const wxString &key, wxString Value);
- bool IsRegisted(){
- return GetVaribleValue(wxT("RegistState"))==wxT("OK");
- };
- void DumpVarible(wxString prompt=wxT(""));
- int CaleResponse(std::string& Resp, std::string &Auts);
- bool CallIdMatch(const wxString &CallId, bool AllowAppend=false);
- void ClearDialogs(void);
- int GetLocalPort();
- void ClearRegistInfo();
- int DialogNum(){ return Dialogs.size();};
- osip_dialog_t *DialogItem(int index){ return Dialogs[index];};
- osip_dialog_t *GetDialog(osip_message_t *sip, int *Index=NULL);
- int AddDialog(osip_dialog_t* dialog);
- osip_message_t *GetCurrentMsg(SttEvt *evt=NULL);
- SttScenarioControl&GetController(){return *controller;};
-private:
- wxList Traces;
- DialogPtrArray Dialogs;
- int CallTimes;
- bool Registed;
-};
-
-class SttScenarioControl;
-/**
- * @defgroup ScenarioControlModule 场景执行模块
-循环从自己的控制类中弹出一个事件进行处理,处理的过程是:
-首先根据事件的类型获取终端实例,然后匹配并执行定义在默认场景中的规则,然后后匹配执行当前场景规则
-最后执行hardcode的默认动作.
-
-该线程只有在场景开始时产生,并且在场景结束时消亡
-
-\sa ScenarioControlThread
-
-*/
-
-
-/*
-#ifndef KEEP_s_mutexProtectingTheQueue
-#define KEEP_s_mutexProtectingTheQueue
-static wxMutex s_mutexProtectingTheQueue;
-#endif
-*/
-
-WX_DEFINE_ARRAY(SttEvt *, EvtPtrArray);
-
-//! 事件队列管理
-/*!
- 每一个场景执行拥有一个事件队列,管理新事件的压入和弹出
-*/
-class EventQueue{
-public:
- void push_back(SttEvt *e){
- wxMutexLocker lock(s_mutexProtectingTheQueue);
- q.push_back(e);
- };
- SttEvt *pop(){
- SttEvt *ret=NULL;
- wxMutexLocker lock(s_mutexProtectingTheQueue);
- if (q.size()>0){
- ret=*(q.begin());
- q.erase(q.begin());
- }
- return ret;
- };
- void clear(){
- wxMutexLocker lock(s_mutexProtectingTheQueue);
- EvtPtrArray::iterator iter;
- for (iter=q.begin();iter!=q.end();iter++){
- SttEvt*p = *iter;
- delete(p);
- }
- q.clear();
- };
- size_t depth(){
- return q.size();
- };
-private:
- wxMutex s_mutexProtectingTheQueue;
- EvtPtrArray q;
-};
-
-
-//! 场景控制线程
-/*!
-\sa ScenarioControlModule
-*/
-
-class ScenarioControlThread: public wxThread
-{
-public:
- EventQueue m_EvtQueue;
- long MaxDepth;
- ScenarioControlThread(SttScenarioControl *sc):wxThread(wxTHREAD_JOINABLE){
- controller=sc;
- MaxDepth=0;
- Create();
- Run();
- };
- TermControl *GetTermInstFromEvt(SttEvt *evt);
- void ProcessSttEvt(SttEvt *,TermControl *);
- protected:
- void ProcessSttEvt(SttEvt *evt);
- virtual void *Entry();
- SttScenarioControl*controller;
-};
-
-WX_DEFINE_ARRAY(ScenarioControlThread*, CtrlThreadArray);
-/**
- * @defgroup ScenarioControlPoolModule 场景执行线程池模块
-
-循环尝试启动新的场景实例,并且根据控制类的事件队列深度和当前的场景执行线程个数比来决定是否需要增加或者减少执行线程的个数.
-
-该线程只有在场景开始时产生,并且在场景结束时消亡
-
-\sa ScenarioControlThread
-\sa ScenarioControlModule
-
-*/
-
-class ScenarioControlThreadPool: public wxThread
-{
-public:
- ScenarioControlThreadPool(SttScenarioControl *sc,int tnum):wxThread(wxTHREAD_JOINABLE){
- controller=sc;
- ThreadNum=tnum;
- Create();
- Run();
- };
- ~ScenarioControlThreadPool();
- size_t depth(){ return pool.size(); };
- ScenarioControlThread*ThreadItem(size_t i){ return pool[i%pool.size()];};
-protected:
- virtual void *Entry();
-
-private:
- SttScenarioControl *controller;
- CtrlThreadArray pool;
- int ThreadNum;
-};
-
-class ScenariosForm;
-
-class ReportPieceStru:public wxObject
-{
- DECLARE_CLASS(ReportPieceStru);
- public:
- Scenario* s;
- wxDateTime timestamp;
- wxString Result;
-};
-
-WX_DECLARE_OBJARRAY(ReportPieceStru, RepPieceArray);
-
-typedef struct{
- bool FirstFail;
- int TotalRun;
- int TotalSucc;
- int TotalFail;
- wxString FirstFailReason;
- wxDateTime FirstFailTime;
-}SubReportPiece;
-
-WX_DECLARE_VOIDPTR_HASH_MAP(SubReportPiece, ScePieceHash);
-
-typedef struct{
- long Num;
- wxDateTime time;
-}NumDateStru;
-WX_DECLARE_STRING_HASH_MAP(NumDateStru, Str_NumDate_Hash);
-
-#define MAX_SCENARIOS_LOG 5
-class SttReport{
- public:
- wxFileName Base;
- SttReport();
- void TouchReport(Scenario* s, wxString Result);
- void TouchReport(int msgtype, osip_message_t* sip);
- void TouchReport(wxString SceLog);
- void TouchReport(wxString MaxKey, long MaxValue);
- void TouchReportStatistic(wxString Key);
- void SaveToReport();
- private:
- //RepPieceArray pieces;
- wxArrayString SceLogs;
- StrLongHash RcvMsgStatistic,SntMsgStatistic,UserStatistic;
- Str_NumDate_Hash MaxValus;
- wxDateTime start;
-
- SubReportPiece stGlobal;
- Scenario* GlobalFirstFail;
- ScePieceHash ret;
-
-};
-
-WX_DEFINE_ARRAY(TermControl*, TCPtrArray);
-WX_DEFINE_ARRAY(CallInfo*, CIPtrArray);
-WX_DEFINE_ARRAY(osip_transaction_t *, OTPtrArray);
-
-//! 场景控制类
-/*!
- 场景控制类是场景控制的核心的类.在场景开始运行的的时候动态创建,并且随着场景的停止而消亡.
-
- 场景控制类是一切场景行为的载体,所有的呼叫控制块,事件队列, 终端控制块,场景运行控制线程池等都存在于某一个特定的场景控制类中.
-*/
-class SttScenarioControl{
- //Allow ScenarioControlThread to access my private members.
- friend class ScenariosResultGrid;
- friend class ScenarioControlThreadPool;
- friend class ScenarioControlThread;
-public:
- bool SafeStoped;
- bool Terminated;
- int FinalStyle;
-
- SttScenarioControl(ScenariosForm *eh, Scenario* s, int TermNum, int totaltimes,
- int calldur, int callhold, int callheavy, int finalStyle);
- SttScenarioControl(ScenariosForm *eh, int CaseStyle, int TermNum, int totaltimes,
- int calldur, int callhold, int callheavy, int finalStyle);
- ~SttScenarioControl();
-
- TermControl *GetTermCtrl(int Index);
- ScenariosForm *GetEvtHandler(){return Handle;};
- void AddRunningScenarioNum(int num=1);
- bool DecRunningScenarioNum(int num=1, bool IsSucc=true, wxString Res=wxT(""));
- bool AppendEvent(SttEvt*, int);
- void OnTermRegistStateChange(int TermId, bool newv);
- void TestStartCallGroup(void);
- void DoReport();
- bool SetSafeStop(bool Stop=true);
- wxFileName GetReportFileName(){ return report->Base; };
- void TouchReport(Scenario* s, wxString Result);
- void TouchReport(int msgtype,osip_message_t* sip);
- void TouchReport(wxString MaxKey, long MaxValue);
- void TouchReport(wxString SceLog);
- void TouchReportStatistic(wxString Key);
- void Quit();
- int GetTotalLeft();
- void AddTransaction(osip_transaction_t*s){AllTrans.push_back(s);};
- bool IsAllTransRemoved();
- void TestAndRemoveDeadTrans(int Num=-1);
-private:
- int LastIdleCallIdx;
- int TestStyle;
- wxDateTime LastTestTime;
- int CurRoundTestSceIndex;
- ScenariosForm *Handle;
- Scenario* CurScenario;
- SttReport* report;
- TCPtrArray AllTerms;
- CIPtrArray AllCallInfos;
- OTPtrArray AllTrans;
- //std::vector <StrTransPtrHash*> AllStoredTransGroup;
- //EventQueue m_EvtQueue;
- ScenarioControlThreadPool* threadpool;
- int OriTotal,TotalTimes,CallDuration,CallHold,CallHeavy;
-};
-
-
-#endif
-
+ };
+ void AppendTracer(TraceForm *win){Traces.Append(win);};
+ void Trace(int Level, const wxString& Value);
+ void OnScenarioEnd(bool IsSucc=true, wxString Res=wxT(""));
+ bool DoDefaultProcess(SttEvt *evt);
+ void SetRegisted(bool r);
+ wxString GetVaribleValue(const wxString &key);
+ void SetVaribleValue(const wxString &key, wxString Value);
+ bool IsRegisted(){
+ return GetVaribleValue(wxT("RegistState"))==wxT("OK");
+ };
+ void DumpVarible(wxString prompt=wxT(""));
+ int CaleResponse(std::string& Resp, std::string &Auts);
+ bool CallIdMatch(const wxString &CallId, bool AllowAppend=false);
+ void ClearDialogs(void);
+ int GetLocalPort();
+ void ClearRegistInfo();
+ int DialogNum(){ return Dialogs.size();};
+ osip_dialog_t *DialogItem(int index){ return Dialogs[index];};
+ osip_dialog_t *GetDialog(osip_message_t *sip, int *Index=NULL);
+ int AddDialog(osip_dialog_t* dialog);
+ osip_message_t *GetCurrentMsg(SttEvt *evt=NULL);
+ SttScenarioControl&GetController(){return *controller;};
+private:
+ wxList Traces;
+ DialogPtrArray Dialogs;
+ int CallTimes;
+ bool Registed;
+};
+
+class SttScenarioControl;
+/**
+ * @defgroup ScenarioControlModule 场景执行模块
+循环从自己的控制类中弹出一个事件进行处理,处理的过程是:
+首先根据事件的类型获取终端实例,然后匹配并执行定义在默认场景中的规则,然后后匹配执行当前场景规则
+最后执行hardcode的默认动作.
+
+该线程只有在场景开始时产生,并且在场景结束时消亡
+
+\sa ScenarioControlThread
+
+*/
+
+
+/*
+#ifndef KEEP_s_mutexProtectingTheQueue
+#define KEEP_s_mutexProtectingTheQueue
+static wxMutex s_mutexProtectingTheQueue;
+#endif
+*/
+
+WX_DEFINE_ARRAY(SttEvt *, EvtPtrArray);
+
+//! 事件队列管理
+/*!
+ 每一个场景执行拥有一个事件队列,管理新事件的压入和弹出
+*/
+class EventQueue{
+public:
+ void push_back(SttEvt *e){
+ wxMutexLocker lock(s_mutexProtectingTheQueue);
+ q.push_back(e);
+ };
+ SttEvt *pop(){
+ SttEvt *ret=NULL;
+ wxMutexLocker lock(s_mutexProtectingTheQueue);
+ if (q.size()>0){
+ ret=*(q.begin());
+ q.erase(q.begin());
+ }
+ return ret;
+ };
+ void clear(){
+ wxMutexLocker lock(s_mutexProtectingTheQueue);
+ EvtPtrArray::iterator iter;
+ for (iter=q.begin();iter!=q.end();iter++){
+ SttEvt*p = *iter;
+ delete(p);
+ }
+ q.clear();
+ };
+ size_t depth(){
+ return q.size();
+ };
+private:
+ wxMutex s_mutexProtectingTheQueue;
+ EvtPtrArray q;
+};
+
+
+//! 场景控制线程
+/*!
+\sa ScenarioControlModule
+*/
+
+class ScenarioControlThread: public wxThread
+{
+public:
+ EventQueue m_EvtQueue;
+ long MaxDepth;
+ ScenarioControlThread(SttScenarioControl *sc):wxThread(wxTHREAD_JOINABLE){
+ controller=sc;
+ MaxDepth=0;
+ Create();
+ Run();
+ };
+ TermControl *GetTermInstFromEvt(SttEvt *evt);
+ void ProcessSttEvt(SttEvt *,TermControl *);
+
+ protected:
+ void ProcessSttEvt(SttEvt *evt);
+ virtual void *Entry();
+ SttScenarioControl*controller;
+};
+
+WX_DEFINE_ARRAY(ScenarioControlThread*, CtrlThreadArray);
+/**
+ * @defgroup ScenarioControlPoolModule 场景执行线程池模块
+
+循环尝试启动新的场景实例,并且根据控制类的事件队列深度和当前的场景执行线程个数比来决定是否需要增加或者减少执行线程的个数.
+
+该线程只有在场景开始时产生,并且在场景结束时消亡
+
+\sa ScenarioControlThread
+\sa ScenarioControlModule
+
+*/
+
+class ScenarioControlThreadPool: public wxThread
+{
+public:
+ ScenarioControlThreadPool(SttScenarioControl *sc,int tnum):wxThread(wxTHREAD_JOINABLE){
+ controller=sc;
+ ThreadNum=tnum;
+ Create();
+ Run();
+ };
+ ~ScenarioControlThreadPool();
+ size_t depth(){ return pool.size(); };
+ ScenarioControlThread*ThreadItem(size_t i){ return pool[i%pool.size()];};
+
+protected:
+ virtual void *Entry();
+
+private:
+ SttScenarioControl *controller;
+ CtrlThreadArray pool;
+ int ThreadNum;
+};
+
+class ScenariosForm;
+
+class ReportPieceStru:public wxObject
+{
+ DECLARE_CLASS(ReportPieceStru);
+ public:
+ Scenario* s;
+ wxDateTime timestamp;
+ wxString Result;
+};
+
+WX_DECLARE_OBJARRAY(ReportPieceStru, RepPieceArray);
+
+typedef struct{
+ bool FirstFail;
+ int TotalRun;
+ int TotalSucc;
+ int TotalFail;
+ wxString FirstFailReason;
+ wxDateTime FirstFailTime;
+}SubReportPiece;
+
+WX_DECLARE_VOIDPTR_HASH_MAP(SubReportPiece, ScePieceHash);
+
+typedef struct{
+ long Num;
+ wxDateTime time;
+}NumDateStru;
+WX_DECLARE_STRING_HASH_MAP(NumDateStru, Str_NumDate_Hash);
+
+#define MAX_SCENARIOS_LOG 5
+class SttReport{
+ public:
+ wxFileName Base;
+ SttReport();
+ void TouchReport(Scenario* s, wxString Result);
+ void TouchReport(int msgtype, osip_message_t* sip);
+ void TouchReport(wxString SceLog);
+ void TouchReport(wxString MaxKey, long MaxValue);
+ void TouchReportStatistic(wxString Key);
+ void SaveToReport();
+ private:
+ //RepPieceArray pieces;
+ wxArrayString SceLogs;
+ StrLongHash RcvMsgStatistic,SntMsgStatistic,UserStatistic;
+ Str_NumDate_Hash MaxValus;
+ wxDateTime start;
+
+ SubReportPiece stGlobal;
+ Scenario* GlobalFirstFail;
+ ScePieceHash ret;
+
+};
+
+WX_DEFINE_ARRAY(TermControl*, TCPtrArray);
+WX_DEFINE_ARRAY(CallInfo*, CIPtrArray);
+WX_DEFINE_ARRAY(osip_transaction_t *, OTPtrArray);
+
+class SttScenarioControl{
+ //Allow ScenarioControlThread to access my private members.
+ friend class ScenariosResultGrid;
+ friend class ScenarioControlThreadPool;
+ friend class ScenarioControlThread;
+public:
+ bool SafeStoped;
+ bool Terminated;
+ int FinalStyle;
+
+ SttScenarioControl(ScenariosForm *eh, Scenario* s, int TermNum, int totaltimes,
+ int calldur, int callhold, int callheavy, int finalStyle);
+ SttScenarioControl(ScenariosForm *eh, int CaseStyle, int TermNum, int totaltimes,
+ int calldur, int callhold, int callheavy, int finalStyle);
+ ~SttScenarioControl();
+
+ TermControl *GetTermCtrl(int Index);
+ ScenariosForm *GetEvtHandler(){return Handle;};
+ void AddRunningScenarioNum(int num=1);
+ bool DecRunningScenarioNum(int num=1, bool IsSucc=true, wxString Res=wxT(""));
+ bool AppendEvent(SttEvt*, int);
+ void OnTermRegistStateChange(int TermId, bool newv);
+ void TestStartCallGroup(void);
+ void DoReport();
+ bool SetSafeStop(bool Stop=true);
+ wxFileName GetReportFileName(){ return report->Base; };
+ void TouchReport(Scenario* s, wxString Result);
+ void TouchReport(int msgtype,osip_message_t* sip);
+ void TouchReport(wxString MaxKey, long MaxValue);
+ void TouchReport(wxString SceLog);
+ void TouchReportStatistic(wxString Key);
+ void Quit();
+ int GetTotalLeft();
+ void AddTransaction(osip_transaction_t*s){AllTrans.push_back(s);};
+ bool IsAllTransRemoved();
+ void TestAndRemoveDeadTrans(int Num=-1);
+private:
+ int LastIdleCallIdx;
+ int TestStyle;
+ wxDateTime LastTestTime;
+ int CurRoundTestSceIndex;
+ ScenariosForm *Handle;
+ Scenario* CurScenario;
+ SttReport* report;
+ TCPtrArray AllTerms;
+ CIPtrArray AllCallInfos;
+ OTPtrArray AllTrans;
+ //std::vector <StrTransPtrHash*> AllStoredTransGroup;
+ //EventQueue m_EvtQueue;
+ ScenarioControlThreadPool* threadpool;
+ int OriTotal,TotalTimes,CallDuration,CallHold,CallHeavy;
+};
+
+
+#endif
+

Modified: trunk/src/ScenariosControlPanel.h
==============================================================================
--- trunk/src/ScenariosControlPanel.h (original)
+++ trunk/src/ScenariosControlPanel.h Tue Sep 11 20:52:57 2007
@@ -38,7 +38,7 @@
~ScenariosControlPanel();
int GetSelectScenariosIndex(){ return m_Scenario->GetSelection();};
void SetSelectScenatio(wxString v){
- for (int i=0;i<m_Scenario->GetCount();i++){
+ for (int i=0;i<(int)m_Scenario->GetCount();i++){
wxFileName f1(((wxStringClientData*)m_Scenario->GetClientObject(i))->GetData());
wxFileName f2(v);
if (f1.GetName() == f2.GetName()){

Modified: trunk/src/ScenariosManager.cpp
==============================================================================
--- trunk/src/ScenariosManager.cpp (original)
+++ trunk/src/ScenariosManager.cpp Tue Sep 11 20:52:57 2007
@@ -5,7 +5,7 @@
#include "ScenariosControl.h"
#include "OsipProcess.h"
#include "app.h"
-#include "aes.h"
+#include "aes.h"
#include <algorithm>

using namespace std;
@@ -1541,10 +1541,10 @@
return true;

}
-
-WX_DECLARE_STRING_HASH_MAP(SttActionCallback, ActionDriverHash);
+
+WX_DECLARE_STRING_HASH_MAP(SttActionCallback, ActionDriverHash);
ActionDriverHash gSttActionDrivers;
-//SttActionDriver gSttActionDrivers[]={
+//SttActionDriver gSttActionDrivers[]={
void InitActionDrivers(void){
gSttActionDrivers[wxT("Send")]=Action_Send;
gSttActionDrivers[wxT("PutHead")] =Action_PutHead;
@@ -1730,9 +1730,9 @@

}

-WX_DECLARE_STRING_HASH_MAP(SttConditionCallback, CondDriverHash);
-CondDriverHash gSttConditionDrivers;
-
+WX_DECLARE_STRING_HASH_MAP(SttConditionCallback, CondDriverHash);
+CondDriverHash gSttConditionDrivers;
+
void initCondDrivers(void){
gSttConditionDrivers[wxT("IsRequest")]=Condition_IsRequest;
gSttConditionDrivers[wxT("IsAck")]=Condition_IsAck;
@@ -1763,8 +1763,8 @@
return p1->DriverName.CmpNoCase(q1->DriverName);
}

-void SttActionDriverInit(void){
- InitActionDrivers();
+void SttActionDriverInit(void){
+ InitActionDrivers();
initCondDrivers();
//qsort((void*)gSttActionDrivers,sizeof(gSttActionDrivers)/sizeof(SttActionDriver),
// sizeof(SttActionDriver),SttActionCmp);
@@ -2180,7 +2180,7 @@
if (stDriver.DriverName.Mid(0,1) == wxT("@")){
IsNot=true;
stDriver.DriverName.Remove(0,1);
- }
+ }
if ((gSttConditionDrivers.find(stDriver.DriverName) != gSttConditionDrivers.end())){
if (IsNot){
ret = !gSttConditionDrivers[stDriver.DriverName](*this,TermIns,evt,CondNode);
@@ -2241,7 +2241,7 @@
void Scenario::SetConfigValue(const wxString&key, const wxString&value){
ConfigData[key] = value;
}
-
+
wxString Scenario::RealValue(wxString v, TermControl& TermIns,wxString Sep,xmlNodePtr Node,Scenario* s){
int pos=v.find(wxT(" "));
if (pos<=0) return v;
@@ -2671,7 +2671,7 @@
xmlChar *nodeprop = xmlGetProp(ActionNode, (const xmlChar*)"Cmd");
if (nodeprop){
stDriver.DriverName=wxString(wxConvUTF8.cMB2WC((const char*)nodeprop),*wxConvCurrent);
- xmlFree(nodeprop);
+ xmlFree(nodeprop);

if (gSttActionDrivers.find(stDriver.DriverName) != gSttActionDrivers.end()){
return gSttActionDrivers[stDriver.DriverName](*TermIns.pCallInfo->pCurSce,TermIns,evt,ActionNode);
@@ -2744,7 +2744,6 @@
if (doc){
xmlFreeDoc(doc);
}
- string fn=Conv2Std(fname);
doc = xmlReadFile(fname.mb_str(), NULL, 0);
/* check if parsing suceeded */
if (doc == NULL) {

Modified: trunk/src/TraceForm.cpp
==============================================================================
--- trunk/src/TraceForm.cpp (original)
+++ trunk/src/TraceForm.cpp Tue Sep 11 20:52:57 2007
@@ -1,112 +1,199 @@
-/**
- * @file 跟踪窗口实现
- *
- * 跟踪窗口实现
- *
- * @author wq1...@gmail.com
- */
-
-#include <wx/datetime.h>
-#include "TraceForm.h"
-#include "ScenariosForm.h"
-
-DEFINE_EVENT_TYPE(wxEVT_COMMAND_TRACE_FORM)
-IMPLEMENT_DYNAMIC_CLASS(wxTraceFormEvent, wxNotifyEvent)
-
-BEGIN_EVENT_TABLE(TraceForm, wxMDIChildFrame)
- EVT_TRACE_FORM(-1,TraceForm::OnTraceForm)
- EVT_CLOSE(TraceForm::OnClose)
-END_EVENT_TABLE()
-
-void TraceForm::OnTraceForm(wxTraceFormEvent& event)
-{
- int Level=event.GetLevel();
- switch (Level){
- case TL_MESSAGE:
- m_Text->SetDefaultStyle(wxTextAttr(*wxBLUE));
- break;
- case TL_WARNING:
- m_Text->SetDefaultStyle(wxTextAttr(*wxCYAN));
- break;
- case TL_MATCH_RULE:
- m_Text->SetDefaultStyle(wxTextAttr(*wxGREEN));
- break;
- case TL_MESSAGE_RETRANS:
- m_Text->SetDefaultStyle(wxTextAttr(*wxLIGHT_GREY));
- break;
- default:
- m_Text->SetDefaultStyle(wxTextAttr(*wxRED));
- break;
- }
- wxDateTime now = event.GetWhen();
- m_Text->AppendText(wxString::Format(wxT("(%04d-%02d-%02d %02d:%02d:%02d %03d) "),
- now.GetYear(),
- now.GetMonth(),
- now.GetDay(),
- now.GetHour(),
- now.GetMinute(),
- now.GetSecond(),
- now.GetMillisecond()));
- m_Text->SetDefaultStyle(wxTextAttr(*wxBLACK));
- m_Text->AppendText(event.GetLogStr()+wxT("\n"));
-}
-
-void TraceForm::Clear(){
- m_Text->Clear();
-}
-
-void TraceForm::OnClose(wxCloseEvent& event)
-{
- ScenariosForm *p= (ScenariosForm *)TraceSrc;
- if ((p) && (p->IsInProgress()))
- {
- wxLogError(_("Scenarios Is still in progress!!"));
- event.Veto();
- return;
- }
- if (p){
- p->RemoveTracer(this);
- }
- event.Skip();
-}
-
-TraceForm::TraceForm(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style): wxMDIChildFrame(parent, -1, title, pos, size,
- style | wxNO_FULL_REPAINT_ON_RESIZE){
- CreateStatusBar();
- m_Text = new wxTextCtrl(this, -1,wxT(""),wxDefaultPosition,wxDefaultSize,
- wxTE_RICH |
- wxTE_MULTILINE |
- wxTE_READONLY |
- // wxTE_AUTO_URL |
- wxHSCROLL);
- SetName(wxT("TRACEFORM"));
-}
-
-void TraceForm::UpdateTitle(){
- wxString title=_("Trace Form for ");
- title+=wxString::Format(wxT(" %d:"),((ScenariosForm*)TraceSrc)->GetFormIndex()+1)+wxT(" ");
- for (size_t i=0;i<TraceTarget.size();i++){
- title += wxString::Format(wxT(" %d"),TraceTarget[i]);
- }
- SetTitle(title);
-}
-
-bool TraceForm::IsTracingMe(int index){
- for (size_t i=0;i<TraceTarget.size();i++){
- if (TraceTarget[i] == index) return true;
- }
- return false;
-}
-
-void TraceForm::Trace(int Level,const wxString& Value, bool lock){
- wxTraceFormEvent event(Value,Level,wxEVT_COMMAND_TRACE_FORM, -1);
- event.SetEventObject(this);
- wxPostEvent(GetEventHandler(),event);
-}
-
-TraceForm::~TraceForm(){
- /*ScenariosForm *p= (ScenariosForm *)TraceSrc;
- if (p){
- p->RemoveTracer(this);
- }*/
-}
+/**
+ * @file 跟踪窗口实现
+ *
+ * 跟踪窗口实现
+ *
+ * @author wq1...@gmail.com
+ */
+
+
+#include <wx/datetime.h>
+#include <wx/splitter.h>
+
+#include <wx/tokenzr.h>
+#include "mycanvas.h"
+#include "TraceForm.h"
+#include "ScenariosForm.h"
+
+DEFINE_EVENT_TYPE(wxEVT_COMMAND_TRACE_FORM)
+IMPLEMENT_DYNAMIC_CLASS(wxTraceFormEvent, wxNotifyEvent)
+
+BEGIN_EVENT_TABLE(TraceForm, wxMDIChildFrame)
+ EVT_TRACE_FORM(-1,TraceForm::OnTraceForm)
+ EVT_CLOSE(TraceForm::OnClose)
+END_EVENT_TABLE()
+
+void TraceForm::OnTraceForm(wxTraceFormEvent& event)
+{
+ int Level=event.GetLevel();
+ switch (Level){
+ case TL_MESSAGE:
+ m_Text->SetDefaultStyle(wxTextAttr(*wxBLUE));
+ break;
+ case TL_WARNING:
+ m_Text->SetDefaultStyle(wxTextAttr(*wxCYAN));
+ break;
+ case TL_MATCH_RULE:
+ m_Text->SetDefaultStyle(wxTextAttr(*wxGREEN));
+ break;
+ case TL_MESSAGE_RETRANS:
+ m_Text->SetDefaultStyle(wxTextAttr(*wxLIGHT_GREY));
+ break;
+ default:
+ m_Text->SetDefaultStyle(wxTextAttr(*wxRED));
+ break;
+ }
+ wxDateTime now = event.GetWhen();
+
+ m_Text->AppendText(wxString::Format(wxT("(%04d-%02d-%02d %02d:%02d:%02d %03d) "),
+ now.GetYear(),
+ now.GetMonth(),
+ now.GetDay(),
+ now.GetHour(),
+ now.GetMinute(),
+ now.GetSecond(),
+ now.GetMillisecond()));
+
+ m_Text->SetDefaultStyle(wxTextAttr(*wxBLACK));
+
+ wxString slog=event.GetLogStr();
+
+ if(TL_SIP_MESSAGE != Level)
+ {
+ m_Text->AppendText(slog+wxT("\n"));
+ return;
+ }
+
+ /*[%d,%s,%d,%s]-----收发,消息名,长度,地址*/
+ wxString sName1,sName2;
+ sName1 = slog.BeforeFirst(']');
+ sName2 = sName1.AfterFirst('[');
+
+ wxStringTokenizer xST(sName2,wxT( "," ),wxTOKEN_STRTOK);
+
+ //assert(xST.CountTokens() =4);
+
+ wxString sDir=xST.GetNextToken();
+ wxString sAddr=xST.GetNextToken();
+ wxString sName=xST.GetNextToken();
+ wxString sLen=xST.GetNextToken();
+
+ wxString sMsgDesc=wxString::Format(_("[Recv message:%s from %s ,length is %s]"),sAddr.c_str(),sName.c_str(),sLen.c_str());
+ if(!sDir.CmpNoCase(wxT("1")))
+ sMsgDesc = wxString::Format(_("[Send message:%s to %s,length is %s]"),sName.c_str(),sAddr.c_str(),sLen.c_str());
+
+ m_Text->AppendText(sMsgDesc+wxT("\n"));
+ size_t from = m_Text->GetLastPosition();
+
+ m_Text->AppendText(slog.AfterFirst('\n'));
+ size_t to = m_Text->GetLastPosition();
+
+ if(TL_SIP_MESSAGE != Level)
+ return;
+
+ MsgInfo *oMsginfo=new MsgInfo;
+
+ oMsginfo->beginpos = from;
+ oMsginfo->endpos = to;
+
+ if(!sDir.CmpNoCase(wxT("1")))
+ {
+ oMsginfo->pt1 = m_msgflow->m_currentpos;
+ oMsginfo->pt2.x = m_msgflow->m_currentpos.x+COLUMN_INTERVAL_LEN;
+ oMsginfo->pt2.y = m_msgflow->m_currentpos.y+ROW_INTERVAL_LEN;
+
+ //sName << wxString::Format(wxT("[%d,%d,%d,%d]"),from,to,oMsginfo->nlineno,m_msgflow->m_msgtext->XYToPosition(0,oMsginfo->nlineno));
+ oMsginfo->sTxt = sName;
+
+ m_msgflow->m_msglist.Append(oMsginfo);
+ m_msgflow->Refresh();
+
+ m_msgflow->m_currentpos = wxPoint(oMsginfo->pt1.x,oMsginfo->pt1.y+ROW_INTERVAL_LEN);
+ }
+ else
+ {
+ oMsginfo->pt1.x = m_msgflow->m_currentpos.x+COLUMN_INTERVAL_LEN;
+ oMsginfo->pt1.y = m_msgflow->m_currentpos.y;
+ oMsginfo->pt2.x = m_msgflow->m_currentpos.x;
+ oMsginfo->pt2.y = m_msgflow->m_currentpos.y+ROW_INTERVAL_LEN;
+
+ //sName << wxString::Format(wxT("[%d,%d,%d,%d]"),from,to,oMsginfo->nlineno,m_msgflow->m_msgtext->XYToPosition(0,oMsginfo->nlineno));
+ oMsginfo->sTxt = sName;
+
+ m_msgflow->m_msglist.Append(oMsginfo);
+ m_msgflow->Refresh();
+
+ m_msgflow->m_currentpos = oMsginfo->pt2;
+ }
+}
+
+void TraceForm::Clear(){
+ if(m_msgflow)
+ m_msgflow->m_msglist.Clear();
+
+ m_Text->Clear();
+}
+
+void TraceForm::OnClose(wxCloseEvent& event)
+{
+ ScenariosForm *p= (ScenariosForm *)TraceSrc;
+ if ((p) && (p->IsInProgress()))
+ {
+ wxLogError(_("Scenarios Is still in progress!!"));
+ event.Veto();
+ return;
+ }
+ if (p){
+ p->RemoveTracer(this);
+ }
+ event.Skip();
+}
+
+TraceForm::TraceForm(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style): wxMDIChildFrame(parent, -1, title, pos, size,
+ style | wxNO_FULL_REPAINT_ON_RESIZE)
+{
+ CreateStatusBar();
+
+ wxSplitterWindow* osplitter = new wxSplitterWindow(this);
+ osplitter->SetSashGravity(1);
+
+ m_msgflow = new MyCanvas( osplitter, wxID_ANY, wxDefaultPosition, wxDefaultSize);
+
+ m_Text = new wxTextCtrl(osplitter, -1,wxT(""),wxDefaultPosition,wxDefaultSize,
+ wxTE_RICH | wxTE_MULTILINE | wxTE_READONLY | wxVSCROLL);
+
+ SetName(wxT("TRACEFORM"));
+
+ m_msgflow->m_msgtext = m_Text;
+ osplitter->SplitHorizontally(m_msgflow, m_Text, 100);
+ m_Text->SetAutoLayout(TRUE);
+}
+
+void TraceForm::UpdateTitle(){
+ wxString title=_("Trace Form for ");
+ title+=wxString::Format(wxT(" %d:"),((ScenariosForm*)TraceSrc)->GetFormIndex()+1)+wxT(" ");
+ for (size_t i=0;i<TraceTarget.size();i++){
+ title += wxString::Format(wxT(" %d"),TraceTarget[i]);
+ }
+ SetTitle(title);
+}
+
+bool TraceForm::IsTracingMe(int index){
+ for (size_t i=0;i<TraceTarget.size();i++){
+ if (TraceTarget[i] == index) return true;
+ }
+ return false;
+}
+
+void TraceForm::Trace(int Level,const wxString& Value, bool lock){
+ wxTraceFormEvent event(Value,Level,wxEVT_COMMAND_TRACE_FORM, -1);
+ event.SetEventObject(this);
+ wxPostEvent(GetEventHandler(),event);
+}
+
+TraceForm::~TraceForm(){
+ /*ScenariosForm *p= (ScenariosForm *)TraceSrc;
+ if (p){
+ p->RemoveTracer(this);
+ }*/
+}

Modified: trunk/src/TraceForm.h
==============================================================================
--- trunk/src/TraceForm.h (original)
+++ trunk/src/TraceForm.h Tue Sep 11 20:52:57 2007
@@ -11,6 +11,7 @@

#include "wx/wx.h"
#include "wx/datetime.h"
+#include "mycanvas.h"

WX_DECLARE_STRING_HASH_MAP(long, StrLongHash);

@@ -24,7 +25,7 @@
TL_WARNING,
};

-WX_DEFINE_ARRAY(int, IntArray);
+WX_DEFINE_ARRAY_INT(int, IntArray);

class wxTraceFormEvent : public wxNotifyEvent
{
@@ -76,15 +77,19 @@
bool IsTracingMe(int index);
void UpdateTitle();
void Clear();
- void Trace(int Level, const wxString& Value, bool lock=true);
+ void Trace(int Level, const wxString& Value, bool lock=true);
void OnTraceForm(wxTraceFormEvent& event);
+ void OnMouseLeftDown( wxMouseEvent &event );
+
+ wxTextCtrl *m_Text;
+ MyCanvas *m_msgflow;
+
private:
const wxWindow* TraceSrc;
IntArray TraceTarget;
- wxTextCtrl *m_Text;
+

void OnClose(wxCloseEvent& event);
-
DECLARE_EVENT_TABLE()

};

Modified: trunk/src/app.h
==============================================================================
--- trunk/src/app.h (original)
+++ trunk/src/app.h Tue Sep 11 20:52:57 2007
@@ -46,10 +46,10 @@
Minimal_GLOBAL_TRACE_INFO,
Minimal_GLOBAL_TRACE_SIP,
Minimal_GLOBAL_THROW_JUNK_RESPONSE,
- Minimal_GLOBAL_SHOW_REGSTATE,
+ Minimal_GLOBAL_SHOW_REGSTATE,
Minimal_GLOBAL_AUTO_100,
Minimal_GLOBAL_LANGUAGE_CHOOSE_ENGLISH,
- Minimal_GLOBAL_LANGUAGE_CHOOSE_CHINESE,
+ Minimal_GLOBAL_LANGUAGE_CHOOSE_CHINESE,
};

enum
@@ -235,9 +235,9 @@
void OnForcePort(wxCommandEvent& WXUNUSED(event));
void OnUpdateAllCase(wxCommandEvent& WXUNUSED(event));
void OnTimer(wxTimerEvent& event);
- //void OnIdle(wxIdleEvent& event);
+ //void OnIdle(wxIdleEvent& event);
void OnLangEnglish(wxCommandEvent& WXUNUSED(event));
- void OnLangChinese(wxCommandEvent& WXUNUSED(event));
+ void OnLangChinese(wxCommandEvent& WXUNUSED(event));
void OnConfig(wxCommandEvent& WXUNUSED(event));
void OnAbout(wxCommandEvent& event);
void OnNewWindow(wxCommandEvent& event);
@@ -253,15 +253,17 @@
DECLARE_CLASS(SipRawMsg);
public:
SipRawMsg():wxObject(){ buf=NULL; len=0;};
- SipRawMsg(char*v, int l):wxObject(){
+ SipRawMsg(char*v, int l,sockaddr addr):wxObject(){
buf=(char*)malloc(l+1);
memcpy(buf,v,l);
buf[l]=0;
len=l;
+ from = addr;
};
~SipRawMsg(){ if (buf) free(buf), len=0;};
char * buf;
int len;
+ sockaddr from;
};
WX_DEFINE_ARRAY(SipRawMsg *, SipRawEvtPtrArray);

Added: trunk/src/mycanvas.cpp
==============================================================================
--- (empty file)
+++ trunk/src/mycanvas.cpp Tue Sep 11 20:52:57 2007
@@ -0,0 +1,134 @@
+
+#include "mycanvas.h"
+
+IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow)
+
+BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
+ EVT_LEFT_DOWN( MyCanvas::OnMouseLeftDown)
+END_EVENT_TABLE()
+
+MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
+ const wxPoint &pos, const wxSize &size )
+ : wxScrolledWindow( parent, id, pos, size, wxHSCROLL | wxVSCROLL | wxBORDER_SUNKEN , _T("Message Flows") )
+{
+ SetBackgroundColour( wxT("WHITE") );
+ SetCursor( wxCursor( wxCURSOR_IBEAM ) );
+}
+
+void MyCanvas::OnMouseLeftDown( wxMouseEvent &event )
+{
+ if(!m_msgtext)
+ return;
+
+ wxPoint pt(event.GetPosition());
+ int x,y;
+ CalcUnscrolledPosition( pt.x, pt.y, &x, &y );
+
+ wxPoint pt1(x,y);
+
+ wxRect xRect;
+ wxList::Node *node = m_msglist.GetFirst();
+ while (node)
+ {
+ MsgInfo *xMi = (MsgInfo *)node->GetData();
+ if(xMi->pt1.x<xMi->pt2.x)
+ xRect = wxRect (xMi->pt1.x,xMi->pt1.y,COLUMN_INTERVAL_LEN,ROW_INTERVAL_LEN);
+ else
+ xRect = wxRect (xMi->pt2.x,xMi->pt1.y,COLUMN_INTERVAL_LEN,ROW_INTERVAL_LEN);
+
+ if(xRect.Inside(pt1))
+ {
+ m_msgtext->ShowPosition(xMi->beginpos);
+ m_msgtext->SetSelection(xMi->beginpos,xMi->endpos);
+ m_msgtext->SetFocus();
+
+ return;
+ }
+ node = node->GetNext();
+ }
+}
+
+void MyCanvas::OnDraw(wxDC& dc)
+{
+ /*draw UE <-> PROXY graph*/
+ wxString sTxt[] =
+ {
+ wxT("UE"),
+ wxT("Proxy")
+ };
+
+ size_t count=WXSIZEOF(sTxt);
+
+ wxPoint beginPos(60,10);
+ m_currentpos = wxPoint(beginPos.x+TEXT_X_OFFSET,beginPos.y+TEXT_Y_OFFSET+ROW_INTERVAL_LEN);
+
+ dc.SetPen(wxPen(*wxBLUE, 1, wxSOLID));
+ dc.SetTextForeground(*wxBLUE);
+ dc.SetBackgroundMode(wxTRANSPARENT);
+ for(size_t i=0;i<count;i++)
+ {
+ dc.DrawRectangle(beginPos.x+i*COLUMN_INTERVAL_LEN-TEXT_X_OFFSET, beginPos.y, TEXT_RECT_LEN, TEXT_Y_OFFSET);
+ dc.DrawText(sTxt[i], beginPos.x+i*COLUMN_INTERVAL_LEN, beginPos.y+TEXT_Y_OFFSET/4);
+ }
+
+ for(size_t j=0;j<count;j++)
+ {
+ dc.DrawLine(beginPos.x+TEXT_X_OFFSET+j*COLUMN_INTERVAL_LEN,beginPos.y+TEXT_Y_OFFSET,beginPos.x+TEXT_X_OFFSET+j*COLUMN_INTERVAL_LEN,beginPos.y+DISPALY_MSG_LEN);
+ }
+
+ wxList::Node *node = m_msglist.GetFirst();
+ while (node)
+ {
+ MsgInfo *xMi = (MsgInfo *)node->GetData();
+ DrawAMessage(dc,xMi);
+ node = node->GetNext();
+ }
+}
+
+void MyCanvas::DrawNewMessage( wxDC &dc,wxString sTxt,wxPoint pt1,wxPoint pt2)
+{
+ /*Draw Message Flow*/
+ int nDirection=(pt2.x>pt1.x)?1:-1;
+
+ dc.SetPen(*wxTRANSPARENT_PEN);
+ dc.SetBrush(*wxTRANSPARENT_BRUSH);
+ if(nDirection>0)
+ {
+ m_currentpos = wxPoint(pt1.x,pt1.y+ROW_INTERVAL_LEN);
+ dc.DrawRectangle(pt1.x, pt1.y, pt2.x-pt1.x, pt2.y-pt1.y);
+
+ dc.SetPen(wxPen(*wxRED, 1, wxSOLID));
+ dc.SetTextForeground(*wxRED);
+
+ dc.DrawText(sTxt,(pt1.x+pt2.x)/2-2*TEXT_X_OFFSET,pt1.y+TEXT_Y_OFFSET/2);
+ dc.DrawLine(pt1.x,pt1.y+TEXT_Y_OFFSET,pt2.x,pt1.y+TEXT_Y_OFFSET);
+
+ dc.DrawLine(pt2.x-ARROW_X_OFFSET,pt1.y+TEXT_Y_OFFSET-ARROW_Y_OFFSET,pt2.x,pt1.y+TEXT_Y_OFFSET);
+ dc.DrawLine(pt2.x-ARROW_X_OFFSET,pt1.y+TEXT_Y_OFFSET+ARROW_Y_OFFSET,pt2.x,pt1.y+TEXT_Y_OFFSET);
+ }
+ else
+ {
+ m_currentpos = pt2;
+
+ dc.DrawRectangle(pt2.x, pt1.y, pt1.x-pt2.x, pt2.y-pt1.y);
+
+ dc.SetPen(wxPen(*wxBLACK, 1, wxSOLID));
+ dc.SetTextForeground(*wxBLACK);
+ dc.DrawText(sTxt,(pt1.x+pt2.x)/2-2*TEXT_X_OFFSET,pt1.y+TEXT_Y_OFFSET/2);
+ dc.DrawLine(pt1.x,pt1.y+TEXT_Y_OFFSET,pt2.x,pt1.y+TEXT_Y_OFFSET);
+
+ dc.DrawLine(pt2.x+ARROW_X_OFFSET,pt1.y+TEXT_Y_OFFSET-ARROW_Y_OFFSET,pt2.x,pt1.y+TEXT_Y_OFFSET);
+ dc.DrawLine(pt2.x+ARROW_X_OFFSET,pt1.y+TEXT_Y_OFFSET+ARROW_Y_OFFSET,pt2.x,pt1.y+TEXT_Y_OFFSET);
+ }
+
+ return;
+}
+
+void MyCanvas::DrawAMessage( wxDC &dc,MsgInfo *oMsginfo)
+{
+ if(NULL == oMsginfo)
+ return;
+
+ DrawNewMessage(dc,oMsginfo->sTxt,oMsginfo->pt1,oMsginfo->pt2);
+ return;
+}

Added: trunk/src/mycanvas.h
==============================================================================
--- (empty file)
+++ trunk/src/mycanvas.h Tue Sep 11 20:52:57 2007
@@ -0,0 +1,56 @@
+#ifndef _MYCANVAS_H_
+#define _MYCANVAS_H_
+
+#include "wx/wx.h"
+
+#define MAX_MSG_CNT 12
+#define DISPALY_MSG_LEN 100*(ROW_INTERVAL_LEN+20)
+
+#define ARROW_X_OFFSET 10
+#define ARROW_Y_OFFSET 5
+
+#define TEXT_X_OFFSET 20
+#define TEXT_Y_OFFSET 30
+
+#define COLUMN_INTERVAL_LEN 200
+#define ROW_INTERVAL_LEN 40
+
+#define TEXT_RECT_LEN 80
+#define TEXT_RECT_WIDTH 60
+
+
+class MsgInfo: public wxObject{
+ public:
+ wxString sTxt;
+ wxPoint pt1;
+ wxPoint pt2;
+
+ long beginpos;
+ long endpos;
+};
+
+class MyCanvas: public wxScrolledWindow
+{
+public:
+ MyCanvas() {}
+ MyCanvas( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size );
+ ~MyCanvas(){WX_CLEAR_LIST(wxList, m_msglist);};
+
+ //void OnPaint( wxPaintEvent &event );
+ virtual void OnDraw(wxDC& dc);
+
+ void OnMouseRightDown( wxMouseEvent &event );
+ void OnMouseLeftDown( wxMouseEvent &event );
+ void OnMouseWheel( wxMouseEvent &event );
+ void DrawNewMessage( wxDC &dc,wxString sTxt,wxPoint pt1,wxPoint pt2);
+ void DrawAMessage( wxDC &dc,MsgInfo *oMsginfo);
+
+ wxList m_msglist;
+ wxPoint m_currentpos;
+ wxTextCtrl *m_msgtext;
+
+ DECLARE_DYNAMIC_CLASS(MyCanvas)
+ DECLARE_EVENT_TABLE()
+};
+
+#endif // _MYCANVAS_H_

Modified: trunk/zh_CN/SipTestTool.mo
==============================================================================
Binary files. No diff available.

Modified: trunk/zh_CN/SipTestTool.po
==============================================================================
--- trunk/zh_CN/SipTestTool.po (original)
+++ trunk/zh_CN/SipTestTool.po Tue Sep 11 20:52:57 2007
@@ -3,12 +3,12 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
-#
+#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-12 17:36+0800\n"
+"POT-Creation-Date: 2007-09-06 11:17+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <L...@li.org>\n"
@@ -16,735 +16,735 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

-#: ../src/common/log.cpp:319
+#: ../src/common/log.cpp:319
#, c-format
msgid " (error %ld: %s)"
msgstr " (错误 %ld: %s)"

-#: ../src/common/docview.cpp:1325
+#: ../src/common/docview.cpp:1325
msgid " - "
msgstr " - "

-#: ../src/html/htmprint.cpp:537
+#: ../src/html/htmprint.cpp:537
msgid " Preview"
msgstr "预览"

-#: ../src/common/paper.cpp:136
+#: ../src/common/paper.cpp:136
msgid "#10 Envelope, 4 1/8 x 9 1/2 in"
msgstr "#10 Envelope, 4 1/8 x 9 1/2 in"

-#: ../src/common/paper.cpp:137
+#: ../src/common/paper.cpp:137
msgid "#11 Envelope, 4 1/2 x 10 3/8 in"
msgstr "#11 信封, 4 1/2 x 10 3/8 in"

-#: ../src/common/paper.cpp:138
+#: ../src/common/paper.cpp:138
msgid "#12 Envelope, 4 3/4 x 11 in"
msgstr "#12 信封, 4 3/4 x 11 in"

-#: ../src/common/paper.cpp:139
+#: ../src/common/paper.cpp:139
msgid "#14 Envelope, 5 x 11 1/2 in"
msgstr "#14 信封, 5 x 11 1/2 in"

-#: ../src/common/paper.cpp:135
+#: ../src/common/paper.cpp:135
msgid "#9 Envelope, 3 7/8 x 8 7/8 in"
msgstr "#9 信封, 3 7/8 x 8 7/8 in"

-#: ../src/html/helpfrm.cpp:867 ../src/html/helpfrm.cpp:868
+#: ../src/html/helpfrm.cpp:867 ../src/html/helpfrm.cpp:868
#: ../src/html/helpfrm.cpp:1505 ../src/html/helpfrm.cpp:1535
#, c-format
msgid "%i of %i"
msgstr "%i of %i"

-#: ../src/generic/filedlgg.cpp:277
+#: ../src/generic/filedlgg.cpp:277
#, fuzzy, c-format
msgid "%ld bytes"
msgstr "字节"

-#: ../src/common/cmdline.cpp:825
+#: ../src/common/cmdline.cpp:825
#, c-format
msgid "%s (or %s)"
msgstr "%s (或 %s)"

-#: ../src/generic/logg.cpp:258
+#: ../src/generic/logg.cpp:258
#, c-format
msgid "%s Error"
msgstr "%s 错误"

-#: ../src/generic/logg.cpp:266
+#: ../src/generic/logg.cpp:266
#, c-format
msgid "%s Information"
msgstr "%s 信息"

-#: ../src/generic/logg.cpp:262
+#: ../src/generic/logg.cpp:262
#, c-format
msgid "%s Warning"
msgstr "%s 警告"

-#: ../src/common/msgout.cpp:188
+#: ../src/common/msgout.cpp:188
#, c-format
msgid "%s message"
msgstr ""

-#: ../src/html/helpfrm.cpp:274
+#: ../src/html/helpfrm.cpp:274
msgid "&About..."
msgstr ""

-#: ../src/msw/mdi.cpp:191
+#: ../src/msw/mdi.cpp:191
msgid "&Arrange Icons"
msgstr ""

-#: ../src/generic/fdrepdlg.cpp:164 ../src/generic/wizard.cpp:401
+#: ../src/generic/fdrepdlg.cpp:164 ../src/generic/wizard.cpp:401
#, fuzzy
msgid "&Cancel"
msgstr "取消"

-#: ../src/msw/mdi.cpp:187
+#: ../src/msw/mdi.cpp:187
msgid "&Cascade"
msgstr ""

-#: ../src/common/prntbase.cpp:439 ../src/generic/logg.cpp:502
+#: ../src/common/prntbase.cpp:439 ../src/generic/logg.cpp:502
#: ../src/generic/tipdlg.cpp:213 ../src/html/helpfrm.cpp:271
msgid "&Close"
msgstr "关闭[&C]"

-#: ../src/msw/textctrl.cpp:2051
+#: ../src/msw/textctrl.cpp:2051
msgid "&Copy"
msgstr ""

-#: ../src/msw/textctrl.cpp:2053
+#: ../src/msw/textctrl.cpp:2053
#, fuzzy
msgid "&Delete"
msgstr "电传打字机"

-#: ../src/generic/logg.cpp:704
+#: ../src/generic/logg.cpp:704
msgid "&Details"
msgstr "细节[&D]"

-#: ../src/generic/fdrepdlg.cpp:162
+#: ../src/generic/fdrepdlg.cpp:162
#, fuzzy
msgid "&Find"
msgstr "查找"

-#: ../src/generic/wizard.cpp:580
+#: ../src/generic/wizard.cpp:580
msgid "&Finish"
msgstr "完成[&F]"

-#: ../src/common/prntbase.cpp:474
+#: ../src/common/prntbase.cpp:474
msgid "&Goto..."
msgstr ""

#
-#: ../src/generic/wizard.cpp:404
../src/main.cpp:305 ../src/main.cpp:395
-#: ../src/main.cpp:427 ../src/main.cpp:469 ../src/main.cpp:473
-#: ../src/main.cpp:484 ../src/main.cpp:517 ../src/main.cpp:541
-#: ../src/main.cpp:547 ../src/main.cpp:549 ../src/main.cpp:557
-#: ../src/main.cpp:562 ../src/main.cpp:598 ../src/main.cpp:609
-#: ../src/main.cpp:618 ../src/main.cpp:600 ../src/main.cpp:593
-#: ../src/main.cpp:627 ../src/main.cpp:631 ../src/main.cpp:670
-#: ../src/main.cpp:678 ../src/main.cpp:682 ../src/main.cpp:808
-#: ../src/main.cpp:827 ../src/main.cpp:828 ../src/main.cpp:933
-#: ../src/main.cpp:937 ../src/main.cpp:943
+#: ../src/generic/wizard.cpp:404 ../src/main.cpp:427 ../src/main.cpp:469
+#: ../src/main.cpp:473 ../src/main.cpp:484 ../src/main.cpp:517
+#: ../src/main.cpp:541 ../src/main.cpp:547 ../src/main.cpp:549
+#: ../src/main.cpp:557 ../src/main.cpp:562 ../src/main.cpp:598
+#: ../src/main.cpp:609 ../src/main.cpp:618 ../src/main.cpp:600
+#: ../src/main.cpp:593 ../src/main.cpp:627 ../src/main.cpp:631
+#: ../src/main.cpp:670 ../src/main.cpp:678 ../src/main.cpp:682
+#: ../src/main.cpp:808 ../src/main.cpp:827 ../src/main.cpp:828
+#: ../src/main.cpp:933 ../src/main.cpp:937 ../src/main.cpp:943
+#: ../src/main.cpp:976
msgid "&Help"
msgstr "帮助(&H)"

-#: ../src/generic/logg.cpp:503
+#: ../src/generic/logg.cpp:503
msgid "&Log"
msgstr "日志[&L]"

-#: ../src/univ/themes/win32.cpp:4672
+#: ../src/univ/themes/win32.cpp:4672
msgid "&Move"
msgstr ""

-#: ../src/generic/mdig.cpp:117 ../src/msw/mdi.cpp:192
+#: ../src/generic/mdig.cpp:117 ../src/msw/mdi.cpp:192
#, fuzzy
msgid "&Next"
msgstr "下一个[&N] >"

-#: ../src/generic/wizard.cpp:400 ../src/generic/wizard.cpp:582
+#: ../src/generic/wizard.cpp:400 ../src/generic/wizard.cpp:582
msgid "&Next >"
msgstr "下一个[&N] >"

-#: ../src/generic/tipdlg.cpp:218
+#: ../src/generic/tipdlg.cpp:218
msgid "&Next Tip"
msgstr "下一技巧[&N]"

-#: ../src/html/helpfrm.cpp:269
+#: ../src/html/helpfrm.cpp:269
#, fuzzy
msgid "&Open..."
msgstr "保存[&S]..."

-#: ../src/msw/textctrl.cpp:2052
+#: ../src/msw/textctrl.cpp:2052
#, fuzzy
msgid "&Paste"
msgstr "日期"

-#: ../src/generic/mdig.cpp:118 ../src/msw/mdi.cpp:193
+#: ../src/generic/mdig.cpp:118 ../src/msw/mdi.cpp:193
#, fuzzy
msgid "&Previous"
msgstr "前页"

-#: ../src/common/prntbase.cpp:444
+#: ../src/common/prntbase.cpp:444
#, fuzzy
msgid "&Print..."
msgstr "打印..."

-#: ../src/common/cmdproc.cpp:285 ../src/common/cmdproc.cpp:292
+#: ../src/common/cmdproc.cpp:285 ../src/common/cmdproc.cpp:292
#: ../src/msw/textctrl.cpp:2048
msgid "&Redo"
msgstr "重复[&R]"

-#: ../src/common/cmdproc.cpp:281 ../src/common/cmdproc.cpp:301
+#: ../src/common/cmdproc.cpp:281 ../src/common/cmdproc.cpp:301
msgid "&Redo "
msgstr "重复[&R]"

-#: ../src/generic/fdrepdlg.cpp:168
+#: ../src/generic/fdrepdlg.cpp:168
msgid "&Replace"
msgstr ""

-#: ../src/univ/themes/win32.cpp:4671
+#: ../src/univ/themes/win32.cpp:4671
#, fuzzy
msgid "&Restore"
msgstr "重复[&R]"

-#: ../src/generic/logg.cpp:498 ../src/generic/logg.cpp:827
+#: ../src/generic/logg.cpp:498 ../src/generic/logg.cpp:827
msgid "&Save..."
msgstr "保存[&S]..."

-#: ../src/generic/tipdlg.cpp:215
+#: ../src/generic/tipdlg.cpp:215
msgid "&Show tips at startup"
msgstr "启动时显示技巧[&S]"

-#: ../src/univ/themes/win32.cpp:4674
+#: ../src/univ/themes/win32.cpp:4674
#, fuzzy
msgid "&Size"
msgstr "大小"

-#: ../src/common/cmdproc.cpp:263 ../src/msw/textctrl.cpp:2047
+#: ../src/common/cmdproc.cpp:263 ../src/msw/textctrl.cpp:2047
msgid "&Undo"
msgstr "恢复[&U]"

-#: ../src/common/cmdproc.cpp:257
+#: ../src/common/cmdproc.cpp:257
msgid "&Undo "
msgstr "恢复[&U]"

-#: ../src/generic/mdig.cpp:297 ../src/generic/mdig.cpp:313
+#: ../src/generic/mdig.cpp:297 ../src/generic/mdig.cpp:313
#: ../src/generic/mdig.cpp:317 ../src/msw/mdi.cpp:1333 ../src/msw/mdi.cpp:1340
#: ../src/msw/mdi.cpp:1370
msgid "&Window"
msgstr "窗口[&W]"

-#: ../src/common/config.cpp:414 ../src/msw/regconf.cpp:265
+#: ../src/common/config.cpp:414 ../src/msw/regconf.cpp:265
#, c-format
msgid "'%s' has extra '..', ignored."
msgstr "'%s' 有额外的 '..', 忽略之."

-#: ../src/common/valtext.cpp:136 ../src/common/valtext.cpp:166
+#: ../src/common/valtext.cpp:136 ../src/common/valtext.cpp:166
#: ../src/common/valtext.cpp:172
#, c-format
msgid "'%s' is invalid"
msgstr "'%s' 是无效的"

-#: ../src/common/cmdline.cpp:743
+#: ../src/common/cmdline.cpp:743
#, c-format
msgid "'%s' is not a correct numeric value for option '%s'."
msgstr "'%s' 不是匹配选项 '%s'的正确数字值."

-#: ../src/common/intl.cpp:1140
+#: ../src/common/intl.cpp:1140
#, c-format
msgid "'%s' is not a valid message catalog."
msgstr "'%s' 不是有效的消息目录."

-#: ../src/common/textbuf.cpp:245
+#: ../src/common/textbuf.cpp:245
#, fuzzy, c-format
msgid "'%s' is probably a binary buffer."
msgstr "'%s' 或许是一个二进制文件."

-#: ../src/common/valtext.cpp:161
+#: ../src/common/valtext.cpp:161
#, c-format
msgid "'%s' should be numeric."
msgstr "'%s' 应该是一个数值."

-#: ../src/common/valtext.cpp:143
+#: ../src/common/valtext.cpp:143
#, c-format
msgid "'%s' should only contain ASCII characters."
msgstr "'%s' 应该仅包含ASCII字符."

-#: ../src/common/valtext.cpp:149
+#: ../src/common/valtext.cpp:149
#, c-format
msgid "'%s' should only contain alphabetic characters."
msgstr "'%s' 应仅包含字母字符."

-#: ../src/common/valtext.cpp:155
+#: ../src/common/valtext.cpp:155
#, c-format
msgid "'%s' should only contain alphabetic or numeric characters."
msgstr "'%s' 应仅包含字母或数字字符."

-#: ../src/html/helpfrm.cpp:803
+#: ../src/html/helpfrm.cpp:803
msgid "(Help)"
msgstr "(帮助)"

-#: ../src/html/helpfrm.cpp:345 ../src/html/helpfrm.cpp:935
+#: ../src/html/helpfrm.cpp:345 ../src/html/helpfrm.cpp:935
#: ../src/html/helpfrm.cpp:1563
msgid "(bookmarks)"
msgstr "(书签)"

-#: ../src/generic/dirctrlg.cpp:677 ../src/generic/filedlgg.cpp:707
+#: ../src/generic/dirctrlg.cpp:677 ../src/generic/filedlgg.cpp:707
msgid "."
msgstr "."

-#: ../src/generic/dirctrlg.cpp:678 ../src/generic/filedlgg.cpp:708
+#: ../src/generic/dirctrlg.cpp:678 ../src/generic/filedlgg.cpp:708
msgid ".."
msgstr ".."

-#: ../src/html/chm.cpp:561
+#: ../src/html/chm.cpp:561
msgid "/#SYSTEM"
msgstr ""

-#: ../src/common/paper.cpp:132
+#: ../src/common/paper.cpp:132
msgid "10 x 14 in"
msgstr "10 x 14 英寸"

-#: ../src/common/paper.cpp:133
+#: ../src/common/paper.cpp:133
msgid "11 x 17 in"
msgstr "11 x 17 英寸"

-#: ../src/common/paper.cpp:151
+#: ../src/common/paper.cpp:151
msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in"
msgstr "6 3/4 信封, 3 5/8 x 6 1/2 英寸"

-#: ../src/html/htmprint.cpp:291
+#: ../src/html/htmprint.cpp:291
msgid ": file does not exist!"
msgstr ": 文件不存在!"

-#: ../src/common/fontmap.cpp:184
+#: ../src/common/fontmap.cpp:184
msgid ": unknown charset"
msgstr ": 未知字符集"

-#: ../src/common/fontmap.cpp:393
+#: ../src/common/fontmap.cpp:393
msgid ": unknown encoding"
msgstr ": 未知编码"

-#: ../src/generic/wizard.cpp:405
+#: ../src/generic/wizard.cpp:405
msgid "< &Back"
msgstr "< 返回[&B]"

-#: ../src/common/prntbase.cpp:456
+#: ../src/common/prntbase.cpp:456
msgid "<<"
msgstr ""

-#: ../src/generic/filedlgg.cpp:248 ../src/generic/filedlgg.cpp:271
+#: ../src/generic/filedlgg.cpp:248 ../src/generic/filedlgg.cpp:271
msgid "<DIR>"
msgstr "<目录>"

-#: ../src/generic/filedlgg.cpp:252 ../src/generic/filedlgg.cpp:275
+#: ../src/generic/filedlgg.cpp:252 ../src/generic/filedlgg.cpp:275
#, fuzzy
msgid "<DRIVE>"
msgstr "<目录>"

-#: ../src/generic/filedlgg.cpp:250 ../src/generic/filedlgg.cpp:273
+#: ../src/generic/filedlgg.cpp:250 ../src/generic/filedlgg.cpp:273
msgid "<LINK>"
msgstr "<连接>"

-#: ../src/html/helpfrm.cpp:1098
+#: ../src/html/helpfrm.cpp:1098
msgid "<b><i>Bold italic face.</i></b><br>"
msgstr ""

-#: ../src/html/helpfrm.cpp:1102
+#: ../src/html/helpfrm.cpp:1102
msgid "<b><i>bold italic <u>underlined</u></i></b><br>"
msgstr ""

-#: ../src/html/helpfrm.cpp:1097
+#: ../src/html/helpfrm.cpp:1097
msgid "<b>Bold face.</b> "
msgstr ""

-#: ../src/html/helpfrm.cpp:1096
+#: ../src/html/helpfrm.cpp:1096
msgid "<i>Italic face.</i> "
msgstr ""

-#: ../src/common/prntbase.cpp:462
+#: ../src/common/prntbase.cpp:462
msgid ">>"
msgstr ""

-#: ../src/common/prntbase.cpp:468
+#: ../src/common/prntbase.cpp:468
msgid ">>|"
msgstr ""

-#: ../src/common/xtixml.cpp:409
+#: ../src/common/xtixml.cpp:409
msgid "A non empty collection must consist of 'element' nodes"
msgstr ""

-#: ../src/common/paper.cpp:125
+#: ../src/common/paper.cpp:125
msgid "A3 sheet, 297 x 420 mm"
msgstr "A3 纸张, 297 x 420 毫米"

-#: ../src/common/paper.cpp:116
+#: ../src/common/paper.cpp:116
msgid "A4 sheet, 210 x 297 mm"
msgstr "A4 纸张, 210 x 297 毫米"

-#: ../src/common/paper.cpp:126
+#: ../src/common/paper.cpp:126
msgid "A4 small sheet, 210 x 297 mm"
msgstr "A4 小纸张, 210 x 297 毫米"

-#: ../src/common/paper.cpp:127
+#: ../src/common/paper.cpp:127
msgid "A5 sheet, 148 x 210 mm"
msgstr "A5 纸张, 148 x 210 毫米"

-#: ../src/generic/fontdlgg.cpp:83
+#: ../src/generic/fontdlgg.cpp:83
msgid "ABCDEFGabcdefg12345"
msgstr "ABCDEFGabcdefg12345"

-#: ../src/common/ftp.cpp:369
+#: ../src/common/ftp.cpp:369
msgid "ASCII"
msgstr ""

-#: ../src/html/helpfrm.cpp:358
+#: ../src/html/helpfrm.cpp:358
msgid "Add current page to bookmarks"
msgstr "把当前页加到书签中"

-#: ../src/generic/colrdlgg.cpp:287
+#: ../src/generic/colrdlgg.cpp:287
msgid "Add to custom colours"
msgstr "加到自定义颜色中"

-#: ../include/wx/xti.h:858
+#: ../include/wx/xti.h:858
msgid "AddToPropertyCollection called on a generic accessor"
msgstr ""

-#: ../include/wx/xti.h:806
+#: ../include/wx/xti.h:806
msgid "AddToPropertyCollection called w/o valid adder"
msgstr ""

-#: ../src/html/helpctrl.cpp:106
+#: ../src/html/helpctrl.cpp:106
#, c-format
msgid "Adding book %s"
msgstr "正在添加卷 %s"

-#: ../src/generic/prntdlgg.cpp:157
+#: ../src/generic/prntdlgg.cpp:157
msgid "All"
msgstr "所有"

-#: ../include/wx/defs.h:1986
+#: ../include/wx/defs.h:1986
msgid "All files (*)|*"
msgstr "所有文件 (*)|*"

-#: ../src/html/helpfrm.cpp:1403
+#: ../src/html/helpfrm.cpp:1403
#, fuzzy
msgid "All files (*.*)|*"
msgstr "所有文件 (*)|*"

-#: ../include/wx/defs.h:1983
+#: ../include/wx/defs.h:1983
#, fuzzy
msgid "All files (*.*)|*.*"
msgstr "所有文件 (*)|*"

-#: ../src/common/xtistrm.cpp:383
+#: ../src/common/xtistrm.cpp:383
msgid "Already Registered Object passed to SetObjectClassInfo"
msgstr ""

-#: ../src/unix/dialup.cpp:362
+#: ../src/unix/dialup.cpp:362
msgid "Already dialling ISP."
msgstr "已经拨接ISP."

-#: ../src/generic/logg.cpp:1118
+#: ../src/generic/logg.cpp:1118
#, c-format
msgid "Append log to file '%s' (choosing [No] will overwrite it)?"
msgstr "把日志添加到文件 '%s' (选择 [否] 将覆写该文件)?"

-#: ../src/common/fmapbase.cpp:107
+#: ../src/common/fmapbase.cpp:107
msgid "Arabic (ISO-8859-6)"
msgstr "阿拉伯语 (ISO-8859-6)"

-#: ../src/generic/filedlgg.cpp:428
+#: ../src/generic/filedlgg.cpp:428
msgid "Attributes"
msgstr ""

-#: ../src/common/paper.cpp:146
+#: ../src/common/paper.cpp:146
msgid "B4 Envelope, 250 x 353 mm"
msgstr "B4 信封, 250 x 353 毫米"

-#: ../src/common/paper.cpp:128
+#: ../src/common/paper.cpp:128
msgid "B4 sheet, 250 x 354 mm"
msgstr "B4 信封, 250 x 354 毫米"

-#: ../src/common/paper.cpp:147
+#: ../src/common/paper.cpp:147
msgid "B5 Envelope, 176 x 250 mm"
msgstr "B5 信封, 176 x 250 毫米"

-#: ../src/common/paper.cpp:129
+#: ../src/common/paper.cpp:129
msgid "B5 sheet, 182 x 257 millimeter"
msgstr "B5 信封, 182 x 257 毫米"

-#: ../src/common/paper.cpp:148
+#: ../src/common/paper.cpp:148
msgid "B6 Envelope, 176 x 125 mm"
msgstr "B6 信封, 176 x 125 毫米"

-#: ../src/common/imagbmp.cpp:470 ../src/common/imagbmp.cpp:486
+#: ../src/common/imagbmp.cpp:470 ../src/common/imagbmp.cpp:486
#, fuzzy
msgid "BMP: Couldn't allocate memory."
msgstr "PNM: 不能分配内存."

-#: ../src/common/imagbmp.cpp:88
+#: ../src/common/imagbmp.cpp:88
msgid "BMP: Couldn't save invalid image."
msgstr "BMP: 不能保存无效图像."

-#: ../src/common/imagbmp.cpp:292
+#: ../src/common/imagbmp.cpp:292
#, fuzzy
msgid "BMP: Couldn't write RGB color map."
msgstr "BMP: 不能写数据."

-#: ../src/common/imagbmp.cpp:424
+#: ../src/common/imagbmp.cpp:424
msgid "BMP: Couldn't write data."
msgstr "BMP: 不能写数据."

-#: ../src/common/imagbmp.cpp:197
+#: ../src/common/imagbmp.cpp:197
#, fuzzy
msgid "BMP: Couldn't write the file (Bitmap) header."
msgstr "BMP: 不能写文件头."

-#: ../src/common/imagbmp.cpp:218
+#: ../src/common/imagbmp.cpp:218
#, fuzzy
msgid "BMP: Couldn't write the file (BitmapInfo) header."
msgstr "BMP: 不能写文件头."

-#: ../src/common/imagbmp.cpp:122
+#: ../src/common/imagbmp.cpp:122
msgid "BMP: wxImage doesn't have own wxPalette."
msgstr ""

-#: ../src/common/dlgcmn.cpp:227
+#: ../src/common/dlgcmn.cpp:227
msgid "Backward"
msgstr "向后"

-#: ../src/common/fmapbase.cpp:114
+#: ../src/common/fmapbase.cpp:114
msgid "Baltic (ISO-8859-13)"
msgstr "波罗的海语 (ISO-8859-13)"

-#: ../src/common/fmapbase.cpp:105
+#: ../src/common/fmapbase.cpp:105
msgid "Baltic (old) (ISO-8859-4)"
msgstr "波罗的海语 (旧的) (ISO-8859-4)"

-#: ../src/generic/fontdlgg.cpp:232
+#: ../src/generic/fontdlgg.cpp:232
msgid "Bold"
msgstr "粗体"

-#: ../src/generic/prntdlgg.cpp:663
+#: ../src/generic/prntdlgg.cpp:663
msgid "Bottom margin (mm):"
msgstr "底边距 (毫米):"

-#: ../src/common/paper.cpp:117
+#: ../src/common/paper.cpp:117
msgid "C sheet, 17 x 22 in"
msgstr "C 纸张, 17 x 22 英寸"

-#: ../src/generic/logg.cpp:500
+#: ../src/generic/logg.cpp:500
msgid "C&lear"
msgstr "清除[&L]"

-#: ../src/common/paper.cpp:142
+#: ../src/common/paper.cpp:142
msgid "C3 Envelope, 324 x 458 mm"
msgstr "C3 信封, 324 x 458 毫米"

-#: ../src/common/paper.cpp:143
+#: ../src/common/paper.cpp:143
msgid "C4 Envelope, 229 x 324 mm"
msgstr "C4 信封, 229 x 324 毫米"

-#: ../src/common/paper.cpp:141
+#: ../src/common/paper.cpp:141
msgid "C5 Envelope, 162 x 229 mm"
msgstr "C5 信封, 162 x 229 毫米"

-#: ../src/common/paper.cpp:144
+#: ../src/common/paper.cpp:144
msgid "C6 Envelope, 114 x 162 mm"
msgstr "C6 信封, 114 x 162 毫米"

-#: ../src/common/paper.cpp:145
+#: ../src/common/paper.cpp:145
msgid "C65 Envelope, 114 x 229 mm"
msgstr "C65 信封, 114 x 229 毫米"

-#: ../src/html/chm.cpp:783 ../src/html/chm.cpp:842
+#: ../src/html/chm.cpp:783 ../src/html/chm.cpp:842
msgid "CHM handler currently supports only local files!"
msgstr ""

-#: ../src/os2/thread.cpp:121
+#: ../src/os2/thread.cpp:121
#, fuzzy
msgid "Can not create mutex."
msgstr "不能创建互斥对象"

-#: ../src/common/filefn.cpp:1462
+#: ../src/common/filefn.cpp:1462
#, fuzzy, c-format
msgid "Can not enumerate files '%s'"
msgstr "不能枚举目录 '%s'中的文件"

-#: ../src/msw/dir.cpp:300 ../src/unix/dir.cpp:232
+#: ../src/msw/dir.cpp:300 ../src/unix/dir.cpp:232
#, c-format
msgid "Can not enumerate files in directory '%s'"
msgstr "不能枚举目录 '%s'中的文件"

-#: ../src/os2/thread.cpp:523
+#: ../src/os2/thread.cpp:523
#, fuzzy, c-format
msgid "Can not resume thread %lu"
msgstr "不能恢复线程 %x"

-#: ../src/mac/thread.cpp:477 ../src/msw/thread.cpp:821
+#: ../src/mac/thread.cpp:477 ../src/msw/thread.cpp:821
#, c-format
msgid "Can not resume thread %x"
msgstr "不能恢复线程 %x"

-#: ../src/msw/thread.cpp:498
+#: ../src/msw/thread.cpp:498
msgid "Can not start thread: error writing TLS."
msgstr "不能启动线程: 写TLS出错."

-#: ../src/os2/thread.cpp:510
+#: ../src/os2/thread.cpp:510
#, fuzzy, c-format
msgid "Can not suspend thread %lu"
msgstr "不能挂起线程 %x"

-#: ../src/mac/thread.cpp:453 ../src/msw/thread.cpp:806
+#: ../src/mac/thread.cpp:453 ../src/msw/thread.cpp:806
#, c-format
msgid "Can not suspend thread %x"
msgstr "不能挂起线程 %x"

-#: ../src/msw/thread.cpp:728
+#: ../src/msw/thread.cpp:728
msgid "Can not wait for thread termination"
msgstr "不能等候线程终止"

-#: ../src/common/cmdproc.cpp:259
+#: ../src/common/cmdproc.cpp:259
msgid "Can't &Undo "
msgstr "不能恢复[&U]"

-#: ../src/common/image.cpp:1441
+#: ../src/common/image.cpp:1441
#, c-format
msgid "Can't check image format of file '%s': file does not exist."
msgstr "不能检查文件格式 '%s': 文件不存在."

-#: ../src/msw/registry.cpp:447
+#: ../src/msw/registry.cpp:447
#, c-format
msgid "Can't close registry key '%s'"
msgstr "不能关闭注册键 '%s'"

-#: ../src/msw/registry.cpp:519
+#: ../src/msw/registry.cpp:519
#, c-format
msgid "Can't copy values of unsupported type %d."
msgstr "不能拷贝不支持的类型 %d 的值."

-#: ../src/msw/listctrl.cpp:413
+#: ../src/msw/listctrl.cpp:413
msgid "Can't create list control window, check that comctl32.dll is installed."
msgstr "不能创建列表控件窗口, 检查comctl32.dll是否已安装."

-#: ../src/msw/registry.cpp:428
+#: ../src/msw/registry.cpp:428
#, c-format
msgid "Can't create registry key '%s'"
msgstr "不能创建注册键 '%s'"

-#: ../src/mac/thread.cpp:430 ../src/msw/thread.cpp:593
+#: ../src/mac/thread.cpp:430 ../src/msw/thread.cpp:593
#: ../src/os2/thread.cpp:491
msgid "Can't create thread"
msgstr "不能创建进程"

-#: ../src/msw/window.cpp:3080
+#: ../src/msw/window.cpp:3080
#, fuzzy, c-format
msgid "Can't create window of class %s"
msgstr "不能创建文件 '%s'"

-#: ../src/msw/registry.cpp:689
+#: ../src/msw/registry.cpp:689
#, c-format
msgid "Can't delete key '%s'"
msgstr "不能删除键 '%s'"

-#: ../src/msw/iniconf.cpp:444 ../src/os2/iniconf.cpp:448
+#: ../src/msw/iniconf.cpp:444 ../src/os2/iniconf.cpp:448
#, c-format
msgid "Can't delete the INI file '%s'"
msgstr "不能删除 INI 文件 '%s'"

-#: ../src/msw/registry.cpp:717
+#: ../src/msw/registry.cpp:717
#, c-format
msgid "Can't delete value '%s' from key '%s'"
msgstr "不能删除键值 '%s'/ '%s'"

-#: ../src/msw/registry.cpp:728
+#: ../src/msw/registry.cpp:728
#, c-format
msgid "Can't delete value of key '%s'"
msgstr "不能删除键 '%s'的值"

-#: ../src/msw/registry.cpp:1058
+#: ../src/msw/registry.cpp:1058
#, c-format
msgid "Can't enumerate subkeys of key '%s'"
msgstr "不能枚举键 '%s'的子键"

-#: ../src/msw/registry.cpp:1006
+#: ../src/msw/registry.cpp:1006
#, c-format
msgid "Can't enumerate values of key '%s'"
msgstr "不能枚举键 '%s'的值"

-#: ../src/common/ffile.cpp:212
+#: ../src/common/ffile.cpp:212
#, c-format
msgid "Can't find current position in file '%s'"
msgstr "不能在文件'%s'中找到当前位置"

-#: ../src/msw/registry.cpp:359
+#: ../src/msw/registry.cpp:359
#, c-format
msgid "Can't get info about registry key '%s'"
msgstr "不能获得注册键 '%s'的信息"

-#: ../src/common/zstream.cpp:197
+#: ../src/common/zstream.cpp:197
#, fuzzy
msgid "Can't initialize zlib deflate stream."
msgstr "不能初始化 OLE"

-#: ../src/common/zstream.cpp:88
+#: ../src/common/zstream.cpp:88
#, fuzzy
msgid "Can't initialize zlib inflate stream."
msgstr "不能初始化 OLE"

-#: ../src/common/image.cpp:1028 ../src/common/image.cpp:1048
+#: ../src/common/image.cpp:1028 ../src/common/image.cpp:1048
#, c-format
msgid "Can't load image from file '%s': file does not exist."
msgstr "不能从文件 '%s'中装入图像: 文件不存在."

-#: ../src/msw/registry.cpp:394
+#: ../src/msw/registry.cpp:394
#, c-format
msgid "Can't open registry key '%s'"
msgstr "不能打开注册键 '%s'"

-#: ../src/common/zstream.cpp:142
+#: ../src/common/zstream.cpp:142
#, fuzzy, c-format
msgid "Can't read from inflate stream: %s\n"
msgstr "不能从文件描述子 %d中读"

-#: ../src/common/zstream.cpp:121
+#: ../src/common/zstream.cpp:121
msgid "Can't read inflate stream: unexpected EOF in underlying stream."
msgstr ""

-#: ../src/msw/registry.cpp:930
+#: ../src/msw/registry.cpp:930
#, c-format
msgid "Can't read value of '%s'"
msgstr "不能读 '%s'的值"

-#: ../src/msw/registry.cpp:808 ../src/msw/registry.cpp:842
+#: ../src/msw/registry.cpp:808 ../src/msw/registry.cpp:842
#, c-format
msgid "Can't read value of key '%s'"
msgstr "不能读键 '%s'的值"

-#: ../src/common/image.cpp:1070
+#: ../src/common/image.cpp:1070
#, fuzzy, c-format
msgid "Can't save image to file '%s': unknown extension."
msgstr "不能从文件 '%s'中装入图像: 文件不存在."

-#: ../src/generic/logg.cpp:562 ../src/generic/logg.cpp:994
+#: ../src/generic/logg.cpp:562 ../src/generic/logg.cpp:994
msgid "Can't save log contents to file."
msgstr "不能把日志内容保存到文件."

-#: ../src/msw/thread.cpp:549 ../src/os2/thread.cpp:473
+#: ../src/msw/thread.cpp:549 ../src/os2/thread.cpp:473
msgid "Can't set thread priority"
msgstr "不能设置线程优先级"

-#: ../src/msw/registry.cpp:829 ../src/msw/registry.cpp:954
+#: ../src/msw/registry.cpp:829 ../src/msw/registry.cpp:954
#, c-format
msgid "Can't set value of '%s'"
msgstr "不能设置 '%s'的值"

-#: ../src/common/zstream.cpp:276
+#: ../src/common/zstream.cpp:276
#, fuzzy, c-format
msgid "Can't write to deflate stream: %s\n"
msgstr "不能写到文件描述子 %d"

-#: ../src/common/dlgcmn.cpp:240 ../src/generic/dirdlgg.cpp:155
+#: ../src/common/dlgcmn.cpp:240 ../src/generic/dirdlgg.cpp:155
#: ../src/generic/filedlgg.cpp:977 ../src/generic/filedlgg.cpp:996
#: ../src/generic/fontdlgg.cpp:255 ../src/generic/prntdlgg.cpp:455
#: ../src/generic/progdlgg.cpp:211 ../src/gtk/filedlg.cpp:168
@@ -753,457 +753,457 @@
msgid "Cancel"
msgstr "取消"

-#: ../contrib/src/xrc/xmlres.cpp:987 ../contrib/src/xrc/xmlres.cpp:1028
+#: ../contrib/src/xrc/xmlres.cpp:987 ../contrib/src/xrc/xmlres.cpp:1028
msgid "Cannot convert dialog units: dialog unknown."
msgstr ""

-#: ../src/common/strconv.cpp:1567
+#: ../src/common/strconv.cpp:1567
#, fuzzy, c-format
msgid "Cannot convert from the charset '%s'!"
msgstr "位置编码 (%d)"

-#: ../src/msw/dialup.cpp:497
+#: ../src/msw/dialup.cpp:497
#, c-format
msgid "Cannot find active dialup connection: %s"
msgstr "找不到活动的拨号连接: %s"

-#: ../contrib/src/xrc/xmlres.cpp:262
+#: ../contrib/src/xrc/xmlres.cpp:262
#, fuzzy, c-format
msgid "Cannot find container for unknown control '%s'."
msgstr "找不到活动的拨号连接: %s"

-#: ../contrib/src/xrc/xmlres.cpp:1042
+#: ../contrib/src/xrc/xmlres.cpp:1042
#, fuzzy, c-format
msgid "Cannot find font node '%s'."
msgstr "不能打开 URL '%s'"

-#: ../src/msw/dialup.cpp:811
+#: ../src/msw/dialup.cpp:811
msgid "Cannot find the location of address book file"
msgstr "找不到地址簿文件的位置"

-#: ../src/unix/threadpsx.cpp:1100
+#: ../src/unix/threadpsx.cpp:1100
#, c-format
msgid "Cannot get priority range for scheduling policy %d."
msgstr "不能获得调度策略 %d 的优先级范围."

-#: ../src/unix/utilsunx.cpp:724
+#: ../src/unix/utilsunx.cpp:724
msgid "Cannot get the hostname"
msgstr "不能获得主机名"

-#: ../src/unix/utilsunx.cpp:760
+#: ../src/unix/utilsunx.cpp:760
msgid "Cannot get the official hostname"
msgstr "不能获得正式的主机名"

-#: ../src/msw/dialup.cpp:905
+#: ../src/msw/dialup.cpp:905
msgid "Cannot hang up - no active dialup connection."
msgstr "不能挂起 - 没有活动的拨号连接."

-#: ../src/msw/app.cpp:290 ../src/msw/app.cpp:293
+#: ../src/msw/app.cpp:290 ../src/msw/app.cpp:293
msgid "Cannot initialize OLE"
msgstr "不能初始化 OLE"

-#: ../src/mgl/app.cpp:292
+#: ../src/mgl/app.cpp:292
#, fuzzy
msgid "Cannot initialize SciTech MGL!"
msgstr "不能初始化 OLE"

-#: ../src/mgl/window.cpp:546
+#: ../src/mgl/window.cpp:546
#, fuzzy
msgid "Cannot initialize display."
msgstr "不能初始化 OLE"

-#: ../src/msw/volume.cpp:601
+#: ../src/msw/volume.cpp:601
#, fuzzy, c-format
msgid "Cannot load icon from '%s'."
msgstr "不能枚举目录 '%s'中的文件"

-#: ../contrib/src/xrc/xmlres.cpp:382
+#: ../contrib/src/xrc/xmlres.cpp:382
#, fuzzy, c-format
msgid "Cannot load resources from file '%s'."
msgstr "找不到资源包含文件 %s."

-#: ../src/html/htmlfilt.cpp:164
+#: ../src/html/htmlfilt.cpp:164
#, c-format
msgid "Cannot open HTML document: %s"
msgstr "不能打开 HTML 文档: %s"

-#: ../src/html/helpdata.cpp:613
+#: ../src/html/helpdata.cpp:613
#, c-format
msgid "Cannot open HTML help book: %s"
msgstr "不能打开 HTML 帮助: %s"

-#: ../src/generic/helpext.cpp:122
+#: ../src/generic/helpext.cpp:122
#, c-format
msgid "Cannot open URL '%s'"
msgstr "不能打开 URL '%s'"

-#: ../src/html/helpdata.cpp:284
+#: ../src/html/helpdata.cpp:284
#, c-format
msgid "Cannot open contents file: %s"
msgstr "不能打开目录文件: %s"

-#: ../contrib/src/xrc/xmlres.cpp:353
+#: ../contrib/src/xrc/xmlres.cpp:353
#, fuzzy, c-format
msgid "Cannot open file '%s'."
msgstr "不能打开文件'%s'"

-#: ../src/generic/dcpsg.cpp:1795
+#: ../src/generic/dcpsg.cpp:1795
msgid "Cannot open file for PostScript printing!"
msgstr "不能打开文件进行PostScript打印!"

-#: ../src/html/helpdata.cpp:299
+#: ../src/html/helpdata.cpp:299
#, c-format
msgid "Cannot open index file: %s"
msgstr "不能打开索引文件: %s"

-#: ../src/common/intl.cpp:1196
+#: ../src/common/intl.cpp:1196
#, fuzzy, c-format
msgid "Cannot parse Plural-Forms:'%s'"
msgstr "不能打开目录文件: %s"

-#: ../contrib/src/xrc/xmlres.cpp:975
+#: ../contrib/src/xrc/xmlres.cpp:975
#, fuzzy, c-format
msgid "Cannot parse coordinates from '%s'."
msgstr "不能打开目录文件: %s"

-#: ../contrib/src/xrc/xmlres.cpp:1016
+#: ../contrib/src/xrc/xmlres.cpp:1016
#, fuzzy, c-format
msgid "Cannot parse dimension from '%s'."
msgstr "不能枚举目录 '%s'中的文件"

-#: ../src/html/helpfrm.cpp:1387
+#: ../src/html/helpfrm.cpp:1387
msgid "Cannot print empty page."
msgstr "不能打印空页面."

-#: ../src/msw/volume.cpp:160 ../src/msw/volume.cpp:491
+#: ../src/msw/volume.cpp:160 ../src/msw/volume.cpp:491
#, fuzzy, c-format
msgid "Cannot read typename from '%s'!"
msgstr "不能打开目录文件: %s"

-#: ../src/unix/threadpsx.cpp:1081
+#: ../src/unix/threadpsx.cpp:1081
msgid "Cannot retrieve thread scheduling policy."
msgstr "不能找回线程调度策略."

-#: ../src/unix/threadpsx.cpp:728
+#: ../src/unix/threadpsx.cpp:728
msgid "Cannot start thread: error writing TLS"
msgstr "不能启动线程: 写TLS错误"

-#: ../src/html/helpfrm.cpp:441
+#: ../src/html/helpfrm.cpp:441
msgid "Case sensitive"
msgstr "大小写敏感"

-#: ../src/common/fmapbase.cpp:115
+#: ../src/common/fmapbase.cpp:115
#, fuzzy
msgid "Celtic (ISO-8859-14)"
msgstr "波罗的海语 (ISO-8859-13)"

-#: ../src/common/fmapbase.cpp:103
+#: ../src/common/fmapbase.cpp:103
#, fuzzy
msgid "Central European (ISO-8859-2)"
msgstr "中欧语系 (ISO-8859-2/Latin 2)"

-#: ../src/msw/dialup.cpp:746
+#: ../src/msw/dialup.cpp:746
msgid "Choose ISP to dial"
msgstr "选择ISP进行拨号"

-#: ../src/gtk/fontdlg.cpp:125
+#: ../src/gtk/fontdlg.cpp:125
msgid "Choose font"
msgstr "选择字体"

-#: ../src/generic/mdig.cpp:114
+#: ../src/generic/mdig.cpp:114
#, fuzzy
msgid "Cl&ose"
msgstr "关闭"

-#: ../src/generic/logg.cpp:500
+#: ../src/generic/logg.cpp:500
msgid "Clear the log contents"
msgstr "清除日志内容"

-#: ../src/generic/progdlgg.cpp:358
../tools/daemon/stt-daemon.cpp:66
-#: ../tools/daemon/stt-daemon.cpp:147 ../tools/daemon/stt-daemon.cpp:175
-#: ../tools/daemon/stt-daemon.cpp:176
+#: ../src/generic/progdlgg.cpp:358 ../tools/daemon/stt-daemon.cpp:147
+#: ../tools/daemon/stt-daemon.cpp:175 ../tools/daemon/stt-daemon.cpp:176
+#: ../tools/daemon/stt-daemon.cpp:173
msgid "Close"
msgstr "关闭"

-#: ../src/univ/themes/win32.cpp:4680
+#: ../src/univ/themes/win32.cpp:4680
msgid "Close\tAlt-F4"
msgstr ""

-#: ../src/generic/mdig.cpp:115
+#: ../src/generic/mdig.cpp:115
#, fuzzy
msgid "Close All"
msgstr "关闭"

-#: ../src/generic/logg.cpp:502
+#: ../src/generic/logg.cpp:502
msgid "Close this window"
msgstr "关闭窗口"

-#: ../src/html/helpfrm.cpp:1401
+#: ../src/html/helpfrm.cpp:1401
msgid "Compressed HTML Help file (*.chm)|*.chm|"
msgstr ""

-#: ../src/generic/dirctrlg.cpp:592
+#: ../src/generic/dirctrlg.cpp:592
#, fuzzy
msgid "Computer"
msgstr "计算机"

-#: ../src/common/fileconf.cpp:934
+#: ../src/common/fileconf.cpp:934
#, c-format
msgid "Config entry name cannot start with '%c'."
msgstr "配置条目名不能以 '%c'开头."

-#: ../src/generic/filedlgg.cpp:1214 ../src/gtk/filedlg.cpp:74
+#: ../src/generic/filedlgg.cpp:1214 ../src/gtk/filedlg.cpp:74
msgid "Confirm"
msgstr "确认"

-#: ../src/msw/mimetype.cpp:679
+#: ../src/msw/mimetype.cpp:679
msgid "Confirm registry update"
msgstr ""

-#: ../src/html/htmlwin.cpp:361
+#: ../src/html/htmlwin.cpp:361
msgid "Connecting..."
msgstr "连接..."

-#: ../src/html/helpfrm.cpp:381
+#: ../src/html/helpfrm.cpp:381
msgid "Contents"
msgstr "目录"

-#: ../src/common/strconv.cpp:942
+#: ../src/common/strconv.cpp:942
#, c-format
msgid "Conversion to charset '%s' doesn't work."
msgstr ""

-#: ../src/html/htmlwin.cpp:781
+#: ../src/html/htmlwin.cpp:781
#, fuzzy, c-format
msgid "Copied to clipboard:\"%s\""
msgstr "设置剪贴板数据失败"

-#: ../src/generic/prntdlgg.cpp:190
+#: ../src/generic/prntdlgg.cpp:190
msgid "Copies:"
msgstr "份:"

-#: ../src/html/chm.cpp:689
+#: ../src/html/chm.cpp:689
#, fuzzy, c-format
msgid "Could not create temporary file '%s'"
msgstr "不能删除临时文件 '%s'"

-#: ../src/html/chm.cpp:274
+#: ../src/html/chm.cpp:274
#, c-format
msgid "Could not extract %s into %s: %s"
msgstr ""

-#: ../src/generic/tabg.cpp:1049
+#: ../src/generic/tabg.cpp:1049
msgid "Could not find tab for id"
msgstr "找不到id的标签"

-#: ../src/msw/textctrl.cpp:2632
+#: ../src/msw/textctrl.cpp:2632
#, c-format
msgid "Could not load Rich Edit DLL '%s'"
msgstr "不能装载 Rich Edit DLL '%s'"

-#: ../src/html/chm.cpp:445
+#: ../src/html/chm.cpp:445
#, fuzzy, c-format
msgid "Could not locate file '%s'."
msgstr "不能打开文件'%s'"

-#: ../src/common/prntbase.cpp:810
+#: ../src/common/prntbase.cpp:810
msgid "Could not start document preview."
msgstr "不能启动文档预览."

-#: ../src/generic/printps.cpp:221 ../src/msw/printwin.cpp:245
+#: ../src/generic/printps.cpp:221 ../src/msw/printwin.cpp:245
msgid "Could not start printing."
msgstr "不能启动打印."

-#: ../src/common/wincmn.cpp:1202
+#: ../src/common/wincmn.cpp:1202
msgid "Could not transfer data to window"
msgstr "不能把数据转到窗口"

-#: ../src/os2/thread.cpp:154
+#: ../src/os2/thread.cpp:154
msgid "Couldn't acquire a mutex lock"
msgstr "不能得到互斥体锁"

-#: ../src/msw/dragimag.cpp:166 ../src/msw/dragimag.cpp:206
+#: ../src/msw/dragimag.cpp:166 ../src/msw/dragimag.cpp:206
#: ../src/msw/imaglist.cpp:156 ../src/msw/imaglist.cpp:174
#: ../src/msw/imaglist.cpp:186
msgid "Couldn't add an image to the image list."
msgstr "不能把图像加到图象列表."

-#: ../src/msw/timer.cpp:101 ../src/os2/timer.cpp:118
+#: ../src/msw/timer.cpp:101 ../src/os2/timer.cpp:118
msgid "Couldn't create a timer"
msgstr "不能创建计时器"

-#: ../src/mgl/cursor.cpp:135 ../src/mgl/cursor.cpp:166
+#: ../src/mgl/cursor.cpp:135 ../src/mgl/cursor.cpp:166
#, fuzzy
msgid "Couldn't create cursor."
msgstr "不能创建计时器"

-#: ../src/common/dynlib.cpp:388
+#: ../src/common/dynlib.cpp:388
#, c-format
msgid "Couldn't find symbol '%s' in a dynamic library"
msgstr "在动态连接库中找不到符号'%s'"

-#: ../src/mac/thread.cpp:507 ../src/msw/thread.cpp:847
+#: ../src/mac/thread.cpp:507 ../src/msw/thread.cpp:847
msgid "Couldn't get the current thread pointer"
msgstr "不能获得当前线程指针"

-#: ../src/common/imagpng.cpp:607
+#: ../src/common/imagpng.cpp:607
msgid "Couldn't load a PNG image - file is corrupted or not enough memory."
msgstr "不能装入PNG图像 - 文件被破坏 或 没有足够内存."

-#: ../src/unix/sound.cpp:412
+#: ../src/unix/sound.cpp:412
#, fuzzy, c-format
msgid "Couldn't load sound data from '%s'."
msgstr "不能枚举目录 '%s'中的文件"

-#: ../src/unix/sound_sdl.cpp:231
+#: ../src/unix/sound_sdl.cpp:231
#, fuzzy, c-format
msgid "Couldn't open audio: %s"
msgstr "不能打开文件'%s'"

-#: ../src/msw/ole/dataobj.cpp:147
+#: ../src/msw/ole/dataobj.cpp:147
#, c-format
msgid "Couldn't register clipboard format '%s'."
msgstr "不能注册剪贴板格式 '%s'."

-#: ../src/os2/thread.cpp:171
+#: ../src/os2/thread.cpp:171
msgid "Couldn't release a mutex"
msgstr "不能释放互斥体"

-#: ../src/msw/listctrl.cpp:828
+#: ../src/msw/listctrl.cpp:828
#, c-format
msgid "Couldn't retrieve information about list control item %d."
msgstr "不能获得列表控件的项 %d信息."

-#: ../src/common/imagpng.cpp:647 ../src/common/imagpng.cpp:658
+#: ../src/common/imagpng.cpp:647 ../src/common/imagpng.cpp:658
#: ../src/common/imagpng.cpp:666
#, fuzzy
msgid "Couldn't save PNG image."
msgstr "JPEG: 不能保存图像."

-#: ../src/mac/thread.cpp:756 ../src/msw/thread.cpp:610
+#: ../src/mac/thread.cpp:756 ../src/msw/thread.cpp:610
msgid "Couldn't terminate thread"
msgstr "不能终止线程"

-#: ../src/common/xtistrm.cpp:161
+#: ../src/common/xtistrm.cpp:161
msgid "Create Parameter not found in declared RTTI Parameters"
msgstr ""

-#: ../src/generic/dirdlgg.cpp:265
+#: ../src/generic/dirdlgg.cpp:265
msgid "Create directory"
msgstr "创建目录"

-#: ../src/generic/dirdlgg.cpp:105 ../src/generic/filedlgg.cpp:931
+#: ../src/generic/dirdlgg.cpp:105 ../src/generic/filedlgg.cpp:931
msgid "Create new directory"
msgstr "创建新目录"

-#: ../src/msw/textctrl.cpp:2050
+#: ../src/msw/textctrl.cpp:2050
msgid "Cu&t"
msgstr ""

-#: ../src/generic/filedlgg.cpp:942
+#: ../src/generic/filedlgg.cpp:942
msgid "Current directory:"
msgstr "当前目录:"

-#: ../src/common/fmapbase.cpp:106
+#: ../src/common/fmapbase.cpp:106
#, fuzzy
msgid "Cyrillic (ISO-8859-5)"
msgstr "波罗的海语 (ISO-8859-13)"

-#: ../src/common/paper.cpp:118
+#: ../src/common/paper.cpp:118
msgid "D sheet, 22 x 34 in"
msgstr "D 纸张, 22 x 34 英寸"

-#: ../src/msw/dde.cpp:649
+#: ../src/msw/dde.cpp:649
msgid "DDE poke request failed"
msgstr "DDE poke 请求失败"

-#: ../src/common/imagbmp.cpp:914
+#: ../src/common/imagbmp.cpp:914
#, fuzzy
msgid "DIB Header: Encoding doesn't match bitdepth."
msgstr "BMP: 编码不能匹配颜色位数."

-#: ../src/common/imagbmp.cpp:876
+#: ../src/common/imagbmp.cpp:876
#, fuzzy
msgid "DIB Header: Image height > 32767 pixels for file."
msgstr "BMP: 对于文件,图像高度 > 32767 象素."

-#: ../src/common/imagbmp.cpp:870
+#: ../src/common/imagbmp.cpp:870
#, fuzzy
msgid "DIB Header: Image width > 32767 pixels for file."
msgstr "BMP: 对于文件,图像宽度 > 32767 象素."

-#: ../src/common/imagbmp.cpp:890
+#: ../src/common/imagbmp.cpp:890
#, fuzzy
msgid "DIB Header: Unknown bitdepth in file."
msgstr "BMP: 文件中颜色位数未知."

-#: ../src/common/imagbmp.cpp:900
+#: ../src/common/imagbmp.cpp:900
#, fuzzy
msgid "DIB Header: Unknown encoding in file."
msgstr "BMP: 文件编码未知."

-#: ../src/common/paper.cpp:140
+#: ../src/common/paper.cpp:140
msgid "DL Envelope, 110 x 220 mm"
msgstr "DL 信封, 110 x 220 毫米"

-#: ../src/generic/fontdlgg.cpp:222
+#: ../src/generic/fontdlgg.cpp:222
msgid "Decorative"
msgstr "修饰"

-#: ../src/common/fmapbase.cpp:660
+#: ../src/common/fmapbase.cpp:660
msgid "Default encoding"
msgstr ""

-#: ../contrib/src/gizmos/editlbox.cpp:163
+#: ../contrib/src/gizmos/editlbox.cpp:163
#, fuzzy
msgid "Delete item"
msgstr "电传打字机"

-#: ../src/unix/snglinst.cpp:269
+#: ../src/unix/snglinst.cpp:269
#, fuzzy, c-format
msgid "Deleted stale lock file '%s'."
msgstr "不能删除 INI 文件 '%s'"

-#: ../src/msw/dialup.cpp:346
+#: ../src/msw/dialup.cpp:346
msgid ""
"Dial up functions are unavailable because the remote access service (RAS) is "
"not installed on this machine. Please install it."
msgstr "由于远程访问服务(RAS)没有安装在本机,拨号功能不能使用. 请安装它."

-#: ../src/generic/tipdlg.cpp:220
+#: ../src/generic/tipdlg.cpp:220
msgid "Did you know..."
msgstr "你知道..."

-#: ../src/common/filefn.cpp:1352
+#: ../src/common/filefn.cpp:1352
#, c-format
msgid "Directory '%s' couldn't be created"
msgstr "目录'%s'不能被创建"

-#: ../src/mgl/dirmgl.cpp:217
+#: ../src/mgl/dirmgl.cpp:217
#, fuzzy, c-format
msgid "Directory '%s' doesn't exist!"
msgstr "目录不存在"

-#: ../src/generic/dirdlgg.cpp:190
+#: ../src/generic/dirdlgg.cpp:190
msgid "Directory does not exist"
msgstr "目录不存在"

-#: ../src/generic/filedlgg.cpp:1191
+#: ../src/generic/filedlgg.cpp:1191
#, fuzzy
msgid "Directory doesn't exist."
msgstr "目录不存在"

-#: ../src/html/helpfrm.cpp:409
+#: ../src/html/helpfrm.cpp:409
msgid ""
"Display all index items that contain given substring. Search is case "
"insensitive."
msgstr "显示包含给定子串的所有索引项. 搜索是大小写无关的."

-#: ../src/html/helpfrm.cpp:583
+#: ../src/html/helpfrm.cpp:583
msgid "Display options dialog"
msgstr "显示选项对话框"

-#: ../src/msw/mimetype.cpp:672
+#: ../src/msw/mimetype.cpp:672
msgid ""
"Do you want to overwrite the command used to %s files with extension \"%s"
"\" ?\n"
@@ -1213,57 +1213,57 @@
"%s %1"
msgstr ""

-#: ../src/common/docview.cpp:466
+#: ../src/common/docview.cpp:466
#, c-format
msgid "Do you want to save changes to document %s?"
msgstr "你想保存对文档%s的修改?"

-#: ../src/html/htmlwin.cpp:421
+#: ../src/html/htmlwin.cpp:421
msgid "Done"
msgstr "完成"

-#: ../src/generic/progdlgg.cpp:370
+#: ../src/generic/progdlgg.cpp:370
msgid "Done."
msgstr "完成。"

-#: ../src/common/xtixml.cpp:271
+#: ../src/common/xtixml.cpp:271
#, c-format
msgid "Doubly used id : %d"
msgstr ""

-#: ../src/generic/fdrepdlg.cpp:151
+#: ../src/generic/fdrepdlg.cpp:151
#, fuzzy
msgid "Down"
msgstr "完成"

-#: ../src/common/paper.cpp:119
+#: ../src/common/paper.cpp:119
msgid "E sheet, 34 x 44 in"
msgstr "E 纸张, 34 x 44 英寸"

-#: ../contrib/src/gizmos/editlbox.cpp:161
+#: ../contrib/src/gizmos/editlbox.cpp:161
msgid "Edit item"
msgstr ""

-#: ../src/generic/progdlgg.cpp:183
+#: ../src/generic/progdlgg.cpp:183
msgid "Elapsed time : "
msgstr "用时:"

-#: ../src/common/prntbase.cpp:408
+#: ../src/common/prntbase.cpp:408
#, c-format
msgid "Enter a page number between %d and %d:"
msgstr ""

-#: ../src/generic/helpext.cpp:442
+#: ../src/generic/helpext.cpp:442
msgid "Entries found"
msgstr "找到的条目"

-#: ../src/common/config.cpp:366
+#: ../src/common/config.cpp:366
#, c-format
msgid ""
"Environment variables expansion failed: missing '%c' at position %d in '%s'."
msgstr "环境变量扩展失败: '%c' 没有出现在位置 %d / '%s'."

-#: ../src/generic/dirctrlg.cpp:683 ../src/generic/dirctrlg.cpp:701
+#: ../src/generic/dirctrlg.cpp:683 ../src/generic/dirctrlg.cpp:701
#: ../src/generic/dirctrlg.cpp:712 ../src/generic/dirdlgg.cpp:300
#: ../src/generic/filedlgg.cpp:611 ../src/generic/filedlgg.cpp:711
#: ../src/generic/filedlgg.cpp:725 ../src/generic/filedlgg.cpp:739
@@ -1273,158 +1273,158 @@
msgid "Error"
msgstr "错误"

-#: ../src/unix/utilsunx.cpp:1030 ../src/unix/utilsunx.cpp:1038
+#: ../src/unix/utilsunx.cpp:1030 ../src/unix/utilsunx.cpp:1038
msgid "Error "
msgstr "错误"

-#: ../src/generic/dirdlgg.cpp:205
+#: ../src/generic/dirdlgg.cpp:205
msgid "Error creating directory"
msgstr "创建目录错误"

-#: ../src/common/imagbmp.cpp:923
+#: ../src/common/imagbmp.cpp:923
#, fuzzy
msgid "Error in reading image DIB ."
msgstr "TIFF: 读图像错误."

-#: ../src/common/fileconf.cpp:505
+#: ../src/common/fileconf.cpp:505
#, fuzzy
msgid "Error reading config options."
msgstr "TIFF: 读图像错误."

-#: ../src/common/log.cpp:478
+#: ../src/common/log.cpp:478
msgid "Error: "
msgstr "错误:"

-#: ../src/common/fmapbase.cpp:104
+#: ../src/common/fmapbase.cpp:104
msgid "Esperanto (ISO-8859-3)"
msgstr "Esperanto (ISO-8859-3)"

-#: ../src/generic/progdlgg.cpp:191
+#: ../src/generic/progdlgg.cpp:191
msgid "Estimated time : "
msgstr "预期时间:"

-#: ../src/msw/utilsexc.cpp:735
+#: ../src/msw/utilsexc.cpp:735
#, c-format
msgid "Execution of command '%s' failed"
msgstr "命令 '%s'执行失败"

-#: ../src/os2/utilsexc.cpp:171
+#: ../src/os2/utilsexc.cpp:171
#, fuzzy, c-format
msgid "Execution of command '%s' failed with error: %ul"
msgstr "命令 '%s'执行失败"

-#: ../src/common/paper.cpp:124
+#: ../src/common/paper.cpp:124
msgid "Executive, 7 1/4 x 10 1/2 in"
msgstr "Executive, 7 1/4 x 10 1/2 英寸"

-#: ../src/common/fmapbase.cpp:139
+#: ../src/common/fmapbase.cpp:139
msgid "Extended Unix Codepage for Japanese (EUC-JP)"
msgstr ""

-#: ../src/html/chm.cpp:696
+#: ../src/html/chm.cpp:696
#, fuzzy, c-format
msgid "Extraction of '%s' into '%s' failed."
msgstr "命令 '%s'执行失败"

-#: ../src/msw/dialup.cpp:840
+#: ../src/msw/dialup.cpp:840
#, c-format
msgid "Failed to %s dialup connection: %s"
msgstr "到 %s 的拨号连接失败: %s"

-#: ../src/unix/snglinst.cpp:243
+#: ../src/unix/snglinst.cpp:243
msgid "Failed to access lock file."
msgstr ""

-#: ../src/msw/dib.cpp:460
+#: ../src/msw/dib.cpp:460
#, c-format
msgid "Failed to allocated %luKb of memory for bitmap data."
msgstr ""

-#: ../src/unix/displayx11.cpp:262
+#: ../src/unix/displayx11.cpp:262
#, fuzzy
msgid "Failed to change video mode"
msgstr "关闭剪贴板失败."

-#: ../src/common/filename.cpp:187
+#: ../src/common/filename.cpp:187
#, fuzzy
msgid "Failed to close file handle"
msgstr "关闭剪贴板失败."

-#: ../src/unix/snglinst.cpp:308
+#: ../src/unix/snglinst.cpp:308
#, fuzzy, c-format
msgid "Failed to close lock file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/msw/clipbrd.cpp:122
+#: ../src/msw/clipbrd.cpp:122
msgid "Failed to close the clipboard."
msgstr "关闭剪贴板失败."

-#: ../src/msw/dialup.cpp:780
+#: ../src/msw/dialup.cpp:780
msgid "Failed to connect: missing username/password."
msgstr "连接失败: 缺少用户名/口令."

-#: ../src/msw/dialup.cpp:726
+#: ../src/msw/dialup.cpp:726
msgid "Failed to connect: no ISP to dial."
msgstr "连接失败: 没有要拨号的ISP."

-#: ../src/msw/registry.cpp:623
+#: ../src/msw/registry.cpp:623
#, c-format
msgid "Failed to copy registry value '%s'"
msgstr "拷贝注册键值失败 '%s'"

-#: ../src/msw/registry.cpp:632
+#: ../src/msw/registry.cpp:632
#, c-format
msgid "Failed to copy the contents of registry key '%s' to '%s'."
msgstr "把注册键内容从 '%s' 拷贝到 '%s'失败."

-#: ../src/common/filefn.cpp:1192
+#: ../src/common/filefn.cpp:1192
#, fuzzy, c-format
msgid "Failed to copy the file '%s' to '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/msw/dde.cpp:1004
+#: ../src/msw/dde.cpp:1004
msgid "Failed to create DDE string"
msgstr "创建 DDE 字符串失败"

-#: ../src/msw/mdi.cpp:426
+#: ../src/msw/mdi.cpp:426
msgid "Failed to create MDI parent frame."
msgstr "创建 MDI 父框架失败."

-#: ../src/msw/statbr95.cpp:112
+#: ../src/msw/statbr95.cpp:112
msgid "Failed to create a status bar."
msgstr "创建状态条失败。"

-#: ../src/common/filename.cpp:733
+#: ../src/common/filename.cpp:733
#, fuzzy
msgid "Failed to create a temporary file name"
msgstr "创建 MDI 父框架失败."

-#: ../src/msw/utilsexc.cpp:228
+#: ../src/msw/utilsexc.cpp:228
#, fuzzy
msgid "Failed to create an anonymous pipe"
msgstr "创建状态条失败。"

-#: ../src/msw/dde.cpp:468
+#: ../src/msw/dde.cpp:468
#, c-format
msgid "Failed to create connection to server '%s' on topic '%s'"
msgstr "创建到服务器 '%s'的关于主题'%s'的连接失败"

-#: ../src/msw/cursor.cpp:197
+#: ../src/msw/cursor.cpp:197
#, fuzzy
msgid "Failed to create cursor."
msgstr "创建状态条失败。"

-#: ../src/unix/mimetype.cpp:369
+#: ../src/unix/mimetype.cpp:369
#, fuzzy, c-format
msgid "Failed to create directory %s/.gnome."
msgstr "创建 MDI 父框架失败."

-#: ../src/unix/mimetype.cpp:378
+#: ../src/unix/mimetype.cpp:378
#, fuzzy, c-format
msgid "Failed to create directory %s/mime-info."
msgstr "将注册值 '%s'改名到'%s'失败."

-#: ../src/generic/dirdlgg.cpp:203
+#: ../src/generic/dirdlgg.cpp:203
#, fuzzy, c-format
msgid ""
"Failed to create directory '%s'\n"
@@ -1433,464 +1433,464 @@
"\n"
"(您是否有所需的权限?)"

-#: ../src/msw/mimetype.cpp:196
+#: ../src/msw/mimetype.cpp:196
#, fuzzy, c-format
msgid "Failed to create registry entry for '%s' files."
msgstr "将注册值 '%s'改名到'%s'失败."

-#: ../src/msw/fdrepdlg.cpp:480
+#: ../src/msw/fdrepdlg.cpp:480
#, c-format
msgid "Failed to create the standard find/replace dialog (error code %d)"
msgstr ""

-#: ../src/html/winpars.cpp:495
+#: ../src/html/winpars.cpp:495
#, c-format
msgid "Failed to display HTML document in %s encoding"
msgstr "按编码 %s 显示HTML文档失败"

-#: ../src/mac/clipbrd.cpp:185 ../src/msw/clipbrd.cpp:134
+#: ../src/mac/clipbrd.cpp:185 ../src/msw/clipbrd.cpp:134
msgid "Failed to empty the clipboard."
msgstr "清空剪贴板失败"

-#: ../src/unix/displayx11.cpp:201
+#: ../src/unix/displayx11.cpp:201
#, fuzzy
msgid "Failed to enumerate video modes"
msgstr "创建 MDI 父框架失败."

-#: ../src/msw/dde.cpp:668
+#: ../src/msw/dde.cpp:668
msgid "Failed to establish an advise loop with DDE server"
msgstr "在DDE服务器建立advise循环失败"

-#: ../src/msw/dialup.cpp:618
+#: ../src/msw/dialup.cpp:618
#, c-format
msgid "Failed to establish dialup connection: %s"
msgstr "建立拨号连接: %s失败"

-#: ../src/unix/utilsunx.cpp:459 ../src/unix/utilsunx.cpp:475
+#: ../src/unix/utilsunx.cpp:459 ../src/unix/utilsunx.cpp:475
#, c-format
msgid "Failed to execute '%s'\n"
msgstr "执行 '%s'失败\n"

-#: ../src/msw/dialup.cpp:678
+#: ../src/msw/dialup.cpp:678
#, c-format
msgid "Failed to get ISP names: %s"
msgstr "获取ISP名: %s失败"

-#: ../src/mac/clipbrd.cpp:134
+#: ../src/mac/clipbrd.cpp:134
#, fuzzy
msgid "Failed to get clipboard data."
msgstr "设置剪贴板数据失败"

-#: ../src/msw/clipbrd.cpp:713
+#: ../src/msw/clipbrd.cpp:713
msgid "Failed to get data from the clipboard"
msgstr "从剪贴板获取数据失败"

-#: ../src/common/stopwatch.cpp:238
+#: ../src/common/stopwatch.cpp:238
msgid "Failed to get the UTC system time."
msgstr "获取UTC系统时间失败."

-#: ../src/common/stopwatch.cpp:189
+#: ../src/common/stopwatch.cpp:189
msgid "Failed to get the local system time"
msgstr "获取本地系统时间失败"

-#: ../src/common/filefn.cpp:1602
+#: ../src/common/filefn.cpp:1602
#, fuzzy
msgid "Failed to get the working directory"
msgstr "创建目录失败"

-#: ../src/univ/theme.cpp:122
+#: ../src/univ/theme.cpp:122
msgid "Failed to initialize GUI: no built-in themes found."
msgstr ""

-#: ../src/msw/helpchm.cpp:69
+#: ../src/msw/helpchm.cpp:69
msgid "Failed to initialize MS HTML Help."
msgstr ""

-#: ../src/msw/glcanvas.cpp:741
+#: ../src/msw/glcanvas.cpp:741
#, fuzzy
msgid "Failed to initialize OpenGL"
msgstr "不能初始化 OLE"

-#: ../src/unix/threadpsx.cpp:896
+#: ../src/unix/threadpsx.cpp:896
msgid ""
"Failed to join a thread, potential memory leak detected - please restart the "
"program"
msgstr "合并线程失败, 检测到潜在地内存丢失 - 请重新启动系统"

-#: ../src/msw/utils.cpp:723
+#: ../src/msw/utils.cpp:723
#, fuzzy, c-format
msgid "Failed to kill process %d"
msgstr "重定向子过程输入/输出失败"

-#: ../src/common/iconbndl.cpp:68
+#: ../src/common/iconbndl.cpp:68
#, fuzzy, c-format
msgid "Failed to load image %d from file '%s'."
msgstr "刷新文件 '%s'失败"

-#: ../src/msw/volume.cpp:312
+#: ../src/msw/volume.cpp:312
#, fuzzy
msgid "Failed to load mpr.dll."
msgstr "设置剪贴板数据失败"

-#: ../src/common/dynlib.cpp:287
+#: ../src/common/dynlib.cpp:287
#, c-format
msgid "Failed to load shared library '%s'"
msgstr "不能装载共享库 '%s'"

-#: ../src/common/dynlib.cpp:216
+#: ../src/common/dynlib.cpp:216
#, fuzzy, c-format
msgid "Failed to load shared library '%s' Error '%s'"
msgstr "不能装载共享库 '%s'"

-#: ../src/unix/snglinst.cpp:192
+#: ../src/unix/snglinst.cpp:192
#, fuzzy, c-format
msgid "Failed to lock the lock file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/common/regex.cpp:263
+#: ../src/common/regex.cpp:263
#, fuzzy, c-format
msgid "Failed to match '%s' in regular expression: %s"
msgstr "到 %s 的拨号连接失败: %s"

-#: ../src/common/filename.cpp:1848
+#: ../src/common/filename.cpp:1848
#, fuzzy, c-format
msgid "Failed to modify file times for '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/common/filename.cpp:175
+#: ../src/common/filename.cpp:175
#, fuzzy, c-format
msgid "Failed to open '%s' for %s"
msgstr "打开剪贴板失败。"

-#: ../src/html/chm.cpp:142
+#: ../src/html/chm.cpp:142
#, fuzzy, c-format
msgid "Failed to open CHM archive '%s'."
msgstr "打开剪贴板失败。"

-#: ../src/common/filename.cpp:755
+#: ../src/common/filename.cpp:755
#, fuzzy
msgid "Failed to open temporary file."
msgstr "打开剪贴板失败。"

-#: ../src/msw/clipbrd.cpp:102
+#: ../src/msw/clipbrd.cpp:102
msgid "Failed to open the clipboard."
msgstr "打开剪贴板失败。"

-#: ../src/msw/clipbrd.cpp:616
+#: ../src/msw/clipbrd.cpp:616
msgid "Failed to put data on the clipboard"
msgstr "把数据放到剪贴板失败"

-#: ../src/unix/snglinst.cpp:252
+#: ../src/unix/snglinst.cpp:252
#, fuzzy
msgid "Failed to read PID from lock file."
msgstr "创建 MDI 父框架失败."

-#: ../src/unix/utilsunx.cpp:547
+#: ../src/unix/utilsunx.cpp:547
msgid "Failed to redirect child process input/output"
msgstr "重定向子过程输入/输出失败"

-#: ../src/msw/utilsexc.cpp:635
+#: ../src/msw/utilsexc.cpp:635
#, fuzzy
msgid "Failed to redirect the child process IO"
msgstr "重定向子过程输入/输出失败"

-#: ../src/msw/dde.cpp:318
+#: ../src/msw/dde.cpp:318
#, c-format
msgid "Failed to register DDE server '%s'"
msgstr "注册DDE服务器 '%s'失败"

-#: ../src/common/fontmap.cpp:230
+#: ../src/common/fontmap.cpp:230
#, c-format
msgid "Failed to remember the encoding for the charset '%s'."
msgstr "回忆字符集 '%s'编码失败."

-#: ../src/unix/snglinst.cpp:296
+#: ../src/unix/snglinst.cpp:296
#, fuzzy, c-format
msgid "Failed to remove lock file '%s'"
msgstr "不能删除文件 '%s'"

-#: ../src/unix/snglinst.cpp:262
+#: ../src/unix/snglinst.cpp:262
#, fuzzy, c-format
msgid "Failed to remove stale lock file '%s'."
msgstr "将注册值 '%s'改名到'%s'失败."

-#: ../src/msw/registry.cpp:469
+#: ../src/msw/registry.cpp:469
#, c-format
msgid "Failed to rename registry value '%s' to '%s'."
msgstr "将注册值 '%s'改名到'%s'失败."

-#: ../src/msw/registry.cpp:569
+#: ../src/msw/registry.cpp:569
#, c-format
msgid "Failed to rename the registry key '%s' to '%s'."
msgstr "将注册值 '%s'改名到'%s'失败."

-#: ../src/msw/clipbrd.cpp:503
+#: ../src/msw/clipbrd.cpp:503
msgid "Failed to retrieve data from the clipboard."
msgstr "从剪贴板检取数据失败。"

-#: ../src/common/filename.cpp:1938
+#: ../src/common/filename.cpp:1938
#, fuzzy, c-format
msgid "Failed to retrieve file times for '%s'"
msgstr "检取RAS错误消息正文失败"

-#: ../src/msw/dialup.cpp:442
+#: ../src/msw/dialup.cpp:442
msgid "Failed to retrieve text of RAS error message"
msgstr "检取RAS错误消息正文失败"

-#: ../src/msw/clipbrd.cpp:750
+#: ../src/msw/clipbrd.cpp:750
msgid "Failed to retrieve the supported clipboard formats"
msgstr "检取支持的剪贴板格式失败"

-#: ../src/msw/dib.cpp:264
+#: ../src/msw/dib.cpp:264
#, fuzzy, c-format
msgid "Failed to save the bitmap image to file \"%s\"."
msgstr "刷新文件 '%s'失败"

-#: ../src/msw/dde.cpp:713
+#: ../src/msw/dde.cpp:713
msgid "Failed to send DDE advise notification"
msgstr "发送DDE advise 通知失败"

-#: ../src/common/ftp.cpp:368
+#: ../src/common/ftp.cpp:368
#, fuzzy, c-format
msgid "Failed to set FTP transfer mode to %s."
msgstr "设置线程优先级 %d失败."

-#: ../src/msw/clipbrd.cpp:379
+#: ../src/msw/clipbrd.cpp:379
msgid "Failed to set clipboard data."
msgstr "设置剪贴板数据失败"

-#: ../src/common/file.cpp:701
+#: ../src/common/file.cpp:701
#, fuzzy
msgid "Failed to set temporary file permissions"
msgstr "刷新文件 '%s'失败"

-#: ../src/unix/threadpsx.cpp:1245 ../src/unix/threadpsx.cpp:1256
+#: ../src/unix/threadpsx.cpp:1245 ../src/unix/threadpsx.cpp:1256
#, c-format
msgid "Failed to set thread priority %d."
msgstr "设置线程优先级 %d失败."

-#: ../src/common/fs_mem.cpp:229
+#: ../src/common/fs_mem.cpp:229
#, c-format
msgid "Failed to store image '%s' to memory VFS!"
msgstr "将图像'%s'存到内存VFS失败!"

-#: ../src/unix/threadpsx.cpp:1429
+#: ../src/unix/threadpsx.cpp:1429
msgid "Failed to terminate a thread."
msgstr "终止线程失败"

-#: ../src/msw/dde.cpp:687
+#: ../src/msw/dde.cpp:687
msgid "Failed to terminate the advise loop with DDE server"
msgstr "终止与DDE服务器的advise循环失败"

-#: ../src/msw/dialup.cpp:913
+#: ../src/msw/dialup.cpp:913
#, c-format
msgid "Failed to terminate the dialup connection: %s"
msgstr "终止拨号连接: %s失败"

-#: ../src/common/filename.cpp:1863
+#: ../src/common/filename.cpp:1863
#, fuzzy, c-format
msgid "Failed to touch the file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/unix/snglinst.cpp:302
+#: ../src/unix/snglinst.cpp:302
#, fuzzy, c-format
msgid "Failed to unlock lock file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/msw/dde.cpp:339
+#: ../src/msw/dde.cpp:339
#, c-format
msgid "Failed to unregister DDE server '%s'"
msgstr "撤消DDE服务器 '%s'注册失败"

-#: ../src/unix/snglinst.cpp:173
+#: ../src/unix/snglinst.cpp:173
#, fuzzy, c-format
msgid "Failed to write to lock file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/generic/logg.cpp:391
+#: ../src/generic/logg.cpp:391
msgid "Fatal error"
msgstr "致命错误"

-#: ../src/common/log.cpp:467
+#: ../src/common/log.cpp:467
msgid "Fatal error: "
msgstr "致命错误:"

-#: ../src/html/helpfrm.cpp:276
../tools/caseeditor/src/uiandapp.cpp:75
-#: ../tools/caseeditor/src/uiandapp.cpp:167
+#: ../src/html/helpfrm.cpp:276 ../tools/caseeditor/src/uiandapp.cpp:167
+#: ../tools/caseeditor/src/uiandapp.cpp:182
msgid "File"
msgstr ""

-#: ../src/mgl/bitmap.cpp:544
+#: ../src/mgl/bitmap.cpp:544
#, fuzzy, c-format
msgid "File %s does not exist."
msgstr ": 文件不存在!"

-#: ../src/generic/filedlgg.cpp:1212 ../src/gtk/filedlg.cpp:71
+#: ../src/generic/filedlgg.cpp:1212 ../src/gtk/filedlg.cpp:71
#, c-format
msgid "File '%s' already exists, do you really want to overwrite it?"
msgstr "文件 '%s' 已存在, 真需要复写它?"

-#: ../src/os2/filedlg.cpp:302
+#: ../src/os2/filedlg.cpp:302
#, fuzzy, c-format
msgid ""
"File '%s' already exists.\n"
"Do you want to replace it?"
msgstr "文件 '%s' 已存在, 真需要复写它?"

-#: ../src/common/textcmn.cpp:224
+#: ../src/common/textcmn.cpp:224
msgid "File couldn't be loaded."
msgstr "文件不能被装载"

-#: ../src/common/docview.cpp:316 ../src/common/docview.cpp:357
+#: ../src/common/docview.cpp:316 ../src/common/docview.cpp:357
#: ../src/common/docview.cpp:1502
msgid "File error"
msgstr "文件错误"

-#: ../src/generic/dirctrlg.cpp:701 ../src/generic/filedlgg.cpp:725
+#: ../src/generic/dirctrlg.cpp:701 ../src/generic/filedlgg.cpp:725
msgid "File name exists already."
msgstr "文件名已存在"

-#: ../src/common/fldlgcmn.cpp:62 ../src/msw/filedlg.cpp:250
+#: ../src/common/fldlgcmn.cpp:62 ../src/msw/filedlg.cpp:250
#, c-format
msgid "Files (%s)|%s"
msgstr "文件 (%s)|%s"

-#: ../src/html/helpfrm.cpp:397
+#: ../src/html/helpfrm.cpp:397
msgid "Find"
msgstr "查找"

-#: ../src/html/helpfrm.cpp:1040
+#: ../src/html/helpfrm.cpp:1040
msgid "Fixed font:"
msgstr "固定字体:"

-#: ../src/html/helpfrm.cpp:1101
+#: ../src/html/helpfrm.cpp:1101
msgid "Fixed size face.<br> <b>bold</b> <i>italic</i> "
msgstr ""

-#: ../src/common/paper.cpp:130
+#: ../src/common/paper.cpp:130
msgid "Folio, 8 1/2 x 13 in"
msgstr "Folio, 8 1/2 x 13 in"

-#: ../src/html/helpfrm.cpp:1041
+#: ../src/html/helpfrm.cpp:1041
msgid "Font size:"
msgstr "字体大小:"

-#: ../src/unix/utilsunx.cpp:496
+#: ../src/unix/utilsunx.cpp:496
msgid "Fork failed"
msgstr "Fork 失败"

-#: ../src/common/dlgcmn.cpp:224
+#: ../src/common/dlgcmn.cpp:224
msgid "Forward"
msgstr "向前"

-#: ../src/common/xtixml.cpp:235
+#: ../src/common/xtixml.cpp:235
msgid "Forward hrefs are not supported"
msgstr ""

-#: ../src/html/helpfrm.cpp:722
+#: ../src/html/helpfrm.cpp:722
#, c-format
msgid "Found %i matches"
msgstr "找到 %i 个匹配项"

-#: ../src/generic/prntdlgg.cpp:181
+#: ../src/generic/prntdlgg.cpp:181
msgid "From:"
msgstr "从:"

-#: ../src/common/imaggif.cpp:100
+#: ../src/common/imaggif.cpp:100
#, fuzzy
msgid "GIF: Invalid gif index."
msgstr "无效TIFF图像索引."

-#: ../src/common/imaggif.cpp:75
+#: ../src/common/imaggif.cpp:75
msgid "GIF: data stream seems to be truncated."
msgstr "GIF: 数据流似乎已被截断."

-#: ../src/common/imaggif.cpp:59
+#: ../src/common/imaggif.cpp:59
msgid "GIF: error in GIF image format."
msgstr "GIF: GIF文件格式错误."

-#: ../src/common/imaggif.cpp:62
+#: ../src/common/imaggif.cpp:62
msgid "GIF: not enough memory."
msgstr "GIF: 没有足够内存."

-#: ../src/common/imaggif.cpp:65
+#: ../src/common/imaggif.cpp:65
msgid "GIF: unknown error!!!"
msgstr "GIF: 位置错误!!!"

-#: ../src/univ/themes/gtk.cpp:631
+#: ../src/univ/themes/gtk.cpp:631
msgid "GTK+ theme"
msgstr ""

-#: ../src/common/paper.cpp:154
+#: ../src/common/paper.cpp:154
msgid "German Legal Fanfold, 8 1/2 x 13 in"
msgstr "德国法定复写簿, 8 1/2 x 13 in"

-#: ../src/common/paper.cpp:153
+#: ../src/common/paper.cpp:153
msgid "German Std Fanfold, 8 1/2 x 12 in"
msgstr "德国标准复写簿, 8 1/2 x 12 in"

-#: ../include/wx/xti.h:802
+#: ../include/wx/xti.h:802
msgid "GetProperty called w/o valid getter"
msgstr ""

-#: ../include/wx/xti.h:862
+#: ../include/wx/xti.h:862
msgid "GetPropertyCollection called on a generic accessor"
msgstr ""

-#: ../include/wx/xti.h:810
+#: ../include/wx/xti.h:810
msgid "GetPropertyCollection called w/o valid collection getter"
msgstr ""

-#: ../src/common/image.cpp:1499
+#: ../src/common/image.cpp:1499
msgid "GetUnusedColour:: No Unused Color in image "
msgstr ""

-#: ../src/html/helpfrm.cpp:549
+#: ../src/html/helpfrm.cpp:549
msgid "Go back"
msgstr "回退"

-#: ../src/html/helpfrm.cpp:552
+#: ../src/html/helpfrm.cpp:552
msgid "Go forward"
msgstr "向前"

-#: ../src/html/helpfrm.cpp:557
+#: ../src/html/helpfrm.cpp:557
msgid "Go one level up in document hierarchy"
msgstr "在文档层次中上升一级"

-#: ../src/generic/dirdlgg.cpp:110 ../src/generic/filedlgg.cpp:921
+#: ../src/generic/dirdlgg.cpp:110 ../src/generic/filedlgg.cpp:921
msgid "Go to home directory"
msgstr "进入home目录"

-#: ../src/generic/filedlgg.cpp:913
+#: ../src/generic/filedlgg.cpp:913
msgid "Go to parent directory"
msgstr "进入父目录"

-#: ../src/common/prntbase.cpp:413
+#: ../src/common/prntbase.cpp:413
msgid "Goto Page"
msgstr ""

-#: ../src/common/fmapbase.cpp:108
+#: ../src/common/fmapbase.cpp:108
msgid "Greek (ISO-8859-7)"
msgstr "Greek (ISO-8859-7)"

-#: ../src/html/helpfrm.cpp:1399
+#: ../src/html/helpfrm.cpp:1399
msgid "HTML Help Project (*.hhp)|*.hhp|"
msgstr ""

-#: ../src/html/htmlwin.cpp:467
+#: ../src/html/htmlwin.cpp:467
#, c-format
msgid "HTML anchor %s does not exist."
msgstr "HTML 锚 %s 不存在."

-#: ../src/html/helpfrm.cpp:1397
+#: ../src/html/helpfrm.cpp:1397
msgid "HTML files (*.html;*.htm)|*.html;*.htm|"
msgstr ""

-#: ../src/common/fmapbase.cpp:109
+#: ../src/common/fmapbase.cpp:109
msgid "Hebrew (ISO-8859-8)"
msgstr "Hebrew (ISO-8859-8)"

-#: ../src/common/dlgcmn.cpp:236 ../src/generic/mdig.cpp:310
+#: ../src/common/dlgcmn.cpp:236 ../src/generic/mdig.cpp:310
#: ../src/html/helpfrm.cpp:254 ../src/html/helpfrm.cpp:277
#: ../src/msw/mdi.cpp:1329 ../src/main.cpp:280 ../src/main.cpp:370
#: ../src/main.cpp:400 ../src/main.cpp:439 ../src/main.cpp:442
@@ -1904,36 +1904,38 @@
#: ../tools/daemon/stt-daemon.cpp:174 ../src/main.cpp:879
#: ../tools/daemon/stt-daemon.cpp:175 ../tools/caseeditor/src/uiandapp.cpp:97
#: ../src/main.cpp:885 ../tools/caseeditor/src/uiandapp.cpp:189
+#: ../src/main.cpp:911 ../tools/daemon/stt-daemon.cpp:172
+#: ../tools/caseeditor/src/uiandapp.cpp:206
msgid "Help"
msgstr "帮助"

-#: ../src/html/helpfrm.cpp:1034
+#: ../src/html/helpfrm.cpp:1034
msgid "Help Browser Options"
msgstr "帮助浏览器选项"

-#: ../src/generic/helpext.cpp:441 ../src/generic/helpext.cpp:442
+#: ../src/generic/helpext.cpp:441 ../src/generic/helpext.cpp:442
msgid "Help Index"
msgstr "帮助索引"

-#: ../src/html/helpfrm.cpp:1385
+#: ../src/html/helpfrm.cpp:1385
msgid "Help Printing"
msgstr "帮助打印"

-#: ../src/html/helpfrm.cpp:1398
+#: ../src/html/helpfrm.cpp:1398
msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|"
msgstr ""

-#: ../src/html/helpctrl.cpp:55
+#: ../src/html/helpctrl.cpp:55
#, c-format
msgid "Help: %s"
msgstr "帮助: %s"

-#: ../src/common/imagbmp.cpp:936
+#: ../src/common/imagbmp.cpp:936
#, fuzzy
msgid "ICO: Error in reading mask DIB."
msgstr "TIFF: 读图像错误."

-#: ../src/common/imagbmp.cpp:1042 ../src/common/imagbmp.cpp:1101
+#: ../src/common/imagbmp.cpp:1042 ../src/common/imagbmp.cpp:1101
#: ../src/common/imagbmp.cpp:1110 ../src/common/imagbmp.cpp:1121
#: ../src/common/imagbmp.cpp:1165 ../src/common/imagbmp.cpp:1175
#: ../src/common/imagbmp.cpp:1184
@@ -1941,323 +1943,323 @@
msgid "ICO: Error writing the image file!"
msgstr "TIFF:写图像错误."

-#: ../src/common/imagbmp.cpp:1010
+#: ../src/common/imagbmp.cpp:1010
msgid "ICO: Image too tall for an icon."
msgstr ""

-#: ../src/common/imagbmp.cpp:1016
+#: ../src/common/imagbmp.cpp:1016
msgid "ICO: Image too wide for an icon."
msgstr ""

-#: ../src/common/imagbmp.cpp:1249
+#: ../src/common/imagbmp.cpp:1249
#, fuzzy
msgid "ICO: Invalid icon index."
msgstr "无效TIFF图像索引."

-#: ../src/common/imagiff.cpp:771
+#: ../src/common/imagiff.cpp:771
#, fuzzy
msgid "IFF: data stream seems to be truncated."
msgstr "GIF: 数据流似乎已被截断."

-#: ../src/common/imagiff.cpp:755
+#: ../src/common/imagiff.cpp:755
#, fuzzy
msgid "IFF: error in IFF image format."
msgstr "GIF: GIF文件格式错误."

-#: ../src/common/imagiff.cpp:758
+#: ../src/common/imagiff.cpp:758
#, fuzzy
msgid "IFF: not enough memory."
msgstr "GIF: 没有足够内存."

-#: ../src/common/imagiff.cpp:761
+#: ../src/common/imagiff.cpp:761
#, fuzzy
msgid "IFF: unknown error!!!"
msgstr "GIF: 位置错误!!!"

-#: ../src/common/xtistrm.cpp:258
+#: ../src/common/xtistrm.cpp:258
msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source"
msgstr ""

-#: ../include/wx/xti.h:1606
+#: ../include/wx/xti.h:1606
msgid "Illegal Parameter Count for ConstructObject Method"
msgstr ""

-#: ../include/wx/xti.h:1679
+#: ../include/wx/xti.h:1679
msgid "Illegal Parameter Count for Create Method"
msgstr ""

-#: ../src/generic/dirctrlg.cpp:683 ../src/generic/filedlgg.cpp:711
+#: ../src/generic/dirctrlg.cpp:683 ../src/generic/filedlgg.cpp:711
msgid "Illegal directory name."
msgstr "不合法的目录名。"

-#: ../src/generic/filedlgg.cpp:1166
+#: ../src/generic/filedlgg.cpp:1166
msgid "Illegal file specification."
msgstr "不合规范的文件描述"

-#: ../src/common/image.cpp:900
+#: ../src/common/image.cpp:900
msgid "Image and Mask have different sizes"
msgstr ""

-#: ../src/common/image.cpp:1180
+#: ../src/common/image.cpp:1180
#, c-format
msgid "Image file is not of type %d."
msgstr ""

-#: ../src/msw/textctrl.cpp:303
+#: ../src/msw/textctrl.cpp:303
msgid ""
"Impossible to create a rich edit control, using simple text control instead. "
"Please reinstall riched32.dll"
msgstr "不能创建rich编辑控件, 使用简单文本控件代替. 请重装riched32.dll"

-#: ../src/unix/utilsunx.cpp:379
+#: ../src/unix/utilsunx.cpp:379
msgid "Impossible to get child process input"
msgstr "不可能获得子过程的输入"

-#: ../src/common/filefn.cpp:1208
+#: ../src/common/filefn.cpp:1208
#, fuzzy, c-format
msgid "Impossible to get permissions for file '%s'"
msgstr "不可能获得子过程的输入"

-#: ../src/common/filefn.cpp:1222
+#: ../src/common/filefn.cpp:1222
#, fuzzy, c-format
msgid "Impossible to overwrite the file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/common/filefn.cpp:1273
+#: ../src/common/filefn.cpp:1273
#, c-format
msgid "Impossible to set permissions for the file '%s'"
msgstr ""

-#: ../src/html/helpfrm.cpp:422
+#: ../src/html/helpfrm.cpp:422
msgid "Index"
msgstr "索引"

-#: ../src/common/fmapbase.cpp:113
+#: ../src/common/fmapbase.cpp:113
#, fuzzy
msgid "Indian (ISO-8859-12)"
msgstr "Nordic (ISO-8859-10)"

-#: ../src/common/xtistrm.cpp:702
+#: ../src/common/xtistrm.cpp:702
msgid "Internal error, illegal wxCustomTypeInfo"
msgstr ""

-#: ../src/common/imagtiff.cpp:211
+#: ../src/common/imagtiff.cpp:211
msgid "Invalid TIFF image index."
msgstr "无效TIFF图像索引."

-#: ../contrib/src/xrc/xmlres.cpp:389
+#: ../contrib/src/xrc/xmlres.cpp:389
#, c-format
msgid "Invalid XRC resource '%s': doesn't have root node 'resource'."
msgstr ""

-#: ../src/common/appcmn.cpp:239
+#: ../src/common/appcmn.cpp:239
#, fuzzy, c-format
msgid "Invalid display mode specification '%s'."
msgstr "不合规范的文件描述"

-#: ../src/x11/app.cpp:128
+#: ../src/x11/app.cpp:128
#, fuzzy, c-format
msgid "Invalid geometry specification '%s'"
msgstr "不合规范的文件描述"

-#: ../src/unix/snglinst.cpp:280
+#: ../src/unix/snglinst.cpp:280
#, fuzzy, c-format
msgid "Invalid lock file '%s'."
msgstr "不能关闭文件 '%s'"

-#: ../src/common/xtistrm.cpp:363 ../src/common/xtistrm.cpp:378
+#: ../src/common/xtistrm.cpp:363 ../src/common/xtistrm.cpp:378
msgid "Invalid or Null Object ID passed to GetObjectClassInfo"
msgstr ""

-#: ../src/common/xtistrm.cpp:393
+#: ../src/common/xtistrm.cpp:393
msgid "Invalid or Null Object ID passed to HasObjectClassInfo"
msgstr ""

-#: ../src/common/regex.cpp:182
+#: ../src/common/regex.cpp:182
#, c-format
msgid "Invalid regular expression '%s': %s"
msgstr ""

-#: ../src/generic/fontdlgg.cpp:228
+#: ../src/generic/fontdlgg.cpp:228
msgid "Italic"
msgstr "斜体"

-#: ../src/common/paper.cpp:149
+#: ../src/common/paper.cpp:149
msgid "Italy Envelope, 110 x 230 mm"
msgstr "意大利信封, 110 x 230 mm"

-#: ../src/common/imagjpeg.cpp:225
+#: ../src/common/imagjpeg.cpp:225
msgid "JPEG: Couldn't load - file is probably corrupted."
msgstr "JPEG: 不能装入 - 文件也许已被破坏."

-#: ../src/common/imagjpeg.cpp:339
+#: ../src/common/imagjpeg.cpp:339
msgid "JPEG: Couldn't save image."
msgstr "JPEG: 不能保存图像."

-#: ../src/common/fmapbase.cpp:117
+#: ../src/common/fmapbase.cpp:117
msgid "KOI8-R"
msgstr "KOI8-R"

-#: ../src/generic/prntdlgg.cpp:428 ../src/generic/prntdlgg.cpp:638
+#: ../src/generic/prntdlgg.cpp:428 ../src/generic/prntdlgg.cpp:638
msgid "Landscape"
msgstr "横向"

-#: ../src/common/paper.cpp:122
+#: ../src/common/paper.cpp:122
msgid "Ledger, 17 x 11 in"
msgstr "Ledger, 17 x 11 英寸"

-#: ../src/generic/prntdlgg.cpp:650
+#: ../src/generic/prntdlgg.cpp:650
msgid "Left margin (mm):"
msgstr "左边距 (毫米):"

-#: ../src/common/paper.cpp:115
+#: ../src/common/paper.cpp:115
msgid "Legal, 8 1/2 x 14 in"
msgstr "Legal, 8 1/2 x 14 英寸"

-#: ../src/common/paper.cpp:120
+#: ../src/common/paper.cpp:120
msgid "Letter Small, 8 1/2 x 11 in"
msgstr "Letter Small, 8 1/2 x 11 英寸"

-#: ../src/common/paper.cpp:114
+#: ../src/common/paper.cpp:114
msgid "Letter, 8 1/2 x 11 in"
msgstr "Letter, 8 1/2 x 11 英寸"

-#: ../src/generic/fontdlgg.cpp:231
+#: ../src/generic/fontdlgg.cpp:231
msgid "Light"
msgstr "轻"

-#: ../src/html/chm.cpp:806
+#: ../src/html/chm.cpp:806
msgid "Link contained '//', converted to absolute link."
msgstr ""

-#: ../src/common/fldlgcmn.cpp:274
+#: ../src/common/fldlgcmn.cpp:274
#, c-format
msgid "Load %s file"
msgstr "装入文件 %s "

-#: ../src/html/htmlwin.cpp:389
+#: ../src/html/htmlwin.cpp:389
msgid "Loading : "
msgstr "装载:"

-#: ../src/common/imagpnm.cpp:72
+#: ../src/common/imagpnm.cpp:72
msgid "Loading Grey Ascii PNM image is not yet implemented."
msgstr "装入灰度 Ascii PNM图像功能还没有实现."

-#: ../src/common/imagpnm.cpp:75
+#: ../src/common/imagpnm.cpp:75
msgid "Loading Grey Raw PNM image is not yet implemented."
msgstr "装入灰度 Raw PNM图像功能还没有实现."

-#: ../src/generic/logg.cpp:565
+#: ../src/generic/logg.cpp:565
#, c-format
msgid "Log saved to the file '%s'."
msgstr "日志保存到文件 '%s'."

-#: ../include/wx/xti.h:469 ../include/wx/xti.h:473
+#: ../include/wx/xti.h:469 ../include/wx/xti.h:473
msgid "Long Conversions not supported"
msgstr ""

-#: ../src/gtk/mdi.cpp:442
+#: ../src/gtk/mdi.cpp:442
msgid "MDI child"
msgstr "MDI子窗口"

-#: ../src/msw/helpchm.cpp:60
+#: ../src/msw/helpchm.cpp:60
#, fuzzy
msgid ""
"MS HTML Help functions are unavailable because the MS HTML Help library is "
"not installed on this machine. Please install it."
msgstr "由于远程访问服务(RAS)没有安装在本机,拨号功能不能使用. 请安装它."

-#: ../src/univ/themes/win32.cpp:4678
+#: ../src/univ/themes/win32.cpp:4678
msgid "Ma&ximize"
msgstr ""

-#: ../src/unix/mimetype.cpp:2518
+#: ../src/unix/mimetype.cpp:2518
#, c-format
msgid "Mailcap file %s, line %d: incomplete entry ignored."
msgstr "Mailcap 文件 %s, 行 %d: 不完整条目被忽略."

-#: ../src/generic/fdrepdlg.cpp:146
+#: ../src/generic/fdrepdlg.cpp:146
msgid "Match case"
msgstr ""

-#: ../src/common/fs_mem.cpp:176
+#: ../src/common/fs_mem.cpp:176
#, c-format
msgid "Memory VFS already contains file '%s'!"
msgstr "内存 VFS 已包含文件 '%s'!"

-#: ../src/univ/themes/metal.cpp:174
+#: ../src/univ/themes/metal.cpp:174
msgid "Metal theme"
msgstr ""

-#: ../src/univ/themes/win32.cpp:4676
+#: ../src/univ/themes/win32.cpp:4676
msgid "Mi&nimize"
msgstr ""

-#: ../src/unix/mimetype.cpp:2134
+#: ../src/unix/mimetype.cpp:2134
#, c-format
msgid "Mime.types file %s, line %d: unterminated quoted string."
msgstr "Mime.类型文件 %s, 行 %d: 没有结束符号的引用字符串."

-#: ../src/mgl/app.cpp:165
+#: ../src/mgl/app.cpp:165
#, c-format
msgid "Mode %ix%i-%i not available."
msgstr ""

-#: ../src/generic/fontdlgg.cpp:223
+#: ../src/generic/fontdlgg.cpp:223
msgid "Modern"
msgstr "现代"

-#: ../src/generic/filedlgg.cpp:422
+#: ../src/generic/filedlgg.cpp:422
msgid "Modified"
msgstr ""

-#: ../src/common/paper.cpp:150
+#: ../src/common/paper.cpp:150
msgid "Monarch Envelope, 3 7/8 x 7 1/2 in"
msgstr "Monarch Envelope, 3 7/8 x 7 1/2 in"

-#: ../src/common/dlgcmn.cpp:233
+#: ../src/common/dlgcmn.cpp:233
msgid "More..."
msgstr "更多..."

-#: ../contrib/src/gizmos/editlbox.cpp:165
+#: ../contrib/src/gizmos/editlbox.cpp:165
msgid "Move down"
msgstr ""

-#: ../contrib/src/gizmos/editlbox.cpp:164
+#: ../contrib/src/gizmos/editlbox.cpp:164
msgid "Move up"
msgstr ""

-#: ../src/generic/filedlgg.cpp:419
+#: ../src/generic/filedlgg.cpp:419
msgid "Name"
msgstr "名称"

-#: ../contrib/src/gizmos/editlbox.cpp:162
+#: ../contrib/src/gizmos/editlbox.cpp:162
msgid "New item"
msgstr ""

-#: ../src/generic/dirdlgg.cpp:274 ../src/generic/dirdlgg.cpp:284
+#: ../src/generic/dirdlgg.cpp:274 ../src/generic/dirdlgg.cpp:284
#: ../src/generic/filedlgg.cpp:587 ../src/generic/filedlgg.cpp:596
msgid "NewName"
msgstr "新名"

-#: ../src/html/helpfrm.cpp:563
+#: ../src/html/helpfrm.cpp:563
msgid "Next page"
msgstr "下一页"

-#: ../src/common/dlgcmn.cpp:213 ../src/mac/msgdlg.cpp:56
+#: ../src/common/dlgcmn.cpp:213 ../src/mac/msgdlg.cpp:56
#: ../src/mac/msgdlg.cpp:140 ../src/motif/msgdlg.cpp:182
msgid "No"
msgstr "否"

-#: ../src/common/image.cpp:908
+#: ../src/common/image.cpp:908
msgid "No Unused Color in image being masked"
msgstr ""

-#: ../src/generic/helpext.cpp:436
+#: ../src/generic/helpext.cpp:436
msgid "No entries found."
msgstr "没找到条目"

-#: ../src/common/fontmap.cpp:401
+#: ../src/common/fontmap.cpp:401
#, fuzzy, c-format
msgid ""
"No font for displaying text in encoding '%s' found,\n"
@@ -2269,7 +2271,7 @@
"选择用于改编码的字体\n"
"(否则该编码的文本将不能正确显示)?"

-#: ../src/common/fontmap.cpp:406
+#: ../src/common/fontmap.cpp:406
#, fuzzy, c-format
msgid ""
"No font for displaying text in encoding '%s' found.\n"
@@ -2280,56 +2282,56 @@
"选择用于改编码的字体\n"
"(否则该编码的文本将不能正确显示)?"

-#: ../contrib/src/xrc/xmlres.cpp:602
+#: ../contrib/src/xrc/xmlres.cpp:602
#, c-format
msgid "No handler found for XML node '%s', class '%s'!"
msgstr ""

-#: ../src/common/image.cpp:1162 ../src/common/image.cpp:1205
+#: ../src/common/image.cpp:1162 ../src/common/image.cpp:1205
msgid "No handler found for image type."
msgstr "没有找到图像类型处理器."

-#: ../src/common/image.cpp:1170 ../src/common/image.cpp:1213
+#: ../src/common/image.cpp:1170 ../src/common/image.cpp:1213
#: ../src/common/image.cpp:1247
#, c-format
msgid "No image handler for type %d defined."
msgstr "没有类型 %d 的图像处理器."

-#: ../src/common/image.cpp:1231 ../src/common/image.cpp:1263
+#: ../src/common/image.cpp:1231 ../src/common/image.cpp:1263
#, c-format
msgid "No image handler for type %s defined."
msgstr "没有类型 %s的图像处理器."

-#: ../src/html/helpfrm.cpp:710
+#: ../src/html/helpfrm.cpp:710
msgid "No matching page found yet"
msgstr "No matching page found yet"

-#: ../src/unix/sound.cpp:89
+#: ../src/unix/sound.cpp:89
#, fuzzy
msgid "No sound"
msgstr "没找到条目"

-#: ../src/common/fmapbase.cpp:111
+#: ../src/common/fmapbase.cpp:111
msgid "Nordic (ISO-8859-10)"
msgstr "Nordic (ISO-8859-10)"

-#: ../src/generic/fontdlgg.cpp:227 ../src/generic/fontdlgg.cpp:230
+#: ../src/generic/fontdlgg.cpp:227 ../src/generic/fontdlgg.cpp:230
msgid "Normal"
msgstr "正常"

-#: ../src/html/helpfrm.cpp:1095
+#: ../src/html/helpfrm.cpp:1095
msgid "Normal face<br>and <u>underlined</u>. "
msgstr ""

-#: ../src/html/helpfrm.cpp:1039
+#: ../src/html/helpfrm.cpp:1039
msgid "Normal font:"
msgstr "Normal font:"

-#: ../src/common/paper.cpp:134
+#: ../src/common/paper.cpp:134
msgid "Note, 8 1/2 x 11 in"
msgstr "笔记簿, 8 1/2 x 11 英寸"

-#: ../src/common/dlgcmn.cpp:219 ../src/generic/dirdlgg.cpp:153
+#: ../src/common/dlgcmn.cpp:219 ../src/generic/dirdlgg.cpp:153
#: ../src/generic/filedlgg.cpp:976 ../src/generic/filedlgg.cpp:987
#: ../src/generic/fontdlgg.cpp:254 ../src/generic/logg.cpp:748
#: ../src/generic/prntdlgg.cpp:454 ../src/gtk/filedlg.cpp:162
@@ -2343,147 +2345,147 @@
#: ../src/main.cpp:842 ../src/main.cpp:846 ../src/main.cpp:891
#: ../src/main.cpp:899 ../src/main.cpp:903 ../src/main.cpp:1028
#: ../src/main.cpp:1045 ../src/main.cpp:1046 ../src/main.cpp:1176
-#: ../src/main.cpp:1180 ../src/main.cpp:1186
+#: ../src/main.cpp:1180 ../src/main.cpp:1186 ../src/main.cpp:1202
msgid "OK"
msgstr "确认"

-#: ../src/common/xtixml.cpp:263
+#: ../src/common/xtixml.cpp:263
msgid "Objects must have an id attribute"
msgstr ""

-#: ../src/common/docview.cpp:1197 ../src/common/docview.cpp:1525
+#: ../src/common/docview.cpp:1197 ../src/common/docview.cpp:1525
msgid "Open File"
msgstr ""

-#: ../src/html/helpfrm.cpp:571 ../src/html/helpfrm.cpp:1404
+#: ../src/html/helpfrm.cpp:571 ../src/html/helpfrm.cpp:1404
msgid "Open HTML document"
msgstr "打开HTML文档"

-#: ../src/generic/dirctrlg.cpp:712 ../src/generic/dirdlgg.cpp:300
+#: ../src/generic/dirctrlg.cpp:712 ../src/generic/dirdlgg.cpp:300
#: ../src/generic/filedlgg.cpp:611 ../src/generic/filedlgg.cpp:739
msgid "Operation not permitted."
msgstr "不允许的操作."

-#: ../src/common/cmdline.cpp:676
+#: ../src/common/cmdline.cpp:676
#, c-format
msgid "Option '%s' requires a value, '=' expected."
msgstr "选项 '%s' 要求一个值, 期望 '='."

-#: ../src/common/cmdline.cpp:696
+#: ../src/common/cmdline.cpp:696
#, c-format
msgid "Option '%s' requires a value."
msgstr "选项 '%s' 需要值."

-#: ../src/common/cmdline.cpp:758
+#: ../src/common/cmdline.cpp:758
#, c-format
msgid "Option '%s': '%s' cannot be converted to a date."
msgstr "选项 '%s': '%s' 不能转成日期."

-#: ../src/generic/prntdlgg.cpp:434
+#: ../src/generic/prntdlgg.cpp:434
msgid "Options"
msgstr "选项"

-#: ../src/generic/prntdlgg.cpp:430 ../src/generic/prntdlgg.cpp:639
+#: ../src/generic/prntdlgg.cpp:430 ../src/generic/prntdlgg.cpp:639
msgid "Orientation"
msgstr "方向"

-#: ../src/common/imagpcx.cpp:462 ../src/common/imagpcx.cpp:485
+#: ../src/common/imagpcx.cpp:462 ../src/common/imagpcx.cpp:485
msgid "PCX: couldn't allocate memory"
msgstr "PCX: 不能分配内存"

-#: ../src/common/imagpcx.cpp:461
+#: ../src/common/imagpcx.cpp:461
msgid "PCX: image format unsupported"
msgstr "PCX: 图像格式不支持"

-#: ../src/common/imagpcx.cpp:484
+#: ../src/common/imagpcx.cpp:484
msgid "PCX: invalid image"
msgstr "PCX: 无效图像"

-#: ../src/common/imagpcx.cpp:448
+#: ../src/common/imagpcx.cpp:448
msgid "PCX: this is not a PCX file."
msgstr "PCX: 不是PCX文件."

-#: ../src/common/imagpcx.cpp:464 ../src/common/imagpcx.cpp:486
+#: ../src/common/imagpcx.cpp:464 ../src/common/imagpcx.cpp:486
msgid "PCX: unknown error !!!"
msgstr "PCX: 未知错误 !!!"

-#: ../src/common/imagpcx.cpp:463
+#: ../src/common/imagpcx.cpp:463
msgid "PCX: version number too low"
msgstr "PCX: 版本号太小"

-#: ../src/common/imagpnm.cpp:96
+#: ../src/common/imagpnm.cpp:96
msgid "PNM: Couldn't allocate memory."
msgstr "PNM: 不能分配内存."

-#: ../src/common/imagpnm.cpp:80
+#: ../src/common/imagpnm.cpp:80
msgid "PNM: File format is not recognized."
msgstr "PNM: 不能识别的文件格式."

-#: ../src/common/imagpnm.cpp:112
+#: ../src/common/imagpnm.cpp:112
msgid "PNM: File seems truncated."
msgstr "PNM: 文件似乎已被截断."

-#: ../src/common/prntbase.cpp:832
+#: ../src/common/prntbase.cpp:832
#, c-format
msgid "Page %d"
msgstr "页 %d"

-#: ../src/common/prntbase.cpp:830
+#: ../src/common/prntbase.cpp:830
#, c-format
msgid "Page %d of %d"
msgstr "页 %d / %d"

-#: ../src/generic/prntdlgg.cpp:598
+#: ../src/generic/prntdlgg.cpp:598
msgid "Page Setup"
msgstr "页面设置"

-#: ../src/generic/prntdlgg.cpp:158
+#: ../src/generic/prntdlgg.cpp:158
msgid "Pages"
msgstr "页"

-#: ../src/generic/prntdlgg.cpp:545 ../src/generic/prntdlgg.cpp:625
+#: ../src/generic/prntdlgg.cpp:545 ../src/generic/prntdlgg.cpp:625
#: ../src/generic/prntdlgg.cpp:818
msgid "Paper Size"
msgstr "纸张大小"

-#: ../src/generic/prntdlgg.cpp:420 ../src/generic/prntdlgg.cpp:612
+#: ../src/generic/prntdlgg.cpp:420 ../src/generic/prntdlgg.cpp:612
#: ../src/generic/prntdlgg.cpp:813
msgid "Paper size"
msgstr "纸张大小"

-#: ../src/common/xtistrm.cpp:423
+#: ../src/common/xtistrm.cpp:423
msgid "Passing a already registered object to SetObject"
msgstr ""

-#: ../src/common/xtistrm.cpp:641
+#: ../src/common/xtistrm.cpp:641
msgid "Passing a already registered object to SetObjectName"
msgstr ""

-#: ../src/common/xtistrm.cpp:434 ../src/common/xtistrm.cpp:654
+#: ../src/common/xtistrm.cpp:434 ../src/common/xtistrm.cpp:654
msgid "Passing an unkown object to GetObject"
msgstr ""

-#: ../src/generic/filedlgg.cpp:425
+#: ../src/generic/filedlgg.cpp:425
msgid "Permissions"
msgstr "允许"

-#: ../include/wx/unix/pipe.h:47
+#: ../include/wx/unix/pipe.h:47
msgid "Pipe creation failed"
msgstr "管道创建失败"

-#: ../src/gtk/fontdlg.cpp:76
+#: ../src/gtk/fontdlg.cpp:76
msgid "Please choose a valid font."
msgstr "请选择一个有效的字体。"

-#: ../src/generic/filedlgg.cpp:1221 ../src/gtk/filedlg.cpp:82
+#: ../src/generic/filedlgg.cpp:1221 ../src/gtk/filedlg.cpp:82
msgid "Please choose an existing file."
msgstr "请选择一个已存在的文件。"

-#: ../src/msw/dialup.cpp:747
+#: ../src/msw/dialup.cpp:747
msgid "Please choose which ISP do you want to connect to"
msgstr "请选择你想连接的ISP"

-#: ../src/msw/listctrl.cpp:637
+#: ../src/msw/listctrl.cpp:637
#, c-format
msgid ""
"Please install a newer version of comctl32.dll\n"
@@ -2491,27 +2493,27 @@
"or this program won't operate correctly."
msgstr ""

-#: ../src/common/prntbase.cpp:112
+#: ../src/common/prntbase.cpp:112
msgid "Please wait while printing\n"
msgstr ""

-#: ../src/generic/prntdlgg.cpp:427 ../src/generic/prntdlgg.cpp:637
+#: ../src/generic/prntdlgg.cpp:427 ../src/generic/prntdlgg.cpp:637
msgid "Portrait"
msgstr "纵向"

-#: ../src/generic/prntdlgg.cpp:270
+#: ../src/generic/prntdlgg.cpp:270
msgid "PostScript file"
msgstr "PostScript文件"

-#: ../src/html/helpfrm.cpp:1056
+#: ../src/html/helpfrm.cpp:1056
msgid "Preview:"
msgstr "预览:"

-#: ../src/html/helpfrm.cpp:560
+#: ../src/html/helpfrm.cpp:560
msgid "Previous page"
msgstr "前页"

-#: ../src/generic/prntdlgg.cpp:107 ../src/generic/prntdlgg.cpp:121
+#: ../src/generic/prntdlgg.cpp:107 ../src/generic/prntdlgg.cpp:121
#: ../src/main.cpp:277 ../src/main.cpp:367 ../src/main.cpp:397
#: ../src/main.cpp:436 ../src/main.cpp:439 ../src/main.cpp:445
#: ../src/main.cpp:477 ../src/main.cpp:494 ../src/main.cpp:500
@@ -2520,109 +2522,109 @@
#: ../src/main.cpp:542 ../src/main.cpp:576 ../src/main.cpp:609
#: ../src/main.cpp:617 ../src/main.cpp:621 ../src/main.cpp:747
#: ../src/main.cpp:766 ../src/main.cpp:767 ../src/main.cpp:872
-#: ../src/main.cpp:876 ../src/main.cpp:882
+#: ../src/main.cpp:876 ../src/main.cpp:882 ../src/main.cpp:908
msgid "Print"
msgstr "打印"

-#: ../src/common/docview.cpp:963
+#: ../src/common/docview.cpp:963
msgid "Print Preview"
msgstr "打印预览"

-#: ../src/common/prntbase.cpp:784 ../src/common/prntbase.cpp:810
+#: ../src/common/prntbase.cpp:784 ../src/common/prntbase.cpp:810
msgid "Print Preview Failure"
msgstr "打印预览失败"

-#: ../src/generic/prntdlgg.cpp:166
+#: ../src/generic/prntdlgg.cpp:166
msgid "Print Range"
msgstr "打印范围"

-#: ../src/generic/prntdlgg.cpp:408
+#: ../src/generic/prntdlgg.cpp:408
msgid "Print Setup"
msgstr "打印设置"

-#: ../src/generic/prntdlgg.cpp:442
+#: ../src/generic/prntdlgg.cpp:442
msgid "Print in colour"
msgstr "彩色打印"

-#: ../src/generic/prntdlgg.cpp:444
+#: ../src/generic/prntdlgg.cpp:444
msgid "Print spooling"
msgstr "打印假脱机"

-#: ../src/html/helpfrm.cpp:577
+#: ../src/html/helpfrm.cpp:577
msgid "Print this page"
msgstr "打印本页"

-#: ../src/generic/prntdlgg.cpp:144
+#: ../src/generic/prntdlgg.cpp:144
msgid "Print to File"
msgstr "打印到文件"

-#: ../src/generic/prntdlgg.cpp:446
+#: ../src/generic/prntdlgg.cpp:446
msgid "Printer command:"
msgstr "打印机命令:"

-#: ../src/generic/prntdlgg.cpp:143
+#: ../src/generic/prntdlgg.cpp:143
msgid "Printer options"
msgstr "打印机选项"

-#: ../src/generic/prntdlgg.cpp:450
+#: ../src/generic/prntdlgg.cpp:450
msgid "Printer options:"
msgstr "打印机选项:"

-#: ../src/generic/prntdlgg.cpp:683
+#: ../src/generic/prntdlgg.cpp:683
msgid "Printer..."
msgstr "打印机..."

-#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:154
+#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:154
#, fuzzy
msgid "Printing "
msgstr "打印"

-#: ../src/common/prntbase.cpp:126
+#: ../src/common/prntbase.cpp:126
msgid "Printing Error"
msgstr "打印出错"

-#: ../src/generic/printps.cpp:244
+#: ../src/generic/printps.cpp:244
#, c-format
msgid "Printing page %d..."
msgstr "正在打印页 %d..."

-#: ../src/generic/printps.cpp:204
+#: ../src/generic/printps.cpp:204
msgid "Printing..."
msgstr "打印..."

-#: ../src/common/log.cpp:468
+#: ../src/common/log.cpp:468
msgid "Program aborted."
msgstr "程序终止."

-#: ../src/common/paper.cpp:131
+#: ../src/common/paper.cpp:131
msgid "Quarto, 215 x 275 mm"
msgstr "四开, 215 x 275 mm"

-#: ../src/generic/logg.cpp:1120
+#: ../src/generic/logg.cpp:1120
msgid "Question"
msgstr "问题"

-#: ../src/common/ffile.cpp:111 ../src/common/ffile.cpp:132
+#: ../src/common/ffile.cpp:111 ../src/common/ffile.cpp:132
#, c-format
msgid "Read error on file '%s'"
msgstr "读文件 '%s'出错"

-#: ../contrib/src/xrc/xmlres.cpp:568
+#: ../contrib/src/xrc/xmlres.cpp:568
#, c-format
msgid "Referenced object node with ref=\"%s\" not found!"
msgstr ""

-#: ../src/msw/registry.cpp:561
+#: ../src/msw/registry.cpp:561
#, c-format
msgid "Registry key '%s' already exists."
msgstr "注册键 '%s' 已存在."

-#: ../src/msw/registry.cpp:530
+#: ../src/msw/registry.cpp:530
#, c-format
msgid "Registry key '%s' does not exist, cannot rename it."
msgstr "注册键 '%s' 不存在, 不能改名."

-#: ../src/msw/registry.cpp:657
+#: ../src/msw/registry.cpp:657
#, c-format
msgid ""
"Registry key '%s' is needed for normal system operation,\n"
@@ -2633,277 +2635,277 @@
"删除它将使系统进入不可用状态:\n"
"操作终止."

-#: ../src/msw/registry.cpp:461
+#: ../src/msw/registry.cpp:461
#, c-format
msgid "Registry value '%s' already exists."
msgstr "注册值 '%s' 已存在."

-#: ../src/generic/helpext.cpp:441
+#: ../src/generic/helpext.cpp:441
msgid "Relevant entries:"
msgstr "相关条目:"

-#: ../src/generic/progdlgg.cpp:199
+#: ../src/generic/progdlgg.cpp:199
msgid "Remaining time : "
msgstr "剩余时间 : "

-#: ../src/html/helpfrm.cpp:359
+#: ../src/html/helpfrm.cpp:359
msgid "Remove current page from bookmarks"
msgstr "从书签中移去当前页"

-#: ../src/common/rendcmn.cpp:193
+#: ../src/common/rendcmn.cpp:193
#, c-format
msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded."
msgstr ""

-#: ../src/generic/fdrepdlg.cpp:171
+#: ../src/generic/fdrepdlg.cpp:171
#, fuzzy
msgid "Replace &all"
msgstr "替换文件 '%s'?"

-#: ../src/generic/fdrepdlg.cpp:123
+#: ../src/generic/fdrepdlg.cpp:123
msgid "Replace with:"
msgstr ""

-#: ../contrib/src/xrc/xmlres.cpp:408
+#: ../contrib/src/xrc/xmlres.cpp:408
msgid "Resource files must have same version number!"
msgstr ""

-#: ../src/generic/prntdlgg.cpp:662
+#: ../src/generic/prntdlgg.cpp:662
msgid "Right margin (mm):"
msgstr "右边距 (毫米):"

-#: ../src/generic/fontdlgg.cpp:221
+#: ../src/generic/fontdlgg.cpp:221
msgid "Roman"
msgstr "罗马"

-#: ../src/common/fldlgcmn.cpp:276
+#: ../src/common/fldlgcmn.cpp:276
#, c-format
msgid "Save %s file"
msgstr "保存文件 %s "

-#: ../src/common/docview.cpp:256
+#: ../src/common/docview.cpp:256
msgid "Save as"
msgstr "另存为"

-#: ../src/generic/logg.cpp:498
+#: ../src/generic/logg.cpp:498
msgid "Save log contents to file"
msgstr "把日志内容保存到文件"

-#: ../src/generic/fontdlgg.cpp:224
+#: ../src/generic/fontdlgg.cpp:224
msgid "Script"
msgstr "Script"

-#: ../src/html/helpfrm.cpp:443 ../src/html/helpfrm.cpp:458
+#: ../src/html/helpfrm.cpp:443 ../src/html/helpfrm.cpp:458
msgid "Search"
msgstr "搜索"

-#: ../src/html/helpfrm.cpp:445
+#: ../src/html/helpfrm.cpp:445
msgid ""
"Search contents of help book(s) for all occurences of the text you typed "
"above"
msgstr "从帮助内容中搜索符合你在上面输入的正文的所有条目"

-#: ../src/generic/fdrepdlg.cpp:152
+#: ../src/generic/fdrepdlg.cpp:152
#, fuzzy
msgid "Search direction"
msgstr "创建目录"

-#: ../src/generic/fdrepdlg.cpp:111
+#: ../src/generic/fdrepdlg.cpp:111
#, fuzzy
msgid "Search for:"
msgstr "搜索"

-#: ../src/html/helpfrm.cpp:884
+#: ../src/html/helpfrm.cpp:884
msgid "Search in all books"
msgstr "在索引书中搜索"

-#: ../src/html/helpfrm.cpp:709
+#: ../src/html/helpfrm.cpp:709
msgid "Searching..."
msgstr "搜索..."

-#: ../src/generic/dirctrlg.cpp:594
+#: ../src/generic/dirctrlg.cpp:594
msgid "Sections"
msgstr "段"

-#: ../src/common/ffile.cpp:199
+#: ../src/common/ffile.cpp:199
#, c-format
msgid "Seek error on file '%s'"
msgstr "文件 '%s'定位错误"

-#: ../src/msw/textctrl.cpp:2055
+#: ../src/msw/textctrl.cpp:2055
#, fuzzy
msgid "Select &All"
msgstr "选择文件"

-#: ../src/common/docview.cpp:1605
+#: ../src/common/docview.cpp:1605
msgid "Select a document template"
msgstr "选择文档模板"

-#: ../src/common/docview.cpp:1682
+#: ../src/common/docview.cpp:1682
msgid "Select a document view"
msgstr "选择文档视图"

-#: ../src/common/docview.cpp:1485
+#: ../src/common/docview.cpp:1485
msgid "Select a file"
msgstr "选择文件"

-#: ../src/common/cmdline.cpp:713
+#: ../src/common/cmdline.cpp:713
#, c-format
msgid "Separator expected after the option '%s'."
msgstr "期望在选项 '%s'后存在分隔符."

-#: ../include/wx/xti.h:798
+#: ../include/wx/xti.h:798
msgid "SetProperty called w/o valid setter"
msgstr ""

-#: ../src/common/dlgcmn.cpp:230
+#: ../src/common/dlgcmn.cpp:230
msgid "Setup"
msgstr "设置"

-#: ../src/generic/prntdlgg.cpp:149
+#: ../src/generic/prntdlgg.cpp:149
msgid "Setup..."
msgstr "设置..."

-#: ../src/msw/dialup.cpp:518
+#: ../src/msw/dialup.cpp:518
msgid "Several active dialup connections found, choosing one randomly."
msgstr "找到多个活动拨号连接, 随机选择一个."

-#: ../src/html/helpfrm.cpp:399
+#: ../src/html/helpfrm.cpp:399
msgid "Show all"
msgstr "显示所有"

-#: ../src/html/helpfrm.cpp:410
+#: ../src/html/helpfrm.cpp:410
msgid "Show all items in index"
msgstr "把所有项目显示为索引"

-#: ../src/generic/dirdlgg.cpp:137
+#: ../src/generic/dirdlgg.cpp:137
#, fuzzy
msgid "Show hidden directories"
msgstr "显示隐藏文件"

-#: ../src/generic/filedlgg.cpp:971 ../src/generic/filedlgg.cpp:993
+#: ../src/generic/filedlgg.cpp:971 ../src/generic/filedlgg.cpp:993
msgid "Show hidden files"
msgstr "显示隐藏文件"

-#: ../src/html/helpfrm.cpp:544
+#: ../src/html/helpfrm.cpp:544
msgid "Show/hide navigation panel"
msgstr "显示/隐藏导航面板"

-#: ../src/generic/filedlgg.cpp:420
+#: ../src/generic/filedlgg.cpp:420
msgid "Size"
msgstr "大小"

-#: ../src/generic/fontdlgg.cpp:229
+#: ../src/generic/fontdlgg.cpp:229
msgid "Slant"
msgstr "倾斜"

-#: ../src/common/docview.cpp:326
+#: ../src/common/docview.cpp:326
msgid "Sorry, could not open this file for saving."
msgstr "对不起,不能打开文件以便保存。"

-#: ../src/common/docview.cpp:367 ../src/common/docview.cpp:380
+#: ../src/common/docview.cpp:367 ../src/common/docview.cpp:380
#: ../src/common/docview.cpp:1504
msgid "Sorry, could not open this file."
msgstr "对不起,不能打开文件。"

-#: ../src/common/docview.cpp:333
+#: ../src/common/docview.cpp:333
msgid "Sorry, could not save this file."
msgstr "对不起,不能保存文件。"

-#: ../src/common/prntbase.cpp:784
+#: ../src/common/prntbase.cpp:784
msgid "Sorry, not enough memory to create a preview."
msgstr "对不起, 没有足够内存创建预览."

-#: ../src/common/docview.cpp:959
+#: ../src/common/docview.cpp:959
msgid "Sorry, print preview needs a printer to be installed."
msgstr ""

-#: ../src/common/docview.cpp:1196 ../src/common/docview.cpp:1524
+#: ../src/common/docview.cpp:1196 ../src/common/docview.cpp:1524
#, fuzzy
msgid "Sorry, the format for this file is unknown."
msgstr "对不起,不能打开文件。"

-#: ../src/unix/sound.cpp:433
+#: ../src/unix/sound.cpp:433
msgid "Sound data are in unsupported format."
msgstr ""

-#: ../src/unix/sound.cpp:418
+#: ../src/unix/sound.cpp:418
#, c-format
msgid "Sound file '%s' is in unsupported format."
msgstr ""

-#: ../src/common/paper.cpp:123
+#: ../src/common/paper.cpp:123
msgid "Statement, 5 1/2 x 8 1/2 in"
msgstr "Statement, 5 1/2 x 8 1/2 in"

-#: ../src/generic/logg.cpp:615
+#: ../src/generic/logg.cpp:615
msgid "Status: "
msgstr "状态:"

-#: ../src/common/xtistrm.cpp:251
+#: ../src/common/xtistrm.cpp:251
msgid "Streaming delegates for not already streamed objects not yet supported"
msgstr ""

-#: ../src/msw/colour.cpp:38
+#: ../src/msw/colour.cpp:38
#, c-format
msgid "String To Colour : Incorrect colour specification : %s"
msgstr ""

-#: ../include/wx/xti.h:396 ../include/wx/xti.h:400
+#: ../include/wx/xti.h:396 ../include/wx/xti.h:400
msgid "String conversions not supported"
msgstr ""

-#: ../contrib/src/xrc/xmlres.cpp:676
+#: ../contrib/src/xrc/xmlres.cpp:676
#, c-format
msgid "Subclass '%s' not found for resource '%s', not subclassing!"
msgstr ""

-#: ../src/generic/fontdlgg.cpp:225
+#: ../src/generic/fontdlgg.cpp:225
msgid "Swiss"
msgstr "瑞士"

-#: ../src/common/imagtiff.cpp:232 ../src/common/imagtiff.cpp:243
+#: ../src/common/imagtiff.cpp:232 ../src/common/imagtiff.cpp:243
#: ../src/common/imagtiff.cpp:354
msgid "TIFF: Couldn't allocate memory."
msgstr "TIFF: 不能分配内存."

-#: ../src/common/imagtiff.cpp:203
+#: ../src/common/imagtiff.cpp:203
msgid "TIFF: Error loading image."
msgstr "TIFF: 装载图像错误."

-#: ../src/common/imagtiff.cpp:254
+#: ../src/common/imagtiff.cpp:254
msgid "TIFF: Error reading image."
msgstr "TIFF: 读图像错误."

-#: ../src/common/imagtiff.cpp:331
+#: ../src/common/imagtiff.cpp:331
msgid "TIFF: Error saving image."
msgstr "TIFF: 保存图像错误."

-#: ../src/common/imagtiff.cpp:378
+#: ../src/common/imagtiff.cpp:378
msgid "TIFF: Error writing image."
msgstr "TIFF:写图像错误."

-#: ../src/common/paper.cpp:121
+#: ../src/common/paper.cpp:121
msgid "Tabloid, 11 x 17 in"
msgstr "Tabloid, 11 x 17 英寸"

-#: ../src/generic/fontdlgg.cpp:226
+#: ../src/generic/fontdlgg.cpp:226
msgid "Teletype"
msgstr "电传打字机"

-#: ../src/common/docview.cpp:1606
+#: ../src/common/docview.cpp:1606
msgid "Templates"
msgstr "模板"

-#: ../src/common/fmapbase.cpp:112
+#: ../src/common/fmapbase.cpp:112
msgid "Thai (ISO-8859-11)"
msgstr "泰语 (ISO-8859-11)"

-#: ../src/common/ftp.cpp:573
+#: ../src/common/ftp.cpp:573
msgid "The FTP server doesn't support passive mode."
msgstr ""

-#: ../src/common/fontmap.cpp:188
+#: ../src/common/fontmap.cpp:188
#, c-format
msgid ""
"The charset '%s' is unknown. You may select\n"
@@ -2914,12 +2916,12 @@
"代替它,或,如果不能\n"
"被替代选择[取消] "

-#: ../src/msw/ole/dataobj.cpp:164
+#: ../src/msw/ole/dataobj.cpp:164
#, c-format
msgid "The clipboard format '%d' doesn't exist."
msgstr "剪贴板格式 '%d' 不存在."

-#: ../src/generic/dirdlgg.cpp:188
+#: ../src/generic/dirdlgg.cpp:188
#, fuzzy, c-format
msgid ""
"The directory '%s' does not exist\n"
@@ -2929,7 +2931,7 @@
"不存在\n"
"现在创建?"

-#: ../src/common/docview.cpp:1859
+#: ../src/common/docview.cpp:1859
#, fuzzy, c-format
msgid ""
"The file '%s' couldn't be opened.\n"
@@ -2938,7 +2940,7 @@
"文件 '%s' 不存在,不能被打开.\n"
"已从MRU文件列表中移去."

-#: ../src/common/docview.cpp:1869
+#: ../src/common/docview.cpp:1869
#, fuzzy, c-format
msgid ""
"The file '%s' doesn't exist and couldn't be opened.\n"
@@ -2947,424 +2949,424 @@
"文件 '%s' 不存在,不能被打开.\n"
"已从MRU文件列表中移去."

-#: ../src/common/filename.cpp:931
+#: ../src/common/filename.cpp:931
#, c-format
msgid "The path '%s' contains too many \"..\"!"
msgstr ""

-#: ../src/common/cmdline.cpp:857
+#: ../src/common/cmdline.cpp:857
#, c-format
msgid "The required parameter '%s' was not specified."
msgstr "必须的参数 '%s' 没有指定."

-#: ../src/common/textcmn.cpp:255
+#: ../src/common/textcmn.cpp:255
msgid "The text couldn't be saved."
msgstr "文本不能被保存。"

-#: ../src/common/cmdline.cpp:836
+#: ../src/common/cmdline.cpp:836
#, c-format
msgid "The value for the option '%s' must be specified."
msgstr "选项 '%s'的值必须被指定."

-#: ../src/msw/dialup.cpp:406
+#: ../src/msw/dialup.cpp:406
#, c-format
msgid ""
"The version of remote access service (RAS) installed on this machine is "
"tooold, please upgrade (the following required function is missing: %s)."
msgstr "安装在本机的远程访问服务(RAS)太旧, 请更新它 (下列必须得函数缺失: %s)."

-#: ../src/html/htmprint.cpp:580
+#: ../src/html/htmprint.cpp:580
msgid ""
"There was a problem during page setup: you may need to set a default printer."
msgstr ""

-#: ../src/msw/thread.cpp:1197
+#: ../src/msw/thread.cpp:1197
msgid ""
"Thread module initialization failed: can not store value in thread local "
"storage"
msgstr "线程模块初始化失败: 不能在线程本地存储区中存放值"

-#: ../src/unix/threadpsx.cpp:1600
+#: ../src/unix/threadpsx.cpp:1600
msgid "Thread module initialization failed: failed to create thread key"
msgstr "线程模块初始化失败: 创建线程键失败"

-#: ../src/msw/thread.cpp:1185
+#: ../src/msw/thread.cpp:1185
msgid ""
"Thread module initialization failed: impossible to allocate index in thread "
"local storage"
msgstr "线程模块初始化失败: 不能在线程本地存储区中分配索引"

-#: ../src/unix/threadpsx.cpp:1108
+#: ../src/unix/threadpsx.cpp:1108
msgid "Thread priority setting is ignored."
msgstr "线程优先级设置被忽略."

-#: ../src/msw/mdi.cpp:188
+#: ../src/msw/mdi.cpp:188
msgid "Tile &Horizontally"
msgstr ""

-#: ../src/msw/mdi.cpp:189
+#: ../src/msw/mdi.cpp:189
msgid "Tile &Vertically"
msgstr ""

-#: ../src/msw/timer.cpp:111
+#: ../src/msw/timer.cpp:111
#, fuzzy
msgid "Timer creation failed."
msgstr "管道创建失败"

-#: ../src/generic/tipdlg.cpp:205
+#: ../src/generic/tipdlg.cpp:205
msgid "Tip of the Day"
msgstr "每日技巧"

-#: ../src/generic/tipdlg.cpp:143
+#: ../src/generic/tipdlg.cpp:143
msgid "Tips not available, sorry!"
msgstr "对不起,没有所需技巧!"

-#: ../src/generic/prntdlgg.cpp:185
+#: ../src/generic/prntdlgg.cpp:185
msgid "To:"
msgstr "到:"

-#: ../src/common/imagpng.cpp:304
+#: ../src/common/imagpng.cpp:304
msgid "Too many colours in PNG, the image may be slightly blurred."
msgstr ""

-#: ../src/generic/prntdlgg.cpp:651
+#: ../src/generic/prntdlgg.cpp:651
msgid "Top margin (mm):"
msgstr "上页边距 (毫米):"

-#: ../src/common/fs_mem.cpp:205
+#: ../src/common/fs_mem.cpp:205
#, c-format
msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!"
msgstr "试图从内存VFS中移去文件'%s', 但它并没有被装入内存!"

-#: ../src/common/sckaddr.cpp:146 ../src/common/sckaddr.cpp:250
+#: ../src/common/sckaddr.cpp:146 ../src/common/sckaddr.cpp:250
msgid "Trying to solve a NULL hostname: giving up"
msgstr "试图解决 NULL 主机名: 放弃"

-#: ../src/common/fmapbase.cpp:110
+#: ../src/common/fmapbase.cpp:110
msgid "Turkish (ISO-8859-9)"
msgstr "土耳其语 (ISO-8859-9)"

-#: ../src/generic/filedlgg.cpp:421
+#: ../src/generic/filedlgg.cpp:421
#, fuzzy
msgid "Type"
msgstr "电传打字机"

-#: ../src/common/xtistrm.cpp:279 ../src/common/xtixml.cpp:351
+#: ../src/common/xtistrm.cpp:279 ../src/common/xtixml.cpp:351
#: ../src/common/xtixml.cpp:498
msgid "Type must have enum - long conversion"
msgstr ""

-#: ../src/common/paper.cpp:152
+#: ../src/common/paper.cpp:152
msgid "US Std Fanfold, 14 7/8 x 11 in"
msgstr "US 标准复写簿, 14 7/8 x 11 英寸"

-#: ../src/html/htmlwin.cpp:377
+#: ../src/html/htmlwin.cpp:377
#, c-format
msgid "Unable to open requested HTML document: %s"
msgstr "不能打开HTML文档: %s"

-#: ../src/unix/sound.cpp:323
+#: ../src/unix/sound.cpp:323
msgid "Unable to play sound asynchronously."
msgstr ""

-#: ../src/generic/fontdlgg.cpp:250
+#: ../src/generic/fontdlgg.cpp:250
msgid "Underline"
msgstr "下划线"

-#: ../src/common/cmdline.cpp:800
+#: ../src/common/cmdline.cpp:800
#, c-format
msgid "Unexpected parameter '%s'"
msgstr "意外参数 '%s'"

-#: ../src/common/fmapbase.cpp:133
+#: ../src/common/fmapbase.cpp:133
msgid "Unicode 16 bit (UTF-16)"
msgstr ""

-#: ../src/common/fmapbase.cpp:134
+#: ../src/common/fmapbase.cpp:134
msgid "Unicode 16 bit Big Endian (UTF-16BE)"
msgstr ""

-#: ../src/common/fmapbase.cpp:135
+#: ../src/common/fmapbase.cpp:135
msgid "Unicode 16 bit Little Endian (UTF-16LE)"
msgstr ""

-#: ../src/common/fmapbase.cpp:136
+#: ../src/common/fmapbase.cpp:136
msgid "Unicode 32 bit (UTF-32)"
msgstr ""

-#: ../src/common/fmapbase.cpp:137
+#: ../src/common/fmapbase.cpp:137
msgid "Unicode 32 bit Big Endian (UTF-32BE)"
msgstr ""

-#: ../src/common/fmapbase.cpp:138
+#: ../src/common/fmapbase.cpp:138
msgid "Unicode 32 bit Little Endian (UTF-32LE)"
msgstr ""

-#: ../src/common/fmapbase.cpp:131
+#: ../src/common/fmapbase.cpp:131
msgid "Unicode 7 bit (UTF-7)"
msgstr ""

-#: ../src/common/fmapbase.cpp:132
+#: ../src/common/fmapbase.cpp:132
msgid "Unicode 8 bit (UTF-8)"
msgstr ""

-#: ../src/msw/dde.cpp:1108
+#: ../src/msw/dde.cpp:1108
#, c-format
msgid "Unknown DDE error %08x"
msgstr "未知 DDE 错误 %08x"

-#: ../src/common/xtistrm.cpp:368
+#: ../src/common/xtistrm.cpp:368
msgid "Unknown Object passed to GetObjectClassInfo"
msgstr ""

-#: ../src/common/fmapbase.cpp:674
+#: ../src/common/fmapbase.cpp:674
#, c-format
msgid "Unknown encoding (%d)"
msgstr "位置编码 (%d)"

-#: ../src/unix/mimetype.cpp:2187
+#: ../src/unix/mimetype.cpp:2187
#, c-format
msgid "Unknown field in file %s, line %d: '%s'."
msgstr "在文件 %s, 行 %d是未知字段: '%s'."

-#: ../src/common/cmdline.cpp:573
+#: ../src/common/cmdline.cpp:573
#, c-format
msgid "Unknown long option '%s'"
msgstr "未知long选项 '%s'"

-#: ../src/common/cmdline.cpp:582 ../src/common/cmdline.cpp:603
+#: ../src/common/cmdline.cpp:582 ../src/common/cmdline.cpp:603
#, c-format
msgid "Unknown option '%s'"
msgstr "未知选项 '%s'"

-#: ../contrib/src/xrc/xmlres.cpp:746
+#: ../contrib/src/xrc/xmlres.cpp:746
msgid "Unknown style flag "
msgstr ""

-#: ../src/common/xtixml.cpp:324
+#: ../src/common/xtixml.cpp:324
#, fuzzy, c-format
msgid "Unkown Property %s"
msgstr "未知选项 '%s'"

-#: ../src/common/mimecmn.cpp:161
+#: ../src/common/mimecmn.cpp:161
#, c-format
msgid "Unmatched '{' in an entry for mime type %s."
msgstr "类型 %s中有不配套的'{'."

-#: ../src/common/cmdproc.cpp:254 ../src/common/cmdproc.cpp:280
+#: ../src/common/cmdproc.cpp:254 ../src/common/cmdproc.cpp:280
#: ../src/common/cmdproc.cpp:300
msgid "Unnamed command"
msgstr "未命名的命令"

-#: ../src/mac/clipbrd.cpp:64 ../src/msw/clipbrd.cpp:273
+#: ../src/mac/clipbrd.cpp:64 ../src/msw/clipbrd.cpp:273
#: ../src/msw/clipbrd.cpp:445
msgid "Unsupported clipboard format."
msgstr "不支持的剪贴板格式"

-#: ../src/common/gzstream.cpp:139
+#: ../src/common/gzstream.cpp:139
#, fuzzy
msgid "Unsupported flag in Gzip header"
msgstr "不支持的剪贴板格式"

-#: ../src/common/appcmn.cpp:222
+#: ../src/common/appcmn.cpp:222
#, c-format
msgid "Unsupported theme '%s'."
msgstr ""

-#: ../src/generic/fdrepdlg.cpp:151
+#: ../src/generic/fdrepdlg.cpp:151
msgid "Up"
msgstr ""

-#: ../src/common/cmdline.cpp:927
+#: ../src/common/cmdline.cpp:927
#, c-format
msgid "Usage: %s"
msgstr "用法: %s"

-#: ../src/common/valtext.cpp:185
+#: ../src/common/valtext.cpp:185
msgid "Validation conflict"
msgstr "验证冲突"

-#: ../contrib/src/mmedia/vidbase.cpp:65
+#: ../contrib/src/mmedia/vidbase.cpp:65
msgid "Video Output"
msgstr ""

-#: ../src/generic/filedlgg.cpp:904
+#: ../src/generic/filedlgg.cpp:904
msgid "View files as a detailed view"
msgstr "按详细视图观看文件"

-#: ../src/generic/filedlgg.cpp:897
+#: ../src/generic/filedlgg.cpp:897
msgid "View files as a list view"
msgstr "按列表视图观看文件"

-#: ../src/common/docview.cpp:1683
+#: ../src/common/docview.cpp:1683
msgid "Views"
msgstr "视图"

-#: ../src/unix/baseunix.cpp:78
+#: ../src/unix/baseunix.cpp:78
msgid "Waiting for subprocess termination failed"
msgstr "等待子过程终止失败"

-#: ../src/common/docview.cpp:463
+#: ../src/common/docview.cpp:463
msgid "Warning"
msgstr "警告"

-#: ../src/common/log.cpp:482
+#: ../src/common/log.cpp:482
msgid "Warning: "
msgstr "警告:"

-#: ../src/html/htmlpars.cpp:390
+#: ../src/html/htmlpars.cpp:390
msgid "Warning: attempt to remove HTML tag handler from empty stack."
msgstr "警告: 视图从空栈中移去HTML标签处理器."

-#: ../src/common/fmapbase.cpp:102
+#: ../src/common/fmapbase.cpp:102
#, fuzzy
msgid "Western European (ISO-8859-1)"
msgstr "West European (ISO-8859-1/Latin 1)"

-#: ../src/common/fmapbase.cpp:116
+#: ../src/common/fmapbase.cpp:116
#, fuzzy
msgid "Western European with Euro (ISO-8859-15)"
msgstr "West European new (ISO-8859-15/Latin 0)"

-#: ../src/generic/fdrepdlg.cpp:143
+#: ../src/generic/fdrepdlg.cpp:143
#, fuzzy
msgid "Whole word"
msgstr "仅为整字"

-#: ../src/html/helpfrm.cpp:442
+#: ../src/html/helpfrm.cpp:442
msgid "Whole words only"
msgstr "仅为整字"

-#: ../src/univ/themes/win32.cpp:1182
+#: ../src/univ/themes/win32.cpp:1182
msgid "Win32 theme"
msgstr ""

-#: ../src/msw/utils.cpp:981
+#: ../src/msw/utils.cpp:981
msgid "Win32s on Windows 3.1"
msgstr "Win32s on Windows 3.1"

-#: ../src/msw/utils.cpp:1013
+#: ../src/msw/utils.cpp:1013
msgid "Windows 3.1"
msgstr "Windows 3.1"

-#: ../src/msw/utils.cpp:985
+#: ../src/msw/utils.cpp:985
#, c-format
msgid "Windows 9%c"
msgstr "Windows 9%c"

-#: ../src/common/fmapbase.cpp:128
+#: ../src/common/fmapbase.cpp:128
msgid "Windows Arabic (CP 1256)"
msgstr "Windows Arabic (CP 1256)"

-#: ../src/common/fmapbase.cpp:129
+#: ../src/common/fmapbase.cpp:129
msgid "Windows Baltic (CP 1257)"
msgstr "Windows Baltic (CP 1257)"

-#: ../src/common/fmapbase.cpp:122
+#: ../src/common/fmapbase.cpp:122
#, fuzzy
msgid "Windows Central European (CP 1250)"
msgstr "Windows 希伯来 (CP 1255)"

-#: ../src/common/fmapbase.cpp:119
+#: ../src/common/fmapbase.cpp:119
msgid "Windows Chinese Simplified (CP 936)"
msgstr ""

-#: ../src/common/fmapbase.cpp:121
+#: ../src/common/fmapbase.cpp:121
#, fuzzy
msgid "Windows Chinese Traditional (CP 950)"
msgstr "Windows Latin 1 (CP 1252)"

-#: ../src/common/fmapbase.cpp:123
+#: ../src/common/fmapbase.cpp:123
msgid "Windows Cyrillic (CP 1251)"
msgstr "Windows Cyrillic (CP 1251)"

-#: ../src/common/fmapbase.cpp:125
+#: ../src/common/fmapbase.cpp:125
msgid "Windows Greek (CP 1253)"
msgstr "Windows Greek (CP 1253)"

-#: ../src/common/fmapbase.cpp:127
+#: ../src/common/fmapbase.cpp:127
msgid "Windows Hebrew (CP 1255)"
msgstr "Windows 希伯来 (CP 1255)"

-#: ../src/common/fmapbase.cpp:118
+#: ../src/common/fmapbase.cpp:118
#, fuzzy
msgid "Windows Japanese (CP 932)"
msgstr "Windows Greek (CP 1253)"

-#: ../src/common/fmapbase.cpp:120
+#: ../src/common/fmapbase.cpp:120
#, fuzzy
msgid "Windows Korean (CP 949)"
msgstr "Windows Greek (CP 1253)"

-#: ../src/common/fmapbase.cpp:126
+#: ../src/common/fmapbase.cpp:126
msgid "Windows Turkish (CP 1254)"
msgstr "Windows 土耳其语 (CP 1254)"

-#: ../src/common/fmapbase.cpp:124
+#: ../src/common/fmapbase.cpp:124
#, fuzzy
msgid "Windows Western European (CP 1252)"
msgstr "Windows Latin 1 (CP 1252)"

-#: ../src/common/fmapbase.cpp:130
+#: ../src/common/fmapbase.cpp:130
msgid "Windows/DOS OEM (CP 437)"
msgstr "Windows/DOS OEM (CP 437)"

-#: ../src/common/ffile.cpp:146
+#: ../src/common/ffile.cpp:146
#, c-format
msgid "Write error on file '%s'"
msgstr "写文件 '%s'错误"

-#: ../src/xml/xml.cpp:548
+#: ../src/xml/xml.cpp:548
#, c-format
msgid "XML parsing error: '%s' at line %d"
msgstr ""

-#: ../src/common/xpmdecod.cpp:777
+#: ../src/common/xpmdecod.cpp:777
msgid "XPM: Malformed pixel data!"
msgstr ""

-#: ../src/common/xpmdecod.cpp:712 ../src/common/xpmdecod.cpp:722
+#: ../src/common/xpmdecod.cpp:712 ../src/common/xpmdecod.cpp:722
#, c-format
msgid "XPM: malformed colour definition '%s'!"
msgstr ""

-#: ../contrib/src/xrc/xmlres.cpp:504
+#: ../contrib/src/xrc/xmlres.cpp:504
#, fuzzy, c-format
msgid "XRC resource '%s' (class '%s') not found!"
msgstr "没有找到图标资源规范 %s ."

-#: ../contrib/src/xrc/xmlres.cpp:885 ../contrib/src/xrc/xmlres.cpp:897
+#: ../contrib/src/xrc/xmlres.cpp:885 ../contrib/src/xrc/xmlres.cpp:897
#, c-format
msgid "XRC resource: Cannot create bitmap from '%s'."
msgstr ""

-#: ../contrib/src/xrc/xmlres.cpp:845
+#: ../contrib/src/xrc/xmlres.cpp:845
#, c-format
msgid "XRC resource: Incorrect colour specification '%s' for property '%s'."
msgstr ""

-#: ../src/common/dlgcmn.cpp:208 ../src/mac/msgdlg.cpp:57
+#: ../src/common/dlgcmn.cpp:208 ../src/mac/msgdlg.cpp:57
#: ../src/mac/msgdlg.cpp:139 ../src/motif/msgdlg.cpp:182
msgid "Yes"
msgstr "是"

-#: ../src/generic/dirdlgg.cpp:264
+#: ../src/generic/dirdlgg.cpp:264
msgid "You cannot add a new directory to this section."
msgstr "你不能向该项中加入新的目录."

-#: ../src/common/fs_zip.cpp:88 ../src/common/fs_zip.cpp:138
+#: ../src/common/fs_zip.cpp:88 ../src/common/fs_zip.cpp:138
msgid "ZIP handler currently supports only local files!"
msgstr ""

-#: ../src/common/docview.cpp:2043
+#: ../src/common/docview.cpp:2043
msgid "[EMPTY]"
msgstr "[空]"

-#: ../src/msw/dde.cpp:1075
+#: ../src/msw/dde.cpp:1075
msgid "a DDEML application has created a prolonged race condition."
msgstr "DDEML应用程序已创建延时race条件."

-#: ../src/msw/dde.cpp:1063
+#: ../src/msw/dde.cpp:1063
msgid ""
"a DDEML function was called without first calling the DdeInitialize "
"function,\n"
@@ -3375,39 +3377,39 @@
"或传给DDEML函数的是\n"
"无效的实例标识."

-#: ../src/msw/dde.cpp:1081
+#: ../src/msw/dde.cpp:1081
msgid "a client's attempt to establish a conversation has failed."
msgstr "客户试图建立的会话已失败."

-#: ../src/msw/dde.cpp:1078
+#: ../src/msw/dde.cpp:1078
msgid "a memory allocation failed."
msgstr "内存分配失败."

-#: ../src/msw/dde.cpp:1072
+#: ../src/msw/dde.cpp:1072
msgid "a parameter failed to be validated by the DDEML."
msgstr "DDEML参数验证失败."

-#: ../src/msw/dde.cpp:1054
+#: ../src/msw/dde.cpp:1054
msgid "a request for a synchronous advise transaction has timed out."
msgstr "同步advise事务请求已超时."

-#: ../src/msw/dde.cpp:1060
+#: ../src/msw/dde.cpp:1060
msgid "a request for a synchronous data transaction has timed out."
msgstr "同步data事务请求已超时."

-#: ../src/msw/dde.cpp:1069
+#: ../src/msw/dde.cpp:1069
msgid "a request for a synchronous execute transaction has timed out."
msgstr "同步execute事务请求已超时."

-#: ../src/msw/dde.cpp:1087
+#: ../src/msw/dde.cpp:1087
msgid "a request for a synchronous poke transaction has timed out."
msgstr "同步poke事务请求已超时."

-#: ../src/msw/dde.cpp:1102
+#: ../src/msw/dde.cpp:1102
msgid "a request to end an advise transaction has timed out."
msgstr "终止建议事务的请求已超时."

-#: ../src/msw/dde.cpp:1096
+#: ../src/msw/dde.cpp:1096
msgid ""
"a server-side transaction was attempted on a conversation\n"
"that was terminated by the client, or the server\n"
@@ -3417,15 +3419,15 @@
"已被客户端终止的会话, 或服务器\n"
"在完成事务前终止."

-#: ../src/msw/dde.cpp:1084
+#: ../src/msw/dde.cpp:1084
msgid "a transaction failed."
msgstr "事务失败."

-#: ../src/common/menucmn.cpp:108
+#: ../src/common/menucmn.cpp:108
msgid "alt"
msgstr "alt"

-#: ../src/msw/dde.cpp:1066
+#: ../src/msw/dde.cpp:1066
msgid ""
"an application initialized as APPCLASS_MONITOR has\n"
"attempted to perform a DDE transaction,\n"
@@ -3437,15 +3439,15 @@
"或初始化为APPCMD_CLIENTONLY的应用程序\n"
"视图执行服务器事务."

-#: ../src/msw/dde.cpp:1090
+#: ../src/msw/dde.cpp:1090
msgid "an internal call to the PostMessage function has failed. "
msgstr "内部调用PostMessage失败. "

-#: ../src/msw/dde.cpp:1099
+#: ../src/msw/dde.cpp:1099
msgid "an internal error has occurred in the DDEML."
msgstr "在DDEML中发生内部错误."

-#: ../src/msw/dde.cpp:1105
+#: ../src/msw/dde.cpp:1105
msgid ""
"an invalid transaction identifier was passed to a DDEML function.\n"
"Once the application has returned from an XTYP_XACT_COMPLETE callback,\n"
@@ -3455,575 +3457,574 @@
"一旦应用程序从XTYP_XACT_COMPLETE回调函数返回,\n"
"回调函数事务标识符就不再有效."

-#: ../src/common/fileconf.cpp:1815
+#: ../src/common/fileconf.cpp:1815
#, c-format
msgid "attempt to change immutable key '%s' ignored."
msgstr "忽略对只读键 '%s'的修改."

-#: ../src/html/chm.cpp:330
+#: ../src/html/chm.cpp:330
msgid "bad arguments to library function"
msgstr ""

-#: ../src/html/chm.cpp:342
+#: ../src/html/chm.cpp:342
msgid "bad signature"
msgstr ""

-#: ../src/common/ftp.cpp:369
+#: ../src/common/ftp.cpp:369
msgid "binary"
msgstr ""

-#: ../src/common/fontcmn.cpp:533
+#: ../src/common/fontcmn.cpp:533
#, fuzzy
msgid "bold"
msgstr "粗体"

-#: ../src/common/fontcmn.cpp:457
+#: ../src/common/fontcmn.cpp:457
#, fuzzy
msgid "bold "
msgstr "粗体"

-#: ../src/common/ffile.cpp:79
+#: ../src/common/ffile.cpp:79
#, c-format
msgid "can't close file '%s'"
msgstr "不能关闭文件 '%s'"

-#: ../src/common/file.cpp:371
+#: ../src/common/file.cpp:371
#, c-format
msgid "can't close file descriptor %d"
msgstr "不能关闭文件描述子 %d"

-#: ../src/common/file.cpp:729
+#: ../src/common/file.cpp:729
#, c-format
msgid "can't commit changes to file '%s'"
msgstr "不能把修改提交给文件 '%s'"

-#: ../src/common/file.cpp:252
+#: ../src/common/file.cpp:252
#, c-format
msgid "can't create file '%s'"
msgstr "不能创建文件 '%s'"

-#: ../src/common/fileconf.cpp:1106
+#: ../src/common/fileconf.cpp:1106
#, c-format
msgid "can't delete user configuration file '%s'"
msgstr "不能删除用户配置文件 '%s'"

-#: ../src/common/file.cpp:631
+#: ../src/common/file.cpp:631
#, c-format
msgid "can't determine if the end of file is reached on descriptor %d"
msgstr "不能确定是否已达文件 %d 的尾部"

-#: ../src/common/file.cpp:585
+#: ../src/common/file.cpp:585
#, c-format
msgid "can't find length of file on file descriptor %d"
msgstr "不能获得文件描述子 %d的文件的长度"

-#: ../src/msw/utils.cpp:371
+#: ../src/msw/utils.cpp:371
msgid "can't find user's HOME, using current directory."
msgstr "找不到用户目录HOME, 使用当前目录."

-#: ../src/common/file.cpp:450
+#: ../src/common/file.cpp:450
#, c-format
msgid "can't flush file descriptor %d"
msgstr "不能刷新文件描述子 %d"

-#: ../src/common/file.cpp:535 ../src/common/file.cpp:543
+#: ../src/common/file.cpp:535 ../src/common/file.cpp:543
#, c-format
msgid "can't get seek position on file descriptor %d"
msgstr "不能获得文件描述子 %d的指针位置"

-#: ../src/common/fontmap.cpp:305
+#: ../src/common/fontmap.cpp:305
msgid "can't load any font, aborting"
msgstr "不能装载任何字体, 正在中止"

-#: ../src/common/ffile.cpp:63 ../src/common/file.cpp:352
+#: ../src/common/ffile.cpp:63 ../src/common/file.cpp:352
#, c-format
msgid "can't open file '%s'"
msgstr "不能打开文件 '%s'"

-#: ../src/common/fileconf.cpp:407
+#: ../src/common/fileconf.cpp:407
#, c-format
msgid "can't open global configuration file '%s'."
msgstr "不能打开全局配置文件 '%s'."

-#: ../src/common/fileconf.cpp:422
+#: ../src/common/fileconf.cpp:422
#, c-format
msgid "can't open user configuration file '%s'."
msgstr "不能打开用户配置文件 '%s'."

-#: ../src/common/fileconf.cpp:981
+#: ../src/common/fileconf.cpp:981
msgid "can't open user configuration file."
msgstr "不能打开用户配置文件."

-#: ../src/common/dynlib.cpp:445
+#: ../src/common/dynlib.cpp:445
msgid "can't query for GUI plugins name in console applications"
msgstr ""

-#: ../src/common/file.cpp:404
+#: ../src/common/file.cpp:404
#, c-format
msgid "can't read from file descriptor %d"
msgstr "不能从文件描述子 %d中读"

-#: ../src/common/file.cpp:724
+#: ../src/common/file.cpp:724
#, c-format
msgid "can't remove file '%s'"
msgstr "不能删除文件 '%s'"

-#: ../src/common/file.cpp:740
+#: ../src/common/file.cpp:740
#, c-format
msgid "can't remove temporary file '%s'"
msgstr "不能删除临时文件 '%s'"

-#: ../src/common/file.cpp:492 ../src/common/file.cpp:518
+#: ../src/common/file.cpp:492 ../src/common/file.cpp:518
#, c-format
msgid "can't seek on file descriptor %d"
msgstr "不能定位文件描述子 %d"

-#: ../src/common/textfile.cpp:196
+#: ../src/common/textfile.cpp:196
#, fuzzy, c-format
msgid "can't write buffer '%s' to disk."
msgstr "不能把文件 '%s'写到磁盘."

-#: ../src/common/file.cpp:433
+#: ../src/common/file.cpp:433
#, c-format
msgid "can't write to file descriptor %d"
msgstr "不能写到文件描述子 %d"

-#: ../src/common/fileconf.cpp:992
+#: ../src/common/fileconf.cpp:992
msgid "can't write user configuration file."
msgstr "不能写用户配置文件."

-#: ../src/common/intl.cpp:1102
+#: ../src/common/intl.cpp:1102
#, c-format
msgid "catalog file for domain '%s' not found."
msgstr "找不到域 '%s'的目录文件."

-#: ../src/html/chm.cpp:346
+#: ../src/html/chm.cpp:346
msgid "checksum error"
msgstr ""

-#: ../src/html/chm.cpp:348
+#: ../src/html/chm.cpp:348
msgid "compression error"
msgstr ""

-#: ../src/common/menucmn.cpp:106
+#: ../src/common/menucmn.cpp:106
msgid "ctrl"
msgstr "ctrl"

-#: ../src/common/cmdline.cpp:1067
+#: ../src/common/cmdline.cpp:1067
msgid "date"
msgstr "日期"

-#: ../src/html/chm.cpp:350
+#: ../src/html/chm.cpp:350
msgid "decompression error"
msgstr ""

-#: ../src/common/fmapbase.cpp:684
+#: ../src/common/fmapbase.cpp:684
#, fuzzy
msgid "default"
msgstr "alt"

-#: ../src/common/xtistrm.cpp:841
+#: ../src/common/xtistrm.cpp:841
msgid "delegate has no type info"
msgstr ""

-#: ../src/common/datetime.cpp:3483
+#: ../src/common/datetime.cpp:3483
msgid "eighteenth"
msgstr "第十八"

-#: ../src/common/datetime.cpp:3473
+#: ../src/common/datetime.cpp:3473
msgid "eighth"
msgstr "第八"

-#: ../src/common/datetime.cpp:3476
+#: ../src/common/datetime.cpp:3476
msgid "eleventh"
msgstr "第十一"

-#: ../src/common/strconv.cpp:1573
+#: ../src/common/strconv.cpp:1573
#, fuzzy, c-format
msgid "encoding %s"
msgstr "位置编码 (%d)"

-#: ../src/common/fileconf.cpp:1801
+#: ../src/common/fileconf.cpp:1801
#, c-format
msgid "entry '%s' appears more than once in group '%s'"
msgstr "条目 '%s' 在组 '%s'中已出现一次以上"

-#: ../src/html/chm.cpp:344
+#: ../src/html/chm.cpp:344
#, fuzzy
msgid "error in data format"
msgstr "GIF: GIF文件格式错误."

-#: ../src/html/chm.cpp:332
+#: ../src/html/chm.cpp:332
#, fuzzy
msgid "error opening file"
msgstr "读文件 '%s'出错"

-#: ../src/msw/dialup.cpp:841
+#: ../src/msw/dialup.cpp:841
msgid "establish"
msgstr "建立"

-#: ../src/common/ffile.cpp:160
+#: ../src/common/ffile.cpp:160
#, c-format
msgid "failed to flush the file '%s'"
msgstr "刷新文件 '%s'失败"

-#: ../src/common/datetime.cpp:3480
+#: ../src/common/datetime.cpp:3480
msgid "fifteenth"
msgstr "第十五"

-#: ../src/common/datetime.cpp:3470
+#: ../src/common/datetime.cpp:3470
msgid "fifth"
msgstr "第五"

-#: ../src/common/fileconf.cpp:658
+#: ../src/common/fileconf.cpp:658
#, c-format
msgid "file '%s', line %d: '%s' ignored after group header."
msgstr "文件 '%s', 行 %d: '%s' 组头后备忽略."

-#: ../src/common/fileconf.cpp:687
+#: ../src/common/fileconf.cpp:687
#, c-format
msgid "file '%s', line %d: '=' expected."
msgstr "文件 '%s', 行 %d: 期望 '='."

-#: ../src/common/fileconf.cpp:710
+#: ../src/common/fileconf.cpp:710
#, c-format
msgid "file '%s', line %d: key '%s' was first found at line %d."
msgstr "文件 '%s', 行 %d: 键 '%s' 第一次出现在行 %d."

-#: ../src/common/fileconf.cpp:700
+#: ../src/common/fileconf.cpp:700
#, c-format
msgid "file '%s', line %d: value for immutable key '%s' ignored."
msgstr "文件 '%s', 行 %d: 忽略不能修改键 '%s'的值."

-#: ../src/common/fileconf.cpp:622
+#: ../src/common/fileconf.cpp:622
#, c-format
msgid "file '%s': unexpected character %c at line %d."
msgstr "文件 '%s': 非预期的字符 %c 存在于行 %d.中"

-#: ../src/common/datetime.cpp:3466
+#: ../src/common/datetime.cpp:3466
msgid "first"
msgstr "第一"

-#: ../src/html/helpfrm.cpp:1084
+#: ../src/html/helpfrm.cpp:1084
#, fuzzy
msgid "font size"
msgstr "字体大小:"

-#: ../src/common/datetime.cpp:3479
+#: ../src/common/datetime.cpp:3479
msgid "fourteenth"
msgstr "第十四"

-#: ../src/common/datetime.cpp:3469
+#: ../src/common/datetime.cpp:3469
msgid "fourth"
msgstr "第四"

-#: ../src/common/appbase.cpp:320
+#: ../src/common/appbase.cpp:320
msgid "generate verbose log messages"
msgstr ""

-#: ../src/common/stopwatch.cpp:234
+#: ../src/common/stopwatch.cpp:234
msgid "gmtime() failed"
msgstr "gmtime() 失败"

-#: ../src/common/xtixml.cpp:479
+#: ../src/common/xtixml.cpp:479
msgid "incorrect event handler string, missing dot"
msgstr ""

-#: ../src/msw/dialup.cpp:841
+#: ../src/msw/dialup.cpp:841
msgid "initiate"
msgstr "初始化"

-#: ../src/common/file.cpp:635
+#: ../src/common/file.cpp:635
msgid "invalid eof() return value."
msgstr "无效的eof()返回值."

-#: ../src/generic/logg.cpp:1134
+#: ../src/generic/logg.cpp:1134
msgid "invalid message box return value"
msgstr "消息框返回无效的值"

-#: ../src/common/fontcmn.cpp:473 ../src/common/fontcmn.cpp:537
+#: ../src/common/fontcmn.cpp:473 ../src/common/fontcmn.cpp:537
#, fuzzy
msgid "italic"
msgstr "斜体"

-#: ../src/common/fontcmn.cpp:529
+#: ../src/common/fontcmn.cpp:529
#, fuzzy
msgid "light"
msgstr "轻"

-#: ../src/common/fontcmn.cpp:453
+#: ../src/common/fontcmn.cpp:453
#, fuzzy
msgid "light "
msgstr "轻"

-#: ../src/common/intl.cpp:1427
+#: ../src/common/intl.cpp:1427
#, c-format
msgid "locale '%s' can not be set."
msgstr "不能设置现场locale '%s'."

-#: ../src/common/intl.cpp:1097
+#: ../src/common/intl.cpp:1097
#, c-format
msgid "looking for catalog '%s' in path '%s'."
msgstr "查找目录 '%s' 在路径 '%s'下."

-#: ../src/common/datetime.cpp:3630
+#: ../src/common/datetime.cpp:3630
msgid "midnight"
msgstr "午夜"

-#: ../src/common/stopwatch.cpp:230
+#: ../src/common/stopwatch.cpp:230
msgid "mktime() failed"
msgstr "mktime()失败"

-#: ../src/common/datetime.cpp:3484
+#: ../src/common/datetime.cpp:3484
msgid "nineteenth"
msgstr "第十九"

-#: ../src/common/datetime.cpp:3474
+#: ../src/common/datetime.cpp:3474
msgid "ninth"
msgstr "第九"

-#: ../src/msw/dde.cpp:1050
+#: ../src/msw/dde.cpp:1050
msgid "no DDE error."
msgstr "没有DDE错误"

-#: ../src/html/chm.cpp:328
+#: ../src/html/chm.cpp:328
#, fuzzy
msgid "no error"
msgstr "GIF: 位置错误!!!"

-#: ../src/html/helpdata.cpp:603
+#: ../src/html/helpdata.cpp:603
msgid "noname"
msgstr "未名"

-#: ../src/common/datetime.cpp:3629
+#: ../src/common/datetime.cpp:3629
msgid "noon"
msgstr "中午"

-#: ../src/common/cmdline.cpp:1063
+#: ../src/common/cmdline.cpp:1063
msgid "num"
msgstr "num"

-#: ../src/common/xtixml.cpp:258
+#: ../src/common/xtixml.cpp:258
msgid "objects cannot have XML Text Nodes"
msgstr ""

-#: ../src/html/chm.cpp:340
+#: ../src/html/chm.cpp:340
#, fuzzy
msgid "out of memory"
msgstr "GIF: 没有足够内存."

-#: ../src/html/chm.cpp:334
+#: ../src/html/chm.cpp:334
#, fuzzy
msgid "read error"
msgstr "文件错误"

-#: ../src/common/filename.cpp:177
+#: ../src/common/filename.cpp:177
msgid "reading"
msgstr ""

-#: ../src/common/gzstream.cpp:180
+#: ../src/common/gzstream.cpp:180
msgid "reading Gzip stream: bad crc"
msgstr ""

-#: ../src/common/gzstream.cpp:182
+#: ../src/common/gzstream.cpp:182
msgid "reading Gzip stream: incorrect length"
msgstr ""

-#: ../src/msw/dde.cpp:1093
+#: ../src/msw/dde.cpp:1093
msgid "reentrancy problem."
msgstr "重入问题"

-#: ../src/common/datetime.cpp:3467
+#: ../src/common/datetime.cpp:3467
msgid "second"
msgstr "第二"

-#: ../src/html/chm.cpp:338
+#: ../src/html/chm.cpp:338
#, fuzzy
msgid "seek error"
msgstr "文件错误"

-#: ../src/common/datetime.cpp:3482
+#: ../src/common/datetime.cpp:3482
msgid "seventeenth"
msgstr "第十七"

-#: ../src/common/datetime.cpp:3472
+#: ../src/common/datetime.cpp:3472
msgid "seventh"
msgstr "第七"

-#: ../src/common/menucmn.cpp:110
+#: ../src/common/menucmn.cpp:110
msgid "shift"
msgstr "shift"

-#: ../src/common/appbase.cpp:310
../src/main.cpp:460 ../src/main.cpp:523
-#: ../src/main.cpp:529
+#: ../src/common/appbase.cpp:310 ../src/main.cpp:529 ../src/main.cpp:541
msgid "show this help message"
msgstr ""

-#: ../src/common/datetime.cpp:3481
+#: ../src/common/datetime.cpp:3481
msgid "sixteenth"
msgstr "第十六"

-#: ../src/common/datetime.cpp:3471
+#: ../src/common/datetime.cpp:3471
msgid "sixth"
msgstr "第六"

-#: ../src/common/appcmn.cpp:193
+#: ../src/common/appcmn.cpp:193
msgid "specify display mode to use (e.g. 640x480-16)"
msgstr ""

-#: ../src/common/appcmn.cpp:179
+#: ../src/common/appcmn.cpp:179
msgid "specify the theme to use"
msgstr ""

-#: ../src/common/cmdline.cpp:1059
+#: ../src/common/cmdline.cpp:1059
msgid "str"
msgstr "str"

-#: ../src/common/datetime.cpp:3475
+#: ../src/common/datetime.cpp:3475
msgid "tenth"
msgstr "第十"

-#: ../src/msw/dde.cpp:1057
+#: ../src/msw/dde.cpp:1057
msgid "the response to the transaction caused the DDE_FBUSY bit to be set."
msgstr "对事件的响应导致DDE_FBUSY位被设置."

-#: ../src/common/datetime.cpp:3468
+#: ../src/common/datetime.cpp:3468
msgid "third"
msgstr "第三"

-#: ../src/common/datetime.cpp:3478
+#: ../src/common/datetime.cpp:3478
msgid "thirteenth"
msgstr "第十三"

-#: ../src/common/imagtiff.cpp:143 ../src/common/imagtiff.cpp:151
+#: ../src/common/imagtiff.cpp:143 ../src/common/imagtiff.cpp:151
#, c-format
msgid "tiff module: %s"
msgstr ""

-#: ../src/common/datetime.cpp:3301
+#: ../src/common/datetime.cpp:3301
msgid "today"
msgstr "今天"

-#: ../src/common/datetime.cpp:3303
+#: ../src/common/datetime.cpp:3303
msgid "tomorrow"
msgstr "明天"

-#: ../src/common/datetime.cpp:3477
+#: ../src/common/datetime.cpp:3477
msgid "twelfth"
msgstr "第十二"

-#: ../src/common/datetime.cpp:3485
+#: ../src/common/datetime.cpp:3485
msgid "twentieth"
msgstr "第二十"

-#: ../src/common/fontcmn.cpp:525
+#: ../src/common/fontcmn.cpp:525
#, fuzzy
msgid "underlined"
msgstr "下划线"

-#: ../src/common/fontcmn.cpp:440
+#: ../src/common/fontcmn.cpp:440
#, fuzzy
msgid "underlined "
msgstr "下划线"

-#: ../src/common/fileconf.cpp:1935
+#: ../src/common/fileconf.cpp:1935
#, c-format
msgid "unexpected \" at position %d in '%s'."
msgstr "例外的 \" 在位置 %d in '%s'."

-#: ../src/generic/progdlgg.cpp:282
+#: ../src/generic/progdlgg.cpp:282
msgid "unknown"
msgstr "未知"

-#: ../src/common/xtixml.cpp:252
+#: ../src/common/xtixml.cpp:252
#, fuzzy, c-format
msgid "unknown class %s"
msgstr ": 未知字符集"

-#: ../src/common/regex.cpp:151 ../src/html/chm.cpp:352
+#: ../src/common/regex.cpp:151 ../src/html/chm.cpp:352
#, fuzzy
msgid "unknown error"
msgstr "GIF: 位置错误!!!"

-#: ../src/msw/dialup.cpp:445
+#: ../src/msw/dialup.cpp:445
#, c-format
msgid "unknown error (error code %08x)."
msgstr "未知错误(错误号 %08x)."

-#: ../src/common/textbuf.cpp:229
+#: ../src/common/textbuf.cpp:229
#, fuzzy
msgid "unknown line terminator"
msgstr "未知搜索原点"

-#: ../src/common/file.cpp:474 ../src/common/file.cpp:501
+#: ../src/common/file.cpp:474 ../src/common/file.cpp:501
msgid "unknown seek origin"
msgstr "未知搜索原点"

-#: ../src/common/fmapbase.cpp:698
+#: ../src/common/fmapbase.cpp:698
#, c-format
msgid "unknown-%d"
msgstr "未知-%d"

-#: ../src/common/docview.cpp:432
+#: ../src/common/docview.cpp:432
msgid "unnamed"
msgstr "unnamed"

-#: ../src/common/docview.cpp:1307
+#: ../src/common/docview.cpp:1307
#, c-format
msgid "unnamed%d"
msgstr "unnamed%d"

-#: ../src/common/gzstream.cpp:147
+#: ../src/common/gzstream.cpp:147
msgid "unsupported compression method in Gzip stream"
msgstr ""

-#: ../src/common/intl.cpp:1107
+#: ../src/common/intl.cpp:1107
#, c-format
msgid "using catalog '%s' from '%s'."
msgstr "使用目录 '%s' 从 '%s'."

-#: ../src/html/chm.cpp:336
+#: ../src/html/chm.cpp:336
#, fuzzy
msgid "write error"
msgstr "文件错误"

-#: ../src/common/filename.cpp:177
+#: ../src/common/filename.cpp:177
#, fuzzy
msgid "writing"
msgstr "打印"

-#: ../src/common/stopwatch.cpp:279
+#: ../src/common/stopwatch.cpp:279
msgid "wxGetTimeOfDay failed."
msgstr "wxGetTimeOfDay 失败."

-#: ../src/common/socket.cpp:395 ../src/common/socket.cpp:449
+#: ../src/common/socket.cpp:395 ../src/common/socket.cpp:449
msgid "wxSocket: invalid signature in ReadMsg."
msgstr "wxSocket: ReadMsg中无效的签名."

-#: ../src/common/socket.cpp:945
+#: ../src/common/socket.cpp:945
msgid "wxSocket: unknown event!."
msgstr "wxSocket: 未知事件!."

-#: ../src/motif/app.cpp:204
+#: ../src/motif/app.cpp:204
#, c-format
msgid "wxWindows could not open display for '%s': exiting."
msgstr "wxWindows 不能为 '%s' 打开显示设备: 已经存在."

-#: ../src/x11/app.cpp:176
+#: ../src/x11/app.cpp:176
#, fuzzy
msgid "wxWindows could not open display. Exiting."
msgstr "wxWindows 不能为 '%s' 打开显示设备: 已经存在."

-#: ../src/common/datetime.cpp:3302
+#: ../src/common/datetime.cpp:3302
msgid "yesterday"
msgstr "昨天"

-#: ../src/common/zstream.cpp:141 ../src/common/zstream.cpp:275
+#: ../src/common/zstream.cpp:141 ../src/common/zstream.cpp:275
#, fuzzy, c-format
msgid "zlib error %d"
msgstr " (错误 %ld: %s)"

-#: ../src/common/prntbase.cpp:450
+#: ../src/common/prntbase.cpp:450
msgid "|<<"
msgstr ""

@@ -4033,6 +4034,7 @@
#: ../src/OsipProcess.cpp:94 ../src/OsipProcess.cpp:229
#: ../src/OsipProcess.cpp:234 ../src/OsipProcess.cpp:213
#: ../src/OsipProcess.cpp:217 ../src/OsipProcess.cpp:226
+#: ../src/OsipProcess.cpp:317
msgid "failed to convert message\n"
msgstr "转换Sip消息出错\n"

@@ -4042,6 +4044,7 @@
#: ../src/OsipProcess.cpp:102 ../src/OsipProcess.cpp:237
#: ../src/OsipProcess.cpp:242 ../src/OsipProcess.cpp:221
#: ../src/OsipProcess.cpp:225 ../src/OsipProcess.cpp:234
+#: ../src/OsipProcess.cpp:326
#, c-format
msgid "gethostbyname failed, h_errno = %d: %s\n"
msgstr "gethostbyname出错, 错误码= %d: %s\n"
@@ -4052,7 +4055,7 @@
#: ../src/OsipProcess.cpp:276 ../src/OsipProcess.cpp:281
#: ../src/OsipProcess.cpp:280 ../src/OsipProcess.cpp:269
#: ../src/OsipProcess.cpp:270 ../src/OsipProcess.cpp:274
-#: ../src/OsipProcess.cpp:288
+#: ../src/OsipProcess.cpp:288 ../src/OsipProcess.cpp:372
msgid "networkMsgSend: sendto error"
msgstr "networkMsgSend:网络发送出错"

@@ -4062,6 +4065,7 @@
#: ../src/OsipProcess.cpp:255 ../src/OsipProcess.cpp:260
#: ../src/OsipProcess.cpp:229 ../src/OsipProcess.cpp:230
#: ../src/OsipProcess.cpp:234 ../src/OsipProcess.cpp:248
+#: ../src/OsipProcess.cpp:351
msgid "Send Message"
msgstr "发送消息"

@@ -4092,6 +4096,7 @@
#: ../src/OsipProcess.cpp:261 ../src/OsipProcess.cpp:264
#: ../src/OsipProcess.cpp:265 ../src/OsipProcess.cpp:268
#: ../src/OsipProcess.cpp:279 ../src/OsipProcess.cpp:282
+#: ../src/OsipProcess.cpp:359
#, c-format
msgid ""
"%s [Total Len:%d]:\n"
@@ -4142,7 +4147,8 @@
#: ../src/OsipProcess.cpp:555 ../src/OsipProcess.cpp:508
#: ../src/OsipProcess.cpp:510 ../src/OsipProcess.cpp:560
#: ../src/OsipProcess.cpp:523 ../src/OsipProcess.cpp:525
-#: ../src/OsipProcess.cpp:575
+#: ../src/OsipProcess.cpp:575 ../src/OsipProcess.cpp:638
+#: ../src/OsipProcess.cpp:648
#, c-format
msgid ""
"Recv Message [Total Len:%d]:\n"
@@ -4163,6 +4169,7 @@
#: ../src/OsipProcess.cpp:532 ../src/OsipProcess.cpp:607
#: ../src/OsipProcess.cpp:537 ../src/OsipProcess.cpp:612
#: ../src/OsipProcess.cpp:552 ../src/OsipProcess.cpp:627
+#: ../src/OsipProcess.cpp:687 ../src/OsipProcess.cpp:765
msgid "Create New Trans Fail!!"
msgstr "创建新的Osip事务失败!!"

@@ -4177,7 +4184,7 @@
#: ../src/OsipProcess.cpp:456 ../src/OsipProcess.cpp:460
#: ../src/OsipProcess.cpp:459 ../src/OsipProcess.cpp:539
#: ../src/OsipProcess.cpp:546 ../src/OsipProcess.cpp:551
-#: ../src/OsipProcess.cpp:566
+#: ../src/OsipProcess.cpp:566 ../src/OsipProcess.cpp:712
msgid "Maybe Later Response Come!!"
msgstr "也许是收到了迟来的响应!!"

@@ -4187,7 +4194,7 @@
#: ../src/ScenariosControl.cpp:122 ../src/ScenariosControl.cpp:136
#: ../src/ScenariosControl.cpp:135 ../src/ScenariosControl.cpp:141
#: ../src/ScenariosControl.cpp:147 ../src/ScenariosControl.cpp:148
-#: ../src/ScenariosControl.cpp:155
+#: ../src/ScenariosControl.cpp:155 ../src/ScenariosControl.cpp:172
msgid "OSIP Event without sip message!"
msgstr "收到了没有Sip消息的Osip事件!"

@@ -4212,7 +4219,8 @@
#: ../src/ScenariosControl.cpp:391 ../src/ScenariosControl.cpp:377
#: ../src/ScenariosControl.cpp:397 ../src/ScenariosControl.cpp:379
#: ../src/ScenariosControl.cpp:399 ../src/ScenariosControl.cpp:364
-#: ../src/ScenariosControl.cpp:384
+#: ../src/ScenariosControl.cpp:384 ../src/ScenariosControl.cpp:382
+#: ../src/ScenariosControl.cpp:402
msgid "Bad Event, Null Pointer when recv event!!"
msgstr "无效事件,收到事件指针为空的事件!!"

@@ -4228,25 +4236,28 @@
#: ../src/ScenariosControl.cpp:408 ../src/ScenariosControl.cpp:410
#: ../src/ScenariosControl.cpp:416 ../src/ScenariosControl.cpp:418
#: ../src/ScenariosControl.cpp:396 ../src/ScenariosControl.cpp:403
+#: ../src/ScenariosControl.cpp:422
msgid "Bad Event,No Term Instence Matched!!"
msgstr "无效事件,找不到对应的终端实例!"

#: ../src/ScenariosControlPanel.cpp:63 ../src/ScenariosControlPanel.cpp:71
-#: ../src/ScenariosControlPanel.cpp:76
+#: ../src/ScenariosControlPanel.cpp:76 ../src/ScenariosControlPanel.cpp:75
msgid "Config"
msgstr "配置"

#: ../src/ScenariosControlPanel.cpp:66 ../src/ScenariosControlPanel.cpp:74
#: ../src/ScenariosControlPanel.cpp:78 ../tools/daemon/stt-daemon.cpp:62
#: ../tools/daemon/stt-daemon.cpp:143 ../tools/daemon/stt-daemon.cpp:171
-#: ../tools/daemon/stt-daemon.cpp:172
+#: ../tools/daemon/stt-daemon.cpp:172 ../src/ScenariosControlPanel.cpp:77
+#: ../tools/daemon/stt-daemon.cpp:169
msgid "Start"
msgstr "开始"

#: ../src/ScenariosControlPanel.cpp:69 ../src/ScenariosControlPanel.cpp:77
#: ../src/ScenariosControlPanel.cpp:80 ../tools/daemon/stt-daemon.cpp:63
#: ../tools/daemon/stt-daemon.cpp:144 ../tools/daemon/stt-daemon.cpp:172
-#: ../tools/daemon/stt-daemon.cpp:173
+#: ../tools/daemon/stt-daemon.cpp:173 ../src/ScenariosControlPanel.cpp:79
+#: ../tools/daemon/stt-daemon.cpp:170
msgid "Stop"
msgstr "停止"

@@ -4254,7 +4265,7 @@
#: ../src/ScenariosForm.cpp:70 ../src/ScenariosForm.cpp:72
#: ../src/ScenariosForm.cpp:77 ../src/ScenariosForm.cpp:78
#: ../src/ScenariosForm.cpp:106 ../src/ScenariosForm.cpp:107
-#: ../src/ScenariosForm.cpp:108
+#: ../src/ScenariosForm.cpp:108 ../src/ScenariosForm.cpp:109
msgid "Recv ScenarioExit Event!!"
msgstr "接收到处理线程退出事件!!"

@@ -4270,6 +4281,7 @@
#: ../src/ScenariosForm.cpp:180 ../src/ScenariosForm.cpp:204
#: ../src/ScenariosForm.cpp:205 ../src/ScenariosForm.cpp:239
#: ../src/ScenariosForm.cpp:116 ../src/ScenariosForm.cpp:240
+#: ../src/ScenariosForm.cpp:117 ../src/ScenariosForm.cpp:243
msgid "Before start, you should select one scenarios to run!"
msgstr "请先选择您要执行的场景!"

@@ -4292,7 +4304,8 @@
#: ../src/ScenariosForm.cpp:209 ../src/main.cpp:916 ../src/main.cpp:917
#: ../src/main.cpp:1022 ../src/ScenariosForm.cpp:243 ../src/main.cpp:1026
#: ../src/main.cpp:1032 ../src/ScenariosForm.cpp:120
-#: ../src/ScenariosForm.cpp:244
+#: ../src/ScenariosForm.cpp:244 ../src/main.cpp:1034
+#: ../src/ScenariosForm.cpp:121 ../src/ScenariosForm.cpp:248
msgid ""
"This should never happen,restart the program,if it is still happen,contact "
"the author!"
@@ -4305,7 +4318,7 @@
#: ../src/ScenariosForm.cpp:133 ../src/ScenariosForm.cpp:141
#: ../src/ScenariosForm.cpp:142 ../src/ScenariosForm.cpp:144
#: ../src/ScenariosForm.cpp:152 ../src/ScenariosForm.cpp:153
-#: ../src/ScenariosForm.cpp:154
+#: ../src/ScenariosForm.cpp:154 ../src/ScenariosForm.cpp:156
#, c-format
msgid "Scenarios Stop at %d-%d-%d %d:%d:%d %d"
msgstr "场景于%d-%d-%d %d:%d:%d %d停止"
@@ -4316,7 +4329,7 @@
#: ../src/ScenariosForm.cpp:142 ../src/ScenariosForm.cpp:150
#: ../src/ScenariosForm.cpp:151 ../src/ScenariosForm.cpp:153
#: ../src/ScenariosForm.cpp:161 ../src/ScenariosForm.cpp:162
-#: ../src/ScenariosForm.cpp:163
+#: ../src/ScenariosForm.cpp:163 ../src/ScenariosForm.cpp:165
msgid ""
"Scenarios last %D day(s) %H hour(s) %M minute(s) %S second(s) %l millisecond"
"(s)"
@@ -4330,7 +4343,7 @@
#: ../src/ScenariosForm.cpp:218 ../src/ScenariosForm.cpp:219
#: ../src/ScenariosForm.cpp:221 ../src/ScenariosForm.cpp:245
#: ../src/ScenariosForm.cpp:246 ../src/ScenariosForm.cpp:280
-#: ../src/ScenariosForm.cpp:281
+#: ../src/ScenariosForm.cpp:281 ../src/ScenariosForm.cpp:284
msgid "The Terminal nums what you filled maybe incorrect,Check it!"
msgstr "无效的终端个数!"

@@ -4342,7 +4355,7 @@
#: ../src/ScenariosForm.cpp:222 ../src/ScenariosForm.cpp:223
#: ../src/ScenariosForm.cpp:225 ../src/ScenariosForm.cpp:249
#: ../src/ScenariosForm.cpp:250 ../src/ScenariosForm.cpp:284
-#: ../src/ScenariosForm.cpp:285
+#: ../src/ScenariosForm.cpp:285 ../src/ScenariosForm.cpp:289
msgid "The Terminal nums what you filled is too much,Check it!"
msgstr "终端数量超出限制!"

@@ -4365,6 +4378,7 @@
#: ../src/ScenariosManager.cpp:30 ../src/ScenariosManager.cpp:147
#: ../src/ScenariosManager.cpp:148 ../src/ScenariosManager.cpp:156
#: ../src/ScenariosManager.cpp:159 ../src/ScenariosManager.cpp:171
+#: ../src/ScenariosManager.cpp:54
msgid "Invalid Param for PutHead!!"
msgstr "PutHead参数无效!!"

@@ -4380,7 +4394,7 @@
#: ../src/ScenariosManager.cpp:1700 ../src/ScenariosManager.cpp:1713
#: ../src/ScenariosManager.cpp:1720 ../src/ScenariosManager.cpp:1739
#: ../src/ScenariosManager.cpp:1741 ../src/ScenariosManager.cpp:1748
-#: ../src/ScenariosManager.cpp:1882
+#: ../src/ScenariosManager.cpp:1882 ../src/ScenariosManager.cpp:1659
msgid "IsVaribleEqual Without Param0"
msgstr "IsVaribleEqual缺少Param0"

@@ -4388,6 +4402,7 @@
#: ../src/ScenariosManager.cpp:267 ../src/ScenariosManager.cpp:326
#: ../src/ScenariosManager.cpp:325 ../src/ScenariosManager.cpp:334
#: ../src/ScenariosManager.cpp:337 ../src/ScenariosManager.cpp:349
+#: ../src/ScenariosManager.cpp:224
msgid "call id failed!\n"
msgstr "初始化call id失败!\n"

@@ -4395,6 +4410,7 @@
#: ../src/ScenariosManager.cpp:272 ../src/ScenariosManager.cpp:331
#: ../src/ScenariosManager.cpp:330 ../src/ScenariosManager.cpp:339
#: ../src/ScenariosManager.cpp:342 ../src/ScenariosManager.cpp:354
+#: ../src/ScenariosManager.cpp:229
msgid "call id parse failed!\n"
msgstr "call id的值无效\n"

@@ -4432,7 +4448,9 @@
#: ../src/ScenariosManager.cpp:955 ../src/ScenariosManager.cpp:999
#: ../src/ScenariosManager.cpp:399 ../src/ScenariosManager.cpp:1009
#: ../src/ScenariosManager.cpp:1031 ../src/ScenariosManager.cpp:1088
-#: ../src/ScenariosManager.cpp:1132
+#: ../src/ScenariosManager.cpp:1132 ../src/ScenariosManager.cpp:266
+#: ../src/ScenariosManager.cpp:840 ../src/ScenariosManager.cpp:907
+#: ../src/ScenariosManager.cpp:942
msgid "Invalid Param for SetUserAgent!!"
msgstr "SetUserAgent参数无效!!"

@@ -4440,7 +4458,7 @@
#: ../src/ScenariosManager.cpp:302 ../src/ScenariosManager.cpp:361
#: ../src/ScenariosManager.cpp:360 ../src/ScenariosManager.cpp:369
#: ../src/ScenariosManager.cpp:372 ../src/ScenariosManager.cpp:384
-#: ../src/ScenariosManager.cpp:388
+#: ../src/ScenariosManager.cpp:388 ../src/ScenariosManager.cpp:255
msgid "seq init failed!\n"
msgstr "seq初始化失败!\n"

@@ -4474,6 +4492,9 @@
#: ../src/ScenariosManager.cpp:420 ../src/ScenariosManager.cpp:442
#: ../src/ScenariosManager.cpp:480 ../src/ScenariosManager.cpp:829
#: ../src/ScenariosManager.cpp:859 ../src/ScenariosManager.cpp:889
+#: ../src/ScenariosManager.cpp:295 ../src/ScenariosManager.cpp:349
+#: ../src/ScenariosManager.cpp:380 ../src/ScenariosManager.cpp:709
+#: ../src/ScenariosManager.cpp:755
msgid "Invalid Param for SetMaxForward!!"
msgstr "SetMaxForward参数无效!!"

@@ -4489,6 +4510,7 @@
#: ../src/ScenariosManager.cpp:467 ../src/ScenariosManager.cpp:837
#: ../src/ScenariosManager.cpp:844 ../src/ScenariosManager.cpp:848
#: ../src/ScenariosManager.cpp:471 ../src/ScenariosManager.cpp:981
+#: ../src/ScenariosManager.cpp:371 ../src/ScenariosManager.cpp:819
msgid "uri parse failed!\n"
msgstr "uri解析失败\n"

@@ -4500,6 +4522,7 @@
#: ../src/ScenariosManager.cpp:828 ../src/ScenariosManager.cpp:831
#: ../src/ScenariosManager.cpp:843 ../src/ScenariosManager.cpp:850
#: ../src/ScenariosManager.cpp:854 ../src/ScenariosManager.cpp:987
+#: ../src/ScenariosManager.cpp:825
msgid "Invalid Param for SetUri!!"
msgstr "SetUri参数无效"

@@ -4515,6 +4538,7 @@
#: ../src/ScenariosManager.cpp:1225 ../src/ScenariosManager.cpp:1243
#: ../src/OsipProcess.cpp:384 ../src/ScenariosManager.cpp:1249
#: ../src/OsipProcess.cpp:399 ../src/ScenariosManager.cpp:1382
+#: ../src/OsipProcess.cpp:510 ../src/ScenariosManager.cpp:1166
msgid "Can't init message!\n"
msgstr "初始化消息失败!\n"

@@ -4530,6 +4554,7 @@
#: ../src/ScenariosManager.cpp:1290 ../src/ScenariosManager.cpp:1308
#: ../src/OsipProcess.cpp:412 ../src/ScenariosManager.cpp:1314
#: ../src/OsipProcess.cpp:427 ../src/ScenariosManager.cpp:1447
+#: ../src/OsipProcess.cpp:538 ../src/ScenariosManager.cpp:1233
msgid "VIA Clone fail!\n"
msgstr "Via域克隆失败!\n"

@@ -4544,6 +4569,7 @@
#: ../src/ScenariosManager.cpp:1319 ../src/ScenariosManager.cpp:1326
#: ../src/ScenariosManager.cpp:1344 ../src/ScenariosManager.cpp:1345
#: ../src/ScenariosManager.cpp:1351 ../src/ScenariosManager.cpp:1484
+#: ../src/ScenariosManager.cpp:1270
msgid "Execute Send rule Fail!!"
msgstr "执行发送规则失败!!"

@@ -4558,6 +4584,7 @@
#: ../src/ScenariosManager.cpp:1325 ../src/ScenariosManager.cpp:1332
#: ../src/ScenariosManager.cpp:1350 ../src/ScenariosManager.cpp:1351
#: ../src/ScenariosManager.cpp:1357 ../src/ScenariosManager.cpp:1490
+#: ../src/ScenariosManager.cpp:1276
msgid "Execute Default Send rule Fail!!"
msgstr "执行默认发送规则失败!!"

@@ -4572,6 +4599,7 @@
#: ../src/ScenariosManager.cpp:1334 ../src/ScenariosManager.cpp:1341
#: ../src/ScenariosManager.cpp:1359 ../src/ScenariosManager.cpp:1361
#: ../src/ScenariosManager.cpp:1367 ../s

==============================================================================
Diff truncated at 200k characters

Reply all
Reply to author
Forward
0 new messages